|
Message
From: Girish Venkatachalam<girishvenkatachalam@g...>
Date: Wed Oct 18 17:18:01 CEST 2006
Subject: [oc] AES128 Question
> > While using the AES128 core (aes_crypto_core) I have come across a > > problem; after encrypting data with a key and receiving an output, how > > do I know what the inverse key is in order to decrypt the output? I had > > an example from the fips document about AES so I was able to test > > given their key and output key, and was successful in doing so. > > However, making up a key wont work for me as I have no idea what the > > inverse key is. Clearing this issue up would really help me out. Thanks.
Decryption is the reverse(inverse) of encryption. In AES you perform a series of operations, say you have 16 rounds. Then 16 times data is serially encrypted with a different key. It is only the key that is different between the rounds. Nothing else. In the end, however some more mixing is done. This process is repeated for each of the blocks of input data. The blocks also interact with one another depending on the ciphering mode, and the mixing is very good if you operate in CBC mode. Of couse the IV also comes into play.
Encryption is nothing but confusion and diffusion; substitution and transposition.
Decryption is nothing but doing the same thing in reverse. So in this case, you would take the key , feed it to encrypted data, apply the last stage mixing first and then do the series of rounds. You get back the data because encryption at a fundamental level is an XOR operation and you XOR twice to get back the data.
Sorry, I have oversimplified things and also have been wrong at a few places. But this may help clear some confusion for u. Who knows? :-)
Best, Girish
|
 |