You are on page 1of 18

UNIVERSIDADE PAULISTA

CURSO DE CINCIA DA COMPUTAO

BRUNO ARAUJO C105449


EDUARDO PRADO C10CFD3
FELIPE DE MACEDO DOS REIS C388319
JORGE NOGUEIRA DE SOUSA JUNIOR C20HBC2
NOME DO ALUNO - MATRCULA

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

Encriptao a converso de dados legveis (texto plano) para um formato ilegvel


(texto cifrado) por pessoas autorizadas, usando um algoritmo criptografico e uma
chave(key), essa chave no fsica ela pode ser por exemplo, um conjunto de bytes,
uma frase, ou uma senha.
O objetivo da criptografia proteger a privacidade ao armazenarmos dados ou
trocarmos informaes com outras pessoas de forma que, somente voc e essas
outras pessoas tero acesso ao contedo das mensagens, portanto o receptor da
mensagem encriptada pode desencripta-la e ler o seu contedo, no formato original,
assim outra pessoa que conseguir interceptar a mensagem no meio do caminho no
ter acesso ao contedo da mensagem essa a idia que se utilizar da criptografia.
Desencriptao o processo inverso da encriptao, ou seja, e a transformao de
dados encriptados e portanto ilegveis, em dados legveis, usando uma chave e um
algoritmo criptogrfico, um algoritmo criptogrfico tambm conhecido pelo termo
"cifra".
Criptoanlise
sado e os criptoanalistas chegaram a concluso de que ela no funciona corretamente
e no protege corretamente quem a utiliza, pois era possvel algum quebrar o
algoritmo criptogrfico e entrar em seu sistema tento acesso a suas senhas e
informaes pessoais, a criptografia WEB j foi quebrada diversas vezes, ha anos atrs
havia paginas na web desencorajando a utilizao da criptografia WEB porque era
fraco.A criptoanlise um processo de transformao de dados cifrados (encriptados)
em dados que so legveis (decrepitados) sem que se conhea a chave de encriptao,
em outras palavras, transformar os dados cifrados em dados legveis sem nenhuma
chave de encriptao.
Portanto, isso se trata de "quebrar" a encriptao dos dados para obter acesso ao
contedo das mensagens, porm com o intuito de descobrir falhas nos algoritmos para
torn-los mais seguros, para valid-los ou at mesmo descart-los, portanto fazer a
criptoanlise essencial pois conseguir recuperar as mensagem encriptadas sem o
uso da chave criptografica com facilidade significa que o algoritmo ruim e no presta,
muitos cientistas da computao trabalham com criptoanalise e assim verificando,
avaliando e testando algoritmos de criptografia.
claro tambm que existem pessoas que fazem criptoanlise com outro intuito como a
de realmente capturar uma mensagem encripitada para poder decripta-l e ter acesso
ao seu contedo, assim roubando informaes confidenciais que no lhes devida.
Um exemplo de algoritmo que foi descartado a criptografia WEP, a criptografia WEP
utilizada, ou melhor, era utilizada para criptografar redes sem fio (Wireless ou Wifi)
porem ela foi amplamente testada no passado.

Requerimentos de Segurana em Comunicaes

- Autenticao: A Autenticao assegura que a mensagem foi realmente originada pelo


remetente, e no por outra pessoa.
- Integridade: Integridade que diz respeito ao contedo das informaes trocadas entre
transmissor e receptor, pois quando se troca informaes necessrio garantir que a
mesma mensagem que foi enviada chegue sem alterao em seu destino, portanto a
mensagem no pode ser alterada de nenhuma forma durante o caminho.
- Confidencialidade: Significa que a informao no est disponvel para pessoas e
processos que no tenham autorizao para acess-la e utiliz-la, ou seja, apenas
pessoas autorizadas podero ter acesso a informao.
- No Repdio: Deve-se evitar que uma mensagem aps ter sido enviada, que ela seja
repudiada pelo transmissor e ele no poder negar que a transmitiu, podemos usar
assinaturas digitais para evitar o repudio das mensagens.
Os Tipos de Criptografia
Existem trs tipos de tcnicas para criptografia:
- A criptografia de chave privada ou criptografia de chave simtrica
- A criptografia de chave pblica ou criptografia de chave assimtrica
- A criptografia com funes de Hash
A Chave
A chave um dos elementos mais importantes nas tcnicas de criptografia pois ela
permite juntamente ao algoritmo de criptografia realizar a encriptao dos dados, essa
chave pode ser por exemplo um cdigo ou uma seqncia numrica como talvez uma
string (um texto) e entre isso outras coisas.
A Criptografia de Chave Privada
Na criptografia de chave privada utilizada apenas uma nica chave, essa chave
utilizada pelo emisor da mensagem para encriptar a mesma, apos transmiti-la, o
receptor utilizara da mesma chave para decriptar essa mensagem.
Esse tipo de criptografia tambm conhecida por criptografia de chave compartilhada
ou em ingls "shared key"j que se trata da mesma chave para encriptar e decriptar a
mensagem, essa tcnica de uso da mesma chave para encriptao e decriptao
denominada criptografia simtrica.

Observando o esquema acima possvel entender como funciona, o remetente tem


uma mensagem a ser envia para um destinatrio, quando o remetente for enviar ele
aplica um algoritmo de criptografia e uma chave privada sobre essa mensagem, com
isso gerada a mensagem cifrada ou o que chamamos de texto encriptado, esse texto
encriptado ento enviado por um meio de comunicao inseguro, por exemplo a
internet.
Quando o destinatrio recebe essa mensagem, ele aplica o algoritmo de criptografia, e
para desencripta-la, ele utilizar da mesma chave que foi usada para encriptar a
mensagem, s que desta vez ser para desencriptar a mensagem, e assim, o
destinatrio vai ter a mesma mensagem que o remetente a mandou, s que em texto
plano e assim conseguira ter acesso ao seu contedo
Se algum interceptar a mensagem no meio do caminho, essa pessoa s ter o texto
encriptado, seje mesmo um texto ou uma mensagem ou qualquer outro arquivo, o texto
no far sentido algum, e sem o conhecimento da chave privada que apenas o
remetente e o destinatrio conhecem, ento praticamente impossvel ter acesso ao
contedo da mensagem
Alguns exemplos de algoritmos que usam a tcnica de criptografia simtrica so:
DES, DES3, Blowfish, AES, OTP (One-Time-Pad)
A Criptografia de Chave Pblica

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.

No diagrama a cima possvel visualizar o funcionamento da tcnica, assim como na


tcnica de criptografia simtrica se tem um remetente e o destinatrio, a mensagem por
sua vez encriptada usando a chave publica do destinatrio, a mensagem ento
enviada por um meio de comunicao inseguro e o destinatrio decripta a sua
mensagem usando a sua prpria chave privada, e algum interceptar a mensagem
necessrio a chave privada do destinatrio onde apenas o destinatrio tem
conhecimento dela. o termo criptografia assimtrica devido as chaves de criptografia
diferentes assim como mostra o diagrama
Alguns exemplos de algoritmos que utilizam a tcnica de criptografia assimtrica
so: DSA, RSA e GPG.
A tecnica de HASH
Essa tcnica de proteo de dados no utiliza de uma chave como visto nas tecnicas
anteriores, na verdade ela utiliza um valor de Hash de tamanho fixo, esse valor
computado junto ao texto plano
Essa tcnica consiste em utilizar um calculo matemtico sobre a mensagem para
criptografa La, um valor de hash seria o mesmo que um valor matemtico que apos ser
utilizado com o texto plano gera outro valor de hash esse que por sua vez chamamos
de "resumo"
A necessidade de utilizao desta tcnica criptogrfica para verificar a integridade
dos dados, ou seja, verificar que eles no tenham sido alterados no meio do caminho,
por exemplo, ao entrar no site de uma distribuidora e fazer o download de algo como
uma imagem ISO de um sistema operacional, como possvel garantir que aquela

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

O mtodo Criptografar, tem como fundamento Criptografar a mensagem inserida pelo


usurio, um mtodo que utiliza 3 variveis em formato string (nome, senha, empresa)
funciona da seguinte forma:
duas variveis int so criadas, tam e cont, que sero usadas nas estruturas de
repetio.
tam tem seu valor definido como mensagem.lenght, recebendo o valor do tamanho da
mensagem ( em caracteres) assim, podemos criar uma estrutura que altere 1 a um com
o mtodo de criptografia adotado. ento, criado um vetor, com o tamanho de tam
chamado asc. O primeiro for vai de cont at tam, define os valores do vetor asc, com a

converso dos caracteres da mensagem, para inteiros de 16 bits, assim


correspondendo a tabela ASCII.
O Segundo For, o que faz o papel da criptografia, pois ele vai somar 3 em todos os
valores de ASCII ( que acabaram de ser convertidos no for anterior.) Assim, apos esse
For a mensagem no corresponder a tabela ASCII. a varivel mensagem zerada.
N terceiro For, o processo inverso feito, os nmeros inteiros so passados para
CHAR com o cdigo Convert.ToChar, e atribudos agora a mensagem, que logo em
seguida retornada.
Apos isso a mensagem, ao ser exibida, resultada em caracteres aleatrios, s poder
ser exibida de maneira correta quando for Decifrada.

Por Dentro do Cdigo: Mtodo CriptografarSenha

O Mtodo CriptografarSenha, ele um mtodo que precisa de 2 variveis no formato


string ( ou seja, nome, empresa). So declaradas 2 variveis de valor inteiro tam2 e
cont, cont no recebe valor pois ser declaro posteriormente dentro das estruturas de
repetio For.
tam2 recebe o valor de senha.lenght ( este cdigo, pega a varivel senha, e informa
quantos dgitos ela tem). E ento criado um vetor chamado de chaveasc que recebe o
valor de tam2 ( ou seja, o vetor sempre ter o tamanho de caracteres da senha.)
Como vemos na primeira estrutura de repetio, os valores do vetor criado, sero
atribudos com a converso para inteiro, dos valores de senha[cont]. quando isso
ocorre, os valores assumem valores inteiros de acordo com a tabela ASCII, se a
mensagem for mostrada agora, retornara os valores inteiros correspondentes da tabela

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

O Mtodo DecifrarSenha, Como o nome sugere, faz o processo inverso do mtodo


CriptografarSenha, ele um mtodo que precisa de 5 variveis no formato string ( ou
seja, nome, senha, empresa, mensagem e mensagem2). So declaradas 2 variveis
de valor inteiro tam2 e cont, cont nao recebe valor pois ser declaro posteriormente
dentro das estruturas de repetio For.
tam2 recebe o valor de senha.lenght ( este cdigo, pega a varivel senha, e informa
quantos dgitos ela tem). E ento criado um vetor chamado de chaveasc que recebe o
valor de tam2 ( ou seja, o vetor sempre ter o tamanho de caracteres da senha.)
Como vemos na primeira estrutura de repetio, os valores do vetor criado, sero
atribudos com a converso para inteiro, dos valores de senha[cont]. quando isso
ocorre, os valores assumem valores inteiros de acordo com a tabela ASCII, se a
mensagem for mostrada agora, retornara os valores inteiros correspondentes da tabela
ASCII para cada caractere. Com o intuito de que a mensagem seja convertida aos
valores normais, o segundo for, altera os valores do vetor chaveasc (subtrai -3 em

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.

Por Dentro do Cdigo: Mtodo Main

Por fim, chegamos ao mtodo main, no mtodo main declaramos as variveis


(comando, mensagem, mensagem2, nome, senha, senha2, empresa, cadastro, login,
cert)como globais e de valor nulo para que funcionem nas funes tambm, a Varivel
lgica Sair declarada como falsa, e criado um While (!sair) que controlara a
execuo do cdigo,
A varivel cadastro e definida pelo usurio, e depois definimos um vetor utilizando o
comando split (tudo isso s ser feito caso a varivel cadastro no esteja sem valor)

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.

Verificamos se o indicie 0 do vetor esta com /login, se o indicie 1 e o indicie 2,


correspondem consecutivamente a nome e senha, Caso sim, uma mensagem de boas
vindas e mostrada e o cdigo prossegue, no casso contrario uma mensagem a
respeito da sintaxe do login e mostrada. Por fim deste trecho a varivel comando
recebe o valor da mensagem, e tambm um espao em branco ( para uso no split) a
varivel mensagem limpa.

aqui explicado ao usurio como mudar a senha e o nome, caso ele queira.

por fim, as mensagens e senhas so criptografadas, com os mtodos j utilizados, note


que utilizado mensagem2 e senha2, para apos todo o processo, elas serem
comparadas, e se conferirem, o certificado digital mostrado.
Concluso
A criptografia no e algo necessariamente exclusivo de filmes de guerra onde s e
mostrado o quo valiosa so informaes obtidos.
Atualmente pelo boom de informaes gerado pelo desenvolvimento da internet junto a
alta demanda de dados valiosos da rede se desenvolveu a rea de segurana de
informao em todo globo para desenvolvimento de novos mtodos para criptografia de
dados.
O que foi desenvolvido sobre criptografia vem de dois princpios bsicos encriptao
tornar um texto plano em texto cifrado ou chaves, sendo desenvolvidas de acordo com
que o programador quiser tendo como requerimentos de segurana para comunicao
a autenticao,integridade, confidenciabilidade,no repudio ou seja a mensagem deve
chegar a pessoa destinada sem perder nenhuma parte do que lhe foi enviado junto a
no acesso de terceiros a mensagem e a no seja repudiada pelo transmissor.
Pelo oque temos hoje pessoas com menos conhecimento na rea talvez dir que e
desnecessrio tal coisa tal complexa para proteo mais nossa atual sociedade se
encontra com tal coisa bem enraizada no nosso modo de viver por exemplo ao usar
carto de credito,transferncia bancrios,conversas online por redes sociais as
informaes movimentadas esto guardadas em algum super servidor protegido por
criptografia do nvel mais alto possvel para que a informao no va parar em mos
erradas como pases e mega corporaes quem buscam a vantagem de mercado com
informaes que nos colocamos na rede para beneficio de si mesmo.Temos muitos
exemplos de obteno de dados e informaes por meios ilegais hoje em dia como o
do governo americano com sua agencia nacional de segurana onde pegavam
informaes de civis e tanto mega empresas para ter a tao falada vantagem de
mercado contra qualquer outro pais que trabalhe de forma certa.
A segurana de internet nunca ser 100% segura sempre teremos falhas,problemas e
pessoas ou rgos tentando se aproveitar se de qualquer falha mnima para buscar o
lucro sem pensar no civil que usa rede de modo inocente,tendo a segurana de

informao se desenvolver a todo momento para acompanhar o que h de novo no


mercado para incrementar e desenvolver novos meios de proteger os dados to
preciosos para crackers,governos etc.

BRUNO ARAUJO C105449


EDUARDO PRADO C10CFD3
FELIPE DE MACEDO DOS REIS C388319
JORGE NOGUEIRA DE SOUSA JUNIOR C20HBC2
NOME DO ALUNO - MATRCULA

CRIPTOGRAFIA

Projeto Integrado apresentado ao curso de


Cincia da Computao, da Universidade
Paulista - UNIP, como requisito parcial
aprovao nos mdulos que compem o 1 e
2 perodo do curso.

SO BERNARDO DO CAMPO
2014

You might also like