什么是公钥加密中的隐式和显式证书?

信息安全 证书 公钥基础设施
2021-09-08 14:30:16

公钥由受信任的认证机构认证,以确保密钥的完整性和声称拥有相应私钥的实体的真实性。

在此公钥证书中,什么是隐式证书和显式证书?

3个回答

证书身份和公钥之间建立联系;该链接由具有某种数字签名或其他类似加密绑定的证书颁发机构“保证”。

关于“隐式证书”的维基百科页面(由@Clayton 指向)描述了一个概念,其中公钥算法使得公钥、密钥所有者名称和来自 CA 的签名以某种方式合并为一个轻量级元素。这个概念似乎是从 ECQV 算法中出现的,“隐式证书”被创造为该算法的推销词。事实上,您可以从Certicom找到(略带营销色彩的)描述它似乎(可能)受制于许多专利(例如这个)。

虽然这个概念是通用的,但我只知道一个实际的实现,即 ECQV。它还没有标准化和部署

在 ECQV 中,算法的机制设法将公钥来自 CA 的签名排序存储到单个元素中,而该元素仅不大于公钥。尝试为给定用户使用隐式证书的系统需要三个元素:

  • 声称的密钥所有者身份;
  • 该所有者的隐含证书;
  • CA公钥;

ECQV 算法采用所有三个元素来输出用户的公钥。这是隐含的,因为尚不知道证书是否真的存在;即给定一个隐式证书C和 CA 公钥P,ECQV 算法说:如果证书C由用户U拥有,那么U的公钥K所有的“隐含”都存在于“如果”中。


一个大致相似但更极端的概念是基于身份的密码学在基于 ID 的加密中,更多的数学问题被抛出(椭圆曲线上的配对......)以达到更好的结果:移除证书。证书是如此隐含,以至于它根本不再需要存在。使用基于 ID 的密码学,用户的身份就是他的公钥。基于 ID 的加密比隐式证书“更好”,因为它允许突然使用公钥。例如,考虑向某人(我们称他为 Bob)发送加密电子邮件的问题:

  • 使用经典(比如“显式”)证书,您必须首先获得 Bob 的证书。例如,Bob 将其发送给您(通常使用签名的电子邮件),或者您的软件在某个目录中找到它。
  • 使用隐式证书,您仍然必须获得 Bob 的证书。它更短,因此“更高效”,但你需要它。
  • 使用基于 ID 的加密,您不需要 Bob 的证书。你已经有了它:它是 Bob 的名字,即“Bob”。这足以让您加密和发送电子邮件。

在我看来,隐含的证书概念,即 ECQV,很难找到一些市场份额;它夹在“普通”证书和基于 ID 的密码学之间,ECQV 仅提供一些可感知的性能优势(通常情况下,这与该证书无关)和基于 ID 的加密技术,后者提供了一些真正的结构优势。

(据报道,Certicom 和其他专利所有者通过激烈的游说,仍然成功地将他们的算法推向了一些标准化委员会。不过,我自己还没有亲眼目睹过这样的事情。)

显式证书

大多数 PKI 系统使用显式证书那是,

传统的显式证书由三部分组成:标识数据公钥和将公钥绑定到用户标识数据(ID)数字签名数字证书由受信任的第三方创建,其签名可由网络中的任何人独立验证。公钥、ID 和数字签名是构成证书物理大小的不同数据元素。 “隐式证书”,Wiki {强调我的}

证书是显式的,因为它包含将公钥绑定到标识数据 (ID)的证书颁发机构 (CA) 的数字签名。当显式证书上的签名得到验证时,我们知道ID所描述的人将持有相应的私钥,并且他/她将是唯一拥有该私钥的人。

隐式证书

在 PKI 中,隐式证书是一种变体系统,占用的空间要少得多(因此在受限环境中很有用)。它们仍然由 3 个主要元素/部分(ID、公钥、数字签名)组成。但是,这些部分被压缩到与单独的公钥相同的空间中(Wiki 使用短语super 强加)。这种数学转换/压缩引入了一些负担,并具有以下独特功能:

  1. 没有明确的 CA 验证
  2. 公钥是从隐式证书中计算出来的
  3. 我们无法立即知道公钥是否有效,或者即使它有对应的私钥

感谢@Thomas Pornin,他让我更清楚地了解了这个数字。

这里添加一些关于基于 ID 的证书系统和隐式证书系统的评论。

当 A 想向特定目的地发送消息时,比如说 B。然后,基于 ID 的证书系统让 A 可以通过使用 B 的 ID 作为他的公钥直接与 B 进行保密保护。

当 A 想向很多人广播并显示他的身份验证时,基于身份的系统不起作用。隐式证书有效。A 可以使用他的隐式证书和他的 ID 来声称他是一个经过身份验证的人。

在被美国政府引用为v2x系统国家标准的IEEE 1609.2中,隐式证书是核心技术。v2x 系统需要广播。