Matrices have been used in symmetric ciphers since the Hill Cipher (before?) all the way up to modern ciphers such as Twofish and AES.

I understand matrices can be invertible, therefore making them useful for decryption, but what other benefits do they have over other methods? For instance:

  1. Are they notably fast/efficient?
  2. Do they take up little memory?
  3. Are they particularly easy to implement?
  4. Do they (somehow) offer better protection against side channel attacks?
  5. At what point might a matrix become unmanageable/too large/insecure? For example, a 1024-bit square matrix.

I am interested in any particular benefits they might offer and problems they might cause or weaknesses they might have. I wonder also if there are different types for different purposes; it seems most are used for diffusion.

  • 5
    $\begingroup$ I think the real question here is "why do many block ciphers have a linear layer?", since matrices are just a way of representing that. That's a very broad (but also deep and interesting) question. For Twofish and AES, I'd recommend that you search for "MDS matrix" (that should get you a fragment of the answer). $\endgroup$ – Aleph Oct 22 '18 at 18:09
  • $\begingroup$ @Aleph I have looked at MDS matrices and, if I understand them correctly, they guarantee maximum diffusion. That being true, I am fine with that, but I am still none the wiser about answers to my five questions. Any hints on those? $\endgroup$ – Red Book 1 Oct 24 '18 at 10:27

Your Answer

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

Browse other questions tagged or ask your own question.