95-804 Introduction to Applied Cryptography

(12 Units)      

      

                In this course we will study the mathematics and programming associated with selected topics from public key cryptography.

 

                The course will include:

 

* A discussion of the general principles of public key encryption and digital signatures;

 

* The mathematical underpinnings of the basic algorithms;

 

* Implementation projects using some of the popular public key algorithms.

 

                Mathematical topics will include primes and unique factorization, GCD's and the Euclidean Algorithm, basic modular arithmetic, inversion using the Extended Euclidean Algorithm, efficient calculation of large powers in modular arithmetic, Fermat's Little Theorem (ap-1 mod p = 1), The Rabin-Miller Test, and discrete logarithms. With this background, public key methods based on factorization and discrete logarithms will be discussed.

 

                We will also study topics in cryptography from a Java programming perspective. We will include both "bare hands" implementation of basic cryptographic algorithms using Java's primitive types, Java's BigInteger class, and projects involving high-level tools such as the Java Cryptographic Extension API(JCE API), and IBM's XML Security Suite.

 

                Prerequisite: It will be assumed that the student has basic Java programming skills and is enthusiastic about mathematics and programming.

 

                Instructors: Frank H. Beatrous, Michael J. McCarthy