Instructors: Dr. Avijit Dutta and Dr. Avik Chakraborti

Course Objective:

Cryptology is concerned with the conceptualization, definition, and construction of computing systems that address security concerns. The design of cryptographic systems must be based on firm foundations. This course presents a rigorous and systematic treatment of the foundation issues: defining cryptographic tasks and solving new cryptographic problems using existing and new tools. The focus is given on the basic mathematical tools as well as some new advanced cryptographic tools and the advances of research using those tools.


  • Foundation of Crypto: Basic Complexity Results, BPP, Amplification Lemma of BPP, relation between NP and BPP, Notion of Negligible function and efficient Algorithms.
    • One way Function: Definition of (strong and weak) One way function, construction of weak one way function, construction of strong one way function, Collections of one way functions, one way permutation, Collection of trapdoor one way permutations and examples, Some examples of not one way functions.
    • Hard Core Predicate: Definition of Hard core predicate, Examples, Construction of hard core
      predicates from one way function.
    • Pseudorandom Generator: Construction of PRG from Hard core predicate, Blum-blum Shub PRG, Some pathological examples of insecure PRG.
    • Pseudorandom Function: GGM construction, Security proof of GGM PRF, Proof Models, Statistical Distance, Game-theoretic Technique, H-Coefficient Technique, Mirror Theory.

  •  Side-Channel Attacks: Concepts of leakage, Some basic attacks: timing and cache attacks, simple and differential power analyis, Fault attacks: concepts and motivation, Differential Fault attacks on AES, Fault based forgeries on CLOC, SILC.

  • Multi Party Computation: Motivation, Security Notion, Yao’s Millionair Problem, Secure addition using SSS, Oblivious Transfer, GMW protocol, Yao’s garbled circuit, Ben-Or, Goldwasser and Wigderson protocol.



[1] O. Goldreich: Foundations of Cryptography Vol 1.
[2] O. Goldreich: Foundations of Cryptography Vol 2.
[3] A. Choudhury, A. Patra: Secure Multi-Party Computation Against Passive Adversaries.
[4] D. Boneh, V. Shoup: A Graduate Course in Applied Cryptography, online draft:
[5] J. Katz and V. Lyubashevsky: Lattice-Based Cryptography, CRC Press LLC, 2018.
[6] D. Micciancio, S. Goldwasser: Complexity of Lattice Problems: A Cryptographic Perspective, Kluwer, 2002.

Classes (by Dr. Avijit Dutta):

  • Introduction to Turing Machines, Time complexity. [Class 1]

  • Basic Complexity Classes: P, NP, BPP. [Class 2]

Classes (by Dr. Avik Chakraborti):