# 信息安全与密码学博硕士：应该掌握的52个知识点

Bristol大学的密码安全工作组为密码学和信息安全相关的博士准备了52个基本知识点，详细见该网站

密码学是一个高度跨学科的领域，包含纯数学、计算机科学以及电子工程等多方面的知识。考虑读研读博的学生专业知识背景不一，Bristol大学对这方面的知识点进行了一个全面的总结和覆盖。

52个知识点，Bristol大学推荐所有博一学生花一年的时间应该基本掌握，也就是差不多一个星期掌握一个知识点。掌握这些知识点后，对之后的课堂学习、项目执行、论文研读、科研协作、参加国际会议、与密码学者沟通会大有益处；要不然，可能一直处于懵懵懂懂的状态，荒废学业。

## Computer Engineering ([E]) 计算机工程

### 1.What is the difference between the following?

- A general-purpose processor.
- A general-purpose processor with instruction-set extensions.
- A special-purpose processor (or co-processor).
- An FPGA.

### 2.What is the difference between a multi-core processor and a vector processor?

### 3.Estimate the relative computational and storage capabilities of...

- a smart-card
- a micro-controller (i.e. a sensor node)
- an embedded or mobile computer (e.g., a mobile phone or PDA)
- a laptop- or desktop-class computer.

## Theoretical Computer Science ([F]) 计算科学理论

### 4.What is meant by the complexity class P?

### 5.What is meant by the complexity class NP?

### 6.How can we interpret NP as the set of theorems whose proofs can be checked in polynomial time?

### 7.How does randomness help in computation, and what is the class BPP?

### 8.How does interaction help in computation, and what is the class IP?

### 9.What are Shannon's definitions of entropy and information?

## Mathematical Background ([A,B]) 数学背景

### 10.What is the difference between the RSA and the Strong-RSA problem?

### 11.What are the DLP, CDH and DDH problems?

### 12.What is the elliptic curve group law?

### 13.Outline the use and advantages of projective point representation.

### 14.What is a cryptographic pairing?

## Basic (Practical or Deployed) Cryptographic Schemes and Protocols ([A]) 基础密码机制与协议

### 15.Describe the key generation, encryption and decryption algorithms for RSA-OAEP and ECIES.

### 16.Describe the key generation, signature and verification algorithms for DSA, Schnorr and RSA-FDH.

### 17.Describe and compare the round structure of DES and AES.

### 18.Draw a diagram (or describe) the ECB, CBC and CTR modes of operation.

### 19.Describe the Shamir secret sharing scheme.

### 20.How are Merkle-Damgaard style hash functions constructed?

## Cryptographic Implementation Details ([A]) 密码实现细节

### 21.How does the CRT method improve performance of RSA?

### 22.How do you represent a number and multiply numbers in Montgomery arithmetic?

### 23.Write a C program to implement Montgomery arithmetic.

### 24.Describe the binary, m-ary and sliding window exponentiation algorithms.

### 25.Describe methods for modular reduction using "special" primes that define and .

### 26.Describe the NAF scalar multiplication algorithm.

## Security Definitions and Proofs ([A,B,C]) 安全性定义的与证明

### 27.What is the AEAD security definition for symmetric key encryption?

### 28.What is the IND-CCA security definition for public key encryption?

### 29.What is the UF-CMA security definition for digital signatures?

### 30.Roughly outline the BR security definition for key agreement?

### 31.Give one proof of something which involves game hopping

### 32.Outline the difference between a game based and a simulation based security definition.

## Mathematical Attacks ([A,B]) 数学理论攻击

### 33.How does the Bellcore attack work against RSA with CRT?

### 34.Describe the Baby-Step/Giant-Step method for breaking DLPs

### 35.Give the rough idea of Pollard rho, Pollard "kangaroo" and parallel Pollard rho attacks on ECDLP.

### 36.What is meant by index calculus algorithms?

### 37.Roughly outline (in two paragraphs only) how the NFS works.

## Practical Attacks ([D]) 现实攻击

### 38.What is the difference between a covert channel and a side-channel?

### 39.What is the difference between a side-channel attack and a fault attack?

### 40.What is usually considered the difference between DPA and SPA?

### 41.Are all side channels related to power analysis?

### 42.Look at your C code for Montgomery multiplication above; can you determine where it could leak side channel information?

### 43.Describe some basic (maybe ineffective) defences against side channel attacks proposed in the literature for AES.

### 44.Describe some basic (maybe ineffective) defences against side channel attacks proposed in the literature for ECC.

### 45.Describe some basic (maybe ineffective) defences against side channel attacks proposed in the literature for RSA.

## Advanced Protocols and Constructions ([A,B]) 高级协议与构建

### 46.What does correctness, soundness and zero-knowledge mean in the context of a Sigma protocol?

### 47.What is the Fiat-Shamir transform?

### 48.What is the purpose and use of a TPM?

### 49.Describe the basic ideas behind IPSec and TLS.

### 50.What is the BLS pairing based signature scheme?

### 51.What is the security model for ID-based encryption, and describe one IBE scheme.

### 52.Pick an advanced application concept such as e-Voting, Auctions or Multi-Party Computation. What are the rough security requirements of such a system?

## 参考文献

- [A] The Nigel's book is deliberately informal and tries to give quick flavours of what is important in theory and practice.
- [B] The Katz,Lindell book is a better formal introduction to modern theoretical cryptography but it is less good in its treatment of what is important in the real world (e.g. the coverage of AES, ECC, implementation, etc is quite limited).
- [C] The Goldreich's two volume book is a very good introduction to the deep theory,but deliberately does not cover practical cryptography.
- [D] The Elisabeth's DPA bookis the best introduction to all things about side-channels.
- [E] The Dan's book a good starting place for computer architecture and learning VHDL.
- [F] The Goldreich's book on complexity theory is a good place to start. Its approach is much more down-to-earth and sensible than other approaches (i.e. P vs NP is presented in terms of is it easier to check or find proofs?)