Ich muss mit einigen AES-Schnipsel herumspielen.Einzel-Block-AES-Entschlüsselung in Ruby
Ich habe einige Chiffre Text c und einen Schlüssel k. Der verschlüsselte Text wurde unter Verwendung von AES-CBC verschlüsselt, wobei der IV vorangestellt ist. Keine Polsterung vorhanden ist, der Klartext der Länge ist ein Vielfaches von 16
So mache ich das:
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
und es funktioniert gut.
Jetzt muss ich den CBC-Modus von Hand, so brauche ich "einfache" AES Entschlüsselung eines einzelnen Blocks.
Ich versuche dies:
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
Und es schlägt mit
in `final': bad decrypt (OpenSSL::Cipher::CipherError)
Wie kann ich es tun?
Wie wäre es mit 'iv' nicht? weil es im EBC-Modus keine 'iv' geben sollte. –