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
publickey 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) 8952893
email: jjohnson AT cs DOT drexel DOT edu
office hours: M 34 and R 23 (UC 139). Additional hours by appointment.
 TA
 None
Office: (CS Student Resource Center)
email:
 Meeting Time
 TR 12:302:00 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.
 Textbook
 Jeffrey Hoffstein, Jill Pipher, and Joseph Silverman,
An Introduction to Mathematical Cryptography,
Springer, 2008.
 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
papers.
Topics
 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)
 Publickey cryptosystems (RSA, El Gamel)
 Coin flipping protocols (Blum)
 Primality testing
 Algorithms for integer factorization
Grading
 Class Participation (25%)
 Five Homework assignments (75%)
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.
Resources
 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
Essentials
 Maple
Programming
 Maple Application Center
 SymbolicNet 
Symbolic Mathematical Computation Information Center
 The Prime Pages
 GIMPS: The Great Internet
Mersenne Prime Search
Look Here for Important
Announcements
See Piazza Discussion Forum.
Lectures
This list is subject to change.
 Week 1 (Introducition  Chapter 1)
 April 2, 2013
(Introduction to Cryptography and Cryptanalysis)
 April 4, 2013
(Introduction to Modern Cryptography)
 Week 2 (Modular Arithmetic  Chapter 1 )
 April 9, 2013
(The Euclidean Algorithm)
 April 11, 2013 (Modular Arithmetic and Fast Powering)
 Week 3 (Linear Algebra and Cryptanalysis  Chapter 1)
 April 16, 2013 (Modular Arithmetic and Fast Powering)
 April 18, 2013
(Linear Algebra and Hill Cyphers)
 Week 4 (RSA  Chapters 1 and 3)
 April 23, 2013 (RSA Public Key Encryption)
 April 25, 2013 (Timing Attacks on RSA)
 Week 5 (DiffieHellman Key Exchange  Chapter 2)
 April 30, 2013
(El Gamal Public Key Encryption and DiffieHellman Key Exchange)
 May 1, 2013
(Collision Algorithms and the Discrete Log Problem)
 Week 6 (Primality Testing  Chapter 3)
 May 6, 2013
(Unique Factorization, the Sieve of Eratosthenes and the Prime Number Theorem)
 May 8, 2013
(Strong Pseudoprimes and a Probabalistic Primality Test)
 Week 7 (Probabalistic Encryption  Chapter 3 and 8)
 May 13, 2013
(Quadratic Reciprocity and the SolovayStrassen Primality Test)
 May 15, 2013
(Blum Coin Flipping Protocol and GoldwasserMicali Probabalistic Encryption)
 Week 8 (Integer Factorization  Chapter 3)
 May 20, 2013
(Introduction to Integer Factorization Algorithms)
 May 22, 2013
(Introduction to Integer Factorization Algorithms)
 Week 9 (Integer Factorization  Chapter 3)
 May 27, 2013
(Dixon's Algorithm)
 May 29, 2013
(Dixon's Algorithm)
 Week 10 (Attacks on RSA 8)
 April 18, 2013
(Polyalphabetic Substitution Cyphers)
 June 6, 2013
(Timing Attack)
Programs and Worksheets
 Lab 1  lab1.mw  practice Maple lab on substitution cyphers, modular arithmetic, and Hill cyphers.
Assignments and Exams
 Assignment 1 (Cryptanalysis of Hill Cyphers)  assign1.mw (15%)  Due Sat. April 27 at midnight.
 Assignment 2 (Timing Attack on RSA)  assign2.mw (15%)  Due Sat. May 11 at midnight.
 Assignment 3 (Coin Flipping and Probabalistic Encryption)  assign3.mw (15%)  Due Thur. May 23 at midnight.
 Assignment 4 (Discrete Log and Pollard Rho)  assign4.mw (15%)  Due Tue. June 4 at midnight.
 Assignment 5 (Integer Factorization and Quadratic Sieve)  assign5.mw (15%)  Due Tue. June 11 at midnight.
Created: 9/26/05 (revised 4/18/13) by jjohnson@cs.drexel.edu