Home > Teaching > CS 669: Design for Security

CS 669: Design for Security

Credits: 3-0-0-9

Prerequisites: Knowledge equivalent of CS220 and CS641

Who can take the course: PhD, Masters, 3rd and 4th year UG Students

Departments that may be interested: CSE, EE


Course Objective

Developing a secure cryptographic algorithm is only the first step towards achieving a secure architecture. Most of the cryptographic algorithms are based on complex mathematical operations (starting from finite field inversion to scalar multiplication in elliptic curves) and therefore developing efficient hardware implementation of such complex algorithms is a challenging problem. Additionally, any cryptographic architecture suffers from implementation vulnerabilities like side channel leakages. A side channel adversary observes/record the information leakage through physical channels like time and power consumption or electromagnetic radiation. Using this information, a side channel adversary can easily break a mathematically secure crypto implementation and obtain the secret key. In this course, we will focus on both these aspects of cryptographic implementations. The first part of the course will discuss the implementations of complex finite field operations, architecture of block and stream cipher, and elliptic curve cryptography. Next, we will show the impact of side channel analysis and possible countermeasures against such attacks. A brief discussion will also be provided on FPGA architectures and hardware Trojans. The contents selected for the course are based on research papers from top-tier journals and conferences such as IEEE TIFS, IACR TCHES, IEEE TC, ACM TECS, IEEE TVLSI, DAC, DATE, etc. covering advanced topics of hardware security.


Course Contents
  1. Module 1: Finite Field Arithmetic Hardware
    1. Introduction to finite field
    2. Finite field operations: Addition, Multiplication and Inversion
    3. Application of finite field in cryptography
    4. Finite field addition architectures
    5. Finite field multiplication architectures
    6. Finite field inversion architectures
    7. Introduction to FPGA architecture
  2. Module 2: Secure Constructions of Block Cipher: AES
    1. AES S-Box Construction
    2. Iterative AES Architecture
    3. Power based side channel attack on AES
    4. Side channel evaluation methodology
    5. Side channel countermeasure: Threshold Implementation
    6. Fault attack on AES: DFA and Trojan based
    7. Fault attack countermeasure: Redundancy and Infection
  3. Module 3: Secure Constructions of Stream Cipher: Grain
    1. Introduction to linear feedback shift register (LFSR)
    2. Berlekamp–Massey algorithm
    3. Issues with LFSR based encryptions
    4. Implementations of stream cipher Grain
  4. Module 4: Efficient Implementation of Elliptic Curve Architectures
    1. Introduction to public key cryptosystem
    2. Introduction to elliptic curve cryptography
    3. Elliptic curves in GF(2m)
    4. Elliptic curves in GF(p)
    5. Secure scalar multiplication algorithm
    6. Montgomery elliptic curve: Implementation of Curve25519
    7. Side channel attack on elliptic curve and countermeasure
    8. Elliptic curve isogeny based cryptosystem for post quantum computing


  1. Debdeep Mukhopadhyay and Rajat Subhra Chakraborty,“Hardware Security: Design, Threats, and Safeguards”, CRC Press, 2014.
  2. Doug Stinson, Cryptography Theory and Practice, CRC Press, 2005.
  3. Samir Palnitkar, “Verilog HDL: A Guide to Digital Design and Synthesis”, Prentice Hall, 1996.
  4. Michael D. Ciletti, “Advanced Digital Design with the Verilog HDL”, Pearson, 1996 .
  5. Ted Huffmire et al: “Handbook of FPGA Design Security”, Springer, 2014.