现代密码学基础概念
1. 现代密码学的定义
现代密码学是一门科学,研究如何保护数字信息、系统和分布式计算免受他人攻击,涉及加密、签名、身份验证、数字货币等领域。
2. 私钥加密
经典密码学主要关注设计和使用密码(codes,也称为加密套件 ciphers)。通常情况下,通信双方A、B会共享一个密钥k,用于加密和解密,这也被称之为对称加密。

通常情况下,加密系统具有以下结构:
Gen(k):生成密钥;
Enc(k, m):使用密钥加密消息 m;
Dec(k, c):使用密钥解密密文 c;
正确性要求:Dec(k, Enc(k, m)) = m
Kerckhoffs 法则
The cipher method must not be required to be secret, and it must be able to fall into the hands of the enemy without inconvenience.
加密方式(cipher)无需保密,且必须能够在落入敌手时不会对现有的加密通信造成影响。
简单来说就是,加密算法可以公开,且公开后仍然能够保证通信的安全性。通信的安全性主要依赖于密钥的保密性。
3. 著名的密码体系
凯撒密码(Caesar Cipher):固定移位,无密钥,极易破解。
移位密码(Shift Cipher):26种密钥,容易被穷举攻击。
单表替换密码(Monoalphabetic Substitution Cipher):密钥空间大,但容易被频率分析攻击。
维吉尼亚密码(Vigenère Cipher):使用多组移位增强安全性,但仍能通过频率分析、Kasiski 方法、Index of Coincidence 攻击。
4. 现代密码学原则
4.1. 形式定义
所有密码学体系都需要具有清晰的定义。没有清晰的安全定义就无法判断加密系统是否“安全”。
例如,安全的加密方式应该被如下定义:
- 攻击者应当很难从密文 c 中推断出密钥 k。
- 攻击者应当很难从密文 c 中推断出全部明文 m。
- 攻击者应当很难从密文 c 中推断出任何部分明文 m’。
- 攻击者应当很难从密文 c 中推断出明文 m 的某些特定属性。
针对上述的定义,攻击者具有以下的攻击方式
- 仅密文攻击
- 已知明文攻击
- 选择明文攻击
- 选择密文攻击
4.2. 精确假设
大多数安全性证明都依赖未被证明的数学难题(如离散对数、因式分解等)。
这些假设必须明确、可验证,方便比较不同方案。
4.3. 安全性证明
与“凭直觉设计”的方式相对,现代密码学强调通过严格数学证明来判断安全性。但前提是定义与假设必须合理。