Course code  CSCI5440 
Course title  Theory of Cryptography 密碼學理論 
Course description  The modern theory of cryptography studies the formal modelling and construction of computing systems that address security concerns. This course aims to introduce the rigorous methodology that underlies the design of such systems. Topics include: * Computational foundations: Averagecase hardness in NP, oneway functions * Pseudorandom number generators and pseudorandom functions * Zeroknowledge proofs and arguments * Generic protocols for secure multiparty computation * Trapdoor permutations and publickey encryption * Blackbox separations among cryptographic primitives. 現代密碼學理論研究關於安全性的建模與構造安全計算系統方面的問題。本科旨在介紹設計這類系統的嚴謹的方法學。內容包括： *計算基礎：NP問題的平均複雜性，單向函數 *偽隨機數生成器和偽隨機函數 *零知識證明系統輿論言 *安全多方計算的通用協議 *陷阱門置換和公鑰系統 *密碼原語間的黑盒式分離。 
Unit(s)  3 
Course level  Postgraduate 
Semester  1 or 2 
Grading basis  Graded 
Grade Descriptors  A/A: EXCELLENT – exceptionally good performance and far exceeding expectation in all or most of the course learning outcomes; demonstration of superior understanding of the subject matter, the ability to analyze problems and apply extensive knowledge, and skillful use of concepts and materials to derive proper solutions. B+/B/B: GOOD – good performance in all course learning outcomes and exceeding expectation in some of them; demonstration of good understanding of the subject matter and the ability to use proper concepts and materials to solve most of the problems encountered. C+/C/C: FAIR – adequate performance and meeting expectation in all course learning outcomes; demonstration of adequate understanding of the subject matter and the ability to solve simple problems. D+/D: MARGINAL – performance barely meets the expectation in the essential course learning outcomes; demonstration of partial understanding of the subject matter and the ability to solve simple problems. F: FAILURE – performance does not meet the expectation in the essential course learning outcomes; demonstration of serious deficiencies and the need to retake the course. 
Learning outcomes  Modern cryptography is the rigorous foundation of the security of all computer systems. After completing the course students should: • Be able to understand and produce cryptographic proofs of security, and to discover gaps in incomplete proofs. • Understand the strengths and weaknesses of the computational assumptions that underlie different cryptographic primitives, and the relations among these assumptions. • Know how to apply basic building blocks (e.g., pseudorandom generators, zeroknowledge arguments) in constructing more complex cryptographic functionalities. 
Assessment (for reference only) 
Project: 40% Short answer test or exam: 30% Homework or assignment: 30% 
Recommended Reading List  1. Jonathan Katz and Yehuda Lindell. Introduction to Modern Cryptography. Chapman & Hall / CRC, 2007. 2. Oded Goldreich. Foundations of Cryptography, volume 1: Basic Tools. Cambridge University Press, 2001. 3. Oded Goldreich. Foundations of Cryptography, volume 2: Basic Applications. Cambridge University Press, 2004. 4. Ronald Cramer, Ivan Damgard, and Jesper Buus Nielsen. Secure multiparty computation and secret sharing. Cambridge University Press, 2015. 5. Tutorials on the Foundations of Cryptography, Yehuda Lindell (editor). 6. Rafael Pass and abhi shelat. A course in cryptography. 7. Dan Boneh and Victor Shoup. A graduate course in applied cryptography. 
CSCIN programme learning outcomes  Course mapping 
Upon completion of their studies, students will be able to:  
1. identify, formulate, and solve computer science problems (K/S);  T 
2. design, implement, test, and evaluate a computer system, component, or algorithm to meet desired needs (K/S); 
T 
3. receive the broad education necessary to understand the impact of computer science solutions in a global and societal context (K/V);  T 
4. communicate effectively (S/V); 
P 
5. succeed in research or industry related to computer science (K/S/V); 
TP 
6. have solid knowledge in computer science and engineering, including programming and languages, algorithms, theory, databases, etc. (K/S);  T 
7. integrate well into and contribute to the local society and the global community related to computer science (K/S/V);  
8. practise high standard of professional ethics (V);  P 
9. draw on and integrate knowledge from many related areas (K/S/V); 

Remarks: K = Knowledge outcomes; S = Skills outcomes; V = Values and attitude outcomes; T = Teach; P = Practice; M = Measured 