Algorithmic Number Theory and Cryptography (CS 303)

Announcments  Lectures  Programs  Course Resources   Assignments and Solutions  Grading Policy
Course Description
Covers fundamental algorithms for integer arithmetic, greatest common divisor calculation, modular arithmetic, and other number theoretic computations. Algorithms are derived, implemented and analyzed for primality testing and integer factorization. Applications to cryptography are explored including symmetric and public-key cryptosystems. A cryptosystem will be implemented and methods of attack investigated.
Course Goals
To be able to implement and analyze algorithms for integer factorization and primality testing. To be able to use a system like Maple to explore concepts and theorems from number theory. To understand fundamental algorithms from symmetric key and public key cryptography.
Course Objectives
• To understand fundamental number theoretic algorithms such as the Euclidean algorithm, the Chinese Remainder algorithm, binary powering, and algorithms for integer arithmetic.
• To understand fundamental algorithms for symmetric key and public key cryptography.
• To understand the number theoretic foundations of modern cryptography and the principles behind their security.
• To implement and analyze cryptographic and number theoretic algorithms.
• To be able to use Maple to explore mathematical concepts and theorems.
Audience
Undergraduate computer science, computer engineering, mathematics, and students interested in security, cryptography and applied number theory. The course will cover both the underlying mathematical theory and practice as algorithms will be implemented and analyzed (the Maple computer algebra system will be used for implementation of algorithms and exploration of concepts). For computer science students, the course counts towards the numeric and symbolic computing and computer and network security tracks.
Prerequisites
Undergraduate data structures course (CS 260)
Courses in linear algebra (MATH 201 or equivalent), discrete mathematics (MATH 221 or equivalent).
Instructor
Jeremy Johnson
Office: 139 University Crossings
phone: (215) 895-2893
e-mail: jjohnson AT cs DOT drexel DOT edu
office hours: MWF 3-4 W (UC 139). Additional hours by appointment.
TA
Joseph Urbano
Office Hours: T 10-12 (CLC)
e-mail: jau35@drexel.edu
Meeting Time
MWF 9:00-9:50 in Science Center (SC) 3401 Market 326
Course Mailing List
See Piazza Discussion Forum for announcements and to ask questions and discuss course material.

Please use Piazza for questions and discussions related to the course. If you know the answer to someone's question, please feel free to jump in, as long as well it is not an answer to a homework problem. You should check the discussion and announcements regularly. Please do NOT post answers to homework.
Textbook
1. Jeffrey Hoffstein, Jill Pipher, and Joseph Silverman An Introduction to Mathematical Cryptography, 2nd Edition, Springer, 2014.
2. Every student must have access to Maple. Course notes will be provided on the web page as Maple worksheets that can not be read without Maple. Maple is available in the CS labs as well as Drexel labs, and is available for free to Drexel students as part of the campus site license.

Topics

1. Maple Computer Algebra System
2. Integer and polynomial arithmetic
3. Euclidean algorithm and continued fractions
4. Modular Arithmetic, Fermat's theorem, Chinese Remainder Theorem, Discrete Log
5. Public-key cryptosystems (RSA, El Gamel)
6. Side chanel attacks
7. Primality testing
8. Integer factorization
9. Elliptic Curve Cryptography
10. Lattice Cryptography
11. Cryptographic protocols
12. Digital cash
13. Homomorphic encryption

1. In Class Labs and Quizzes (40%)
2. Homework Assignments (60%)
Assignments will be returned on a regular basis to provide feedback to students. All students must do their own work. Any violation of this will result in a zero grade for the assignment. A second violation will lead to an F for the course.

Grades are based on a curve with the mean normalized to a B provided the mean performance shows competency of the material. Students will receive the higher grade with or without a curve.

Resources

Reference Books
1. Maple Getting Started Guide.
2. Maple Users Manual.
3. Maple Introductory Programming Guide.
Web Pages

Look Here for Important Announcements

See Piazza Discussion Forum.

Lectures

This list is subject to change.
1. Week 1 (Introduction - Substitution Cyphers and Classical Cryptography)
2. Week 2 Introduction to Maple and Modular Arithmetic
1. Introduction to Maple and Maple worksheets
2. Modular Arithmetic
3. Week 3 (Number Theoretic Algorithms and Modern Cryptography - Chapter 1 and 3)
1. Euclidean Algorithm and Fast Powering
2. Introduction to Modern Cryptography and RSA Public Key Encryption
4. Week 4 (Primality Testing - Sections 3.4 and 3.9)
5. Week 5 (Probabalistic Encryption - Section 3.10)
6. Week 6 (Integer Factorization - Sections 3.5-3.7 )
7. Week 7 (Attacks on RSA - Chapter 3 )
8. Week 8 (Diffie-Hellman Key Exchange - Chapter 2)
9. Week 9 (Thanksgiving)
1. Catch Up lecture
10. Week 10 (Elliptic Curve Cryptography - Chapter 5)
11. Week 11 (Lattice Based Cryptography - Chapter 6)
1. (Merkle-Hellman Cryptosystem)
2. Introduction to Lattices

Programs and Worksheets

• Lab 1 - lab1.mw - Introduces Maple programming and data structures and reviews shift and substitution cyphers.
• Lab 2 - lab2.mw - Further introduces Maple programming and data structures, reviews modular arithmetic and introduces a generalization of the shift cypher called an affine cypher.
• Lab 3 - lab3.mw - Reviews the RSA public key cryptosystem, provides an implementation of the RSA algorithm and asks students to use Maple's factoring algorithm to break RSA for a modest size public key.
• Lab 4 - lab4.mw - Explores various probabilistic primality tests and reviews the theory behind them.
• Lab 5 - lab5.mw - Explores quadratic reciprocity and a coin flipping protocol.
• Lab 6 - lab6.mw - Explores Dixon's integer factorization algorithm.
• Lab 7 - lab7.mw - Explores the quadratic sieve integer factorization algorithm.

Assignments

• Assignment 1 (Vigenere Cypher)- assign1.mw - Due Wed. Oct. 11 at 11:59pm
• Assignment 2 (Hill Cypher)- assign2.mw - Due Wed. Oct. 25 at 11:59pm
• Assignment 3 (Square Roots, Goldwasser-Micali and Zero Knowledge Proofs))- assign3.mw - Due Wed. Nov. 15 at 11:59pm
• Assignment 4 (El Gamal and Discrete Logs))- assign4.mw - Due Wed. Nov. 29 at 11:59pm
• Assignment 5 (Elliptic Curve Cryptography)- assign5.mw - Due Fri. Dec. 8 at 11:59pm
• Final Assignment (Lattice Based Cryptography)- assign6.mw - Due Wed. Dec. 13 at 11:59pm

Solutions

• See piazza

Created: 9/26/05 (revised 9/24/17) by jjohnson@cs.drexel.edu