Like I mentioned in my post, my goals for 2015, I was starting this year with a course on Coursera. The course is now reaching its end, and I want to tell you a bit about it. The course is a six-week course on cryptography, hosted on Coursera, and led by Dan Boneh, a professor at Stanford University. Dan Boneh is a professor in computer science and electrical engineering and his main research focus is applied cryptography and computer security.
The course covers a variety of topics, starting with some history of cryptography. Onwards we have been going through stream ciphers, block ciphers, message integrity, collision resistance, authenticated encryption, basic key exchange and then public key encryption at last. Through the course, we have seen how to calculate the probability an attacker has to decrypt a cipher text on different algorithms, amongst other things. Many statistical calculations is being used, so if you want to take the course, it is wise to freshen up those skills beforehand. At the end, the course material uses number theory. Dan Boneh covers this in a module; however, I would recommend reading up on this before the course, as the module feels a bit rushed.
Along with the lectures of the course, there were “homework”. These were assignments, which you need to complete if you want a diploma. The questions are related to the modules you have each week, and consist of multiple-choice questions. To get the diploma you need to score an average of 70% on all the assignments, as well as the final exam (which I have to finish this week). You have three weeks to complete each assignment. You can finish them after this deadline, however you will only get 50% of the maximum score.
Along with the assignments, there are programming assignments as well. These are tasks which you need to complete, in whatever language you want. That could be to decrypt a certain message for instance. I intended to do these, however as the weeks flew by I saw that I did not have the time. I have however written the tasks down, so when I have time I will do them.
New modules is released every week, and the course is meant to be taken in six weeks (seven if you count the final exam as well). During the first or second week, Dan Boneh mentioned that people with a full time job could spend two weeks on each module, and I could see why. The course description states that you should set aside around 5-8 hours a week for the course, and I would say you would need that, or even more. Doing this with a full time job and other projects on the side as well was tough. If I were to take the course, again I would probably spend two weeks each module. It takes some time to catch the concepts, and it requires work. But I managed to finish, so I’m happy with that!
Moving on from this there is a Cryptography 2, which is the follow up course by Dan Boneh. I will not take that course, as it just do not fit into my schedule. I have however started reading a book called “The Code Book: The secret history of codes and code-breaking” by Simon Singh. A former colleague recommended me this book, and it is supposed to give a good insight into cryptography. I may write a review of this in a later post, when I have finished the book.
In these days of privacy and surveillance, what are your experience with cryptography?