【密码学百科】填充方案:PKCS#1 v1.5、OAEP 与 PSS

💡 原文中文,约13500字,阅读约需32分钟。
📝

内容提要

填充在密码学中至关重要,尤其在RSA加密中。填充方案通过引入随机性和结构化格式,解决了确定性加密的安全问题。PKCS#1 v1.5的设计缺陷导致了Bleichenbacher攻击,暴露了填充的脆弱性。现代密码学逐渐采用KEM和AEAD等新方案,以提高安全性。

🎯

关键要点

  • 填充在密码学中至关重要,尤其在RSA加密中。
  • 填充方案通过引入随机性和结构化格式,解决了确定性加密的安全问题。
  • PKCS#1 v1.5的设计缺陷导致了Bleichenbacher攻击,暴露了填充的脆弱性。
  • 现代密码学逐渐采用KEM和AEAD等新方案,以提高安全性。
  • 原始RSA存在根本缺陷,导致同一明文产生相同密文,违反不可区分性要求。
  • 填充方案通过引入随机性和结构化格式,确保同一明文每次加密产生不同密文。
  • PKCS#1 v1.5是最早被广泛采用的RSA填充标准,但存在安全漏洞。
  • Bleichenbacher攻击利用填充正确性预言机,攻击者可以恢复任意密文对应的明文。
  • Bleichenbacher攻击的过程包括初始化、搜索符合条件的乘数、区间收窄和明文恢复。
  • PKCS#1 v1.5签名填充存在宽松解析导致的伪造签名风险。
  • OAEP是为了解决PKCS#1 v1.5的安全缺陷而提出的填充方案。
  • Fujisaki-Okamoto变换通过引入哈希函数提升公钥加密方案的安全性。
  • PSS是为RSA签名提供安全保证的概率签名方案。
  • 对称加密填充问题同样重要,PKCS#7是常用的对称加密填充方案。
  • 现代密码学正在系统性地消除填充这一容易出错的环节,采用KEM和AEAD等新方案。
  • 理解填充方案的设计缺陷和攻击原理对于维护遗留系统的安全至关重要。

延伸问答

填充在密码学中有什么重要性?

填充在密码学中至关重要,尤其在RSA加密中,通过引入随机性和结构化格式,解决了确定性加密的安全问题。

PKCS#1 v1.5的设计缺陷是什么?

PKCS#1 v1.5的设计缺陷导致了Bleichenbacher攻击,暴露了填充的脆弱性,使攻击者能够恢复任意密文对应的明文。

什么是Bleichenbacher攻击?

Bleichenbacher攻击是一种利用填充正确性预言机的攻击方式,攻击者可以通过查询来恢复任意密文的明文。

OAEP填充方案是如何改进PKCS#1 v1.5的?

OAEP通过引入双轮Feistel变换和哈希函数,解决了PKCS#1 v1.5的安全缺陷,确保了更高的安全性。

PSS签名方案的优势是什么?

PSS签名方案通过引入随机盐值,提供了与OAEP相同的安全保证,避免了确定性签名的安全风险。

现代密码学如何应对填充问题?

现代密码学逐渐采用KEM和AEAD等新方案,系统性地消除填充这一容易出错的环节,提高安全性。

➡️

继续阅读