Appearance
第4章:公钥加密与密钥交换
公钥与私钥
公钥密码允许加密者或验证者只持公开信息,秘密操作由私钥完成。它解决密钥分发中的部分问题,但公钥属于谁仍需认证。
安全假设应区分:离散对数要求从 恢复 ;CDH 要求从 计算 ;DDH 要求判断第三个群元素是否是 。某个群上的这些问题不能不加条件地视为等价。
Diffie–Hellman
在合适的循环群中,双方交换 、,分别计算 与 ,得到相同群元素。再通过带上下文的密钥派生函数生成会话密钥。
若没有身份认证,中间人可分别与双方交换自己的公钥材料,建立两条独立会话。因此裸 DH 抵抗某些被动窃听,不自动抵抗主动冒充。
ElGamal 的结构
私钥为 ,公钥 。对群中消息 ,随机取 ,输出
解密计算 。在适当群和 DDH 假设下可以证明 CPA 安全,但攻击者把 乘上 ,解密结果也乘上 ,所以原始构造具有可塑性,不能据此声称 CCA 安全。
RSA 与混合加密
RSA 选取 ,指数满足 。其代数关系支持陷门置换,但直接计算 是确定性的,还具有乘法结构,不能作为安全消息加密方案直接使用。
实践中用经过分析的编码与协议。混合加密先封装一个随机密钥,再用 AEAD 加密大消息。公钥层解决密钥建立,对称层高效处理数据;两层的关联、身份和上下文仍要纳入分析。
练习
- 写出中间人对裸 DH 的两次独立交换,说明双方各自算出了什么。
- 手算 ElGamal 正确性,并展示乘法篡改。
- 为什么 RSA 数学运算可逆不等于教科书 RSA 满足 CPA 安全?