Cryptographic Engineering

 

  • Introduction to Computer Security and Cryptography.
  • Mathematical background: Number theory, abstract algebra, Finite fields.
  • Finite Field, prime Field, modular arithmetic, quadratic fields and arithmetic.
  • Finite Field, binary fields, binary extension fields, representation of field elements, polynomial basis, normal basis and Gaussian normal basis.
  • Multiplication over finite fields: super-serial, bit-level, digit-level, bit-parallel architectures.
  • Multiplication over finite field: Karatsuba, subquadratic multipliers, systolic array multipliers, hybrid-double multipliers.
  • Multiplicative inversion, Fermatt’s little theorem, extended Euclidean Algorithm over prime and binary fields.
  • Exponentiation over finite field, trace and half trace function over finite fields, constant-time and non-constant- time implementations.
  • Public key cryptography, Diffie-Hellman key exchange, RSA, Elliptic curve cryptography (ECC).
  • Implementations of RSA and Diffie-Hellman over binary fields and prime fields.
  • Elliptic curves, generic curves, Montgomery curves, Edwards curves, Hassian and Huff curves.
  • Implementations of Elliptic Curve Cryptography over prime fields, Group law, group operations, point multiplication, coordinates systems.
  • Implementations of Elliptic Curve Cryptography over binary fields (polynomial basis and normal basis). Side-channel attacks analysis, secure implementations, and countermeasures.
  • Digital Signature algorithms (ECDSA, El Gamal) and implementations, Security-level and key size, performance analysis on hardware and software platforms.
  • Introduction to quantum computation and post-quantum cryptography: Lattice based cryptography, isogeny-based cryptography, and other candidates.