2013-04-14 9 views
5

Ho bisogno di giocare con alcuni frammenti di AES.Decrittografia AES a blocco singolo in Ruby

Ho un testo cifrato c e una chiave k. Il testo cifrato è stato crittografato utilizzando AES-CBC, con l'IV anteposto. No imbottitura è presente, la lunghezza del testo in chiaro è un multiplo di 16.

Così sto facendo questo:

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 

e sta funzionando bene.

Ora ho bisogno di fare la modalità CBC a mano, quindi ho bisogno di "semplice" decrittografia AES di un singolo blocco.

sto cercando questo:

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 

E non riesce con

in `final': bad decrypt (OpenSSL::Cipher::CipherError) 

Come posso fare?

+0

Come non impostare 'iv'? perché non dovrebbe esserci "iv" in modalità EBC. –

risposta