This course investigates advanced topics in cryptography. It begins with an overview of necessary background in algebra and number theory, private- and public-key cryptosystems, and basic signature schemes. The course will cover number theory and basic theory of Galois fields used in cryptography; history of primality algorithms and the polynomial-time test of primality; discrete logarithm based cryptosystems including those based on elliptic curves; interactive protocols including the role of zero-knowledge proofs in authentication; construction of untraceable electronic cash on the net; and
quantum cryptography, and one or more of digital watermarking, fingerprinting and steganography. Programming will be required. (CSCI 662 or (CSCI 462 and permission of instructor))
Course Outcomes
Students should be able to explain and discuss the main theorems
and algorithms in number theory used in cryptography.
Evaluation: Assessed by homeworks, programming exercises and final exam.
Students should be able to explain, discuss and experiment with
the main cryptosystems, authentication methods and other protocols.
Evaluation: Assessed by homeworks, programming exercises and final exam.
Students should be able to evaluate possibilities and limitations of practical
use of the main cryptographic algorithms and demonstrate an understanding
of the relation of cryptography to security.
Evaluation: Assessed by homeworks, programming exercises and final exam.