Pergunta

Imagine que eu tenho este:

$cdata = AES_256($data, $pass);

AES_256 implementa o AES algoritmo .

Se eu sei o conteúdo do $cdata eo conteúdo do $data e também tem o código AES_256(), eu posso fazer engenharia reversa e encontrar $pass?

Foi útil?

Solução

A resposta é simples: Não.

Esta foi testado, e mencionado na ligação Wiki.

Um ataque relacionado-chave pode quebrar até 9 rodadas de AES de 256 bits. UMA ataque de texto plano escolhido pode quebrar 8 rodadas de 192- e 256-bit AES, e 7 rodadas de AES de 128 bits, embora o carga de trabalho é impraticável a 2 128 - 2 119 .

Ou dito de outra maneira: você terá uma melhor chance de ser atingido por iluminação ... no mesmo dia em que você ganhar na loteria, que quebrá-lo

Outras dicas

Isto é chamado um -texto simples conhecido ataque . Uma boa cifra como AES deve ser imune a ela, como as outras explicou.

Se $pass é na verdade uma senha e não uma chave de 256 bits, você pode estar com sorte.

Enquanto ele está longe de ser trivial para executar, um ataque de força bruta contra uma senha normal é muito mais rápido do que uma chave de 256 bits forçando bruta.

Assim modificar uma das muitas ferramentas de senha forçando-bruta, e você tem um ataque que (dependendo da força da senha) pode levar semanas a vários anos - mas isso é rápido em comparação com 3x10 ^ 51 anos .. .

Você poderia bruta forçá-lo, mas levaria muito tempo. Como em décadas ou até mais. Esse é o ponto de algoritmos de criptografia como AES.

Outra citação, a partir Wikipedia :

AES permite o uso de chaves de 256 bits. Quebrando uma chave de 256-bit simétrica força bruta requer 2 ^ 128 vezes mais poder computacional de um 128 bits chave. Um dispositivo que poderia verificar um bilhões de bilhões (10 ^ 18) AES chaves per segunda exigiria cerca de 3 x 10 ^ 51 anos de esgotar os 256 bits espaço chave.

Brute forçando quando você sabe o texto original pode ser mais rápido, mas ainda, 3 x 10 ^ 51 anos é muito tempo. Além disso, há o problema de provavelmente não ter um dispositivo que pode verificar uma bilhões de bilhões (10 ^ 18) teclas / segundo.

Em suma :. Tudo é possível, mas isso não é viável no mundo que estamos vivendo agora em

AES, como todos os bons algoritmos de criptografia, não depende de segurança pela obscuridade .

Em outras palavras, não há "segredos" no código, para que você ter o código não irá ajudá-lo particularmente.

texto simples conhecido é uma questão separada, que eu não sei muito sobre isso vou deixar isso para os outros respondentes.

Claro que não - a única abordagem é a força bruta. Você realmente acha NIST é tão estúpido a ponto de escolher uma cifra que é tão facilmente quebrado por um novo padrão?

com o poder de super computadores o tempo para falhar criptografia AES com ser drasticamente encurtado .... eu ouvi ...

2x2 ^ 256 combinações possíveis é muito a bruteforce. Mas bruteforcing é a única maneira. Seria realmente levar cerca de 3 décadas. AES é a melhor possível direito Encryption agora eu diria. Mas isso só levaria muito tempo usando uma CPU. Porque (Unidades de Processamento Gráfico) da GPU são estritamente matemática base, as pessoas têm vindo a fazer programas que só usam a GPU de crack algoritmos baseados matemática muito mais rapidamente do que um CPU podia. Em outras palavras AES não pode últimas 3 décadas. Se apenas códigos eternidade fosse possível. Bem parece com criptografia dinâmica pode ser a única maneira as pessoas podem realmente ocultar suas informações em um futuro próximo.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top