Criptografia e descriptografia LOKI97
Cifra de bloco australiana - Candidato AES com blocos de 128 bits e comprimento de chave variável
Aviso de segurança
LOKI97 foi um candidato AES mas não foi selecionado como padrão. Para novas aplicações que requerem segurança forte, AES (Rijndael) é recomendado.
Sobre LOKI97
LOKI97 é uma cifra de bloco de chave simétrica projetada por Lawrie Brown e Josef Pieprzyk em 1997. Foi submetida como candidata para a competição Advanced Encryption Standard (AES), representando a evolução das cifras anteriores LOKI89 e LOKI91 desenvolvidas na Austrália.
A cifra opera em blocos de dados de 128 bits e suporta tamanhos de chave de 128, 192 ou 256 bits. Utiliza uma estrutura de rede Feistel de 16 rodadas com funções de rodada complexas baseadas em S-boxes e permutações, projetadas para fornecer forte resistência contra criptoanálise diferencial e linear.
Características principais
- Tamanho de bloco de 128 bits de acordo com padrões de segurança modernos
- Tamanhos de chave flexíveis: 128, 192 ou 256 bits
- Estrutura Feistel de 16 rodadas para mistura completa de dados
- Projetado para resistir à criptoanálise diferencial e linear
- Parte da família de cifras LOKI desenvolvida na Austrália
História da família LOKI
- LOKI89: A cifra original projetada em 1989 com blocos de 64 bits e chaves de 64 bits.
- LOKI91: Uma versão melhorada que corrige fraquezas encontradas no LOKI89.
- LOKI97: A evolução final com blocos de 128 bits, submetida à competição AES.
Modos de criptografia
- CBC: Encadeamento de blocos - Cada bloco é XOR com o bloco cifrado anterior antes da criptografia. Fornece segurança forte. Requer IV.
- ECB: Livro de códigos eletrônico - Cada bloco é criptografado independentemente. Simples mas revela padrões nos dados. Não recomendado para a maioria dos usos.
- CFB: Feedback de cifra - Converte cifra de bloco em cifra de fluxo. Auto-sincronizante e lida com blocos parciais.
- OFB: Feedback de saída - Gera fluxo de chaves independentemente do texto simples. Sem propagação de erro.
- RAW: Bloco bruto - Criptografia direta de bloco único sem modo de encadeamento. Sem necessidade de IV. Apenas para blocos de 128 bits.
Estrutura do algoritmo
LOKI97 usa uma estrutura de rede Feistel de 16 rodadas. Cada rodada processa um bloco de 128 bits dividido em duas metades de 64 bits (L e R).
Programação de chaves
A chave mestra de 256 bits é expandida em 48 subchaves (SK[0] a SK[47]) usando a função f e a constante DELTA (derivada da proporção áurea). Para chaves de 128 ou 192 bits, o material da chave é replicado para preencher um registrador de chave de 256 bits antes da expansão.
Função de rodada
Cada rodada aplica: L' = R + SK[3i], R' = L XOR f(R + SK[3i], SK[3i+1], SK[3i+2]). A adição é módulo 2^64.
A função f
A função f central f(A, B) consiste em quatro camadas:
- KP (Permutação controlada por chave): Seleciona bits de A baseados nos bits de controle em B
- Sa (Camada S-box a): Oito consultas S-box paralelas usando dois tipos (S1: 13→8 bits, S2: 11→8 bits)
- P (Permutação): Permutação de 64 bits usando um padrão de entrelaçamento de bits 8×8
- Sb (Camada S-box b): Segunda rodada de oito consultas S-box com material de chave adicional de B
Caixas S
S1 tem 8192 entradas (entrada de 13 bits → saída de 8 bits), S2 tem 2048 entradas (entrada de 11 bits → saída de 8 bits). Ambas são calculadas usando operações de cubo em GF(2^13) e GF(2^11) respectivamente, com polinômios geradores específicos para forte não-linearidade.
Descriptografia
A descriptografia usa a mesma estrutura, mas aplica as subchaves em ordem reversa (SK[47] até SK[0]) e usa subtração em vez de adição.
Comparação de algoritmos
| Algoritmo | Comprimento da chave | Tamanho do bloco | Segurança | Velocidade |
|---|---|---|---|---|
| LOKI97 | 128/192/256 bits | 128 bits | Boa | Média |
| AES | 128/192/256 bits | 128 bits | Excelente | Rápida |
| Serpent | 128/192/256 bits | 128 bits | Excelente | Média |
| DES | 56 bits | 64 bits | Fraca | Rápida |
Considerações de segurança
- LOKI97 fornece boa segurança sem ataques práticos encontrados contra a cifra completa
- O tamanho de bloco de 128 bits está alinhado com os requisitos de segurança modernos
- Embora não selecionado como AES, LOKI97 permanece criptograficamente sólido
- Para novas aplicações, AES é recomendado como padrão internacional
Casos de uso
- Compatibilidade com sistemas legados e pesquisa histórica
- Educação criptográfica e estudo de algoritmos
- Análise comparativa com outros candidatos AES
- Aplicações que requerem criptografia desenvolvida na Austrália
Referências
Ferramentas Relacionadas
Criptografia/Descriptografia AES
Criptografe e descriptografe texto com segurança usando o algoritmo AES
Criptografia/Descriptografia Serpent
Algoritmo finalista AES com chaves de 128/192/256 bits, 32 rodadas, oferecendo excelente margem de segurança e resistência criptanalítica comprovada
Criptografia/Descriptografia Twofish
Finalista AES, cifra simétrica com blocos de 128 bits e chaves de 128/192/256 bits, projetada por Bruce Schneier