Security Technologies in the Cyberspace
Syllabus
Instructor: Wenfei Wu
Class Time: 1:30-3:05PM every Monday
TA: Check the
Web Learning Portal
Textbook:
- Understanding Cryptography - A Textbook for Students and Practitioners, by Christof Paar and Jan Pelzl
- Computer Security: Principles and Practice, by Lawrie Brown and William Stallings
Reference Book:
- A Graduate Course in Applied Cryptography, by Dan Boneh and Victor Shoup
Office Hour: Make reservation in my
calendar
Contents
Upcoming class:
- Introduction and One Time Pad
- Stream Cipher
- Block Cipher
- Message Authentication Code and Hash Function
- Authenticated Encryption
- Key Exchange and Public Key Encryption (RSA)
- Public Key Encryption (ElGamal) and Digital Dignature
- Certificate and Password System
- Cryptocurrency and Anonymous Networks
- Access Control List and Trusted Execution Environment
- Multi-Party Computation
- Homomorphic Encryption
- Zero-knowledge Proof
- Software Stack Overflow
- Machine Learning Security
- To be continued
Mid-term Project
Contact:
Lao Chon Lam
Timeline:
- Before 04/01 11:59PM:
- Choose a primtive in the project
- Reserve it on the "Class Discussion" in the Web Learning Portal
- Notify Lao Chon Lam about your choice by email.
- 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.
- Choose one crypto primitive implementation: AES, RSA, ECC, DSA, PSS, SHA-1, MD5, X.509 Certificate
- 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.
- Profile the primitive you choose
- (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.
- List parameters in your experiment, e.g., message length, randomness of messages/keys, and any other parameters
you can think up.
- The metrics to profile them, e.g., encryption/decryption speed, memory usage, and any other metrics you can think up.
- Write a report
- The primitive you choose, and the parameters in your experiment
- The environment in your experiment: the hareware of your computer, the OS, and the library you use.
- The metrics you measured in your experiment.
- 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.