Professional Documents
Culture Documents
CRIPTOGRAFIA
SO BERNARDO DO CAMPO
2014
Introduo a criptografia
Neste trabalho vamos mostrar o que a criptografia, a utilidade da criptografia,
tcnicas criptogrficas, como funciona a criptografia entre outros assuntos relacionados
a criptografia.
Primeiramente para se entender a criptografia necessrio o conhecimento de
sistemas operacionais como Windows e Linux, o conhecimento em lgica matemtica,
conhecimento em algoritmos de programao e conhecimentos em lgica em geral
como portas lgicas e tabela verdade.
Criptografia
A criptografia utilizada no campo da segurana da informao, a criptografia o
estudo e tambm a aplicao de tcnicas para a comunicao e armazenamento de
dados em sistemas computacionais, ela tambm pode ser utilizada em outros sistemas
como sistemas de telecomunicaes em geral por exemplo.
A palavra criptografia composta por dois vocbulos gregos que so "Krypts", que
significa "oculto" e "Graphein", que significa "escrita", portanto a traduo para
criptografia seria "escrita oculta" ou "escrita secreta".
Basicamente a idia da criptografia surgiu da necessidade de entregar mensagens a
um destinatrio que fossem secretas, ou seja, que apenas o escritor da mensagem e o
destinatrio consigam ler o contedo sem que ningum mais possa ler o contedo
mesmo que algum em potencial possa roubar a mensagem ou conseguir informaes
sobre a mensagem, portanto a criptografia consegue ocultar uma mensagem
prevenindo assim a mensagem secreta de possveis invasores.
Termos Usados
- Texto plano ou Texto puro: So os dados no encriptados, ou seja, a informao
totalmente legvel, como este respectivo texto por exemplo, porem o texto plano no diz
respeito apenas a textos como cartas secretas, mais tambm todos os dados em geral
como valores numricos, temos por exemplo uma transao bancaria de um carto de
credito feita atravs da internet.
- Texto cifrado: o dado que foi encriptado, ou seja, uma informao que no
possvel se ler automaticamente, e no possvel ter acesso ao contedo mesmo que
se tenha o dado cifrado, no ter acesso diretamente ao contedo.
- Chave (Key):As chaves so dados utilizados para encriptar um texto plano, ou
descriptar um texto cifrado, as chaves sempre so usadas em conjunto com um
algoritmo de criptografia.
- Algoritmo de Criptografia: o mtodo matemtico empregado para encriptar ou
descriptar os dados com o uso de chaves de criptografia.
Princpios Bsicos
Nesse tipo de criptografia se tem duas chaves distintas (diferentes), com ela temos
uma comunicao segura atravs de canais de comunicaes inseguras, por possuir
chaves diferentes para criptografia e decriptografia trata-se de uma tcnica criptogrfica
Assimtrica j que temos duas chaves.
Em criptografia de chave publica cada participante na comunicao da mensagem ter
sua chave publica e privada, portanto tanto o emissor quanto o receptor da mensagem
ter sua chave publica e sua chave privada que assim como na criptografia de chave
simtrica tambm possui a chave privada porem agora tambm existe a chave publica.
A chave privada secreta e apenas o proprietrio tem conhecimento dela, j a chave
publica compartilhada com todos os participantes da comunicao.
Para entender melhor, veja esse exemplo: Paulo quer se comunicar com Maria de
forma segura sem que ningum possa ter conhecimento sobre a mensagem (a no ser
Maria claro). Ento Paulo encripta a mensagem com a chave publica da Maria, de
maneira que a mensagem s pode ser aberta usando-se a chave privada da Maria,
onde apenas ela tem conhecimento.
Ento veja que interessante, mesmo que outra pessoa intercepte a mensagem no meio
do caminho e tambm possua a chave publica da Maria, essa chave publica no
decripta a mensagem, ento a chave publica apenas encripta a mensagem e a chave
privada apenas decripta a mensagem, como se existe uma porta com duas
fechaduras com chaves distintas onde uma fechadura apenas tranca a porta e a outra
fechadura apenas destranca a porta, todos tem acesso chave para trancar a porta,
porem a chave que abre a porta apenas o proprietrio a possui.
imagem ISO que voc tem no seu computador realmente no veio com nenhum tipo de
alternao em nem um nico byte e que ela no fui alterada no meio do caminho ou
corrompida?
Para isso utilizamos as funes de Hash, geralmente nos sites das distribuidoras
existem os resumos das funes de Hash j computados e gravados nas paginas,
portanto ao baixar um arquivo voc aplica uma funo de Hash encima do arquivo que
voc baixou e isso ira gerar como resultado o mesmo resumo de Hash que esta
gravado no web site, ento voc compara os dois valores e se eles forem idnticos isso
significa que o arquivo exatamente o mesmo e no foi corrompido, funes de hash
tambm podem verificar a integridade de senhas.
Basicamente a funo de hash funciona como no diagrama acima, se tem o texto plano
que pode ser qualquer tipo de dados ou arquivo, no caso temos uma mensagem, ai
usado uma funo de hash em cima da mensagem que ento gera um valor de Hash
ou resumo, o resumo sempre tem um tamanho fixo, no nosso caso um valor
hexadecimal e esse valor sempre ter o mesmo tamanho portanto no importa se sua
mensagem um simples texto ou um arquivo de 4 gigabytes, o resumo tem sempre o
mesmo tamanho.
Posteriormente esse resumo utilizado para verificar a integridade da mensagem,
entao mandando esses dados para algum ele poder verificar se a mensagem foi
alterada ou no simplesmente aplicando a mesma funo de Hash sobre o dado e
verificando se o resumo gerado pela funo igual ao resumo que o prprio emissor
gerou.
Alguns exemplos de funes de Hash que so utilizados atualmente so: MD5,
SHA1, SHA2
Relatrio de cdigo
Objetivo
O objetivo central do cdigo era empregar o principio de criptografia de maneira verstil
e de fcil entendimento. Ento pensamos em um sistema de loguin.
Aonde o usurio cadastrava seu usurio, senha e empresa em questo, em seguida
inseria a mensagem a ser criptada. A mensagem ento era mostrada de forma ilegvel (
por causa do processo de encriptao) e depois mostrado a mensagem decifrada.
Por
Dentro
do
Cdigo:
Mtodo
Criptografar
ASCII para cada caractere. Com o intuito de que a mensagem no possa ser
facilmente lida, o segundo for, altera os valores do vetor chaveasc (adiciona 3 em
todos, poderia ser qualquer numero), em seguida o ultimo for faz, senha atribuda
como vazia e logo em seguida atribuda com o valor de chaveasc.
ao fim do cdigo, senha retornada, esta senha retornada, apos todo o processo, ao
ser mostrada, mostrar uma mensagem diferente da inserida, ja que foi alterada pelo
cdigo, no intuito se cifral.
Por
Dentro
do
Cdigo:
Mtodo
DecifrarSenha
todos, poderia ser qualquer numero, desde que fosse o oposto do mtodo
CriptografarSenha, la nos adicionamos 3, ento aqui retiramos 3 para ter o mesmo
valor de volta), em seguida o ultimo for faz, senha atribuda como vazia e logo em
seguida atribuda com o valor de chaveasc.
ao fim do cdigo, senha retornada, esta senha retornada, apos todo o processo, ao
ser mostrada, mostrar a senha correta, ja decifrada.
Por Dentro do Cdigo: Mtodo Decifrar
Mtodo Decifrar, tem como objetivo decifrar a mensagem cifrada pelo mtodo
Criptografar. Exatamente igual ao mtodo DecifrarSenha, exceto pelo fato de
que 3 variveis so atribudas, senha nome e empresa, recebem variveis
idnticas (o objetivo disso explicado mais a fundo no mtodo main, em
especifico no certificado digital).
3 FORs utilizados o primeiro para converter para inteiro, o segundo para mudar
o valor dos inteiros e decifrar, e o terceiro para converter novamente para
caractere.
ento cada ndice do nosso vetor carrega um dado diferente, sendo o primeiro o nome,
o segundo a senha o terceiro a confirmao da senha e o quarto a empresa. Logo em
seguida definimos a varivel nome, com o primeiro valor do vetor, caso este no
encontre-se vazio.A Senha e confirmao de senha so testadas caso sejam iguais, o
valor atribudo a senha. por fim a ultima a varivel empresa, que basta no estar
vazia que j e condio suficiente.
Em seguida um sistema simples de loguin, aonde o usurio deve inserir /login nome
senha, o que o usurio inserir, ser atribudo a varivel comando (tambm adicionado
a comando, um espao em branco ao final, para que a contagem e a diviso da
varivel com o comando split seja executada de maneira correta.)
verificado se a varivel no esta vazia, se nao estiver, um vetor criado, aparte do
split da varivel comando criamos um vetor com nome de comand.
aqui explicado ao usurio como mudar a senha e o nome, caso ele queira.
CRIPTOGRAFIA
SO BERNARDO DO CAMPO
2014