Criptografia múltipla - Multiple encryption

A criptografia múltipla é o processo de criptografar uma mensagem já criptografada uma ou mais vezes, usando o mesmo algoritmo ou um algoritmo diferente. Também é conhecido como criptografia em cascata , criptografia em cascata , criptografia múltipla e superencifragem . Superencriptografia refere-se à criptografia de nível externo de uma criptografia múltipla.

Alguns criptógrafos, como Matthew Green, da Universidade Johns Hopkins, dizem que a criptografia múltipla resolve um problema que em sua maioria não existe: cifras modernas raramente são quebradas ... É muito mais provável que você seja atingido por malware ou um bug de implementação do que você. sofrer um ataque catastrófico ao AES . .... e nessa citação reside a razão para a criptografia múltipla, ou seja, implementação deficiente. O uso de dois criptomódulos diferentes e processos de codificação de dois fornecedores diferentes exige que os produtos de ambos os fornecedores sejam comprometidos para que a segurança falhe.

Chaves independentes

Escolhendo duas cifras quaisquer , se a chave usada for a mesma para ambas, a segunda cifra pode desfazer a primeira, parcial ou totalmente. Isso é verdade para cifras em que o processo de descriptografia é exatamente o mesmo que o processo de criptografia - a segunda cifra desfaria completamente a primeira. Se um invasor recuperasse a chave por meio da criptoanálise da primeira camada de criptografia, o invasor poderia descriptografar todas as camadas restantes, presumindo que a mesma chave seja usada para todas as camadas.

Para evitar esse risco, pode-se usar chaves que sejam estatisticamente independentes para cada camada (por exemplo, RNGs independentes ).

Idealmente, cada chave deve ter processos de geração, compartilhamento e gerenciamento separados e diferentes.

Vetores de inicialização independentes

Para processos de criptografia / descriptografia que requerem o compartilhamento de um vetor de inicialização (IV) / nonce, eles são normalmente compartilhados abertamente ou divulgados ao destinatário (e a todos os demais). É uma boa política de segurança nunca fornecer os mesmos dados em texto simples e texto cifrado ao usar a mesma chave e IV. Portanto, é recomendado (embora neste momento sem evidências específicas) usar IVs separados para cada camada de criptografia.

Importância da primeira camada

Com exceção do teclado único , nenhuma cifra foi teoricamente comprovada como inquebrável. Além disso, algumas propriedades recorrentes podem ser encontradas nos textos cifrados gerados pela primeira cifra. Como esses textos cifrados são os textos simples usados ​​pela segunda cifra, a segunda cifra pode se tornar vulnerável a ataques com base em propriedades de texto simples conhecidas (consulte as referências abaixo).

Esse é o caso quando a primeira camada é um programa P que sempre adiciona a mesma string S de caracteres no início (ou final) de todos os textos cifrados (comumente conhecido como número mágico ). Quando encontrada em um arquivo, a string S permite que um sistema operacional saiba que o programa P deve ser iniciado para descriptografar o arquivo. Esta string deve ser removida antes de adicionar uma segunda camada.

Para evitar esse tipo de ataque, pode-se usar o método fornecido por Bruce Schneier :

  • Gere um bloco aleatório R do mesmo tamanho que o texto simples.
  • Criptografe R usando a primeira cifra e chave.
  • Faça um XOR do texto simples com o teclado e criptografe o resultado usando a segunda cifra e uma chave (!) Diferente.
  • Concatene os dois textos cifrados para construir o texto cifrado final.

Um criptanalista deve quebrar ambas as cifras para obter qualquer informação. No entanto, isso terá a desvantagem de tornar o texto cifrado duas vezes mais longo que o texto original.

Observe, entretanto, que uma primeira cifra fraca pode simplesmente fazer uma segunda cifra que é vulnerável a um ataque de texto simples escolhido e também vulnerável a um ataque de texto simples conhecido . No entanto, uma cifra de bloco não deve ser vulnerável a um ataque de texto simples escolhido para ser considerada segura. Portanto, a segunda cifra descrita acima também não é segura sob essa definição. Conseqüentemente, ambas as cifras ainda precisam ser quebradas. O ataque ilustra por que suposições fortes são feitas sobre cifras de bloco seguro e cifras que estão mesmo parcialmente quebradas nunca devem ser usadas.

A regra de dois

A regra de dois é um princípio de segurança de dados do Commercial Solutions for Classified Program (CSfC) da NSA. Ele especifica duas camadas de criptografia completamente independentes para proteger os dados. Por exemplo, os dados podem ser protegidos por criptografia de hardware em seu nível mais baixo e criptografia de software na camada de aplicativo. Isso pode significar o uso de dois criptomódulos de software validados por FIPS de diferentes fornecedores para criptografar / descriptografar dados.

A importância da diversidade de fornecedores e / ou modelos entre as camadas de componentes gira em torno da remoção da possibilidade de os fabricantes ou modelos compartilharem uma vulnerabilidade. Dessa forma, se um componente for comprometido, ainda haverá uma camada inteira de criptografia protegendo as informações em repouso ou em trânsito. O Programa CSfC oferece soluções para alcançar a diversidade de duas maneiras. "A primeira é implementar cada camada usando componentes produzidos por fabricantes diferentes. A segunda é usar componentes do mesmo fabricante, onde esse fabricante forneceu à NSA evidências suficientes de que as implementações dos dois componentes são independentes uma da outra."

O princípio é praticado no telefone móvel seguro da NSA, denominado Fishbowl. Os telefones usam duas camadas de protocolos de criptografia, IPsec e SRTP ( Secure Real-time Transport Protocol ), para proteger as comunicações de voz. O Samsung Galaxy S9 Tactical Edition também é um componente CSfC aprovado.

Exemplos

A figura mostra de dentro para fora o processo de formação da cápsula criptografada no contexto do Echo Protocol, utilizado pelo Software Aplicativo GoldBug Messenger. GoldBug implementou um sistema híbrido para autenticidade e confidencialidade.

Figura 02 GoldBug - formato de mensagem criptografada no Echo- Protocol.png

Primeira camada da criptografia: o texto cifrado da mensagem legível original é hash e, subsequentemente, as chaves simétricas são criptografadas por meio da chave assimétrica - por exemplo, implantação do algoritmo RSA. Em uma etapa intermediária, o texto cifrado e o resumo hash do texto cifrado são combinados em uma cápsula e empacotados juntos. Segue a abordagem: Encrypt-then-MAC . Para que o receptor verifique se o texto cifrado não foi adulterado, o resumo é calculado antes que o texto cifrado seja descriptografado.

Segunda camada de criptografia: Opcionalmente, ainda é possível, portanto, criptografar a cápsula da primeira camada, além de um AES-256 , - comparável a uma senha simétrica de 32 caracteres comumente compartilhada. A criptografia híbrida é então adicionada à criptografia múltipla.

Terceira camada de criptografia: Em seguida, esta cápsula é transmitida por meio de uma conexão SSL / TLS segura para o parceiro de comunicação

Referências

Leitura adicional

  • "Criptografia múltipla" em "Ritter's Crypto Glossary and Dictionary of Technical Cryptography"
  • Confidentiality through Multi-Encryption, em: Adams, David / Maier, Ann-Kathrin (2016): BIG SEVEN Study, cripto-mensageiros de código aberto a serem comparados - ou: Comprehensive Confidentiality Review & Audit of GoldBug, Encrypting E-Mail-Client & Secure Instant Messenger, Descrições, testes e análises de 20 funções do aplicativo GoldBug com base nos campos e métodos essenciais de avaliação dos 8 principais manuais de auditoria internacionais para investigações de segurança de TI, incluindo 38 figuras e 87 tabelas., URL: https: //sf.net/projects/goldbug/files/bigseven-crypto-audit.pdf - idioma inglês / alemão, versão 1.1, 305 páginas, junho de 2016 (ISBN: DNB 110368003X - 2016B14779).
  • Uma "maneira de combinar algoritmos de bloco múltiplo" para que "um criptanalista deva quebrar ambos os algoritmos" em §15.8 de Criptografia Aplicada, Segunda Edição: Protocolos, Algoritmos e Código-fonte em C por Bruce Schneier. Wiley Computer Publishing, John Wiley & Sons, Inc.
  • S. Even e O. Goldreich, On the power of cascade ciphers, ACM Transactions on Computer Systems, vol. 3, pp. 108-116, 1985.
  • M. Maurer e JL Massey, cifras Cascade: A importância de ser o primeiro, Journal of Cryptology, vol. 6, não. 1, pp. 55-61, 1993.