Você está na página 1de 10

Criptografia

André Cavalcante1, Cléber Wagner1, Frederico Alencar1, Janduir Carneiro1, Talita Montesuma1

1
UNIPÊ – Centro Universitário de João Pessoa – Paraíba
BR 230 – Km, Água Fria – CEP 58053-000 – João Pessoa – Paraíba – Brasil

{andre.cavalcante,cleber_w4,fr.alencar89,janduirjrinfo,talitamontezuma}@hotmail.com

Abstract. Previously, the computers did not have many uses, except for government
intervention and military uses. With the advancement of computing, and especially the
web, you can perform communications through instant messaging, emailing, banking,
share files, and other services involving the most important link in the Information Age,
which is the own information. As the means of information transfer have evolved, it
became necessary to a thorough study of techniques and methods that were capable of
dealing with this information so that only the participants were able to access them,
making it possible to intercept, however impractical for an intruder. This article has as
objective to present the concepts, history, operation and some encryption algorithms and
how they can be implemented, also through some examples.

Resumo: Antigamente, os computadores não possuiam muitas utilidades, a não ser para o
goveno e para usos militares. Com o avanço da computação, e principalmente da web, é
possível realizar comunicações através de serviços de mensagens instantâneas, enviar e
receber emails, transações bancárias, compartilhar arquivos, e outros serviços que
envolvem o elo mais importante na Era da informação, que é a própria Informação. A
medida que os meios de transferência de informações evoluíram, tornou-se necessário um
estudo aprofundado de técnicas e métodos que fossem capazes de lidar com essas
informações, de modo que, somente os participantes conseguissem acessá-las, tornando a
interceptação possível, porém inviável para um intruso. O presente artigo tem com como
objetivo apresentar os conceitos, histórico, funcionamento e alguns algoritmos de
criptografia e de que forma pode ser implementado, através também de alguns exemplos.

1. Introdução

Criptografia (Do Grego kryptós, "escondido", e gráphein, "escrita") é o estudo dos


princípios e técnicas pelas quais a informação pode ser transformada da sua forma original
para outra ilegível, de forma que possa ser conhecida apenas por seu destinatário (detentor da
"chave secreta"), o que a torna difícil de ser lida por alguém não autorizado. Assim sendo, só
o receptor da mensagem pode ler a informação com facilidade. É um ramo da Matemática,
parte da Criptologia.[1]
Nos dias atuais, onde grande parte dos dados é digital, sendo representados por bits, o
processo de criptografia é basicamente feito por algoritmos que fazem o embaralhamento dos
bits desses dados a partir de uma determinada chave ou par de chaves, dependendo do sistema
criptográfico escolhido.

O emissor
CRIPTOGRAFI O receptor
codifica a
A decodifica
mensage
m. a
mensagem

Mensagem CRIPTOANÁLISE
Criptografada
(ILEGÍVEL)

Figura 1 – Descrição do processo de Criptografia

De fato, o estudo da criptografia cobre bem mais do que apenas cifragem e


decifragem. É um ramo especializado da teoria da informação com muitas contribuições de
outros campos da matemática e do conhecimento, incluindo autores como Maquiavel, Sun
Tzu e Karl von Clausewitz. A criptografia moderna é basicamente formada pelo estudo dos
algoritmos criptográficos que podem ser implementados em computadores.

O estudo das formas de esconder o significado de uma mensagem usando técnicas de


cifragem tem sido acompanhado pelo estudo das formas de conseguir ler a mensagem quando
não se é o destinatário; este campo de estudo é chamado criptoanálise.[2]

Criptologia é o campo que engloba a Criptografia e a Criptoanálise.

As pessoas envolvidas neste trabalho, e na criptografia em geral, são chamados criptógrafos,


criptólogos ou criptoanalistas, dependendo de suas funções específicas.

Termos relacionados à criptografia são Esteganografia, Esteganálise, Código,


Criptoanálise e Criptologia. Alguns autores cunharam o termo Criptovirologia para se referir
a vírus que contém e usam chaves públicas.[3]

A Esteganografia é o estudo das técnicas de ocultação de mensagens dentro de outras,


diferentemente da Criptografia, que a altera de forma a tornar seu significado original
ininteligível. A Esteganografia não é considerada parte da Criptologia, apesar de muitas vezes
ser estudada em contextos semelhantes e pelos mesmos pesquisadores. A Esteganálise é o
equivalente a criptoanálise com relação à Esteganografia.[4]

Uma informação não-cifrada que é enviada de uma pessoa (ou organização) para outra
é chamada de "texto claro" (plaintext). Cifragem é o processo de conversão de um texto claro
para um código cifrado e decifragem é o processo contrário, de recuperar o texto original a
partir de um texto cifrado.

Diffie e Hellman revolucionaram os sistemas de criptografia existentes até 1976, a


partir do desenvolvimento de um sistema de criptografia de chave pública que foi
aperfeiçoado por pesquisadores do MIT e deu origem ao algoritmo RSA.

2. Terminologia

O termo é comumente usado para se referir a área de estudo de forma abrangente,


como criptologia ("o estudo dos segredos").

Durante muito tempo, o termo referiu-se exclusivamente à cifragem, o processo de


converter uma informação comum (texto claro ou aberto) em algo não-inteligível; o qual
chama-se texto cifrado. A decifragem é a tarefa contrária, dado uma informação não-
inteligível convertê-la em texto claro ou aberto.

No uso coloquial, o termo "código" é usado para referir-se a qualquer método de


cifragem ou similar. Em criptografia, "código" tem um significado mais específico, refere-se a
substituição de uma unidade significativa (i.e., o significado de uma palavra ou frase) pelo
substituto equivalente. Códigos não são mais usados na criptografia moderna, visto que o uso
de cifras se tornou mais prático e seguro, como também melhor adaptado aos computadores.

3. História

Antigamente, a cifragem era utilizada na troca de mensagens, sobretudo em assuntos


ligados à guerra (no intuito de o inimigo não descobrir a estratégia do emissor da mensagem,
caso se apoderasse dela), ao amor (para que os segredos amorosos não fossem descobertos
pelos familiares) e à diplomacia (para que facções rivais não estragassem os planos de
acordos diplomáticos entre nações). O primeiro uso documentado da criptografia foi em torno
de 1900 a.c., no Egito, quando um escriba usou hieróglifos fora do padrão numa inscrição.

Entre 600 a.c. e 500 a.c., os hebreus utilizavam a cifra de substituição simples (de fácil
reversão e fazendo uso de cifragem dupla para obter o texto original), sendo monoalfabético e
monogrâmica (os caracteres são trocados um a um por outros), e com ela escreveram o Livro
de Jeremias.
O chamado "Codificador de Júlio César" ou "Cifra de César" que apresentava uma das
técnicas mais clássicas de criptografia, é um exemplo de substituição que, simplesmente,
substitui as letras do alfabeto avançando três casas. O autor da cifragem trocava cada letra por
outra situada a três posições à frente no alfabeto. Segundo o autor, esse algoritmo foi
responsável por enganar muitos inimigos do Império Romano; no entanto, após ter sido
descoberta a chave, como todas, perdeu sua funcionalidade.

Em 1586, destacam-se os estudos de Blaise de Vigenère que constituíram um método


muito interessante; é a cifra de Vigenère que utiliza a substituição de letras. Tal processo
consiste na seqüência de várias cifras (como as de César) com diferentes valores de
deslocamento alfanumérico. A partir desse período, Renascença, a criptologia começou a ser
seriamente estudada no Ocidente e, assim, diversas técnicas foram utilizadas e os antigos
códigos monoalfabéticos foram, aos poucos, sendo substituídos por polialfabéticos.

Dos anos 700 a 1200, são relatados incríveis estudos estatísticos, em que se destacam
expoentes como al-Khalil, al-Kindi, Ibn Dunainir e Ibn Adlan, que marcaram sua época. Na
Idade Média, a civilização árabe-islâmica contribuiu muito para os processos criptográficos,
sobretudo quanto à criptoanálise (análise da codificação, a procura de padrões que
identificassem mensagens camufladas por códigos).

Na Idade Moderna, merecem destaque o holandês Kerckoff e o alemão Kasiski.


Modernamente, em 1918, Arthur Scherbius desenvolveu uma máquina de criptografia
chamada Enigma, utilizada amplamente pela marinha de guerra alemã em 1926, como a
principal forma de comunicação.

Em 1928, o exército alemão construiu uma versão conhecida como "Enigma G", que
tinha como garantidor de segurança a troca periódica mensal de suas chaves. Essa máquina
tinha como diferencial ser elétrico-mecânica, funcionando com três (inicialmente) a oito
rotores. Aparentava ser uma máquina de escrever, mas quando o usuário pressionava uma
tecla, o rotor da esquerda avançava uma posição, provocando a rotação dos demais rotores à
direita, sendo que esse movimento dos rotores gerava diferentes combinações de encriptação.

Assim, a codificação da mensagem pelas máquinas "Enigma" era de muito difícil


decodificação, uma vez que, para isso, era necessário ter outra máquina dessas e saber qual a
chave (esquema) utilizada para realizar a codificação.

A Colossus surgiu do esforço de engenharia reversa das forças aliadas em decriptar as


mensagens da marinha e do exército alemão, só logrando efetivo êxito após se ter conseguido
uma máquina Enigma alemã (furtada). Tais equipamentos foram, inicialmente, desenvolvidos
como máquinas de decriptação, mas depois passaram a codificar mensagens das forças
aliadas.
Depois, surgiram outras máquinas fisicamente semelhantes à Enigma (pareciam com
antigas máquinas de escrever), porém foram aperfeiçoadas de forma a dificultar o mais
possível a decriptação por quem não as possuísse.

Devido aos esforços de guerra, a criptografia passou a ser largamente utilizada. Em


1948, Claude Elwood Shannon desenvolveu a Teoria Matemática da Comunicação, que
permitiu grandes desenvolvimentos nos padrões de criptografia e na criptoanálise.

Durante a chamada "Guerra Fria", entre Estados Unidos e União Soviética, foram
criados e utilizados diversos métodos a fim de esconder mensagens a respeito de estratégias e
operações, criptografadas com diferentes métodos e chaves.

Além dos avanços da criptografia, a criptoanálise se desenvolveu muito com os


esforços de se descobrir padrões e chaves, além da diversidade dos canais de propagação das
mensagens criptografadas. Desses esforços, surgiram diversos tipos de criptografia, tais como
por chave simétrica, por chave assimétrica, por hash e até a chamada criptografia quântica,
que se encontra, hoje, em desenvolvimento.

Atualmente, a criptografia é amplamente utilizada na WEB, em segurança a fim de


autenticar os usuários para lhes fornecer acesso, na proteção de transações financeiras e em
comunicação.

4. Cifras e Códigos

A cifra é um ou mais algoritmos que cifram e decifram um texto. A operação do


algoritmo costuma ter como parâmetro uma chave criptográfica. Tal parâmetro costuma ser
secreto (conhecido somente pelos comunicantes). A cifra pode ser conhecida, mas não a
chave; assim como se entende o mecanismo de uma fechadura comum, mas não se pode abrir
a porta sem uma chave real.

Na linguagem não-técnica, um Código secreto é o mesmo que uma cifra. Porém, na


linguagem especializada os dois conceitos são distintos. Um código funciona manipulando o
significado, normalmente pela substituição simples de palavras ou frases. Uma cifra, ao
contrário, trabalha na representação da mensagem (letras, grupos de letras ou, atualmente,
bits).

Por exemplo, um código seria substituir a frase "Atacar imediatamente" por "Mickey Mouse".
Uma cifra seria substituir essa frase por "sysvst ozrfosyszrmyr". No Dia D, por exemplo, as
praias de desembarque não eram conhecidas pelo seu nome próprio, mas pelos seus códigos
(Omaha, Juno, etc.).

Basicamente, códigos não envolvem chave criptográfica, apenas tabelas de


substituição ou mecanismos semelhantes. Códigos podem ser então encarados como cifras
cuja a chave é o próprio conhecimento do mecanismo de funcionamento da cifra.
4.1 Chave Criptográfica

Uma chave criptográfica é um valor secreto que modifica um algoritmo de


encriptação. A fechadura da porta da frente da sua casa tem uma série de pinos. Cada um
desses pinos possui múltiplas posições possíveis. Quando alguém põe a chave na fechadura,
cada um dos pinos é movido para uma posição específica. Se as posições ditadas pela chave
são as que a fechadura precisa para ser aberta, ela abre, caso contrário, não.

5. Visão Geral: Objetivos

A criptografia tem quatro objetivos principais:

1. confidencialidade da mensagem: só o destinatário autorizado deve ser capaz de extrair


o conteúdo da mensagem da sua forma cifrada. Além disso, a obtenção de informação
sobre o conteúdo da mensagem (como uma distribuição estatística de certos
caracteres) não deve ser possível, uma vez que, se o for, torna mais fácil a análise
criptográfica.
2. integridade da mensagem: o destinatário deverá ser capaz de determinar se a
mensagem foi alterada durante a transmissão.
3. autenticação do remetente: o destinatário deverá ser capaz de identificar o remetente e
verificar que foi mesmo ele quem enviou a mensagem.
4. não-repúdio ou irretratabilidade do emissor: não deverá ser possível ao emissor negar
a autoria da mensagem.

Nem todos os sistemas ou algoritmos criptográficos são utilizados para atingir todos os
objetivos listados acima. Normalmente, existem algoritmos específicos para cada uma destas
funções. Mesmo em sistemas criptográficos bem concebidos, bem implementados e usados
adequadamente, alguns dos objetivos acima não são práticos (ou mesmo desejáveis) em
algumas circunstâncias. Por exemplo, o remetente de uma mensagem pode querer permanecer
anônimo, ou o sistema pode destinar-se a um ambiente com recursos computacionais
limitados.

5.1 Criptografia Clássica

Podemos dizer que o uso da criptografia é tão antigo quanto a necessidade do homem
em esconder a informação. Muitos pesquisadores atribuem o uso mais antigo da criptografia
conhecido aos hieróglifos usados em monumentos do Antigo Egito (cerca de 4500 anos atrás).
Diversas técnicas de ocultar mensagens foram utilizadas pelos gregos e romanos.

A criptografia pré-computacional era formada por um conjunto de métodos de


substituição e transposição dos caracteres de uma mensagem que pudessem ser executados
manualmente (ou até mesmo mentalmente) pelo emissor e pelo destinatário da mensagem. O
surgimento de máquinas especializadas e, posteriormente, dos computadores ocasionou uma
significativa evolução das técnicas criptográficas.
5.2 Criptografia Moderna

A era da criptografia moderna começa realmente com Claude Shannon, possivelmente


o pai da criptografia matemática. Em 1949 ele publicou um artigo Communication Theory of
Secrecy Systems com Warren Weaver. Este artigo, junto com outros de seus trabalhos que
criaram a área de Teoria da Informação estabeleceu uma base teórica sólida para a
criptografia e para a criptoanálise. Depois disso, quase todo o trabalho realizado em
criptografia se tornou secreto, realizado em organizações governamentais especializadas
(como o NSA nos Estados Unidos). Apenas em meados de 1970 as coisas começaram a
mudar.

Em 1976 aconteceram dois grandes marcos da criptografia para o público. O primeiro


foi a publicação, pelo governo americano, do DES (Data Encryption Standard), um algoritmo
aberto de criptografia simétrica, selecionado pela NIST em um concurso onde foi escolhido
uma variante do algoritmo Lucifer, proposto pela IBM. O DES foi o primeiro algoritmo de
criptografia disponibilizado abertamente ao mercado.

O segundo foi a publicação do artigo New Directions in Cryptography por Whitfield


Diffie e Martin Hellman, que iniciou a pesquisa em sistemas de criptografia de chave pública.
Este algoritmo ficou conhecido como "algoritmo Diffie-Hellman para troca de chaves" e
levou ao imediato surgimento de pesquisas neste campo, que culminou com a criação do
algoritmo RSA, por Ronald Rivest, Adi Shamir e Leonard Adleman.

5.3 Criptografia Quântica

Desenvolvimento da técnica reunindo o conceito de criptografia e a teoria quântica é


mais antigo do que se imagina, sendo anterior à descoberta da criptografia de Chave Pública.
Stephen Wiesner escreveu um artigo por volta de 1970 com o título: "Conjugate Coding" que
permaneceu sem ser publicado até o ano de 1983. Em seu artigo, Wiesner explica como a
teoria quântica pode ser usada para unir duas mensagens em uma única transmissão quântica
na qual o receptor poderia decodificar cada uma das mensagens porém nunca as duas
simultaneamente, pela impossibilidade de violar uma lei da natureza (o princípio de incerteza
de Heisenberg).

Utilizando-se pares de fótons, a criptografia quântica permite que duas pessoas


escolham uma chave secreta sem jamais terem se visto, trocado alguma mensagem ou mesmo
algo material. A criptografia quântica oferece a possibilidade de gerar uma chave segura se o
sinal é um objeto quântico, assim, o termo mais correto seria Distribuição de Chave Quântica
(Quantum Key Distribution - QKD) e não Criptografia Quântica. É interessante notar que a
Criptologia atual está amparada na Matemática mas com a introdução desse conceito de
mensagens criptografadas por chaves quânticas a física passou a ter importância primordial no
tema. O maior problema para implementação da Criptografia quântica ainda é a taxa de erros
na transmissão dos fótons seja por via aérea ou fibra ótica. Os melhores resultados obtidos
atualmente se dão em cabos de fibra ótica de altíssima pureza, e conseqüentemente
elevadíssimo custo também, alcançando algo em torno de 70 km.

Por via aérea a distância chega a algumas centenas de metros e qualquer tentativa de
se aumentar essa distância tanto em um quanto em outro método a taxa de erros se torna
muito grande e inviabiliza o processo. O desenvolvimento de tecnologias que permitam o
perfeito alinhamento dos polarizadores, fibras óticas melhores e amplificadores quânticos de
sinais permitirá que o sistema de Distribuição de Chaves Quânticas venha a ser o novo padrão
de segurança de dados.

A Criptografia Quântica se destaca em relação aos outros métodos criptográficos pois


não necessita do segredo nem do contato prévio entre as partes, permite a detecção de intrusos
tentando interceptar o envio das chaves, e é incondicionalmente segura mesmo que o intruso
tenha poder computacional ilimitado. A única forma possível de falha no processo seria se
utilizar de um ardil onde a comunicação fosse interceptada e substituída, tanto para o emissor
quanto para o receptor, criando assim um canal de comunicação controlado pelo intruso. O
processo ainda apresenta um elevado custo de implantação, mas o desenvolvimento
tecnológico poderá torná-la acessível a todas as aplicações militares, comerciais e de fins civis
em geral.

7. Alguns algoritmos e sistemas criptográficos

Funções de Hash criptográfico, ou message digest'

• MD5
• SHA-1
• RIPEMD-160
• Tiger

Sistemas Free/Open Source

• PGP
• GPG
• SSH
• IPSec / Free S/WAN

7.1 Algoritmos assimétricos ou de chave pública

• Curvas elípticas
• Diffie-Hellman
• DSA de curvas elípticas
• El Gamal
• RSA
7.2 Algoritmos simétricos

• Máquina Enigma (Máquina alemã de rotores utilizada na 2a Guerra Mundial)


• DES - Data Encryption Standard (FIPS 46-3, 1976)
• RC4 (um dos algoritmos criados pelo Prof. Ron Rivest)
• RC5 (também por Prof. Ron Rivest)
• Blowfish (por Bruce Schneier)
• IDEA - International Data Encryption Algorithm (J Massey e X Lai)
• AES (também conhecido como RIJNDAEL) - Advanced Encryption Standard (FIPS
197, 2001)
• RC6 (Ron Rivest)

8. Exemplos

8.1 MD5

O MD5 (Message-Digest algorithm 5) é um algoritmo de hash de 128 bits


unidirecional desenvolvido pela RSA Data Security, e muito utilizado por softwares com
protocolo ponto-a-ponto, verificação de integridade e logins.
Por ser um algoritmo unidirecional, uma Hash md5 não pode ser transformada novamente
no texto que lhe deu origem.
O método de verificação é, então, feito pela comparação das duas hash (uma da
base de dados, e a outra da tentativa de login).
Como o MD5 faz apenas uma passagem sobre os dados, se dois prefixos com o mesmo
hash forem construídos, um sufixo comum pode ser adicionado a ambos para tornar uma
colisão mais provável. Deste modo é possível que duas strings diferentes produzam o
mesmo hash.

8.2 RSA

É um algoritmo de criptografia de dados assimétrico, considerado dos mais seguros,


já que mandou por terra todas as tentativas de quebrá-lo. E tambem é o primeiro algoritmo
a possibilitar criptografia e assinatura digital, e uma das grandes inovações em
criptografia de chave pública.

O RSA envolve um par de chaves, uma chave pública que pode ser conhecida por
todos e uma chave privada que deve ser mantida em sigilo. Toda mensagem cifrada
usando uma chave pública só pode ser decifrada usando a respectiva chave privada. A
criptografia RSA atua diretamente na internet, por exemplo, em mensagens de emails, em
compras on-line e o que você imaginar; tudo isso é codificado e recodificado pela
criptografia RSA.

A grande desvantagem do RSA é portanto a lentidão do processo que envolve


exponenciação modular.
Referências

1. ↑ Knudsen, Jonathan. Java Cryptography. Beijing: O´Reilly, 1998. 344 p. ISBN 1-


56592-402-9
2. ↑ Gaines, Hele Fouché. Cryptanalysis. New York: Dover Publications, 1956. 237 p.
3. ↑ Young, Adam L.; Yung, Moti. Malicious Cryptography: Exposing Cryptovirology.
Indianapolis: Addison-Wesley, 2004. 392 p. ISBN 0-7645-4975-8
4. ↑ Solomon, David. Coding for Data and Computer Communications. Northridge,
California: Springer, 2005. 548 p. ISBN 0-387-21245-0

Ligações externas

• Viktoria Tkotz, Criptografia - Segredos Embalados para Viagem. Novatec Editora.


ISBN 85-7522-071-3.

• Odemir Martinez Bruno, Criptografia Caótica – Instiruto Ciência Hoje. Estúdio CH.
http://cienciahoje.uol.com.br/podcasts/Criptografia%20caotica.mp3/view

9. Bibliografia

• Hook, David. Beginning Cryptography with Java. Indianapolis: Wrox, 2005. 448 p.
ISBN 0-7645-9633-0
• Schneier, Bruce. Applied Cryptography. New York: John Wiley and Sons, 1996. 758
p. ISBN 0-471-11709-9

Você também pode gostar