A Aldeia Numaboa ancestral ainda está disponível para visitação. É a versão mais antiga da Aldeia que eu não quis simplesmente descartar depois de mais de 10 milhões de pageviews. Como diz a Sirley, nossa cozinheira e filósofa de plantão: "Misericórdia, ai que dó!"

Se você tiver curiosidade, o endereço é numaboa.net.br.

Leia mais...

Criptografia Numaboa

A segurança do DES

Sex

12

Out

2007


09:12

(4 votos, média 3.25 de 5) 


A enorme insistência do governo dos EUA para que o DES fosse adotado de forma abrangente na segurança de dados levantou uma série de suspeitas. Apesar das repetidas declarações oficiais de que o DES era um algoritmo criptográfico "inquebrável", a desconfiança só aumentou e os questionamentos se tornaram cada vez mais contundentes.

A segurança do DES

atencao Para acompanhar melhor este texto sobre a segurança do DES, leia O algoritmo DES ilustrado II.

O DES foi adotado oficialmente como padrão de encriptação nos EUA em julho de 1977. A segurança do algoritmo foi questionada por muitos especialistas. Sempre houve muita especulação sobre o comprimento da chave, o número de iterações e a estrutura das caixas S (S-boxes). As caixas S, com todas aquelas constantes sem uma razão aparente para a disposição usada, eram particularmente misteriosas. Algumas pessoas temiam que a NSA (National Security Agency) tivesse colocado um "alçapão" (trap door) no algoritmo para que a agência tivesse um meio fácil de decifrar mensagens.

O assunto foi investigado em 1978 pelo Comitê de Inteligência do Senado dos EUA. Tendo acesso total aos mais altos segredos, o comitê elaborou um relatório que foi considerado matéria classificada. O resumo deste relatório, no entanto, foi liberado e revela que a NSA foi exonerada de qualquer envolvimento impróprio no projeto do algoritmo. "Foi dito que a IBM foi convencida que uma chave mais curta era adequada, que a NSA deu uma assistência indireta no desenvolvimento das estruturas das caixas S e de que havia certificado que a versão final do algoritmo DES, de acordo com o melhor do seu conhecimento, não apresentava qualquer fraqueza estatística ou matemática" [1]. No entanto, como o governo dos EUA nunca tornou públicos os detalhes da investigação, muitos não ficaram convencidos.

Tuchman e Meyer, dois dos criptógrafos da equipe da IBM que desenvolveu o DES, afirmaram que a NSA não alterou o projeto [2]:

Sua atitude básica era procurar funções fortes de substituição, permutação e chaves... A IBM classificou como segredo as anotações sobre os critérios de seleção a pedido da NSA... Tuchman declarou: "A NSA nos disse que, inadvertidamente, tínhamos reinventado alguns dos segredos mais bem guardados que ela usava para criar seus próprios algoritmos".

Apesar das várias explicações e declarações, a questão ainda perdurou por muitos anos. Em 1992, na National Computer Security Conference, a NSA voltou a afirmar que de forma alguma havia interferido no projeto do DES e que a investigação feita pelo Senado em 1978 respondia todas as questões. Talvez sim, talvez não... o fato é que os criptoanalistas continuaram a analisar o algoritmo à procura de possíveis "armadilhas" e fraquezas. As mais importantes são citadas neste artigo.

Chaves fracas

Devido ao modo como a chave inicial é modificada para se obter a sub-chave para cada rodada do algoritmo, certas chaves iniciais são chaves fracas [3,4].

O valor inicial é dividido em duas partes e cada metade é deslocada de forma independente. Se todos os bits em cada metade forem 0 ou 1, então a chave usada em qualquer ciclo do algoritmo é a mesma para todos os ciclos do algoritmo. Isto pode ocorrer se a chave for constituída apenas por 1s, apenas por 0s ou se uma das metades tiver apenas 1s e a outra apenas 0s. Além disto, duas das chaves fracas possuem outras propriedades que as tornam ainda menos seguras [4].

As chaves fracas são mostradas a seguir na notação hexadecimal (lembre-se de que cada oitavo bit é um bit de paridade e que a permutação inicial embaralha discretamente a ordem da chave).

---------------------------------------------------
VALOR DA CHAVE FRACA               CHAVE OBTIDA
---------------------------------------------------
0101 0101 0101 0101                0000000 0000000
FEFE FEFE FEFE FEFE                FFFFFFF FFFFFFF
1F1F 1F1F 1F1F 1F1F                0000000 FFFFFFF
E0E0 E0E0 E0E0 E0E0                FFFFFFF 0000000

Além das chaves fracas, existem pares de chaves que encriptam o texto claro em textos cifrados idênticos. Em outras palavras: uma das chaves do par pode decifrar um texto encriptado pela outra chave do par. Isto também se deve ao modo como o DES gera as sub-chaves - ao invés de gerar 16 sub-chaves diferentes, estas chaves geram apenas duas sub-chaves diferentes e cada uma delas é usada oito vezes no algoritmo. Estas chaves são conhecidas como chaves semi-fracas:

--------------------
CHAVES SEMI- FRACAS
--------------------
01FE 01FE 01FE 01FE
1FE0 1FE0 1FE0 1FE0
01E0 01E0 01E0 01E0
1FFE 1FFE 1FFE 1FFE
011F 011F 011F 011F
E0FE E0FE E0FE E0FE

FE01 FE01 FE01 FE01
E01F E01F E01F E01F
E001 E001 E001 E001
FE1F FE1F FE1F FE1F
1F01 1F01 1F01 1F01
FEE0 FEE0 FEE0 FEE0

Também existem chaves que produzem apenas quatro sub-chaves diferentes, cada uma delas usada quatro vezes no algoritmo. São as seguintes:

CHAVES POSSIVELMENTE FRACAS
-----------------------------------------------------
1F1F0101 0E0E0101                 E00101E0 F10101F1
011F1F01 010E0E01                 FE1F01E0 FE0E01F1
1F01011F 0E01010E                 FE011FE0 FE010EF1
01011F1F 01010E0E                 E01F1FE0 F10E0EF1
                                  FE0101FE FE0101FE
E0E00101 F1F10101                 E01F01FE F10E01FE
FEFE0101 FEFE0101                 E0011FFE F1010EFE
FEE01F01 FEF10E01                 FE1F1FFE FE0E0EFE
E0FE011F F1FE0E01
FEE0011F FEF1010E                 1FFE01E0 0EFE01F1
E0FE011F F1FE010E                 01FE1FE0 01FE0EF1
E0E01F1F F1F10E0E                 1FE001FE 0EF101FE
FEFE1F1F FEFE0E0E                 01E01FFE 01F10EFE

FE1FE001 FE0EF101                 0101E0E0 0101F1F1
E01FFE01 F10EFE01                 1F1FE0E0 0E0EF1F1
FE01E01F FE01F10E                 1F01FEE0 0E01FEF1
E001FE1F F101FE0E                 011FFEE0 010EFEF1
                                  1F01E0FE 0E01F1FE
01E0E001 01F1F101                 011FE0FE 010EF1FE
1FFEE001 0EFEF001                 0101FEFE 0101FEFE
1FE0FE01 0EF1FE01                 1F1FFEFE 0E0EFEFE
01FEFE01 01FEFE01
1FE0E01F 0EF1F10E                 FEFEE0E0 FEFEF1F1
01FEE01F 01FEF10E                 E0FEFEE0 F1FEFEF1
01E0FE1F 01F1FE0E                 FEE0E0FE FEF1F1FE
1FFEFE1F 0EFEFE0E                 E0E0FEFE F1F1FEFE

Antes de condenar o DES por ter chaves fracas, é bom lembrar que esta lista de 64 chaves é insignificante quando comparada com o conjunto de mais de 72 quatrilhões de chaves possíveis (para ser mais exata, são 72.057.594.037.927.936). Se escolhermos uma chave ao acaso, é mínima a possibilidade de pegar justamente uma das fracas. Bem, e se nos entregarmos à paranóia, basta checar se a chave escolhida é uma das apontadas :blush:

Informações adicionais