Instructor: Kartik Nayak (kartik@cs.duke.edu)
When: Mondays and Wednesdays – 05:15PM to 06:30PM
Where: Zoom (link will be shared through email)
Office hours: Thursdays 11-noon, or by appointment
Office hour location: https://duke.zoom.us/j/99032885486

Teaching assistants: Chenghong Wang (chenghong.wang552@duke.edu)
TA office hours: Chenghong: Mondays 1 pm – 3 pm
TA office hour location: https://duke.zoom.us/j/99032885486

Piazza: We will be using Piazza for discussions.
Lecture videos will be uploaded on Warpwire
Sakai: Labs/assignments will be shared through Sakai.


An introduction to the topic of security in the context of computer systems. We anticipate covering the following topics:

  • Cryptography basics: private key cryptography, public-key cryptography
  • Software security: buffer overflows, SQL injection, web-based attacks, viruses
  • Network security: TCP, DNS
  • Special topics in security and applied cryptography: (a subset of) digital currency and blockchains, searchable encryption, secure multiparty computation, and secret sharing.


Participation (5%). This will be based on involvement during the class (zoom) and participation in discussions on Piazza.

Labs + assignments (60%). We will have approximately four labs and 1-2 assignments. These are to be performed individually. We will use Sakai for this purpose. For labs, we will be using the SEED security labs.

Project (20%). Projects will be in groups of 2.

Exam (15%). There will be one final exam.

Late submission policy for labs and assignments:

– Up to 3 days of late submissions over the entire semester for each student
– Can only be used under exceptional circumstances (you should email the instructor)

Textbooks and resources:

There are no required textbooks but the following are useful:

GDB reference:

Softwares for labs: