基础密码系统全解析
1. 身份识别与密钥问题
在密码通信中,存在一个关键问题:双方如何在不确认对方身份且不泄露共同密钥的情况下使用正确密钥?以Alice和Bob为例,Bob如何区分Alice和Eve呢?在现实世界中,我们可以通过声音、面孔识别他人,介绍自己时还能使用身份证或护照。而在密码协议里,Alice和Bob也需要类似工具来识别彼此,这类电子工具是存在的。
2. 分组密码
2.1 分组加密方案定义
分组加密方案(分组密码)S由四个概率算法组成,即S = (set - up, keygen, enc, dec)。这里有一个安全参数n ∈ N,对于每个n,有密钥空间Kn、明文空间Pn和密文空间Cn,它们都是有限且公开已知的,常由特定长度的位串组成。
- set - up :输入n,输出Kn、Pn、Cn的描述以及所使用的加密方案。
- keygen :N → K²,keygen(1ⁿ) = (sk, pk) ∈ Kⁿ²。
- enc :Kn × Pn → Cn,encₚₖ(x) = y。
- dec :Kn × Cn → Pn,decₛₖ(y) = z。
例如,set - up(3000) = (3000, “RSA”) 表示使用3000位的RSA,Pn = {0, 1}ⁿ 和Cn = {0, 1}ⁿ⁺¹ 由模RSA模数的二进制表示组成。keygen的输入是整数n,以一元形式表示为n个1的字符串。