Course syllabus

Course-PM

TDA352 / DIT250 TDA352 / DIT250 Cryptography lp2 HT22 (7.5 hp)

Course is offered by the department of Computer Science and Engineering

Contact details

Course purpose

The purpose of the course is to give an overview of cryptographic primitives, protocols and applications.

Schedule

TimeEdit

Course literature

There is plenty of material freely available online about 'introduction to cryptography'. Modulo different notation and presentation styles, most resources cover all basics of what presented in the course. A prime place to look up things is: The Handbook of Applied Cryptography which will be the main resource for this course. If needed, additional references will be given for each lecture on the first slide (and usually are sections from the Lecture Notes by GoldwasserBellare,  and BonehShoup).

Some alternative resources (not mandatory) are:

  • Foundations of Cryptography, by O. Golderich (a classic, with neat and formal handling of cryptographic primitives)
  • Introduction to Modern Cryptography, by J. Katz and Y. Lindell (the cryptographers' go-to reference, good balance between math, intuitions, and applications);
  • Efficient Secure Two-Party Protocols, by C. Hazay and Y. Lindell (complements the previous reference with advanced cryptographic protocols)
  • Cryptography and Network Security: Principles and Practice, by W. Stallings (application-oriented, keeps things simple)

Course design

The main learning activities in the course are: lectures (Tuesdays and Fridays 10-12), exercise sessions (Tuesdays 8-10 from course week 2). Lectures and exercise sessions take place on campus in physical form and will not be recorded or zoomed. 

The course is organised in 3 modules. Each module lasts 2 weeks, has 4 lectures, 2 exercise session, 1 mandatory home assignment (see details next). An additional recap lecture concludes the course. There is a number of optional bonus assignments to obtain extra points that count towards the final grade (see details next).

There are three mandatory home assignments for which students receive supervision and feedback on. Each mandatory assignment has a strict deadline. Students must hand in a, possibly incomplete, solution before the deadline. After feedback from graders, completions may be submitted twice on each assignment (so you get at most three submissions). You can work in pairs and submit group solutions (where the group has size at most 2). The final deadline for submitting the last attempt for home assignment is January 8th. This deadline is FIRM.

There are 3 bonus assignments (1 per module), these are not mandatory, and allow a single submission attempt. Passing one bonus assignments results in additional points added to your exam score (see the concrete formula in the "Examination form" section), if the exam is taken in the same academic year. A maximum of 6 points can be collected through bonus assignments.  Bonus assignments are design for the fun of learning and digging into topics that branch from the content of the lectures. They require some original thinking and provide you an opportunity to have hands-on experience with some cryptographic libraries. They are (hopefully) rewarding to solve, and give you extra points for the final grade, but they do not include any material that will give you a considerable advantage in writing a good exam.

Changes made since the last occasion

Minor changes in content of lectures, new deck of lecture slides. Major changes to home assignments, exercises and programming tasks. 

Learning objectives and syllabus

Learning objectives:

  • summarize the main goals of cryptography and illustrate this with a number of examples of how cryptographic services are integrated in current applications, both in software and hardware
  • describe goals and design principles for and common structures of secret key primitives such as block and stream ciphers and message authentication codes
  • identify, analyse and explain various forms of attacks based on improper usage of primitives, modes or protocols
  • explain how basic public key primitives can be defined based on the difficulty of mathematical problems such as the discrete logarithm problem or factoring and analyse variants of these systems
  • explain the various roles of hash functions as parts of other cryptographic primitives and protocols and the requirements this places on hash functions
  • exemplify when various notions of security, such as information- theoretic, computational, provable and practical security, are applicable and describe the security guarantees provided
  • explain basic key management techniques in both secret key and public key cryptography

Link to the syllabus on Studieportalen.

Syllabus Chalmers

Syllabus GU

Examination form

The examination has two components:

  • A written, closed-book exam with only a (probably unnecessary) calculator as aid.
  • Three paper-and-pencil home assignments.
  • Optional Bonus assignments (in form of report or coding).

To pass the course the student must pass the exam and all three mandatory home assignments. The grade is determined by the points collected in the exam, if these reach the passing threshold, then any point collected with passed bonus assignments is added (see the pseudocode formula below). The mandatory assignments do not count towards the final grade but are necessary in order to pass the course.

def final_grade(exam_points,bonus_points):
if (exam_points < 30):
return "not pass"
else:
tot_points = exam_points + bonus_points
if (tot_points < 40):
return "grade 3" #G for GU students
if (tot_points < 50):
return "grade 4" #G for GU students
return "grade 5" #VG for GU students

The exam provides 0-60 points, and bonus assignments provide 0-6 points.

Student representatives

Student representatives in this course are:

Course summary:

Date Details Due