我有這樣的代碼:如何從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