Schneier on Security
A blog covering security and security technology.
« Fairy Wren Passwords |
| Keys to the Crown Jewels Stolen? »
November 13, 2012
Free Online Cryptography Course
Dan Boneh of Stanford University is offering a free online cryptography course. The course runs for six weeks, and has five to seven hours of coursework per week. It just started last week.
ETA 11/14: A second part of the course will be starting on 21 January 2013.
Posted on November 13, 2012 at 6:15 AM
• 18 Comments
To receive these entries once a month by e-mail, sign up for the Crypto-Gram Newsletter.
Recommended! I just completed this course a few weeks ago (they must run several of them in a row).
It's very good - at least as good as the cryptography I studied in my masters degree. A nice focus on security proofs, alongside practical implementation considerations.
There is also a Cryptography II course starting next January/February which looks at more advanced public key crypto stuff that wasn't covered in the first one.
Also recommended. I took the course on its first offering (I believe the current one is the 3rd or 4th). Unfortunately, family drama prevented me from having time to complete it, but I do plan to dig into it again. Lots of fun and a good knowledge builder.
Taking it right now. Finally thankful for the advanced math that my CS degree required. Other than the math proofs and notation, he is pretty easy to follow.
"The course will include written homeworks and programming labs."
What programming language?
Re: Which programming language, I think it's agnostic, the first gives you some strings and tells you to come back with a decryption.
Just FYI, a group of members of the faculty at the Computer Science College at Universidad Politécnica de Madrid maintain an "Information Security Encyclopedia" at the following address:
It is (mostly) in Spanish and now counts with 14 videos devoted to a wide variety of topics.
programming seemed to be generally in Python, but you could use whatever you wanted. As N said, the programming was used to find an answer - you did not submit the code itself.
Oh - and the programming assignments were entirely optional. You got extra credits for doing them. I didn't bother as I had little time available for the course, although I generally read through them to understand what was being asked. I still passed the course without doing them.
I highly recommend exploring all of the courses which Coursera has to offer.
I recently took Charles Severance's "Internet History, Technology, and Security" and absolutely loved it.
Very good teacher, very good exercises, although they are completely optional.
But I spend much more time than it was foreseen in the beginning (5h -8h per week). I doubled the time per week, but a lot of fun!.
I did it first time it was offered and the course was very good. This is how university courses should look like. I definitely plan to do other courses done by the same lecturer (once they will be ready).
@ Jan Doggen
Programming assignments just give you extra credits. But if you have the time to pick up some basic programming skills, whether it be shell script, Python or something else, I wholeheartedly recommend doing so as it makes the entire course even more interesting.
The Handbook of Applied Cryptography is available from the author for free, and is likely a good supplement to a course like this.
This is a very high-quality course (I took it in spring 2012). There is a second course planned to go online at the end of January 2013, focused not on cryptographic primitives but on higher-level protocols built of them. I'm looking forward to it.
Thanks for the heads-up. Signed up last night and catching up now.
I completed Crypto I two or three weeks ago and I can affirm that it was a lot of fun. Dan Boneh has a fine sense of humor and his lectures are entertaining. I always enjoyed when he was talking about the 'poor adversary' or the 'poor virus' whenever he showed that their chance to break some crypto algorithm was 'negligible'.
I very much recommend to do the programming assignments, too! They are sophisticated, but you miss half of the fun if you don't do them. (For example, one task was to 'hack' a live toy web server and use it as padding oracle to decrypt a given message)
great tool to prevent malsubjects from stealing your information!
I completed Introduction to Cryptography 1 (2012-003), the third offering in 2012.
I agree with all of the commenters. This is an extraordinary course and it sets a high bar for other course presenters. (Fortunately, this was my first course on Coursera and so finding lower-quality material since did not turn me away.)
In my case, I started the course twice before I completed it -- another advantage of the arrangement -- do-overs are perfectly acceptable.
What I noticed is that the second time I studied more that watched and read, and I was able to deepen some of the concepts, especially around security arguments and also the related number theory, so the second time was more rewarding than the first.
I attempted one of the programming exercises, but I fell far behind on that one and did not attempt any others.
Samples, when given, are generally in Python, and there are references to useful Python and C/C++ libraries to use in working some of the problems.
I want to be able to do the programming work but, for me, that was too much to deal with at one time.
I am registered for Introduction to Programming 2 starting in January. I knew this was coming and that added to my determination to finally get all the way through Part 1. Part 2 will get deeper into PKE, password-based authentication, and other more-recent topics that Dan Boneh and colleagues are keen on.
Schneier.com is a personal website. Opinions expressed are not necessarily those of Co3 Systems, Inc.