Security Technologies in the Cyberspace

Syllabus

Instructor: Wenfei Wu
Class Time: 1:30-3:05PM every Monday
TA: Check the Web Learning Portal
Textbook: Reference Book: Office Hour: Make reservation in my calendar

Contents

Upcoming class:
  1. Introduction and One Time Pad
  2. Stream Cipher
  3. Block Cipher
  4. Message Authentication Code and Hash Function
  5. Authenticated Encryption
  6. Key Exchange and Public Key Encryption (RSA)
  7. Public Key Encryption (ElGamal) and Digital Dignature
  8. Certificate and Password System
  9. Cryptocurrency and Anonymous Networks
  10. Access Control List and Trusted Execution Environment
  11. Multi-Party Computation
  12. Homomorphic Encryption
  13. Zero-knowledge Proof
  14. Software Stack Overflow
  15. Machine Learning Security
  16. To be continued

Mid-term Project

Contact: Lao Chon Lam
Timeline:
  1. Before 04/01 11:59PM:
    1. Choose a primtive in the project
    2. Reserve it on the "Class Discussion" in the Web Learning Portal
    3. Notify Lao Chon Lam about your choice by email.
  2. Before 04/17 11:59PM: Submit your report and code to Web Learning Portal
Project Description
In this project, we would benchmark various crypto primitives.
  1. Choose one crypto primitive implementation: AES, RSA, ECC, DSA, PSS, SHA-1, MD5, X.509 Certificate
  2. Choose an existing industrial library, e.g., Crypto++, pycrypto.
    You had better choose an advanced implementation, e.g., AES NI on Intel CPU, or GPU implementation.
  3. Profile the primitive you choose
    1. (High Priority) You are preferred to first search whether there are existing benchmarks in the industry and the academia to measure the implementation of these primitives. If there exists, use the benchmark first; otherwise, design your own experiment.
    2. List parameters in your experiment, e.g., message length, randomness of messages/keys, and any other parameters you can think up.
    3. The metrics to profile them, e.g., encryption/decryption speed, memory usage, and any other metrics you can think up.
  4. Write a report
    1. The primitive you choose, and the parameters in your experiment
    2. The environment in your experiment: the hareware of your computer, the OS, and the library you use.
    3. The metrics you measured in your experiment.
    4. The visualized figure your measured metrics. (Experiments need to be repeated to get the average and the error bar.)

Final Project and Take-home Exam

Posted on the Web Learning Portal.