Escolar Documentos
Profissional Documentos
Cultura Documentos
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.
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
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.
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.
7
3. Criptografia
Desde então a criptografia e tem estado presente nos mais diversos tipos
de tecnologias, como veremos a seguirr.
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.
8
importante manter-se secreta, foi necessário o desenvolver algo que pudesse
realizar esse trabalho.
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.
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.
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.
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.
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.
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.
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.
AND (E)
OR (OU)
XOR (OU-Exclusivo)
14
Operação Lógica NOT (Não)
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:
16
restrições de acesso às informações que precisam ser passadas aos tripulantes
ou responsáveis pelo mesmo, no caso, o capitã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.
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.
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.
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
string dest;
distancia--;
Console.WriteLine(" AVISO");
22
Console.WriteLine("ÁREA RESTRITA, LOCAL COM RISCO DE CONTAMINAÇÃO
");
Console.WriteLine("");
int ContSenha = 3;
SenhaUsu = Console.ReadLine();
SenhaUsu = Console.ReadLine();
ContSenha--;
if (ContSenha == 0)
Console.WriteLine("Tentativas Excedidas!");
Console.ReadKey();
Environment.Exit(ContSenha);
char CripOuEncrip;
Console.WriteLine("");
23
Console.WriteLine("Senha Correta");
Console.WriteLine("Sistema Iniciado");
Console.WriteLine("");
int Cont4 = 0;
do
dest = Console.ReadLine();
Console.WriteLine("Destinatário inválido");
Console.ReadKey(true);
Console.WriteLine("");
dest = Console.ReadLine();
lower = dest.ToLower();
//Definir o destinatário.
24
switch (dest)
case "tripulação":
Console.WriteLine("");
break;
case "capitão":
Console.WriteLine("");
break;
Cont4++;
if (Cont4 == 1)
Texto = Console.ReadLine();
else
Texto = Console.ReadLine();
25
} while (Texto.Length > 128);
Console.WriteLine("");
Console.WriteLine("Insira a Chave");
Chave = Console.ReadLine();
//Vetores do Texto
//Vetores da Chave
//Vetores Encriptação
//Vetores Decriptação
//Contadores
TextoVet[i] = Convert.ToChar(Texto[i]);
TextoNum[i] = Convert.ToInt16(TextoVet[i]);
26
}
ChaveVet[x] = Convert.ToChar(Chave[x]);
ChaveNum[x] = Convert.ToInt16(ChaveVet[x]);
Console.WriteLine("");
CripOuEncrip = Convert.ToChar(Console.ReadLine());
switch (CripOuEncrip)
case '1':
// Encriptação
do
Cont++;
Cont1++;
if (Cont == Chave.Length)
Cont = 0;
Console.WriteLine("");
27
Console.WriteLine("Texto Criptografado");
Console.WriteLine("");
Console.WriteLine("");
Encrip[a] = Convert.ToString(EncripVet[a]);
Console.Write(Encrip[a]);
Console.WriteLine();
Console.WriteLine("");
Deseja = Console.ReadLine();
if (Deseja == "sim")
do
Cont5++;
if (Cont5 == 1)
Console.WriteLine("");
28
Senha1 = Console.ReadLine();
else
Console.WriteLine("");
Console.WriteLine("Senha Incorreta");
Senha1 = Console.ReadLine();
// Decriptação
EncripNum[i] = (Convert.ToInt16(EncripVet[i]));
do
Cont2++;
Cont3++;
if (Cont2 == Chave.Length)
Cont2 = 0;
}
29
} while (Cont3 != Texto.Length);
Console.WriteLine("");
Console.WriteLine("Texto Descriptografado");
Console.WriteLine("");
Console.WriteLine("");
Decrip1[a] = Convert.ToString(DecripVet[a]);
Console.Write(Decrip1[a]);
break;
case '2':
do
Cont2++;
Cont3++;
if (Cont2 == Chave.Length)
30
Cont2 = 0;
Console.WriteLine("");
Console.WriteLine("Texto Descriptografado");
Console.WriteLine("");
Decrip1[a] = Convert.ToString(DecripVet[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/
33
34
35
36
37
38