Abhinav Pandey
With a Bachelor's degree in Computer Science, Abhinav has made it big in the world working for Goldmann Sachs' One-Delta division. A true enthusiast in Machine Learning and Cryptography, he has taken several courses on them and has aced them all. He also plays the guitar and has sung several songs in various competitions.
The Coursera course by Professor Dan Boneh spans over 6 weeks. The course is extremely detailed and enables even a layman to understand the concepts. There is a weekly programming assignment and problem set to evaluate your week's learning.
The major topics covered were -
- Introduction and History of Ciphers
- Stream Ciphers
- Block Ciphers
- Using Block Ciphers
- Message Integrity
- Collision Resistance
- Authenticated Encryption
- Odds and Ends
- Basic Key Exchange
- Intro to Number Theory
- Public key Encryption from trapdoor permutations
- Public key encryption from Diffie Hellman
Having been deeply interested in mathematics all along I found it really compelling to research deep into the various mathematical interpretations of the concepts taught in the course. Professor Dan Boneh explained the concept of what "randomness" and generating randomness for algorithms. The concept of randomness was the key concept in determining how well an algorithm would fare with time in real world applications. Lectures on how two different outputs of a cipher are expected to be random such that they are rendered computationally indistinguishable from each other was really thought provoking.
Though the video lectures were long, it was a necessary downside for the videos as the concepts discussed required detailed explanation. Like a true mathematician Prof. Boneh explained the difference between the simple errors that people may commit in defining a particular topic but which could have great implications on the concept itself. He was very well acquainted with the fact that most of the students had a computer science background and they had spent most of their time trying to optimize problems however in cryptography they had a totally different objective; to make problems more complex for the adversary i.e. we had to make sure that the adversary when trying to decrypt the encrypted message is met with a problem that cannot be solved in polynomial time instead has an exponential time solution. Such concepts were explained in the most lucid fashion.
The discussion of the old ciphers makes this course really interesting. From the very first unit of the course, Prof. Boneh explains the basics of the working of many such ciphers for example: substation ciphers (Caesar cipher mainly), Vigener Cipher, Rotor Machines and DES (Data Encryption Cipher). Apart from the working of these ciphers, Prof. Boneh also discussed how these ciphers are now badly broken and obsolete.
The remaining part of the course comprised of how to build complete authenticated encryption systems and public key cryptography. Throughout the course Prof. Boneh stated special emphasis on never implementing encryption and authentication systems all by ourselves and only using the well tested and rated already existing libraries for the same. The reason being that since the encryption and authentication systems are not tested for reliability by crypto-analysts and mathematicians all over the world, they may be error prone and easily breakable by adversaries.
The overall experience of the course was excellent. The rigorous concepts and mathematics used in this course when completely understood will pave the way for understanding and dealing with advanced papers and literature in the field of cryptography. This course is highly recommended for people who wish to learn about cryptography and are also interested in rigorous mathematical proofs of all the concepts. I am now eagerly waiting for the second part of the course to quench my thirst for more of such exciting concepts which help me better understand the world around me.