CS463 Cryptography and Data Security

3 + 0
  • CS311
  • MATH307
Orion Lawlor
ELIF 134
Office Hours
Meeting Time
Chapman 104
Course Website
Required Texts

Course Description

Specialized study of cryptography and its application in securing data systems, with an emphasis on applied cryptography. Major topics include history of cryptography (such as the Ceaser and Vigenère ciphers) and cryptanalysis (such as frequency analysis or man in the middle attack), and the big three classes of work: symmetric ciphers, asymmetric ciphers, and hashing algorithms. Secret-key symmetric encryption schemes covered include RC5 or AES, private and public key asymmetric cryptography systems include RSA and the signature algorithms DSA and ECDSA, cryptographic hashes include MD5 and SHA-256. We will see how these are used for message authentication, key distribution and management, digital currencies, and cryptographically securing network protocols. The discrete math prerequisite, Math 307, is needed because cryptographic systems typically operate on large integer values, and a robust mathematical background is required to follow the proofs of why the systems work. No background in group theory is required, but we will cover work in prime fields such as RSA encryption, and elliptic curve theory and practice. The programming prerequisite, CS 311, is needed because we will be examining these systems by writing real code for real machines. Any programming language is acceptable, although most examples will be in C++ or Python.

Tentative Schedule

    • Data Security and Keeping Secrets
    • Alaska Civil Rights Day (no classes, most offices closed)
    • RC5: Rivest Cipher 5
    • Histograms, probability & statistics
    • Measuring Entropy: Information Theory
    • Random number generation in theory & practice
    • Feistel Structured Ciphers and the Data Encryption Standard (DES) of 1977 (Last day to pay or drop)
    • Secure Hash Algorithm SHA-256
    • How To Hash Passwords (de-identification)
    • Practical uses for Cryptographic Hashing & Merkle Trees
    • Math: Galois fields of prime order
    • Exchanging Secret Keys with Diffie-Hellman
    • Fast Binary Multiplication/Exponentiation Algorithm
    • Deadline to apply for spring 2015 graduation
    • Math: (extended) Euclidean Algorithm and prime field inverses
    • Public Key Encryption: RSA
    • Known Flaws in RSA, and How to Fix Them
    • Digital signature algorithm: DSA
    • HTTPS Certificate Formats & Key Signing Requests
    • Certificate Generation & Checking with OpenSSL
    • A step backward: crypto in real life
    • Physical Security: Locks, Armor, and Thermite
    • Midterm exam due
    • Project 1 presentations
    • Project 1 presentations
    • Project 1 presentations (Last day to Withdraw)
    • Spring break (no classes this week)
    • Groups, Binary Galois Fields, and AES
    • AES in practice: tables
    • AES side-channel attacks and countermeasures
    • Elliptic Curve Cryptography: Curve Points and Generators
    • Elliptic Curve Diffie-Hellman-Merkle key exchange
    • Elliptic Curve Digital Signature Algorithm
    • Cryptocurrency theory: technology meets morality
    • ECDSA and BitCoin addresses
    • Alternative cryptocurrencies & the battle for miners
    • Steganography: the side-channel strikes back
    • Whole-Disk Encryption
    • Holomorphic encryption: computing in ciphertext
    • High-performance crypto: SIMD, Multicore, and GPU
    • Futureproofing crypto: quantum computers
    • SpringFest (no classes)
    • Project 2 presentations
    • Project 2 presentations
    • Project 2 presentations
    • Course review (Last regular class)
    • Final exam, 3:15-5:15pm

Grading Policies

Weight Description
5% Attendance and class participation, graded at random intervals throughout the semester
15% Project 1, an independent project, typically due near the time of the Midterm exam
15% Project 2, due near the Final exam
20% Midterm Exam, due shortly before spring break
20% Final Exam
25% Homework problems, to be assigned through the semester

Grades will be assigned based on the following percentage intervals:

[99%, 100%)

[93%, 99%)
[90%, 93%)
[87%, 90%)

[83%, 87%)
[80%, 83%)
[77%, 80%)

[73%, 77%)
[70%, 73%)
[67%, 70%)

[63%, 67%)
[60%, 63%)
[0%, 60%)

Late Work Policy

Late work will not be graded, unless it is due to circumstances beyond your control, or if you turn it in before I begin grading.  I may begin grading at any time after the due date, even 12:01am the next day (grading is an effective treatment for insomnia!).  You are encouraged to inquire if I have begun grading yet, since this acts as a reminder for me to do so.


Students are expected to be at every class meeting on time, and are responsible for all class content, whether present or not. If absence from class is necessary, in-class work (other than quizzes) and homework may be made up only if the instructor is notified as soon as possible; in particular, absences due to scheduled events must be arranged ahead of time. Academic dishonesty will not be tolerated, and will be dealt with according to UAF procedures. Students in this class must pay the CS lab fee.

UAF academic policies http://www.uaf.edu/catalog/current/academics

CS Department policies http://www.cs.uaf.edu/departmental-policies/

Disabilities Services:

The UAF Office of Disability Services implements the Americans with Disabilities Act (ADA), and ensures that UAF students have equal access to the campus and course materials. I will work with the UAF Office of Disability Services (208 WHITAKER BLDG, 474-5655) to provide reasonable accommodation to students with disabilities.