Laboratórios
O Cifrário SHJ
Seg 10 Abr 2006 20:37 |
- Detalhes
- Categoria: Laboratório de Criptografia
- Atualização: Terça, 16 Fevereiro 2010 18:37
- Autor: Yugi
- Acessos: 12708
A procura do criptógrafo por um sistema perfeito é sem dúvida uma das empreitadas mais difíceis que podemos imaginar. No começo a seguinte pergunta já nos atormenta: Será que existe realmente um criptossistema perfeito ou apenas não temos poder computacional suficiente para poder enfrentá-lo? Infelizmente não posso responder aos leitores deste artigo.
Introdução
Alguns criptoanalistas dizem que não há lógica alguma que o ser humano possa criar, que ele mesmo, com a aplicação e competência necessária, não possa elucidar. Esta pode ser uma verdade, contudo ainda não foi provada ou refutada.
Isto nos leva a refletir sobre o futuro da criptografia e da criptoanálise (na realidade falamos do futuro da Criptologia). Os sistemas especialistas que se baseiam nos conhecimentos da Inteligência Artificial e utilizam técnicas de busca de soluções - em profundidade (depth-first), em nível (breadth-first), através de técnicas heurísticas (Hill-climbing, least-cost) – com o objetivo de resolver o problema da explosão combinatória podem realmente criar "problemas" para os criptógrafos da nova geração. E a computação quântica que promete tornar os supercomputadores atuais em peças de um museu pré-histórico!
Vemos que hoje a criptoanálise evoluiu e geralmente as técnicas que são normalmente divulgadas (criptoanálise diferencial, linear, integral, etc...) representam apenas uma mínima parte do que realmente se conhece. É que a criptoanálise é a parte mais secreta da criptologia. Imagine que descobrimos uma técnica criptoanalítica eficiente contra o AES. É preferível, neste caso, fazer com que todos pensem que o AES é extremamente seguro e que não existe a mínima possibilidade de quebrá-lo, a não ser por força bruta. E realmente, ao contrário do que pensam os leigos, a quebra de criptossistemas importantes não é divulgada. Basta girar a roda da história pra trás e veremos que a máquina nazista Enigma (que já fora criptoanalisada com sucesso pelo matemático polonês Marian Rejewski, antes da Segunda Guerra Mundial) foi utilizada por vários países, principalmente as ex-colônias da Grã-Bretanha após o término da Guerra (os britânicos tinham capturado milhares de máquinas Enigma e as distribuíra para as ex-colônias que acreditavam que a cifra era inviolável!). Naturalmente, os britânicos decifraram rotineiramente as comunicações secretas destas ex-colônias durante anos. Somente em 1974 é que os britânicos revelaram que a Enigma havia sido decifrada (graças à insistência do capitão F. W. Winterbotham).
Exemplos como este podem nos assombrar. Será que o AES já foi quebrado e temos uma idéia ilusória de segurança? E a cifra RSA? Será que o problema da fatoração já pode ser solucionado? Quem nos responderá estas questões? Meu objetivo é fazer com que o leitor destas breves linhas possa pensar um pouco sobre isto.
Enquanto não chega a criptografia perfeita eu vos apresento mais um simples trabalho: O Criptossistema SHJ. Espero que gostem.
CRIPTOSSISTEMA SHJ
O cifrário SHJ é muito simples: todavia ele pode proteger informações em nível de segurança satisfatório. O criptossistema SHJ não é indicado para proteger informações extremamente sigilosas (militares ou governamentais), mas pode ser usado onde o AES é também utilizado.
Vamos ao descritivo do criptossistema SHJ.
1.0 Sobre as chaves do sistema
O cifrário SHJ trabalha com uma chave de 256 bits e cifra o texto claro em blocos de 64 bits. O algoritmo utiliza, numa estrutura de 20 voltas, 4 caixas de substituição não-lineares com entradas e saídas de 8 bits.
As operações utilizadas para cifrar os dados são simples: XOR, adição em módulo 216 e rotação dependente de dados (rotação para a esquerda).
1.1 Sobre a divisão dos dados
O bloco claro é dividido em 4 words de 16 bits, normalmente rotuladas de A, B, C e D. As words interagem com a chave e entre si em cada uma das voltas do processo de cifragem.
O bloco cifrado é formado pela concatenação das words após a 20 volta de processamento do sistema.
A chave inicial de 256 bits gera 84 sub-chaves de 16 bits que são utilizadas nas 20 voltas do processamento.
- Anterior
- Próximo >>