最优非对称加密填充
编辑最优非对称加密填充,是一种密码填充方法。 它是 Feistel 网络的一种特殊形式,在随机预言模型中,可以使用任意陷门排列来构建语义安全的加密方法以抵抗选择的明文攻击。
过程(基本变体)
编辑设 n 是一个安全参数,k 0 如此之大以至于攻击者只能执行远少于 2 k 0 的计算步骤。
此外,设 F 是一系列陷门排列 f : { 0 , 1 } n ↦ { 0 , 1 } n 到具有 n位的消息,并且 k = n − k 0 是要传输的消息的长度。
变体
编辑通过对上述协议的简单修改,还可以实现 IND-CCA1 安全性,即针对选择密文攻击的安全性。 为此,消息 m 的长度减少为 k − k 1 位,并与 k 1 零连接。 解密时,检查重构值的形式是否正确,否则中止。
RSA OAEP
编辑开发 OAEP 的原因是找到一种使用 RSA 安全加密(在 IND-CCA2 安全意义上)的方法。 如果在 OAEP 中使用 RSA 作为陷门排列,则该方法称为 RSA-OAEP。 尽管 OAEP 在一般情况下不会实现 IND-CCA2 安全性,但 RSA-OAEP 在随机预言机模型和 RSA 假设下实现。
由于OAEP编码的结果是0到2 n 之间的一个数,n 位RSA模数 N小于 2 n ,有可能OAEP编码的结果比RSA取模的数值大。 然而,这绝不能发生,因为在这种情况下,解密不再清晰。 因此,在这种情况下,必须使用新的随机 r 重复 OAEP 编码。
RSA-OAEP 在 PKCS#1 和 RFC 3447 中标准化,其中使用的散列函数是过程的参数,即未指定。 在这些情况下,即没有随机 oracle,如果使用的散列函数是 t-wise 独立的,则 RSA-OAEP 在 phi 隐藏假设 IND-CPA 下是安全的。但是,在标准化期间进行了更改,这意味着该方法不再可证明有一件事是确定的:为了避免重复上面提到的OAEP编码,确定OAEP的结果必须比RSA模数短8位; 前 8 位用 0 填充。 解密时,接收方必须检查前 8 位是否为 0,否则中止。 如果攻击者可以区分解密是否由于这个原因或其他原因而中止,存在一种无需密钥即可恢复完整明文的攻击。 为此,他只需要对错误 oracle 进行大约 1000 次查询,它只输出解密尝试是否失败以及失败的原因。 例如,此类 oracles 可能会发生在 TLS/SSL 连接中,攻击也在实践中进行。
内容由匿名用户提供,本内容不代表vibaike.com立场,内容投诉举报请联系vibaike.com客服。如若转载,请注明出处:https://vibaike.com/342205/