Intro to Modern Cryptography

A hands-on course in which the students will be introduced to the mathematics behind modern cryptography. They will use Python programs to understand, explore and implement simplified versions of modern encryption schemes, and how they are used in real-life scenarios.

(A student who has done the “History of Code Breaking” course will get more out of this course,

but that course is not a pre-requisite.)


Secret codes have been used since ancient times, for sensitive/private messages that nobody other than the recipient should read. But their use was rare, and they were often easily broken. With the advent of computers, the field of secret codes transformed in two important ways: mathematicians started creating provably unbreakable codes, where computers are used for encoding and decoding the messages, and software writers started using these techniques in more and more situations. 


Today, everything we do with our computers/smartphones is controlled by these techniques: the passwords you use to log into your email, the end-to-end encryption in WhatsApp messages to ensure that nobody other than the recipient can read the

messages, the techniques used to ensure that your PayTM and UPI money transfers are safe, to more complex uses like Digital Signatures.


This is a hands-on course in which the students will be introduced to the mathematics behind modern cryptography, and they will use Python programs to understand, explore and implement simplified versions of modern encryption schemes, how they are used in real-life scenarios, and the ways in which these can still be compromised in spite of being “provably unbreakable”.


This course has no prerequisites beyond school mathematics. All the necessary mathematics and the necessary (minimal) python programming will be taught during the course.


Learn more about our expert course facilitator, Navin Kabra, here.