You are on page 1of 3

Cripto-algoritmos simétricos

Cripto-algoritmos simétricos utilizam a mesma chave para codificação e


decodificação, daí o termo simétrico. O algoritmo simétrico mais conhecido e utilizado é o
Data Encryption Algorithm (DEA). Esse algoritmo foi desenvolvido pela IBM em
cooperação com a NBS (US National Bureau of Standards) e foi publicado em 1977 como
uma norma (FIPS Pub 46). Freqüentemente refere-se a norma descrevendo o DEA como
DES (Data Encryption Standard). É claro, uma vez que este algoritmo foi projetado de
acordo com o princípio de Kerckhoff, ele pode ser publicado sem danos à segurança. De
certa forma, entretanto, nem todo critério de desenvolvimento foi revelado, os quais
repetidamente levam a teorias a respeito da possibilidade de ataques e armadilhas presentes
no sistema. De qualquer forma, qualquer iniciativa de quebrar esse algoritmo até o
momento não logrou êxito.
O Projeto do DEA contém dois princípios importantes no campo da codificação,
confusão e difusão, como descrito por C. Shannon. O princípio da confusão atesta que a
estatística do CipherText deve estar relacionada com a estatística do PlainText de uma
forma tão complexa que um atacante não pode obter qualquer benefício disso. O segundo
princípio, difusão, atesta que cada bit do PlainText e da chave deve afetar a maior
quantidade possível dos bits do CipherText.
DEA é um cripto-algoritmo simétrico que trabalha com blocos de tamanho fixo. Ele
não leva a nenhuma expansão do CipherText significando que os blocos PlainText,
CipherText e chave são de mesmo comprimento, ou seja, 64 bits (8 bytes).
A chave possui 8 bits de paridade que reduz o espaço de combinações possíveis.
Considerando os 64 bits da chave da esquerda (msb) para a direita (lsb), os bits 8, 16, 24, ...,
64 representam bits de paridade. Devido aos bits de paridade o cipherspace para o DEA é
de 256. Isso dá 256~7,2x1016 possibilidades para a chave. A primeira vista, esse cipherspace
com 7,2x1016 possibilidades para a escolha da chave, pode parecer muito grande mas, de
fato, esse é o ponto fraco do DEA1. Em vista do contínuo e crescente avanço na potência
computacional dos modernos computadores um cipherspace dessa magnitude é
considerado como um limite mínimo aceitável para a segurança de um cripto-algoritmo.
Com um cipherspace de pequena dimensão, conhecendo-se um par PlainText/CipherText,
todas as possibilidades podem ser tentadas através de um processo de tentativa e erro até a
chave secreta ser encontrada.

Fig. 7 – Funcionamento de um algoritmo DES na fase de codificação.

1
Para aumentar a compreensão com números grandes considere a seguinte comparação. A massa da Terra é
cerca de 5,974x1027 gramas. Usando essa aproximação grosseira, o número de elétrons, prótons e nêutrons
que compõem a Terra estariam em torno de 1052. Se somente uma partícula elementar é necessária para
armazenar um bit, a massa total da Terra seria capaz de armazenar 1052 bits.
Se um par PlainText/CipherText é obtido por grampo (tapping) na comunicação entre
o terminal e o SC, o seguinte ataque força bruta pode ser engendrado. O PlainText é
codificado com todas as possíveis senhas. Comparando o resultado com o CipherText já
conhecido é possível determinar se a chave correta foi encontrada. Esse procedimento é
particularmente adequado para processamento paralelo. Cada computador individual se
preocupa com uma pequena parte do cipherspace. O seguinte exemplo dá uma idéia do
tempo necessário para que um tal ataque força bruta venha a lograr êxito. Os módulos
DEA2 necessitam de cerca de 64 ns para a codificação completa de um bloco. Se 10.000
módulos de computação são conectados em paralelo, eles podem, cada um,
independentemente, vasculhar uma pequena parte do cipherspace. Considerando que na
média somente metade do cipherspace será vasculhada para encontrar a senha correta, o
seguinte cálculo pode ser feito: (½)x256x64/10.000 ~ 64 horas.
Está além do escopo desse texto descrever a implementação do DEA em detalhes. O
leitor pode referenciar a FIPS Publication 46 ou o livro de C. H. Meyer e S. M. Matyas:
Cryptography (Wiley, New York, 1982). Entretanto um ponto é de grande significado. O
algoritmo DEA foi projetado para ser facilmente implementado em circuitos de hardware.
Infelizmente, não há módulos DEA ainda em microprocessadores SC. Então ele deve ser
realizado em software. Como resultado, seu tamanho mesmo em versões altamente
otimizadas é cerca de 1 kbyte de código Assembler. Como conseqüência inevitável a
velocidade de computação é bastante baixa.
A Figura 4.8 mostra os tempos típicos para codificação e decodificação comparando
módulo de hardware e PC. Os tempos podem variar com a implementação e consideram
apenas o tempo de computação pura para um algoritmo DEA para codificação e
decodificação de um bloco de 8 bytes. Todos os registradores estão pré-carregados.

Realização Tempo/bloco de 8 bytes (ms)


Smart Card com 3,5 MHz 17,0
Smart Card com 4,9 MHz 12,0
PC (80486, 33 MHz) 0,030
PC (Pentium, 90 MHz) 0,016
Circuito de hardware DEA 0,000064

Figura 4.8 – Comparação entre os tempos típicos de codificação e decodificação para um


cripto-algoritmo simétrico DEA (Data Encryption Algorithm).

A seleção de uma chave para o algoritmo DEA pode ser feita com a ajuda de um
gerador de números aleatórios. Ele produz um número aleatório de 8 bytes que atua como
uma chave, a qual somente requer um cálculo adicional de paridade.
Há muitos outros cripto-algoritmos simétricos além do DEA. O único que iremos
mencionar aqui é conhecido como IDEA (International Data Encryption Algorithm),
desenvolvido por Xuejia Lai e James L. Massey. Desde a sua publicação em 1990 como
PES (Proposed Eencryption Standard) ele foi melhorado, em 1992, e naquele tempo era
conhecido provisoriamente como IPES (Improved Proposed Encryption Standard).
Entretanto, nos dias atuais é geralmente conhecido como IDEA. O critério completo de

2
Uma gate array feita por DEC usando tecnologia gallium arsenide para modos ECB e CBC.
desenvolvimento e a estrutura interna desse algoritmo já foram publicados. Ele obedece o
princípio de Kerckhoff.
Da mesma forma que o DEA, o IDEA é também um cripto-algoritmo bloco
orientado e utiliza blocos de 8 bytes para PlainText/CipherText. Contrastando com o DEA,
o IDEA tem uma chave de 16 bytes, o que possibilita um cipherspace de considerável
dimensão (2128~3,4x1038). Devido a sua construção, ele é compatível com o DEA em todos
os aspectos a menos do comprimento da chave. Ele também é totalmente compatível com
sistemas triplo-DEA, que também usam chaves de 16 bytes, de tal forma que um mudança
de algoritmo não afeta o comprimento da chave ou os dados de entrada/saída.
Naturalmente, compatibilidade nesse contexto não significa que um dado codificado com
DEA pode ser decodificado por IDEA. IDEA é geralmente considerado um cripto-
algoritmo muito bom e seu uso é bastante difundido no campo da segurança de dados3.
Sobre a segurança do algoritmo, ao longo prazo, é difícil prever pois o algoritmo está há
pouco tempo sob domínio público.

Exercícios

1) Defina bit de paridade, msb e lsb.


2) O que é PlainText e CipherText?
3) O que é um Data Encryption Algorithm?
4) Defina tapping.
5) Enuncie o princípio confusão e difusão.
6) Qual o algorítmo simétrico mais conhecido além do DEA? No que esse algoritmo difere
do DEA? São compatíveis?
7) Comente os tempos típicos gastos para codificação e decodificação, para um cripto-
algoritmo simétrico DEA num PC e num hardware específico para isso.
8) Indique a ordem do cipherspace para o DEA e para o IDEA.
9) Calcule o tempo aproximado para quebrar um algoritmo IDEA com 10.000
computadores em paralelo?
10) Explique como seria um ataque força bruta para quebrar um cripto-algoritmo simétrico
DEA?

3
Esse algoritmo tem tido muita notoriedade principalmente pelo programa de domínio público para segurança
na comunicação de dados (Philip Zimmermmann) – PGP – Pretty Good Privacy.

You might also like