【发布时间】:2010-06-07 17:13:44
【问题描述】:
我heard说“PKCS#1 v2.0 加密通常称为OAEP 加密”。
在我的项目中使用它之前,我需要某种“官方”文档来说明这一点。我试图找到它没有成功。知道在哪里可以找到吗?
谢谢!
(顺便说一句,任何拥有超过 1500 名声望的人都可以创建标签 PKCS#1 吗?谢谢!)
【问题讨论】:
标签: encryption pkcs#1
我heard说“PKCS#1 v2.0 加密通常称为OAEP 加密”。
在我的项目中使用它之前,我需要某种“官方”文档来说明这一点。我试图找到它没有成功。知道在哪里可以找到吗?
谢谢!
(顺便说一句,任何拥有超过 1500 名声望的人都可以创建标签 PKCS#1 吗?谢谢!)
【问题讨论】:
标签: encryption pkcs#1
PKCS#1,在 2.0 版本之前,描述了一个单一的加密方案。从 2.0 版开始,OAEP 填充被添加到 PKCS#1,并且以前的加密方案已被追溯称为“v1.5”(因为这是 PKCS#1 1.5 版中描述的唯一方案)。在 PKCS#1 本身中,这两种加密方案分别称为“RSAES-OAEP”和“RSAES-PKCS1-V1_5”。
理论上,OAEP 填充可以与许多其他非对称加密方案一起使用,但 RSA 是(迄今为止)使用最广泛的非对称加密系统。
口语,带有 OAEP 填充的 RSA 加密通常称为“PKCS#1 v2.0 加密”,因为旧方案称为“PKCS#1 v1.5 加密”,但这不是一个“官方”的名字。 OAEP 和 v1.5 都是标准的,并且受最新版本的 PKCS#1 支持,因此 v1.5 不亚于 OAEP 的“v2.0”方案。正如我上面所说,正式名称(定义在 PKCS#1 中)是“RSAES-OAEP”。
【讨论】:
根据位于in this pdf. 的历史记录,可能是另一位发帖人说它“通常称为 OAEP 加密”,因为 PKCS#1 v2.0 是 OAEP 被引入标准的时候(参见第 56 页) .我不知道是否有人真正将 v2.0 称为 OAEP。应该注意的是,我并没有密切参与使用这些标准,所以可能是这种情况,我不知道。
(针对拼写/语法错误进行了编辑)
【讨论】:
可以确认符合 PKCS #1 规范。 PKCS #1 已由不同组织以不同形式发布。最容易找到的是 IETF 发布的(非官方)版本。
PKCS #1 版本 1.5 没有 OAEP。因此其唯一的加密方案随后在 v2.0 中被称为“RSAES-PKCS1-V1_5”。 v2.0中引入的第二种加密方案的正式名称是“RSAES-OAEP”(RSA Encryption Scheme - Optimal Asymmetric Encryption Padding)。
为了进一步复杂化,v2.1 更改了 RSAES-OAEP 的定义。因此,PKCS #1 v2.0 中的 RSAES-OAEP 与 PKCS #1 v2.1 和 v2.2 中的 RSAES-OAEP不兼容。
甚至不同版本之间的标题也略有不同!
最好使用官方术语“RSAES-OAEP”和版本号。
虽然“PKCS #1 加密”可能意味着“OAEP 加密”,但最好避免这样称呼它,因为它是错误的/模棱两可的:
此外,RSAES-OAEP 的编码方法 具有选项(使用哪个散列函数,以及使用哪个掩码生成函数)。并且除了通过RSAES-OAEP加密的数据外,还可以有“编码参数”。因此,对于互操作性,这些也需要明确指定。
这是一个陷阱!
【讨论】: