Cryptography
The primary focus of this course is on definitions and constructions of various cryptographic objects, such as pseudorandom generators, encryption schemes, digital signature
schemes, message authentication codes, block ciphers, and others time permitting. The class tries to understand what security properties are desirable in such objects, how to
properly define these properties, and how to design objects that satisfy them. Once a good definition is established for a particular object, the emphasis will be on
constructing examples that provably satisfy the definition. Thus, a main prerequisite of this course is mathematical maturity and a certain comfort level with proofs. Secondary
topics, covered only briefly, are current cryptographic practice and the history of cryptography and cryptanalysis.