公钥加密:原理、实现与安全考量
1. 解密算法错误分析
在某些解密算法中,可能会出现两种错误情况:一是 ˆm ∈Z∗N 过大;二是 m′ ∈{0, 1}ℓ+k 末尾 0 的数量不足。在标准的构造中,接收方在这两种情况下应返回相同的错误(记为 ⊥)。但在一些实现里,接收方会根据出错步骤输出不同错误。这一额外的单比特信息会引发选择密文攻击,攻击者仅需向泄露解密错误类型的预言机进行约 ∥N∥ 次查询,就能从相应密文中完整恢复出消息 m。这凸显了严格按照规范实现加密方案的重要性,因为方案的任何改动都可能使原有的证明和分析失效。
此外,即便在两种错误情况下返回相同错误,若返回错误的时间不同,攻击者仍可能判断出错误发生的位置。这表明攻击者不仅会关注算法的输入输出,还会利用旁道信息进行攻击。因此,实现时应确保两种错误情况下返回错误的时间相同。
2. 随机预言模型下的 CCA 安全 KEM
这里介绍一种基于 RSA 的密钥封装机制(KEM),它在随机预言模型下具有 CCA 安全性,并且被纳入了 ISO/IEC 18033 - 2 公钥加密标准。
与前一节的 RSA - OAEP 方案相比,该方案的主要优势在于构造和安全证明都较为简单。不过,在加密短消息时,它会产生更长的密文,因为它采用了 KEM/DEM 范式,而 RSA - OAEP 则不需要。但在加密长消息时,RSA - OAEP 也会作为混合加密方案的一部分使用,其效率与这里介绍的 KEM 方案相近。
该方案的公钥包含 ⟨N, e⟩ 以及一个函数 H : Z∗N →{0, 1}n 的规范,在分析中 H 会被建模为随机预言机。为封装密钥,发送方选择均匀的 r ∈Z∗N,然后计算密
订阅专栏 解锁全文
395



被折叠的 条评论
为什么被折叠?



