Relevant Coursework


○ Structure versus Hardness in Cryptography

By Prof. Shweta Agrawal
In this course, I studied several hardness assumptions as well as the crypto primitives that they induce. Topics like FHE (Fully Homomorphic Encryption), iO (Indistinguishability Obfuscation), Deniable Encryption, IBE (Identity Based Encryption), and Zero Knowledge were covered.

As part of the course, I had to present the paper "Two-round secure MPC from Indistinguishability Obfuscation" by Garg et al.
Paper | Slides

○ Topics in Cryptography

By Prof. Aishwarya Thiruvengadam

In this course, I studied the basics of Hash functions, the Random Oracle Model, as well as attacks (birthday attack, Rainbow tables etc.) and applications (Merkle trees, HMAC, etc.) of the same. Several practical constructions like the Davies-Meyer Construction, SHA-1, SHA-2 and SHA-3 were also covered. The course ended by covering advanced concepts like Indifferentiability and the composition theorem.

As part of the course, I had to present the paper "Random Oracles and Non-Uniformity" by Coretti et al.
Paper | Slides

○ Formal Security Analysis

By Prof. S P Suresh

In this course, I studied how to verify security properties of real world protocols. I learnt to use Applied Pi-Calculus to model protocols and then use ProVerif to analyze and verify security. I also learnt to use CryptoVerif, a security protocol verifier in the computational model that works with the game based security definitions.

○ Introduction to Blockchains

By Prof. S P Suresh and Prof. Madhavan Mukund

In this course, I studied the basics of blockchain technology. Workings of Bitcoin and Ethereum were covered in great detail.

As part of the course, I had to write and present smart contracts written in Solidity.
Slides | Project | Report

○ Introduction to Cryptography

By Prof. Rajeeva Karandikar

In this course, I covered the foundations of cryptography. Theory and implementations of stream ciphers and block ciphers were covered. We also studied Public key cryptography at depth.

○ Coding Theory

By Prof. Sharad Sane

In this course, I studied the basics of coding theory. Topics covered include Hamming Codes, Reed-Solomon Codes, BCH Codes, Golay Codes, Hamming Bound, Gilbert-Varshamov Bound, Plotkin Bound, Levenshtein Theorem, Reed-Muller Codes, and Assmus-Mattson theorem.

○ Complexity Theory I

By Prof. Partha Mukhopadhyay

In this course, I studied the basics of computational complexity. Topics covered include NP reductions, diagonalization, space complexity, the polynomial hierarchy, boolean circuits, randomized computation and interactive proofs