【问题标题】:"PKCS#1 v2.0 encryption is usually called OAEP encryption" Where can I confirm it?“PKCS#1 v2.0 加密通常称为OAEP 加密”在哪里可以确认?
【发布时间】:2010-06-07 17:13:44
【问题描述】:

heard说“PKCS#1 v2.0 加密通常称为OAEP 加密”。

在我的项目中使用它之前,我需要某种“官方”文档来说明这一点。我试图找到它没有成功。知道在哪里可以找到吗?

谢谢!

(顺便说一句,任何拥有超过 1500 名声望的人都可以创建标签 PKCS#1 吗?谢谢!)

【问题讨论】:

    标签: encryption pkcs#1


    【解决方案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”。

    【讨论】:

    • 我很难在 Java 文档中找到与“RSAES-OAEP”相关的内容,您有任何链接吗?
    • 我看过这个。您说官方名称是“RSAES-OAEP”,但我没有在此页面或 PKCS#1V2 文档中找到此名称。
    • @Tom:在 PKCS#1 v2.1 中,“RSAES-OAEP”在第 7 节中被广泛使用。它甚至是第 7.1 节的标题。怎能错过?
    • 我在寻找另一个 PKCS #1 v2.0 文档,你是对的。谢谢!
    【解决方案2】:

    根据位于in this pdf. 的历史记录,可能是另一位发帖人说它“通常称为 OAEP 加密”,因为 PKCS#1 v2.0 是 OAEP 被引入标准的时候(参见第 56 页) .我不知道是否有人真正将 v2.0 称为 OAEP。应该注意的是,我并没有密切参与使用这些标准,所以可能是这种情况,我不知道。

    (针对拼写/语法错误进行了编辑)

    【讨论】:

      【解决方案3】:

      使用来源

      可以确认符合 PKCS #1 规范。 PKCS #1 已由不同组织以不同形式发布。最容易找到的是 IETF 发布的(非官方)版本。

      • RFC 2437 代表 PKCS #1:RSA 加密规范 2.0 版

      PKCS #1 版本 1.5 没有 OAEP。因此其唯一的加密方案随后在 v2.0 中被称为“RSAES-PKCS1-V1_5”。 v2.0中引入的第二种加密方案的正式名称是“RSAES-OAEP”(RSA Encryption Scheme - Optimal Asymmetric Encryption Padding)。

      • RFC 2313 PKCS #1:RSA 加密版本 1.5

      为了进一步复杂化,v2.1 更改了 RSAES-OAEP 的定义。因此,PKCS #1 v2.0 中的 RSAES-OAEP 与 PKCS #1 v2.1 和 v2.2 中的 RSAES-OAEP不兼容

      • RFC 3447 公钥加密标准 (PKCS) #1:RSA 加密规范 2.1 版
      • RFC 8017 PKCS #1:RSA 加密规范 2.2 版

      甚至不同版本之间的标题也略有不同!

      做或不做,没有尝试

      最好使用官方术语“RSAES-OAEP”和版本号。

      虽然“PKCS #1 加密”可能意味着“OAEP 加密”,但最好避免这样称呼它,因为它是错误的/模棱两可的:

      • PKCS #1 (v1.0) 没有任何“OAEP”。
      • PKCS #1(v2.0 及以上)定义了多个加密方案,其中“OAEP”只是其中之一。术语“PKCS #1 加密”在技术上可能意味着 RSAES-PKCS1-V1_5”加密方案(尽管这种用法很少见)。
      • PKCS #1 定义了一个 RSA 加密原语(官方称为“RSAEP”),因此该术语更有意义。 RSAES-OAEP 由编码方法加密原语组成。
      • 不清楚它指的是哪个不兼容的 RSAES-OAEP 版本。

      此外,RSAES-OAEP 的编码方法 具有选项(使用哪个散列函数,以及使用哪个掩码生成函数)。并且除了通过RSAES-OAEP加密的数据外,还可以有“编码参数”。因此,对于互操作性,这些也需要明确指定。

      这是一个陷阱!

      【讨论】:

        猜你喜欢
        • 2012-06-13
        • 1970-01-01
        • 1970-01-01
        • 2016-10-14
        • 1970-01-01
        • 2017-05-24
        • 2011-04-30
        • 1970-01-01
        相关资源
        最近更新 更多