I know this may not be the place to ask this but I have found it difficult to find an answer to this question. I know the steps of the AES encryption algorithm but I am finding it difficult to understand the concept stage by stage.

How would by not adding the round key at each stage increase the vulnerability in AES encryption?

  • $\begingroup$ Not sure to understand your question. You're basically asking what's the point of deriving sub-keys? $\endgroup$ – Dillinur Jan 13 '15 at 11:03

The round key is derived from the key and adding it is what makes the algorithm a block cipher (AKA: a keyed permutation) rather than just a permutation.

In the image below you can see a typical block cipher. If the round key were not added in any round then the block cipher output would not depend on the key at all and it would be an unkeyed permutation.

block cipher data flow

as far as adding the round key each round rather than just at the start and end that's a design choice which improves security. xor-encrypt-xor can be used to easily tweak a block cipher and the basic principle of xor-permute-xor can be used with a strong pseudo-random permutation to construct a block cipher. AES, if round keys were added only at the first and last round, would look something like that.

The key schedule and the round keys added each round are a design choice which positions a lot of messy and difficult operations in such a way that they only have to be computed once for every key. When encrypting a lot of data with a single key, key setup is done once. When brute forcing a key, key setup must be done for every key tried. This translates over to cryptanalysis too.

image credit:Permutation-based encryption, authentication and authenticated encryption

| improve this answer | |
  • $\begingroup$ Thanks for the response. I'm new to the crypto world and I'm now wondering how does using xor-encrypt-xor add to the complexity instead of just using or-encrypt-or. My reason for asking this is that if we are using the round key every round and or-encrypt-or wouldn't that be complicated enough but also saving computing power? $\endgroup$ – Yobo The Great Jan 13 '15 at 12:05
  • $\begingroup$ It is not about "complicated enough". If you are given a (fixed) single bit and then combine it with some other bit with XOR, you get a bijection: input equals output or input is unequal to the output. OR does not have this property, if one of its inputs is True. In general, XOR has much nicer properties than logical AND and OR. $\endgroup$ – tylo Jan 13 '15 at 14:37

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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