I am reading whitebox AES. "Mixing Bijection" is one of the important definition. For example, I copy one paragraph here:

The look-up tables that incorporate bytes of round keys can be considered miniature block ciphers. The application of concatenated input and output encodings help these components achieve confusion, as defined by Shannon. To help them achieve diffusion, linear transformations are also composed at their input and output (these compositions are done before the application of the concatenated input and output encodings). An invertible linear transformation is referred to as a mixing bijection.

I have read the definition of bijection online, which is easy to understand. What means mixing bijection? Explain in "simple" English, better with an example.


What they are referring to as a mixing bijection is the MixColumns step of the AES round function. It functions to improve diffusion by reversibly scrambling the state of each column. Recall that the block state consists of a 4x4 matrix of byte-sized elements (totaling 16 bytes, or 128 bits), so each of the four columns are composed of four vertical elements. The MixColumns transformation is applied to each column in parallel. It is just one step of several. Together with AddRoundKey, ShiftRows, and SubBytes, it makes up a single AES round. Ten to fourteen rounds are applied to the input for a single block.

It is referred to as a mixing bijection instead of just a bijection to imply that the output is random. Not all bijections appear random of course. This isn't standard terminology, which explains the confusion. Just think of it as a bijection whose output appears fairly random, making it useful for diffusion.

I strongly recommend you read A Stick Figure Guide to the Advanced Encryption Standard (AES). It is a wonderful explanation of the intrinsics of AES, including MixColumns, and is very easy to understand.

  • $\begingroup$ I understand the 4 steps including mixcolumns in aes rounds. i want to understand what & how "mixing" is performed for mixing bijection. $\endgroup$
    – TJCLK
    Jun 26 '19 at 8:32
  • $\begingroup$ @LiDong Do you want to know exactly how MixColumns itself works? $\endgroup$
    – forest
    Jun 26 '19 at 8:34
  • $\begingroup$ i know that mixcolumns (of standard AES) is the vector multi between [x0...x3]T and that fixed 4x4 matrix. when im reading whitebox AES, it said that mixing bijection is also applied. but after i read the paper, i am not sure which step refers to "mixing" bijection? $\endgroup$
    – TJCLK
    Jun 26 '19 at 8:39
  • $\begingroup$ @LiDong MixColumns itself is likely what it is referring to as a "mixing bijection". Nothing else in AES matches that description. There is nothing additional that is added. Given the paragraph you quoted, it doesn't seem like this is something unique to a whitebox implementation. $\endgroup$
    – forest
    Jun 26 '19 at 8:40
  • $\begingroup$ i see. so "mixing" just means the bijection itself is random? because of that 4x4 matric MC? $\endgroup$
    – TJCLK
    Jun 26 '19 at 8:45

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.