Laboratórios
CONSIDERAÇÕES CRIPTOANALÍTICAS SOBRE O CIFRÁRIO ASTAROTH
Seg 13 Jun 2005 23:07 |
- Detalhes
- Categoria: Laboratório de Criptografia
- Atualização: Quinta, 14 Janeiro 2010 13:57
- Autor: Yugi
- Acessos: 10209
2.2 Considerações sobre a função UPD(k)
A função UPD(k) representa a atualização de sub-chaves do sistema ASTAROTH. Segundo o autor do algoritmo a atualização de sub-chaves obedece ao esquema:
Kx = Kx ^ -P(Kx)
* Onde Kx repesenta uma sub-chave x, P(Kx) a permutação bit a bit da chave Kx utilizando a tabela P.
O símbolo ^ representa a operação XOR (ou-exclusivo). O que o autor não deixou claro é o – antes de P(Kx). Geralmente, em criptografia, os blocos são representados por números inteiros sem sinal. Assim, por exemplo, um bloco de 32 bits deve estar no intervalo [0, 4294967295]. Logo considerar como negativo a saída da função P para um XOR não produz efeito. Se o "-" foi um erro tipográfico (estou apenas supondo que seja...) então a atualização de sub-chaves fica assim:
Kx = Kx XOR P(Kx)
É uma estratégia interessante pois a tabela P não é fixa mas é determinada pela chave inicial. Contudo, uma vez determinada, a tabela P continua igual mesmo considerando-se a atualização de sub-chaves.
Fica evidente que com a função UPD(K) não teremos sucesso com a estratégia criptoanalítica descrita anteriormente. É necessário enfatizar, porém, que neste caso o ASTAROTH não é mais um autêntico criptossistema de blocos porque procura através da função UPD(K) "imitar" uma cifra de fluxo.
De minha parte eu fiz a experiência de gerar uma chave K (1234567890) e uma tabela P (que o autor do algoritmo apresentou no descritivo de seu trabalho) e utilizar a função Kx = Kx XOR P(Kx). Gerei através deste processo um arquivo de 10 Mbytes e o submeti a uma bateria de testes estatísticos para avaliar o grau de aleatoriedade desta função. Trata-se da bateria de testes DIEHARD desenvolvida por Marsaglia, pesquisador da Flórida, e foi popularizada no Brasil pelo ITA (Instituto tecnológico de aeronáutica).
Os resultados foram catastróficos. O leigo não precisa entender como os testes são feitos. Basta observar o parâmetro –P. Ele deve ser maior que 0.025 e menor do que 9.975. Isto não ocorre no resultado do teste em anexo significando que a função UPD(K) não tem um comportamento aleatório.
Pode-se alegar que a função possa se comportar aleatoriamente através do empilhamento das 16 sub-chaves que serão utilizadas para cada bloco; isto até pode ser verdadeiro mas de qualquer forma o processo de atualização de sub-chaves não é seguro isoladamente. Assim sendo, se descobrirmos uma maneira de desmontar o sobreciframento das 16 sub-chaves o processo continua falho. A verdade é que, através deste escalonamento de sub-chaves, não se produz uma estrutura de dados randômica; e este é o coração de uma cifra de fluxo.
3. CONCLUSÃO FINAL
Gostaria de agradecer a vovó Vicki pela oportunidade de debater a criptografia através da Aldeia Numaboa. Espero também ter contribuído com os interessados em criptologia.
Quero agradecer o companheiro Cristiano Campos Neves pela contribuição criptográfica prestada à Aldeia através do ASTAROTH. Espero que a exposição deste trabalho possa ajudá-lo a melhorar o sistema ou criar outros sistemas mais sólidos. Eu o incentivo a prosseguir visto que você mostrou excelente criatividade para compor o cifrário ASTAROTH.
Que este trabalho seja útil a todos os criptólogos!
YUGI TUMRO
Observação da vó: Os testes DIEHARD fornecidos pelo Yugi estão no arquivo zipado que se encontra à disposição dos interessados na seção de downloads. Aproveitando o embalo, quero agradecer a contribuição do autor. Grande Yugi!
- << Anterior
- Próximo