Moderne Cryptografie

Modern Cryptography

6 EC

Semester 1, periode 1

5062MOCR6Y

Eigenaar Bachelor Informatica
Coördinator dr. C. Schaffner
Onderdeel van Minor Logic and Computation, jaar 1Bachelor Informatica, jaar 3Dubbele bachelor Wiskunde en Informatica, jaar 3

Studiewijzer 2021/2022

Globale inhoud

This course will introduce you to the foundations of modern cryptography, with an eye toward practical applications. We will learn the importance of carefully defining security; of relying on a set of well-studied “hardness assumptions” (e.g., that factoring large numbers is hard, or that AES is a pseudorandom function); and of the possibility of proving security of complicated constructions based on low-level primitives. We will not only cover these ideas in theory, but will also explore their real-world impact. You will learn about cryptographic primitives in wide use today, and see how these can be combined to develop modern protocols for secure communication.

(from Jon Katz's online course on coursera whose contents we will closely follow, check out the course overview video!)

Studiemateriaal

Literatuur

Overig

Leerdoelen

  • distinguish modern-day cryptography from ancient cryptography
  • explain the difference between encryption and authentication
  • explain the difference between private- and public-key cryptography
  • compare different security notions (indistinguishability, CPA, CCA) for private- and public-key encryption
  • apply security notions for private- and public-key authentication
  • follow cryptographic security proofs by reduction
  • recognize the discrepancy between theoretically secure and practically used cryptography
  • recognize aspects of number theory which are relevant to cryptography
  • explain basic computational problems that are important for cryptography such as the factoring problem, the RSA problem, the discrete-logarithm problem
  • collaborate (under guidance of teachers) in small groups of four to five (unknown) students on practice problems. In particular, students who are already well-versed in certain topics or skills are encouraged to help their fellow group members in this respect, while weaker students are encouraged to seek help from their peers and the teachers whenever necessary
  • present solutions of mathematical problems orally to peers

Onderwijsvormen

  • Flipped-classroom work session
  • Zelfstudie
  • Presentatie/symposium

This course will be taught in flipped-classroom style, check this video or this infographic to learn more about it. For you as students, the biggest difference to conventional lectures is that you have to prepare yourself before attending classes (during the self-study time), as it is assumed during classes that you have studied the material already. The advantage of this model is that we can spend the face-to-face time during the work sessions to talk about the studied material together, to recapitulate the most difficult and important aspects, and to strengthen our understanding by actually working on the relevant problems in small groups. Being able to present solutions to problems to peers during werkcollege demonstrates the actual understanding of the material.

Verdeling leeractiviteiten

Activiteit

Uren

 

Presentation sessions

14

 

Tentamen + Preparation

20

 

Flipped-classroom work sessions

28

 

Self-study, team homework

106

 

Totaal

168

(6 EC x 28 uur)

Academische vaardigheden

team work: most of the in-class activities will be carried out in teams of five students.

presentation skills: teams present solutions to problems to each other during the presentation session.

Aanwezigheid

Aanwezigheidseisen opleiding (OER-B):

  • Voor practica en werkgroepbijeenkomsten met opdrachten geldt in principe een aanwezigheidsplicht. Wanneer studenten niet voldoen aan deze aanwezigheidsplicht kan dit als gevolg hebben dat het onderdeel niet met een voldoende kan worden afgerond.

Aanvullende eisen voor dit vak:

Not being present for the in-class sessions is a burden on your team. Please attend all sessions.

Toetsing

Onderdeel en weging Details

Eindcijfer

5%

Presentations

Presentation Submission

Presentation Submission, Round 2

35%

Homework

32%

Homework 1

35%

Homework 2

33%

Homework 3

27%

Homework 4

28.5%

Homework 5

33%

Homework 6

15%

Reading Questions, Quizzes, Evaluations

Intro Quiz 1

Team Quiz 1

Intro Quiz 2 (individual)

Team Quiz 2

Intro Quiz 3

Team Quiz 3

Intro Quiz 4

Team Quiz 4

Intro Quiz 5

Team Quiz 5

Intro Quiz 6

Team Quiz 6

Intro Quiz 7

Team Quiz 7

Reading Questions 1

Reading Questions 2

Reading Questions 3

Reading Questions 4

Reading Questions 5

Reading Questions 6

Reading Questions 7

Reading Questions 8

Reading Questions 9

Reading Questions 10

Reading Questions 11

Reading Questions 12

Reading Questions 13

Reading Questions 14

Team member evaluation (first three weeks)

Evaluate Team members (last 4 weeks)

Bonus points: submission of Reading Question

Bonus

45%

Final Written Exam

Moet ≥ 5 zijn, eindcijfer

For all team assignments and the Team Quiz every week, all members of a team receive the same grade.

The grade obtained at the exam counts for 45% towards the final grade, you have to have at least a score of 50% at the final exam to pass the course!

There will be a written final exam as indicated on Datanose. It will consist of two parts: a first quick multiple-choice part consisting of questions very similar to the reading questions in the course, and then some problems to work out. The first hour will be closed-book, i.e. WITHOUT notes/internet/etc, and after an hour, you will be asked to hand in the first part of the exam (of course, you can already start working on the second part before that, as soon as you are done with the first part). In the second and third hour, the exam is open-book, meaning that you can consult any study material including [KL] as well as any notes you have made. Electronic devices are not allowed during the whole exam.

Fraude en plagiaat

Over het algemeen geldt dat elke uitwerking die je inlevert ter verkrijging van een beoordeling voor een vak je eigen werk moet zijn, tenzij samenwerken expliciet door de docent is toegestaan. Het inzien of kopiëren van andermans werk (zelfs als je dat hebt gevonden bij de printer, in een openstaande directory of op een onbeheerde computer) of materiaal overnemen uit een boek, tijdschrift, website, code repository of een andere bron - ook al is het gedeeltelijk - en inleveren alsof het je eigen werk is, is plagiaat.

We juichen toe dat je het cursusmateriaal en de opdrachten met medestudenten bespreekt om het beter te begrijpen. Je mag bronnen op het web raadplegen om meer te weten te komen over het onderwerp en om technische problemen op te lossen, maar niet voor regelrechte antwoorden op opgaven. Als in een uitwerking gebruik is gemaakt van externe bronnen zonder dat een bronvermelding is vermeld (bijvoorbeeld in de rapportage of in commentaar in de code), dan kan dat worden beschouwd als plagiaat.

Deze regels zijn er om alle studenten een eerlijke en optimale leeromgeving aan te kunnen bieden. De verleiding kan groot zijn om te plagiëren als de deadline voor een opdracht nadert, maar doe het niet. Elke vorm van plagiaat wordt bestraft. Als een student ernstige fraude heeft gepleegd, kan dat leiden tot het uitschrijven uit de Universiteit. Zie voor meer informatie over het fraude- en plagiaatreglement van de Universiteit van Amsterdam: www.student.uva.nl

Weekplanning

see https://canvas.uva.nl/courses/25437/pages/course-organization for the latest version of this description!

 

Our week with Modern Cryptography:

This is a 6 EC course given over 7 weeks, plus one exam week. We are aiming to entertain you for approximately 20 hours per week with this course.

  • Monday: individually study this week's material, answer the reading questions. Two hours of self-study is reserved for this task in your schedule. No physical nor online class takes place during this time.

  • Tuesday 14:00: deadline for Reading Questions (individual) and Homework (team). (important exception: the deadline in the first week is Monday, September 6 at 20:00)

  • Tuesday 15:00-18:00: Work Session (see below). At 17:00, the new Homework and presentation schedule (each team gets assigned a problem) become available.

  • Thursday 9:00-11:00: Presentation Session.

Every week, your actions will be the following:

  1. watch the indicated Coursera videos
  2. read up on the material in the [KL] book or other sources
  3. (individually) answer the reading questions (due on Tue at 14:00, one hour before the work session)
  4. during the work sessions, we start with an intro and team quiz as warmup (see below) and then work together in teams on practice problems. The goal is that every student is able to solve all of the practice problems. The work sessions are the chance to meet up and work with your team, so your attendance is expected. See below for details.
  5. (in teams) carry out and hand in the homework problems (due 6 days after each work session).
  6. attend the presentation session, where members of the teams present the practice problems, and receive an individual grade for the presentation.
  7. if you have time and interest, check out the bonus material.

 

Office Hour (Thu, 11:00-12:00, after presentation session)

your chance to ask individual questions to one of the teachers in case anything is unclear.

Work Session (Tue, 15:00-17:45)

Bring your own device! Please follow the Zoom Etiquette in Online Classes.

We expect work sessions to proceed as follows:

  • 15:00; start
  • 15:05-15:15; Intro Quiz (individual quiz)
  • 15:20-15:30; Team Quiz (group quiz), Team Quiz is to be submitted by at least one team member. The whole team will receive the grades of the team member who submits first. Team Quiz has the same questions as the Intro Quiz
  • 15:30-15:50; discussion about the Team Quiz, additional explanations of the week's material, previous homework questions, etc. 
  • 15:50-16:00; work on the problem sets, in your teams. Remember, the goal is that every student is able to solve all practice problems. Each team will be told which one or two (of the usually 6) problems will be the ones they specialize in. The team can select the presenters among themselves for Thursday (every student has to present at least twice a problem during this course). As a team, start with the one or two problems you are assigned, work out and write down a clean solution on paper or electronically. Think about how you want to present this question on Friday, start making a poster. Get the attention of one of the available teachers and get this written version approved by the teacher. Once it has been approved, start working on the other problems. Prepare yourself to a degree that your team is able to follow the presentations of any of the other problems.
  • 17:00-17:45; distribute and plan your further teamwork on the problem sets and homework. Remember that at the final exam, all team members are expected to be able to solve all of the practice and homework problems individually.

Presentation Session (Thu, 9:00-10:45)

Presentations sessions are held in the same set of teams as the work session of this week, with the same teacher present per (physical or online) room. Every student has to present at least two problems in the course, the average grade you receive constitutes 5% of your final grade. The presentation-grading rubric is known beforehand.

The presentation schedule will be made available per week at the beginning of the work session. Each team has to present one or two problems on Thursday and can determine among themselves who will present for the team (every student has to present at least two problems during the course).

The presentation of a single problem is supposed to take around 10 minutes with another 5 minutes for questions and discussion, resulting in the available 6*15=90 minutes. However, presentation lengths might vary considerably with the difficulty of the problem and quality of the presenter. 

The goal is that at the end of the week, everybody knows how to solve all the problems! Check our collection of useful tips both for moderators and presenters.

Rooster

Het rooster van dit vak is in te zien op DataNose.

Aanvullende informatie

This course has a significant mathematical component. No advanced mathematics background is assumed, but students are expected to have "mathematical maturity" since many of the concepts will be abstract, rigorous definitions and proofs will be given, and some advanced mathematics (group theory, number theory) will be covered. Basic background in discrete mathematics (probability, modular arithmetic) and analysis of algorithms (big-O notation, reading pseudocode) is assumed. 

Moreover, some of the homeworks will require programming. The choice of language is flexible, however some homeworks will have a networking component with the networking code provided for you in a particular language. It is assumed you can pick up what is needed in order to complete the assignments.

The course will be taught in English, homework should be handed in in English. Human interactions in Dutch are no problem.

Additional information about the course will be available on Canvas.

Verwerking vakevaluaties

The course has been received positively last year, and will be held in a similar way this year.

Contactinformatie

Coördinator

  • dr. C. Schaffner

Docenten

  • Jana Sotáková
  • Sebastian Zur