Criptografia

Criptografia () é uma área da criptologia que estuda e pratica princípios e técnicas para comunicação segura na presença de terceiros, chamados "adversários". Mas, geralmente, a criptografia refere-se à construção e análise de protocolos que impedem terceiros, ou o público, de lerem mensagens privadas. Muitos aspectos em segurança da informação, como confidencialidade, integridade de dados, autenticação e não-repúdio, são centrais à criptografia moderna. A criptografia moderna existe na interseção das disciplinas de matemática, ciência da computação, engenharia elétrica, ciência da comunicação e física. Aplicações de criptografia incluem comércio eletrônico, cartões de pagamento baseados em chip, moedas digitais, senhas de computadores e comunicações militares.

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. 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.

A criptografia tem sido de interesse para as agências de coleta de informações e de aplicação da lei, bem como para defensores de direitos civis. Há uma longa história de questões legais controversas, especialmente desde que o barateamento da computação possibilitou o acesso generalizado à criptografia de alta qualidade.

Terminologia 

O primeiro uso do termo criptógrafo (em oposição a criptograma) remonta ao século XIX - originou-se em O escaravelho de ouro, um romance de Edgar Allan Poe.

Até os tempos modernos, a criptografia se referia quase que exclusivamente à encriptação, que é o processo de converter informações comuns (chamadas de texto puro) em texto ininteligível (chamado de texto cifrado). A decriptação é o inverso, em outras palavras, passar o texto cifrado ininteligível de volta para texto puro. Uma cifra é um par de algoritmos que cria a criptografia e a descriptografia reversa. A operação detalhada de uma cifra é controlada tanto pelo algoritmo quanto em cada instância por uma "chave". A chave é um segredo (idealmente conhecido apenas pelos comunicantes), geralmente uma pequena sequência de caracteres, necessária para descriptografar o texto cifrado. Formalmente, um "sistema de criptografia" é a lista ordenada de elementos de possíveis textos simples finitos, possíveis textos de cifra finitos, chaves finitas possíveis e os algoritmos de criptografia e decriptografia que correspondem a cada chave. As chaves são importantes formalmente e na prática real, já que cifras sem chaves variáveis ​​podem ser trivialmente rompidas apenas com o conhecimento da cifra usada e, portanto, são inúteis (ou mesmo contraproducentes) para a maioria dos propósitos.

Historicamente, as cifras costumavam ser usadas diretamente para criptografia ou descriptografia sem procedimentos adicionais, como verificações de autenticação ou integridade. Existem dois tipos de cripto-sistemas: simétricos e assimétricos. Em sistemas simétricos, a mesma chave (a chave secreta) é usada para criptografar e descriptografar uma mensagem. A manipulação de dados em sistemas simétricos é mais rápida do que sistemas assimétricos, já que geralmente usam comprimentos de chaves mais curtos. Os sistemas assimétricos usam uma chave pública para criptografar uma mensagem e uma chave privada para descriptografá-la. O uso de sistemas assimétricos aumenta a segurança da comunicação. Exemplos de sistemas assimétricos incluem RSA (Rivest-Shamir-Adleman) e ECC (Criptografia de curva elíptica). Modelos simétricos incluem o comumente usado AES (Advanced Encryption Standard) que substituiu o antigo DES (Data Encryption Standard).

No uso coloquial, o termo "código" é freqüentemente usado para significar qualquer método de criptografia ou ocultação de significado. No entanto, na criptografia, código tem um significado mais específico. Significa a substituição de uma unidade de texto puro (ou seja, uma palavra ou frase significativa) por uma palavra-código (por exemplo, "canguru" substitui "ataque ao amanhecer").

Criptoanálise é o termo usado para o estudo de métodos para obter o significado de informação criptografada sem acesso à chave normalmente requerida para isso, ou seja, é o estudo de como quebrar algoritmos de criptografia ou suas implementações.

Alguns usam os termos criptografia e criptologia de maneira intercambiável em Português, enquanto outros (incluindo a prática militar dos EUA em geral) usam criptografia para se referir especificamente ao uso e prática de técnicas criptográficas e criptologia para se referir ao estudo combinado de criptografia e criptoanálise. O inglês é mais flexível do que vários outros idiomas nos quais a criptologia (feita por criptólogos) é sempre usada no segundo sentido acima.

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 a RFC 2828 informa que a esteganografia é às vezes incluída na criptologia. A Esteganonálise é o equivalente a criptoanálise com relação à Esteganografia.

O estudo das características das línguas que têm alguma aplicação em criptografia ou criptologia (por exemplo, dados de frequência, combinações de letras, padrões universais, etc.) é chamado de criptolinguística.

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.

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 sequê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, Alquindi, 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 Kerckhoff 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 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.

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.

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.

Durante muito tempo, o termo referiu-se exclusivamente à cifragem, o processo de converter uma informação comum (texto claro) 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. 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.

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. 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 redes de comunicação.

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 - que é o conceito, normalmente pela substituição simples de palavras ou frases. Uma cifra, ao contrário, trabalha com o significante - que é a forma, da 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 chave é o próprio conhecimento do mecanismo de funcionamento da cifra.

Chave Criptográfica 
Uma chave criptográfica é um valor secreto que interage com o 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.

Visão geral: objetivos 
A criptografia tem quatro objetivos principais:

 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;
 integridade da mensagem: o destinatário deverá ser capaz de verificar se a mensagem foi alterada durante a transmissão;
 autenticação do remetente: o destinatário deverá ser capaz de verificar que se o remetente é realmente quem diz ser;
 não-repúdio ou irretratabilidade do remetente: não deverá ser possível ao remetente negar a autoria de sua 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.

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.

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.

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.

Gestão de direitos digitais 

A criptografia é central no tema de gestão de direitos digitais (DRM), um grupo de técnicas para controlar e restringir tecnologicamente o uso de direitos autorais e suas marcas registradas. Em 1998 a lei estadunidense Digital Millennium Copyright Act (DMCA) criminaliza toda a produção e disseminação de certas técnicas (não conhecidas ou mais tarde conhecidas) da criptografia, especialmente aquelas que poderiam ser utilizadas para ultrapassar o DRM. Leis e códigos similares ao DRM foram desde essa altura aparecendo em vários países e regiões, incluindo a implementação Directive on the harmonisation of certain aspects of copyright and related rights in the information society na Europa.  Leis com restrições similares estão a ser propostos pelos Estados membros da Organização Mundial da Propriedade Intelectual.

Alguns algoritmos e sistemas criptográficos

Funções de Hash criptográfico, message digest ou alfanumérico 
 MD5
 SHA-256
 SHA-1
 RIPEMD-160
 Tiger
 HEX TO TEXT

Sistemas Free/Open Source 
 PGP
 GPG
 SSL/TLS
 IPSec / Free S/WAN

Algoritmos assimétricos ou de chave pública 
 Curvas elípticas
 Diffie-Hellman
 DSA de curvas elípticas
 El Gamal
 RSA

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)

Ver também 

 Criptoanálise
 Assinatura Digital
 Criptografia Assimétrica
 Criptografia negável
 Criptografia Simétrica
 DNSSEC
 Hash (Resumo Criptográfico)
 ICP
 Problemas em aberto da ciência da computação

Bibliografia 
 
 
PELLEGRINI, Jerônimo C. Introdução à Criptografia e seus Fundamentos : notas de aula : versão 90.
QUARESMA, Pedro; LOPES, Elsa. Criptografia.
 
SINGH, Simon. O Livro dos Códigos. Lisboa : Temas e Debates, 2001. .

Ligações externas 

 Mais sobre Criptografia
 Criptografia com números irracionais
 The world's first electronic Enigma machine
 BerkaEnigma - Criptografia Simétrica Aplicada