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
- 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
- To understand the number theoretic foundations of modern
cryptography and the principles behind their security.
- To implement and analyze cryptographic and number theoretic
- To be able to use Maple to explore mathematical concepts and
- 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.
- Undergraduate data structures course (CS 260)
- Courses in linear algebra (MATH 201 or equivalent), discrete
mathematics (MATH 221 or equivalent).
- Jeremy Johnson
Office: 139 University Crossings
phone: (215) 895-2893
e-mail: jjohnson AT cs DOT drexel DOT edu
office hours: M 2-4 and W 2-4 (UC 139). Additional hours by appointment.
- Ken Fox
Office Hours: F 12-2 (CS Student Resource Center)
- Meeting Time
- MW 9:00-10:20 in Univ. Crossings 153
- 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.
- Wade Trappe and Lawrence Washington,
Introduction to Cryptography with Coding Theory,
2nd Edition, Prentice Hall, 2006.
- 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.
- Students will be required to read several additional
- Maple Computer Algebra System
- Integer and polynomial arithmetic
- Euclidean algorithm and continued fractions
- Modular Arithmetic, Fermat's theorem, Chinese Remainder Theorem
- Symmetric key cryptosystems (DES, AES)
- Public-key cryptosystems (RSA, El Gamel)
- Side chanel attacks
- Primality testing
- Integer factorization
- Cryptographic protocols
- Digital cash
- Homomorphic encryption
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.
- Class Participation (25%)
- Homework Assignments (75%)
Grades are based on a curve with the mean normalized to a B provided
the mean performance shows competency of the material.
- Reference Books
- Maple Getting Started Guide.
- Maple Users Manual.
- Maple Introductory Programming Guide.
- Maple Advanced Programming Guide.
- Web Pages
- Waterloo Maple
- Maple Student Center
- Maple Application Center
- SymbolicNet --
Symbolic Mathematical Computation Information Center
- The Prime Pages
- GIMPS: The Great Internet
Mersenne Prime Search
See Piazza Discussion Forum.
Look Here for Important
This list is subject to change.
- Week 1 (Introduction - Chapter 2)
- Jan. 4, 2016
(Introduction to Cryptography and Cryptanalysis)
- Jan. 6, 2016
(Polyalphabetic Substitution Cyphers)
- Week 2 (Introduction to Modern Cryptography and Basic Number Theory - Chapter 3 and 6 )
- Jan. 11, 2016
(Introduction to Modern Cryptography)
- Jan. 13, 2016 (Modular Arithmetic and Fast Powering)
- Week 3 (Modular Arithmetic, Linear Algebra and Matrices - Chapter 2 and 3)
- (Univ. Holiday) Jan. 18, 2016
- Jan. 20, 2016
(Linear Algebra and Hill Ciphers)
- Week 4 (RSA - Chapter 6 )
- Jan. 25, 2016 (RSA Public Key Encryption)
- Jan. 27, 2016 (Complexity of gcd and Powering)
- Week 5 (Attacks on RSA - Chapter 6)
- Feb. 1, 2016 (Attacking RSA)
- Feb. 3, 2016 (Timing Attacks on RSA)
- Week 6 (Symmetric Key Encryption - Chapters 4 and 5)
- (Maple Lab) Feb. 8, 2016
- Feb. 10, 2016
(Data Encryption Standard)
- Week 7 (Diffie-Hellman Key Exchange - Chapters 7 and 9)
- Feb. 15, 2016
(El Gamal Public Key Encryption and Diffie-Hellman Key Exchange)
- Feb. 17, 2016
(Collision Algorithms and the Discrete Log Problem)
- Week 8 (Primality Testing - Chapter 6)
- Feb. 22, 2016
(Unique Factorization, the Sieve of Eratosthenes and the Prime Number Theorem)
- Feb. 24, 2016
(Strong Pseudoprimes and a Probabalistic Primality Test)
- Week 9 (Probabalistic Encryption - Chapter 3 and 8)
- Feb. 29, 2016
(Quadratic Reciprocity and the Solovay-Strassen Primality Test)
- Mar. 2, 2016
(Blum Coin Flipping Protocol and Goldwasser-Micali Probabalistic Encryption)
- Week 10 (Integer Factorization - Chapter 6)
- Mar. 7, 2016
(Introduction to Integer Factorization Algorithms)
- Mar. 9, 2016
Programs and Worksheets
- Lab 1 - lab1.mw - practice Maple lab on list processing, shift ciphers, modular arithmetic, and affine cyphers.
- Lab 2 - lab2.mw - practice Maple lab on linear algebra, modular matrices and Hill ciphers.
- Lab 3 - lab3.mw - practice Maple lab on the RSA algorithm.
- Lab 4 - lab4.mw - practice Maple lab on RSA attacks.
- Lab 5 - lab5.mw - practice Maple lab on Probabalistic Primality testing.
- Lab 6 - lab6.mw - practice Maple lab on integer factorization (the quadratic sieve).
Created: 9/26/05 (revised 1/11/16) by email@example.com
- Assignment 1 (Vigenere Cipher) - assign1.mw (15%) - Due Mon. Jan. 25 at midnight.
- Assignment 2 (Hill Ciphers and RSA) - assign2.mw (15%) - Due Mon. Feb. 8 at midnight.
- Assignment 3 (CRT and RSA attacks) - assign3.mw (15%) - Due Tue. Feb. 23 at midnight.
- Assignment 4 (Primitive roots, El Gamal and Coin Flipping) - assign4.mw (15%) - Due Tue. Mar. 8 at midnight.
- Assignment 5 (Discrete Logarithms and Digital Cash) - assign5.mw (15%) - Due Wed. Mar. 16 at midnight.