私はいくつかのAESスニペットで遊ぶ必要があります。RubyのシングルブロックAES解読
暗号文cと鍵kがあります。暗号文は、AES-CBCを使用して暗号化されており、IVが前置されています。
aes = OpenSSL::Cipher::Cipher.new("AES-128-CCB")
aes.decrypt
aes.key = k
aes.iv = c[0..15]
aes.update(c[16..63]) + aes.final
、それがうまく働いている:いいえパディングが存在しない、プレーンテキストの長さは、だから私はこれをやっている16
の倍数です。
私はCBCモードを手作業で行う必要があるので、1ブロックの「プレーンな」AES解読が必要です。
私はこれしようとしている:
aes = OpenSSL::Cipher::Cipher.new("AES-128-ECB")
aes.decrypt
aes.key = k
aes.iv = c[0..15]
aes.update(c[16..31]) + aes.final
をそして、それは
in `final': bad decrypt (OpenSSL::Cipher::CipherError)
私はそれをどのように行うのですかで失敗?
「iv」を設定しないのはどうですか?なぜなら、EBCモードでは「iv」は存在しないからです。 –