Cryptography and Architectures for Computer Security - 095947

The course aims to provide a systematic formation on cryptographic techniques currently employed in communications and data storage, focusing on algorithms and architectures and protocols.

Lectures:
Monday (14:30-16:15) classroom L.26.01, Building 26
Thursday (14:30-16:15) classroom L.26.01, Building 26

Instructor:
Gerardo Pelosi
(gerardo.pelosi -at- polimi.it)

Teaching Assistant:
Alessandro Barenghi
(alessandro.barenghi -at- polimi.it)

Office hours:
Wednesday (16:00-19:00),
Building 20, 1st floor, Office 127
or upon appointment through e-mail

Topics for the optional course PROJECT

Reference Material

Course Schedule

Exam Layout

Exam Sessions

Past Exam Papers


Reference Material

There is no single assigned textbook for this course, Slides and lecture notes will be made available during the course. A very good reference for most of the course topics is:

Additional material that you might find useful:

  • Alfred J. Menezes, Paul C. van Oorschot and Scott A. Vanstone, Handbook of Applied Cryptography,avaliable online freely at http://cacr.uwaterloo.ca/hac/
  • Jonathan Katz, Introduction to Modern Cryptography, August 2007, Chapman & Hall/CRC Press
  • Christopher Swenson, Modern Cryptanalysis: Techniques for Advanced Code Breaking March 2008, Wiley
  • Stefan Mangard, Elisabeth Oswald, Thomas Popp, Power Analysis Attacks - Revealing the Secrets of Smartcards Springer (available online via Polimi subscription to Springer)

If you are willing to try some practical challenges in the field of cryptography for fun, you can have a look here

Course Schedule

Day Classroom L/E Topic Reference Material
1 Mon. 25/2 Room L.26.01 (Bdg. 26) Introduction to cryptography, confidentiality, integrity, authentication and non-repudiation. Adversaries and classes of attacks
2 Thu. 28/2 Room L.26.01 (Bdg. 26) Historical ciphers, Perfect secrecy, Shannon's proof, OTP, confusion and diffusion principles
3 Mon. 04/3 Room L.26.01 (Bdg. 26) Exercises on Historical Substitution Ciphers, Permutation Ciphers
4 Thu. 07/3 Room L.26.01 (Bdg. 26) Block Ciphers: Feistel structure, DES, 3DES, DES-X, Modes of Operation
5 Mon. 11/3 Room L.26.01 (Bdg. 26) Block Ciphers: SPN structure, AES;
Stream ciphers: LFSR, RC4
6 Thu. 14/3 Room L.26.01 (Bdg. 26) Hybrid Cryptoschemes and Public Key Authentication
7 Mon. 18/3 Room L.26.01 (Bdg. 26) Block Cipher Cryptanalyses:
Linear Cryptanalysis
8 Thu. 21/3 Room L.26.01 (Bdg. 26) Block Cipher Cryptanalyses: Differential Cryptanalysis + exercises
9 Mon. 25/3 Room L.26.01 (Bdg. 26) Hash functions: definitions, properties, birthday paradox, Design principles, MACs
10 Thu. 28/3 Room L.26.01 (Bdg. 26) Exercises on block ciphers, LFSR and Hash functions
11 Mon. 01/4 Room L.26.01 (Bdg. 26) Algebraic Groups - Definitions of Rings and Fields
12 Thu. 04/4 Room L.26.01 (Bdg. 26) Password Storage, Memory hard functions and disk encryption
13 Mon. 08/4 Room L.26.01 (Bdg. 26) Modular Arithmetic - Finite Fields
14 Thu. 11/4 Room L.26.01 (Bdg. 26) Polynomial Fields and numerical examples
- Mon. 15/4 Room L.26.01 (Bdg. 26) - Lessons suspended for mid-semester terms
- Thu. 18/4 Room L.26.01 (Bdg. 26) - Lessons suspended for mid-semester terms
- Mon. 22/4 Room L.26.01 (Bdg. 26) - Easter Holidays
- Thu. 25/4 Room L.26.01 (Bdg. 26) - National Holiday
15 Mon. 29/4 Room L.26.01 (Bdg. 26) Extension Fields - Examples
16 Thu. 02/5 Room L.26.01 (Bdg. 26) Exercises on Finite Fields
17 Mon. 06/5 Room L.26.01 (Bdg. 26) Public Key Cryptography - RSA Cryptosystem
18 Thu. 09/5 Room L.26.01 (Bdg. 26) Discrete Logarithm Problem, Diffie-Hellmann Protocol, ElGamal cryptosystem, ElGamal Signature scheme, CCA2-Secure ElGamal, Digital Signature Algorithm (DSA)
19 Mon. 13/5 Room L.26.01 (Bdg. 26) Continuation of Discrete Logarithm based cryptosystems
20 Thu. 16/5 Room L.26.01 (Bdg. 26) Elliptic Curve Cryptography
21 Mon. 20/5 Room L.26.01 (Bdg. 26) Montgomery multiplication and fast arithmetic algorithms
23 Thu. 23/5 Room L.26.01 (Bdg. 26) Exercises on Montgomery Multiplication and RSA
24 Mon. 27/5 Room L.26.01 (Bdg. 26) Primality Testing. Number theoretical cryptanalysis: factoring algorithms, Discrete log extraction algorithms
25 Thu. 30/5 Room L.26.01 (Bdg. 26) Pohlig-Hellman Attack + Exercises
26 Mon. 03/6 Room L.26.01 (Bdg. 26) TLS and SSH, Kerberos, Tor
27 Thu. 06/6 Room L.26.01 (Bdg. 26) Side Channel Attacks

Exam layout

There will be a 2h/2h30 written examination on the subjects of the course, which will include both questions and exercises.
It is possible to integrate the exam score with an optional practical project yielding at most a +6 increase in the evaluation (groups with at most 2 people).
However, a sufficient score in the written part must be obtained.

Project Guidelines

In order to take on a project you must contact both the teacher and the instructor (keep them both as CC) for both asking details and the natural communication which will ensue during the project development. For the sake of unambiguity you must always keep both of them in all your communications. Contact e-mails not complying with this will not be answered.

The project includes a reasonably-sized report and a short (10-15 minutes) presentation to be delivered to the teacher and the instructor. If the project involves the production of code, a Polimi-hosted git repository will be provided, with ssh public-key based access.

The project should be delivered at least a week in advance with respect to the exam date in which you want it to be evaluated (it may be different from the date of the written examination).

A preliminary list of projects is available with more project descriptions to come.
The assignment policy is “first-come-first-served”.

The projects proposals are available here; autonomous project proposals are welcome and will be taken into consideration.


Exam Sessions

Check the Poliself for further information on the exact time and place.

1st call on June 21st 2018, 16:30, Room: N.1.6

2nd call on July 17th 2018, 11:30 am, Room: 5.02

3rd call on September 13th, 2018. 8:00 am, Room: N.0.2

4th call on January 24th, 2019. 8:30 am, Room: D.0.4

5th call on February 14th, 2019. 3:00 pm, Room: D.3.3

The subscription to the exam session you want to take is mandatory in order to have the grade registered.


Past Exam Papers