Você está na página 1de 36

Atividade Prática Supervisionada

Ciência da Computação

CRIPTOGRAFIA

Santana de Parnaíba
2015

3
1. Objetivo do trabalho

Este trabalho tem como objetivo explicar a criptografia de forma não muito
aprofundada. Voltada para os tipos de criptografia mais utilizadas e conhecidas
atualmente, as chaves que são usadas para os tipos de ambientes diferentes e as
técnicas que são implementadas.

O trabalho começa com as informações básicas da criptografia, como sua


história ao longo do tempo e algumas partes em que foram realmente marcantes
para nossa sociedade, como a segunda guerra mundial que é um dos maiores
exemplos do aparecimento da criptografia de dados, e como isso pode nos afetar
de diversas formas.

Ao contrário do que se pensa frequentemente, a criptografia está presente


em quase todos os lugares, as vezes até em formas arcaicas como um simples
sinal ou carta. Em todos os nossos e-mails e sites acessados, mensagens
diariamente enviadas, telefonemas e todo o tipo de comunicação que passa por
um meio volátil é criptografada para que pessoas nesses meios não possam ter
acesso às informações que estão sendo transmitidas, criando a nossa privacidade
e segurança dos nossos dados.

Existem vários tipos de chaves diferentes que são usadas para esconder
informações, geralmente usadas em ambientes específicos, diferenciando qual o
tipo de segurança será mais viável para aquele tipo de informação. Por exemplo
as chaves simétricas, são mais usadas para dados comuns, ou que sua
informação não seja tão valiosa fazendo com que a quebra dessa chave não seja
tão prejudicial. Também existem as chaves assimétricas que são tipos um pouco
diferentes, onde há duas chaves, publicas e privadas, e cada pessoa possui suas
próprias chaves, com isso podemos implementar acessos de várias pessoas ao
mesmo conteúdo ou a partes restritas para uma pessoa só. Além de ser um tipo
de chave mais segura.

4
Com todas as informações presentes no documento podemos criar um
ambiente onde quem está lendo possa ter uma breve noção sobre o que é
criptografia e pegar nossas explicações como base para um aprofundamento
posterior de algum tópico, e por se tratar de um assunto ainda muito atual sempre
ir aprimorando seus conhecimentos. Utilizar nossos códigos e explicações dos
mesmos como exemplos para uso, e de como são feitos os tipos de criptografias.
Com todas as referências impostas, contando também com a bibliografia muita
informação esta sendo transmitida.

5
2. Introdução

De acordo com o Dicionário Michaelis, criptografia é definida como a arte ou


processo de escrever em caracteres secretos ou em cifras.

Ao longo da história as maiores potências eram conhecidas por seu poder


de armamento e armas nucleares. Por um bom tempo essa estrutura se manteve
intacta e não era abalada. Com grandes batalhas travadas e destruições em
massa os países foram entrando em atrito e acumulando muitas mortes.

Por mais que as armas tivessem influencia direta na definição de potência,


a informação foi se mostrando o grande poder, pois com uma simples informação,
muitas coisas poderiam ser mudadas. Com esse cenário foi identificado a
necessidade de proteger a informação, criando assim métodos de criptografia.

A criptografia tem origem A.C. e está presente em diversos meios de


comunicação. Foram criados métodos e ferramentas para criação de criptografias,
que temos a Cifra de Cesar conhecida como a primeira identificada, criada para
proteger as informações trocadas entre as tropas.

Na segunda guerra mundial temos um ótimo exemplo, a Máquina Enigma,


construída por alemães, com o intuito de trocar informações entre suas tropas sem
que fossem rastreadas e identificadas.

Com a descoberta de Alan Turing e sua equipe, deu-se uma redução de


pelo menos 2 anos na Segunda Guerra Mundial, salvando milhões de vidas.

Mesmo com a descoberta, tiveram que agir em oculto, pois poderiam ser
criados outros métodos de cifragem. Nisso vemos a importância da informação e
do quanto ela pode ter efeito direto em decisões de ação fundamental.

Esse foi um dos mais importantes momentos da história e nos mostrou a


necessidade de proteger informações, de criar métodos e meios de guardar
segredos de acordo com sua importância.

6
Com o passar dos anos e com o crescimento da tecnologia surgiu a
necessidade de aumentar essa proteção, tendo em vista que a cada método
criado, apresentavam-se interlocutores interessados na quebra de tal segurança.

São identificados muitos meios de cifras nos dias de hoje e são trabalhados
constantemente, tanto para se aprimorar, como suas falhas. Como cada
criptografia tem seus métodos e regras de cifragem, não é tão difícil ser quebrada.

A criptografia tem sido algo cada vez mais utilizado, para a segurança de
certos dados e informações, como por exemplo, transações bancárias. Para
garantir essa segurança, são utilizadas chaves criptográficas. Essas chaves são
grupos de algoritmos que se relacionam um com o outro e mantêm a ligação
confidencial da informação.

Apesar de ser um recurso imprescindível na transmissão de informações


pela internet, a criptografia não pode ser considerada algo completamente seguro,
sendo que alguns hackers já conseguiram quebrar essas codificações.

Mas a engenharia dentro da segurança da informação não para de evoluir e


teremos ainda muitas novas regras criadas e modificadas.

Com isso, nos demais tópicos deste material, apresentaremos alguns


métodos criados, como e onde foram utilizados e suas eventuais falhas.

7
3. Criptografia

A criptografia é conhecida a muito tempo, e algumas vezes associada a


praticas militares. As primeiras mensagens criptografadas baseavam-se
praticamente na substituição de caracteres de uma mensagem ou de alterar as
posições dos demais caracteres para dificultar o entendimento do texto.

Desde então a criptografia e tem estado presente nos mais diversos tipos
de tecnologias, como veremos a seguirr.

3.1 Criptografia Clássica

A criptografia clássica é a mais antiga conhecida pelo homem. Esta técnica


era bastante usada em atividades militares, onde sua força contra possíveis
ataques dependiam do conhecimento do algoritmo que necessário para a
desencriptação da mensagem.

Um dos mais antigos algoritmos de cifragem conhecidos e talvez também o


mais simples de entender é a Cifra de Cesar que possui esse nome em
homenagem ao imperador Romano da Época. Este algoritmo era bem básico
como fazer um shift de 3 caracteres para a esquerda para cifrar e fazer da mesma
forma para a direita para decifrar.

Portanto bastava que alguém soubesse este segredo para ler todas as
mensagens que por ele passassem fazendo com que essa técnica não fosse
muito segura, porém mais segura que enviar o texto limpo.

3.2 Criptografia Moderna

A criptografia moderna surge durante a segunda guerra mundial. Numa


época tensa na qual a informação sobre possíveis alvos era cada vez mais

8
importante manter-se secreta, foi necessário o desenvolver algo que pudesse
realizar esse trabalho.

E foi desta forma que os Alemães se destacaram e criaram uma máquina


conhecida como “Enigma” que era uma máquina de Rotores na qual cada Rotor
substituía uma letra por outra, assim como na cifra de César.

O “Enigma” tinha a vantagem de ter vários rotores colocados em paralelo e


numerados em numeração Romana e garantia que o substituto de cada carácter
fosse diferente em cada Rotor. Em seguida escrevia a mensagem a ser decifrada
e se posicionava os rotores, e esta seria a chave da mensagem.

Que a máquina ficasse o mais segura possível alterava-se o rotor a cada


tecla voltando ao rotor I no após o III. Embora essa técnica tenha sido muito
avançada para a época, existia um enorme perigo que seria o caso de terem duas
mensagens iguais interceptadas, pois assim seria possível fazer a comparação
das mesmas e descobrir a relação entre elas.

Nos dias de hoje a informação está cada vez mais em formato digital e isso
faz com que a necessidade de que a informação seja protegida aumente,
dificultando que a mesma seja perceptível por pessoas mal-intencionadas.
Portanto a criptografia tem hoje em dia um papel fundamental e de suma
importância para obtermos sistemas mais seguros.

A criptografia é considerada por muitos uma ciência, utilizada para escrever


um texto de modo impercebível para pessoas que não possuem a chave para
descriptografar a mensagem.

Há algum tempo o homem sentiu a necessidade de proteger as suas ideias


ou até as informações que ele partilhava, como por exemplo, na época das
guerras era importante que uma ordem de ataque ou movimentação não fosse
interceptada, como podemos ver no filme Jogo da Imitação.

Atualmente a criptografia tornou-se algo que não se resume apenas a fins


militares. Deve-se usar criptografia sempre que há informação importante a ser
transportada por um meio que possa ser interceptada, e assim tornou-se uma
9
peça imprescindível na transmissão de informação, principalmente na internet,
pois diariamente passam muitas informações importantes por meio dela.

Com isso podemos observar que a criptografia virou algo que utilizamos
habitualmente e diariamente, e as vezes até mesmo sem percebermos , como por
exemplo na informação que viaja entre o nosso PC e o roteador wi-fi, toda essa
informação trafega de modo cifrado para que se for interceptada não consigam
compreender.

A criptografia não tem como objetivo esconder a existência da mensagem


em si, como na esteganografia, mas sim ocultar o seu significado. Para isso, é
preciso passar por um processo de cifração.

Este processo é definido como qualquer forma de substituição criptográfica,


onde cada letra é substituída por outra letra ou por um símbolo, onde o emissor
deve estar de acordo com o receptor.

Desta forma, a mensagem é misturada ou embaralhada para tornar seu


entendimento impossível para quem não possui o protocolo, ou da chave, para
decifrá-la. Essa característica constitui, portanto, vantagem no caso de
interceptação indevida.

4. Técnicas criptográficas mais utilizadas

Atualmente, as técnicas de criptografia mais conhecidas envolvem o conceito


das chaves criptográficas, onde um conjunto de bits, baseados em um algarismo
capaz de interpretar a informação, capaz de codificar e decodificar. Se a chave do
receptor não for compatível com a do emissor, não conseguirão obter a
informação.

Existem dois tipos de chave: a chave pública e a chave privada.

10
A chave pública é usada para codificar as informações, e a chave privada é
usada para decodificar. Portanto na pública, todos têm acesso, porém somente
para abrir os dados da informação, que para ser compreendida, é preciso da
chave privada, que só o emissor e receptor originais possuem.

4.1 Chave Privada ou Simétrica:

A chave utilizada para encriptar a informação, será a mesma utilizada para


desencriptar. O emissor e o receptor utilizam a mesma senha.

DES (Data Encryption Standard): Faz uso de chaves de 56 bits,


aproximadamente 72 quatrilhões de combinações. Mesmo sendo um número
absurdamente alto, conseguiram quebrar esse algoritmo através do método de
tentativa e erro, em um desafio na internet em 1997.

RC (Ron's Code ou Rivest Cipher): Algoritmo muito utilizado em e-mails e usa


chaves de 8 a 1024 bits, possui várias versões que se diferem uma das outras
pelo tamanho das chaves.

AES (Advanced Encryption Standard): Atualmente um dos melhores e mais


populares algoritmo de criptografia. Podemos definir o tamanho da chave como
sendo de 128bits, 192bits ou 256bits.

IDEA (International Data Encryption Algorithm): Algoritmo que usa chaves de


128 bits, parecido com o DES. Seu ponto forte é a fácil implementação de
software.

As chaves simétricas não são totalmente seguras quando se trata de


informações muito valiosas, pelo fato de que o emissor e o receptor têm que
11
conhecer a mesma chave. Assim, a transmissão pode não ser segura e o
conteúdo chegar a terceiros.

4.2 Chave Pública ou Assimétrica:

O emissor e o receptor possuem duas chaves, uma privada e outra pública.


A pública todos tem acesso e a privada somente o proprietário. Acredito que um
exemplo claro seja o facebook que te permite publicar na linha do tempo de
alguém, mas só ela pode publicar com seu próprio ID ou no bate papo, pode se
abrir uma conversa em grupo (Assimétrica), mas podemos falar com cada um
reservadamente (Simétrica).

Exemplo:

Fábio quer se comunicar com Ana de forma segura. Então, Fábio encripta a
mensagem com a chave pública da Ana, de modo que a mensagem só pode ser
aberta usando a chave privada de Ana – que só ela possui.

Os tamanhos das chaves podem variar entre 512 e 2048 bits. Usada em modo de
bloco.

Ex: DAS, RSA, GPG

Criptografia em redes Wi-Fi

WEP (Wired Equivalent Privacy): É uma chave compartilhada muito usada ainda
hoje, e usa o algoritimo RC4 para criptografia dos dados. Este padrão cria uma
vetor de inicialização para o pacote, que é atrelado a sua senha. Porém é uma

12
chave não tão segura, seu vetor criado naõ é longo o suficiente para criar uma
segurança satisfatória.

WPA / WP2 (Wi-Fi Protected Access): Baseado no padrão IEEE 802.11, como
um WEP, só que sua segurança e modo de autenticação de usuários é melhor
que o padrão anterior. o WPA2 já tem sua base em AES, que é uma forma de
criptografia muito mais segura, mas a desvantagem de utilização desse protocolo
é o alto consumo de memoria, podendo ter um processamento mais lento.

Entre os algoritmos utilizados, estão:

RSA (Rivest, Shamir and Adleman): Um dos algoritmos de chave assimétrica


mais utilizados, onde dois números primos são multiplicados para obter um
terceiro valor. Assim, se forem utilizados números grandes, a descoberta do
código será praticamente impossível. A chave privada do RSA são os números
que são multiplicados e a chave pública é o valor que será obtido.

ElGamal: Utiliza o 'logaritmo discreto', que é um problema matemático que o torna


mais seguro. Essa técnica é bastante utilizada em assinaturas digitais.

4.3 Certificado Digital

O certificado digital é como se fosse uma identidade digital na rede, que tem
como alvo pessoas ou máquinas. É um arquivo que contém dados de uma
instituição, pessoa ou equipamento, que é usado para comprovar a identidade dos
mesmos.

Dados que identificam o dono ou a máquina, Nome da Autoridade Certificadora


(AC), número de série e período de validade são algumas das principais
informações encontradas em uma certificação digital.

13
Hash: Essa é outra técnica conhecida que utiliza tamanho fixo. Usada para
verificar a integridade dos dados para verificar se não foram alterados, e utilizada
para verificação de senhas.

Ex: MD5, SHA1, SHA2

Nos dias de hoje a criptografia pode ser considerada um método 100%


seguro, que proporciona a quem a utiliza para mandar e-mails e proteger seus
arquivos, total proteção contra fraudes e tentativas de invasão.

Os termos 'chave de 64 bits' e 'chave de 128 bits' são usados para


determinar o tamanho da chave, assim, quanto mais bits forem utilizados, mais
segura será essa criptografia.

4.4 Operações lógicas booleanas

Uma operação Lógica é uma operação matemática em Álgebra Booleana (com


valores binários – bits), cujos valores podem ser iguais a 0 ou 1, o que
corresponde a falso ou verdadeiro.

AND, OR, NOT, XOR – Lógic em binários 1 – Ligado / 0 – Desligado.

As operações lógicas mais comuns empregadas em criptografia são:

NOT (Não) – operação unária

AND (E)

OR (OU)

XOR (OU-Exclusivo)

14
Operação Lógica NOT (Não)

Operação Lógica NOT (Não)

É a operação de negação (valor inverso). Ao aplicarmos a operação NOT a um


valor lógico, ele muda seu estado.

4.5 Tipos de Criptografia

Texto Plano: Texto original

Texto Encriptado: Texto Criptografado

Criptoanálise: Descriptografia sem a chave (Quebra de Criptografia). É muito


utilizada para testar algoritmos de criptografia.

Sistema de Criptografia - Requerimentos de segurança em comunicações:

Autenticação: Confirma que a informação veio do remetente correto.

Integridade: Trata-se do conteúdo das informações trocadas, que devem ser


íntegras em seu destino final.

Confidencialidade: Limita a mensagem aos destinatários corretos.

Não repúdio: Algoritmo que garanta quem fez o envio, como se fosse um
marcador. Exemplo: MAC da placa de rede. Pode ser utilizada assinatura digital.

15
5. Dissertação:

Com a emergente necessidade no controle de acesso ao navio, foi


desenvolvido um canal de comunicação que poderá ser viabilizado por meio de
mensagens criptografadas. Pois num entendimento geral é compreendido que
qualquer informação destinada aos tripulantes precisa ser assegurada com uma
chave única. Essa, estará disponível para o superior responsável da tripuação e
para um representante na Costa, sendo possível a alteração quando desejada. De
ambos lados será possível receber e enviar mensagens.

Esse sistema permitirá que a troca de informações e instruções sejam


seguramente transmitidas, mesmo que ocorra uma interceptação.

Quanto ao funcionamento do programa de encriptação, será simples e


otimizada sua utilização, podendo ser manuseada facilmente por qualquer
tripulante.

O emissor da informação/instrução (texto) receberá ao abrir seu encriptador, a


mensagem solicitando o Texto e sua respectiva chave. Ao informá-la, será
realizado o processo de encriptação ao texto.

Nesse momento começa o processo de enciptação. São aplicadas as fórmulas


e algoritmos dedicados ao texto, modificando-o de tal maneira, que mesmo ao
digitar uma sequência de uma determinada letra, não terá uma letra, número ou
símbolo específico, criando assim um campo mais dificultoso aos que tentarem
acesso sem a chave.

Os valores são modificados e reordenados de uma forma que mantém todo o


conteúdo bagunçado. E somente o desencriptador pode reverter todo esse
processo.

O sistema encriptador tem base na tabela ASCII, e modifica seus valores


sempre respeitando o conteúdo. Acredita-se que uma vírgula modificada ou no
local errado, pode alterar toda uma interpretação, causando desordem e mal
entendimento. O programa foi desenvolvido para criar um nível de segurança e ter

16
restrições de acesso às informações que precisam ser passadas aos tripulantes
ou responsáveis pelo mesmo, no caso, o capitão.

O programa foi desenvolvido para criar um nível de segurança e ter restrições


de acesso às informações que precisam ser passadas aos tripulantes ou
responsáveis pelo mesmo, no caso, o capitão.

O Ambiente no qual foi pensado o programa se passa em uma área onde o


perigo encontrado pode por em alto risco a saúde, tanto das pessoas envolvidas
quanto daqueles que potencialmente podem ser afetados. Um navio com carga de
lixo tóxico foi interceptado antes de alcançar o seu destino, descobrindo o que era
transportado pelo mesmo, foi criada uma medida de segurança contra a possível
contaminação da saúde pública e dos potencialmente afetados. Para implementar
esta segurança, primeiro foi estipulado uma distância de prevenção do contato, ou
seja qualquer um que tentar contatar este navio e exceder a distância segura
permitida recebera um aviso com a proximidade máxima permitida do navio,
sendo todo acesso ao mesmo somente permitido se for de helicóptero, e possuir
uma senha, se passar disso todo o acesso da pessoa será barrado e pedira uma
senha de acesso ao sistema, com apenas 3 tentativas. Passado destas tentativas
o indivíduo saíra automaticamente do sistema e permanecera sem acesso. Caso
seja uma pessoa autorizada (que possua a senha para entrar no sistema), o
sistema será iniciado com as opções de contato que são possíveis, podendo
escolher um destinatário para a sua mensagem. Limitar todo o acesso ao máximo
e com as medidas de segurança de encriptação e decriptação das senhas e
mensagens, podemos ter um controle dos acessos a este tipo de informação,
impedindo pessoas alheias às necessárias de que possam acabar recebendo tais
mensagens e possam usar isso contra as pessoas envolvidas. Tanto como venda
de informação, vantagens, bajulações, etc. Com isso dividir a informação entre
responsáveis e pessoas “públicas”, é mais uma forma de limitar todo esse acesso
à informação que está sendo passada.

As mensagens, após selecionado o destino para ela, será encaminhada para


para a pessoa escolhida, no caso o capitão do navio, ou a sua tripulação, e então

17
outra senha sera pedida para ser atrelada ao seu texto e executar a criptografia
dele e somente aqueles que possuírem essa chave conseguiram decriptar a
mensagem e ler suas informações.

O acesso que é permitido à tripulação funciona como uma chave pública, todos
que fazem parte desse grupo vão possuir essa chave e conseguiram ler apenas
aquilo que lhes for destinado. Informações de alta importância, ou muito sigilosas,
nunca podem ser transmitidas para destinatários indevidos, por isso a divisão de
individuo e suas chaves se torna tão importante nesse quesito.

Para aumentar mais ainda a restrição de acesso foi colocada uma distância
que deve ser mantida da embarcação, e outra distância da embarcação em
relação à costa para atracar. A distância máxima permitida da embarcação da
costa é de 50km, para evitar todo e qualquer tipo de contato e possível
contaminação pela sua carga tóxica, outra distância que deve ser mantida é de
10km da embarcação para evitar contato com outros barcos ou outro tipo de
transporte que esteja próximo.

Estas são as partes criadas que geram uma política de segurança nos
acessos, toda a necessidade de poder transferir dados sem ter que se preocupar
se eles vão ser interceptados e lidos se torna quase nula em razão de todos os
métodos de segurança que foram implementados, é dito quase nula, porque
nenhuma criptografia é 100% segura, mesmo que sua lógica seja impossível de
ser descoberta sem seu algoritmo, ainda existem os métodos mais rústicos que
apesar de simples, acabam se tornando funcionais, por exemplo, tentativa e erro.
Porem, utilizando desse método, dependendo da chave e sua criptografia pode-se
levar anos ou décadas para descobrir como quebrar sua segurança e acessar o
arquivo desejado. Outros métodos como este podem funcionar também, mas seu
resultado é tão demorado que acaba sendo inutilizada.

18
O tipo de chave que utilizamos foi uma chave assimétrica, pois como existe
multi acessos ao mesmo tipo de informação por parte da tripulação e capitão, uma
chave do tipo pública e privada serve perfeitamente para a ocasião, imagine ter
vários tipos de produtos, e todos eles pertencentes a um mesmo grupo ou divisão,
além de ser mais fácil a sua organização, o acesso a esses produtos seria feito de
um único modo, de mesmo jeito funciona para nossa ocasião, várias pessoas que
precisam acessar ao mesmo tipo de informação, e para isso eles possuem uma
chave pública de acesso que os direciona a esse tipo de dado. Enquanto isso, por
outro lado há as pessoas com acessos privilegiados, que podem ser tanto
pessoas de confiança do capitão que necessitam de informações extras quanto o
próprio capitão do navio, e nesses casos há uma chave privada, uma chave
diferente da pública, que no caso não são todos que possuem, e sim uma única
pessoa que a detêm. Essa chave o proporciona acesso privilegiado a certos tipos
de informação que , no caso só poderiam ser direcionadas a essa pessoa.

Existem diversos tipos de criptografia, na qual a maioria delas poderia ter sido
implementadas para suprir esta função que foi pedido, porem a que foi escolhida
serve em sua grande maioria para qualquer problema que poderia surgir em
relação a acessos de usuários, com seus limites de tripulação ou capitão sendo os
destinatários de suas mensagens, com a opção de criptografia do texto para ser
enviada ou descriptografia se já houver uma mensagem criptografada para que
possamos ver o texto real da mensagem.

Todo o trabalho em si visa mostrar como é feita uma criptografia em tempo


real, recebendo uma quantidade de valor em dados , transformando-os em chaves
e em um vetor no qual possamos armazenar toda a senha e muda-la
completamente, tornando irreconhecível ou ilógico o seu conteúdo. Com um tema
proposto foi pensado nas suas possíveis variáveis, como quem poderia ter
acesso ao navio, seu risco de contaminação colocando a distancia segura que foi
pedida, gerar um aviso para quem esta se aproximando ter conhecimento de onde
esta entrando e barrar sua entrada se não possuir um acesso previamente

19
permitido, no caso, possuir a chave de segurança para iniciar o sistema. Foi
revisado os problemas encontrados no programa para que diminuisse o nivel de
falhas que poderiam vir a acontecer, pensando em outras acontecimentos que
podem ocorrer de verdade, um pensamento inicial foi ter a segurança e divisão
dos acessos, atribuindo mensagens a responsáveis, ou para que todos possam
ver, então sobretudo, criar a segurança da informação, mas também colocar essas
medidas no contexto que foi dado.

O trabalho é uma amostra de como pode ser desenvolvido qualquer programa


para qualquer situação, com nossos estudos e esforços podemos utilizar da
programação para fazer os dados servirem aos nossos favores, e às nossas
situações.

20
6. Projeto (estrutura) do programa:

O usuário devera inserir a senha para entrar no sistema, tendo apenas Três
tentativas, Excedendo essas tentativas o programa ira “Expulsar” o usuário do
sistema, caso contrário ele entrará no sistema, Tendo que inserir o Texto e a
chave, inserido o texto e a chave o sistema ira converter ao texto de a chave em
char distribuindo eles nos vetores correspondentes, em seguida convertera em int
e armazenando nos vetores de inteiros, Logo após ira perguntar o que o usuário
deseja fazer com o texto, se ele deseja criptografar ou decriptografar o texto,
Escolhendo a opção de criptografar o programa ira somar os valores contidos nos
vetores de inteiros da chave e do texto e convertendo em char e armazenando nos
vetores de criptografia, em seguida convertendo para String e Mostrando na Tela
o encriptamento, depois ira perguntar se o usuário deseja decriptografar o texto
criptografado, se for digitado “sim” o sistema irá pedir para o usuário se autenticar
digitando a senha, inserida a senha o sistema ira converter os dados contidos nos
vetores e dois fazer a operação de subtrair a chave do texto, logo em seguida
mostra a decriptografia na Tela.

Já se o usuário digitar “2” o programa entra na decriptação do Texto


digitado, subtraindo o vetor de inteiro da chave do vetor de inteiro texto, e
convertendo para char e armazenando no vetor de decriptografia, em seguida
mostrando na tela a descriptografia.

21
7. Relatório com as linhas de código

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

namespace ConsoleApplication9

class Program

static void Main(string[] args)

int distancia = 50;

string dest;

// enquanto a distancia for maior que 10km, permitir passagem

while (distancia > 10)

distancia--;

//Mensagem de aviso para quem estiver no raio de 10km de proximidade do barco

if (distancia <= 10)

Console.WriteLine(" AVISO");

Console.WriteLine(" SOMENTE PESSOAL AUTORIZADO");

22
Console.WriteLine("ÁREA RESTRITA, LOCAL COM RISCO DE CONTAMINAÇÃO
");

Console.WriteLine("TODO ACESSO DEVE SER FEITO POR HELICOPTERO");

Console.WriteLine(" DISTÂNCIA MÁXIMA PERMITIDA 10Km");

Console.WriteLine("");

string Senha = "Melchior@1CC", SenhaUsu;

int ContSenha = 3;

Console.WriteLine("Digite a Senha Para ter Acesso Ao Sistema");

SenhaUsu = Console.ReadLine();

while (SenhaUsu != Senha)

Console.WriteLine("Senha Incorreta, Digite Novamente (Tentativas Restantes


{0})", (ContSenha));

SenhaUsu = Console.ReadLine();

ContSenha--;

if (ContSenha == 0)

Console.WriteLine("Tentativas Excedidas!");

Console.ReadKey();

Environment.Exit(ContSenha);

char CripOuEncrip;

string Chave, Texto;

Console.WriteLine("");

23
Console.WriteLine("Senha Correta");

Console.WriteLine("Sistema Iniciado");

Console.WriteLine("");

int Cont4 = 0;

do

// Escolher para quem vai ser enviado a mensagem

Console.WriteLine("Escolha o Destinatário da mensagem (Tripulação ou


Capitão)");

dest = Console.ReadLine();

string lower = dest.ToLower();

// Enquanto não for selecionado um destinatario válido, mostrar uma mensagem


de erro

while (dest != "capitão" && dest != "tripulação")

Console.WriteLine("Destinatário inválido");

Console.ReadKey(true);

Console.WriteLine("");

Console.WriteLine("Escolha o Destinatário da mensagem (Tripulação ou


Capitão)");

dest = Console.ReadLine();

lower = dest.ToLower();

//Definir o destinatário.

24
switch (dest)

case "tripulação":

Console.WriteLine("");

Console.WriteLine("Destinatário {0}", dest);

break;

case "capitão":

Console.WriteLine("");

Console.WriteLine("Destinatário {0}", dest);

break;

Cont4++;

if (Cont4 == 1)

Console.WriteLine("Insira O Texto: Menor que 128 caracteres");

Texto = Console.ReadLine();

else

Console.WriteLine("Texto Excedeu 128 Caracteres,Digite um menor");

Texto = Console.ReadLine();

25
} while (Texto.Length > 128);

Console.WriteLine("");

Console.WriteLine("Insira a Chave");

Chave = Console.ReadLine();

//Vetores do Texto

char[] TextoVet = new char[Texto.Length];

int[] TextoNum = new int[Texto.Length];

//Vetores da Chave

char[] ChaveVet = new char[Chave.Length];

int[] ChaveNum = new int[Chave.Length];

//Vetores Encriptação

char[] EncripVet = new char[Texto.Length];

int[] EncripNum = new int[Texto.Length];

string[] Encrip = new string[Texto.Length];

//Vetores Decriptação

char[] DecripVet = new char[Texto.Length];

string[] Decrip1 = new string[Texto.Length];

//Contadores

int Cont = 0, Cont1 = 0, Cont2 = 0, Cont3 = 0, Cont5 = 0;

string Deseja, Senha1;

//Conversão e Armazenamento do Texto Nos Vetores para Aplicação do


Algoritmo(Chave + Texto)

for (int i = 0; i < Texto.Length; i++)

TextoVet[i] = Convert.ToChar(Texto[i]);

TextoNum[i] = Convert.ToInt16(TextoVet[i]);
26
}

// Conversão e Armazenamento da Chave Nos Vetores Para Aplicação do


Algoritmo(Chave + Texto)

for (int x = 0; x < Chave.Length; x++)

ChaveVet[x] = Convert.ToChar(Chave[x]);

ChaveNum[x] = Convert.ToInt16(ChaveVet[x]);

Console.WriteLine("");

Console.WriteLine("Digite '1' Para Criptografar ou '2' Para Decriptografar ");

CripOuEncrip = Convert.ToChar(Console.ReadLine());

switch (CripOuEncrip)

case '1':

// Encriptação

do

EncripVet[Cont1] = Convert.ToChar(ChaveNum[Cont] + TextoNum[Cont1]);

Cont++;

Cont1++;

if (Cont == Chave.Length)

Cont = 0;

} while (Cont1 != Texto.Length);

Console.WriteLine("");
27
Console.WriteLine("Texto Criptografado");

Console.WriteLine("");

Console.WriteLine("");

for (int a = 0; a < Texto.Length; a++)

Encrip[a] = Convert.ToString(EncripVet[a]);

for (int a = 0; a < Texto.Length; a++)

Console.Write(Encrip[a]);

Console.WriteLine();

// Verificação de Senha Para Decriptar

Console.WriteLine("");

Console.WriteLine("Deseja Descriptografar ?");

Deseja = Console.ReadLine();

if (Deseja == "sim")

do

Cont5++;

if (Cont5 == 1)

Console.WriteLine("");

Console.WriteLine("Entre com a senha para decriptar");

28
Senha1 = Console.ReadLine();

else

Console.WriteLine("");

Console.WriteLine("Senha Incorreta");

Senha1 = Console.ReadLine();

} while (Senha1 != Senha);

// Decriptação

// Conversão do Texto criptografado em int Para Aplicação do Algoritimo (Chave +


Encrip)

for (int i = 0; i < Texto.Length; i++)

EncripNum[i] = (Convert.ToInt16(EncripVet[i]));

// Aplicação do algoritmo de Descriptografia

do

DecripVet[Cont3] = Convert.ToChar(EncripNum[Cont3] - ChaveNum[Cont2]);

Cont2++;

Cont3++;

if (Cont2 == Chave.Length)

Cont2 = 0;

}
29
} while (Cont3 != Texto.Length);

// Exibição do Texto descriptografado

Console.WriteLine("");

Console.WriteLine("Texto Descriptografado");

Console.WriteLine("");

Console.WriteLine("");

for (int a = 0; a < Texto.Length; a++)

Decrip1[a] = Convert.ToString(DecripVet[a]);

for (int a = 0; a < Texto.Length; a++)

Console.Write(Decrip1[a]);

break;

case '2':

// Aplicação do algoritmo de Descriptografia

do

DecripVet[Cont3] = Convert.ToChar(TextoNum[Cont3] - ChaveNum[Cont2]);

Cont2++;

Cont3++;

if (Cont2 == Chave.Length)

30
Cont2 = 0;

} while (Cont3 != Texto.Length);

// Exibição do Texto descriptografado

Console.WriteLine("");

Console.WriteLine("Texto Descriptografado");

Console.WriteLine("");

for (int a = 0; a < Texto.Length; a++)

Decrip1[a] = Convert.ToString(DecripVet[a]);

for (int a = 0; a < Texto.Length; a++)

Console.Write(Decrip1[a]);

break;

default:

Console.WriteLine("");

Console.WriteLine("Codigo Ivalido");

break;

Console.ReadKey();

31
}

8. Bibliografia

https://www.youtube.com/watch?v=cWld3rMD7Wk

https://www.youtube.com/watch?v=UJ6uSV1KREM

32
https://www.youtube.com/watch?v=k7xnMRC8VGk

http://michaelis.uol.com.br/

http://www.absoluta.org/cripty/cripty_basico.htm

https://pt.khanacademy.org/computing/computer-science/cryptography/ciphers/a/
ciphers-vs-codes

http://pcworld.com.br/reportagens/2007/10/05/idgnoticia.2007-10-04.0383475254/

9. Ficha de Atividades Práticas Supervisionadas

33
34
35
36
37
38

Você também pode gostar