我有这样的代码:如何从RIJNDAEL 128恢复密钥?
$result = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $plain_text, "ecb");
另外,我有结果和$ plain_text的$值。
有什么办法可以恢复$ key吗?
我有这样的代码:如何从RIJNDAEL 128恢复密钥?
$result = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $plain_text, "ecb");
另外,我有结果和$ plain_text的$值。
有什么办法可以恢复$ key吗?
您无法从直接密码分析中恢复密钥。
您可以使用已知明文攻击来关联已知/重复的密文,特别是在ECB模式被重用的情况下。您可以使用Vaudenay的CBC填充oracle攻击一次解密一个字节的消息(通过选择的密文攻击)。您可以利用CTR模式随机重用来从密文中恢复明文。
你不能简单地恢复给定明文和密文的密钥。
还有有旁道攻击,如cache-timing attacks against AES(PDF),它允许攻击者恢复密钥。但是,如果您使用恒定时间AES(即由AES-NI提供),那么这些都不在表格中。
这将是对aes的纯文本攻击,请参阅http://crypto.stackexchange.com/questions/1512/why-is-aes-resistant-to-known-plaintext-攻击 – VolkerK
除非您有密钥,至少在这十年你不会强制执行AES 128。 – Matt
或者请参阅:http://security.stackexchange.com/questions/5355/compute-the-aes-encryption-key-given-the-plaintext-and-its-ciphertext – duskwuff