5

I would like to study a modern symmetric cipher (I have never studied a cipher before) and I was wondering which would be the best cipher for studying purposes of the following: AES (Rijndael), Blowfish, Twofish, Threefish or Serpent. Basically I am asking which of those ciphers is the most simple to study.

4 Answers4

4

First, it is important to learn the basics behind all symmetric ciphers. You can get this from Handbook of Applied Cryptography, see Chapter 7, especially 7.1, 7.2, 7.3. If you understand those three sections, you will be off on the right foot.

From there, I would suggest just diving right into AES. It isn't that terribly difficult (yes, there are easier ciphers, but the "market penetration" of AES is so great that it is worth the added effort). There should be some good videos online, plus look at this question, the comments, and answer.

From there, I recommend the book "The Design of Rijndael". It was written by the inventors of Rijndael and has some very useful information on why they designed pieces the way they did.

Finally, I recommend using this site as much as possible to help clarify things. If there is something you don't understand as you are learning all this, search on here to see if it has already been answered. Then, if not, ask a specific question on this site.

mikeazo
  • 39,117
  • 9
  • 118
  • 183
4

Of those you listed, AES is the best to study. Not only is it the standard that is used everywhere, it has a huge literature of people explaining it and analyzing it, far larger than any of the others on your list. Also, compared to the others on your list it is easier to understand why AES strongly resists certain major classes of attack (like linear and differential cryptanalysis), and is less resistant to other major attacks (like Biclique cryptanalysis and related key cryptanalysis).

That brings up something else - it is pointless to study 'modern' ciphers without also studying 'modern' cryptanalysis. You might be able to memorize the details of the cipher's operation (AES is not the simplest in that sense - Threefish is much easier to memorize), but without understanding the attacks it was designed to resist you won't ever actually understand the cipher. Studying AES in conjunction with cryptanalysis generally will be likely be the most fruitful course of study.

That said, if studying one strong cipher is too steep of a climb for you, you could also try the gentler slope of many simple weak ciphers with Schneier's A Self-Study Course.

J.D.
  • 4,455
  • 18
  • 22
2

You say

I have never studied a cipher before

In that case I would recommend the following:

  1. Sign up for the Stanford online class on Cryptography on Coursera. This is a great introduction to Cryptography and this will conver block ciphers.

  2. Get a library card with your local public library and ask them to get some textbooks on Cryptography for you. There are a bunch out there and what I find helpful you might not fnd helpful. Then pick one text book that you will work through on your own and use the other books for reference. It is easy to get overwhelmed if you have to omany books around you. In particular I like the book Cryptography: Theory and Practice by Stinson. This has a nice chapter on block ciphers. If you are at a University, your university library might already have a bunch os books on the shelfs.

(There are many notes and books available free online, but I personally like to have a physical book to work from if I need to learn a completely new topic on my own.)

I wouldn't worry too much about studying a specific cipher in the beginning. If you get a good understanding of (outdated) DES from an older textbook, that will give you an idea on how things work with block ciphers. This will then allow you to study more advanced ciphers in detail. I don't think it is a good idea to just jump in tryign to understand AES without having any background and therefore I think it is a good idea to first acquire some of that background.

Thomas
  • 1,184
  • 5
  • 16
  • 33
0

As well as the other excellent suggestions, you might want to try your hand at developing your own simple cipher. Use the skeleton of a Feistel cipher to develop a model cipher. You will need to pick a number of rounds, say 8. Think about a key expansion method to turn your single key into 8 round keys, and also an F function to mix things up. Think about both permutation and substitution in your F function. One simple thing about the Feistel structure is that the F function does not have to be reversible.

That will give you a look at a cipher from the inside. Obviously your cipher won't be secure -- not with only 8 rounds and an amateur design, but it will give you a working model that will be good enough to keep things hidden from your sister (unless she works for the NSA).

rossum
  • 769
  • 4
  • 12