O Deep Learning poderia ser usado para quebrar a criptografia?

10

Digamos que você tenha um conjunto de dados com milhões de linhas e os atributos Texto sem formatação, Chave e Texto cifrado de saída. O Deep Learning, teoricamente, poderia ser usado para encontrar padrões nas saídas que ajudam a decifrar o texto cifrado? Existem outras abordagens em potencial?

user28473
fonte

Respostas:

10

Provavelmente não. Os modernos sistemas de criptografia são projetados em torno de geradores de números aleatórios criptográficos, e sua saída é projetada para ser estatisticamente indistinguível da verdadeira aleatoriedade. O aprendizado de máquina geralmente é baseado na descoberta de padrões estatísticos nos dados e, com dados verdadeiramente aleatórios, não há nenhum. Mesmo para criptografia defeituosa em que há algum pequeno padrão a ser encontrado, a grande quantidade de aleatoriedade na entrada sobrecarrega qualquer tentativa direta de descriptografar o texto cifrado.

Além disso, não há heurística que você possa usar para saber se está chegando perto de uma descriptografia correta - um único palpite em uma tecla, por exemplo, embaralha completamente a saída (culpe Hollywood por mostrar descriptografia na tela como algumas palavras cruzadas onde as letras corretas se encaixam). Esse tudo ou nada exclui a descoberta de algoritmos por meio de um processo de aprendizado de máquina, mesmo quando você possui a chave de criptografia. O melhor que você pode fazer é a força bruta de todos os algoritmos conhecidos. Se você não tiver a chave, também precisará aplicar força bruta em todas as chaves possíveis.

Você pode explorar a dificuldade do problema tentando adivinhar o valor da semente usado para um gerador de números aleatórios. Usando o Mersenne Twister RNG (o padrão usado no Python, por exemplo), a entrada pode ser o padrão de bits para 624 números inteiros não assinados de 32 bits, e a saída pode ser os 32 bits da semente usada para gerar essa série. A razão pela qual sugiro esses números específicos é porque é realmente possível quebrar Mersenne Twister com tantos dados. No entanto, ainda acho que as abordagens de ML seriam inteiramente a ferramenta errada para fazê-lo.

Outra variante simples seria ver se você pode ensinar uma rede a produzir ou reverter um hash criptográfico. Você pode começar com um problema conhecido, como o MD5. A entrada e a saída podem ter 80 bits, o que simplifica a arquitetura e o pipeline o suficiente para que você possa montar esse teste em poucas horas. Embora se saiba que o MD5 está comprometido, acho que não há chance de você ensinar uma rede neural a encontrar qualquer padrão.


Um detalhe importante: se você deseja "quebrar" uma criptografia, não poderá usar a chave como um valor conhecido. As chances são de que, mesmo que você forneça a chave para um processo de ML, ele não poderá aprender a descriptografar.

Neil Slater
fonte
2

Conforme sugerido em uma resposta anterior , pode ser difícil para as técnicas de ML interromper a criptografia diretamente.

Mas existem maneiras pelas quais as técnicas de rede neural e ML podem ser usadas para quebrar a criptografia (AES em particular porque trabalhei nela, mas também pode ser usada para outras pessoas).

Estou me concentrando na criptografia AES em dispositivos incorporados. Quando um dispositivo está criptografando (ou decodificando), geralmente vaza informações na forma de energia ou radiações eletromagnéticas. Estes são chamados de 'vazamentos de canal lateral'. A pesquisa mostrou que esses vazamentos se correlacionam com a chave secreta usada durante a criptografia (ou descriptografia). E se houver correlação, técnicas de rede neural / ML podem ser utilizadas para recuperar a chave secreta que está sendo usada. Verifique estes documentos que usaram redes neurais / ML para recuperar (uma parte) da chave secreta usada durante a criptografia AES: Ref2 Ref3

A pesquisa nesse campo ainda está em andamento e ainda há muito a ser realizado. Mas nem tudo está perdido e ainda há esperança em usar o aprendizado profundo para quebrar a criptografia ou parte dela.

manoj
fonte