O AES256 é mais seguro que o AES128? Qual é a diferença?
Como Bakhtiyar Farayev corretamente anotado em sua resposta, o AES pode pegar três tamanhos diferentes de chave 128 bits, 192 e 256. Ao olhar para o bruto forçando uma chave (simplesmente adivinhe cada chave possível), é preciso [matemática]2^{128}[/math] palpites para tentar cada uma das possíveis chaves de 128 bits, e [matemática]2^{256}[/math] palpites para tentar cada uma das possíveis chaves de 256 bits. O último número de palpites é enormemente maior que o primeiro, então nesse sentido AES256 é enormemente mais forte.Mas isso melhora sua segurança?
O fato é que simplesmente não há como alguém forçar uma chave de 128 bit escolhida apropriadamente. As chances de alguém bruto forçá-la são efetivamente zero. Assim, usar uma chave de 256 bits não o defende contra qualquer risco plausível de que uma chave de 128 bits não o defenda de.
As hipóteses de alguém forçar uma chave de 128 bits são efectivamente zero. Claro que é enormemente mais difícil forçar uma chave de 256 bits, mas há pouco ganho para a maioria das finalidades em reduzir um risco já "efetivamente zero". E a diferença entre efetivamente zero e efetivamente zero é efetivamente zero. Então há efetivamente redução zero no risco.
Como eu disse em Adivinhe porque nós'estamos mudando para chaves AES de 256 bits, que fala da Molly, um dos meus cães, escondendo os brinquedos da Patty (outro cão) em um dos [matemática]2^{128}[/math] escondendo espaços,
As chances da Patty e de todos os seus amigos super rápidos encontrarem o esconderijo da Molly é o mais próximo de zero que poderíamos querer. Vamos chamar as chances de Patty neste caso [matemática]{\i1}epsilon_1[/math], um número realmente pequeno. Se Molly usa [matemática]2^{256}[/math] possíveis esconder espaços ao invés de [matemática]2^{128}[/math], as chances de Patty e seus amigos encontrarem o que tem os brinquedos é outro número o mais próximo de zero que poderíamos querer. Vamos chamar essas chances de [matemática]^ [matemática]^2[/math]. Claro, [matemática]epsilon_2[/math] é muitas vezes menor que [matemática]epsilon_1[/math], mas ambos [matemática]epsilon_1[/math] e [matemática]epsilon_2[/math] já estão tão perto de zero quanto poderíamos querer. O ganho prático de segurança da Molly em usar o maior número de esconderijos é praticamente a diferença entre [matemática]epsilon_1[/math] e [matemática]epsilon_2[/math]. Essa diferença, para todos os fins significativos, é zero.
A única dica de uma possível exceção
Se um computador quântico suficientemente grande e estável for construído para que ele possa executar o algoritmo de Grover's, então devemos dobrar nossos tamanhos de chave. E dobrar de 128 para 256 seria a coisa certa. Nos últimos 25 anos, o progresso nos tipos certos de computadores quânticos tem sido mais lento do que as pessoas esperavam. E por isso não estou preocupado com isto.
Se você acha que tais computadores quânticos podem aparecer nos próximos 30 anos (eu não acho), e você precisa criptografar dados agora que precisarão permanecer seguros em 30 anos, então use 256 bits.
256 bits AES é tempo e energia consumidores, mas ...
Bakhtiyar também estava correto ao dizer que AES256 é mais lento. Ele também consome mais energia. Portanto, particularmente em dispositivos de baixa potência ou em coisas que têm de encriptar/descriptar muitos dados rapidamente, existem boas razões para ficar com chaves AES de 128-bit.
Mas se está a produzir uma aplicação de consumo, não estamos apenas preocupados com o tempo e os requisitos de energia da aplicação real, mas também com o seu tempo e energia. Se você usa chaves de 128 bits, você vai gastar muito tempo e energia explicando tudo isso para pessoas que (erroneamente) insistem em chaves de 256 bits. Portanto, se o custo de desempenho do uso de chaves de 256 bits não for um problema real, você pode economizar (você mesmo) muito tempo e energia apenas indo com chaves de 256 bits.
Uma fraqueza real com chaves de 256 bits
Existe apenas mais uma reviravolta em tudo isso. Na verdade, há uma falha no design da agenda de chaves para AES256 que não se mantém para AES128. Isto torna a AES256 vulnerável a ataques de chaves relacionadas. (Veja: Distinguidor e Ataque de Chave Relatada no AES-256 completo). Até agora isto não torna o AES256 mais fraco que o AES128, mas é um motivo de preocupação. É também importante que você projete sua criptografia para não depender da resistência a ataques de chaves relacionadas no AES. Ou seja, todas as suas chaves de encriptação devem ser escolhidas aleatoriamente e ser independentes umas das outras.
Anyway, muito do que escrevi nesta resposta aqui é extraído de algo que escrevi em 2013 para o blog AgileBits: Adivinhe por que nós'estamos mudando para chaves AES de 256 bits Dê uma olhada nisso. Ele fornece mais informações e tem histórias sobre cães.