Take the 2-minute tour ×
Cryptography Stack Exchange is a question and answer site for software developers, mathematicians and others interested in cryptography. It's 100% free, no registration required.

This question already has an answer here:

I want to decrypt a file that has been encrypted using AES-128 in CBC mode using OpenSSL. I got the “.key” file – which is 32 digits – but when I try to decrypt with OpenSSL, the program asks me for “-iv” and I don't know the IV of that file so it won't decrypt. Is there is any other way to decrypt the file without knowing the IV?

I tried with another file of which I have the correspondent IV and it works, and when I don't supply that IV, the decryption fails too.

By the way: is there anyway to know what type of encryption was used to encrypt a file?

share|improve this question

marked as duplicate by e-sushi, figlesquidge, DrLecter, Gilles, rath Apr 1 at 21:33

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

    
Sorry is IV NO VI :P –  BelindaSchull Apr 1 at 16:42
    
Try ECB mode, and then try the all-zero IV. $\;$ –  Ricky Demer Apr 1 at 17:26
    
@RickyDemer And how's that going to help her decrypt the file that's already encrypted using CBC with a IV she doesn't know/have? –  e-sushi Apr 1 at 17:27
    
Oh, I didn't notice the CBC mode part. $\:$ The all-zero IV would be a workable "default", such as if the key was only used once. $\;\;\;\;$ –  Ricky Demer Apr 1 at 17:30

1 Answer 1

First of all, I suggest you to try use as IV first 16 bytes of encrypted file. Because in general IV is the first block of ciphertext.

But if that doesn't work, then – of course – you can decrypt all message except first block. Just use first block as IV, and start to decrypt from second block. That will work because CBC does not provide integrity, and you can decrypt parts of the message picking any part of the ciphertext.

To better understand how this works, I also suggest you to read about CBC.

share|improve this answer
1  
If you use the first block as the IV, you will need to remove that block from the ciphertext sent to OpenSSL in order for it to decrypt successfully. –  Stephen Touset Apr 1 at 18:04
    
@StephenTouset any example of how to do that? i mean i just open the file with a hex editor and copy the first 32digits and use them as iv? or how to get the 16bytes of the file? and what will be the command line in openssl –  BelindaSchull Apr 1 at 18:26

Not the answer you're looking for? Browse other questions tagged or ask your own question.