RSA、Diffie-Hellman 密钥交换、PKI 和 X.509 之间的关系?

信息安全 密码学 公钥基础设施 RSA x.509 diffie-hellman
2021-08-19 09:20:11

我对 RSA、Diffie-Hellman Key Exchange、PKI 和 X.509v3 感到困惑。

我看了一下RSA的数学算法,好像是加密算法吧?生成公钥和私钥,用于加密和解密...

另外,我看了一下Diffie-Hellman的数学算法,好像是密钥交换吧?每一方都可以使用某种算法计算出相同的密钥。好像不是加密吧?

我也看过 PKI,有一些新的东西是 CA 和数字证书。还提到了公钥和私钥。

那么,这些概念之间有什么关系呢?他们是3个独立的概念吗?或者他们会在现实中一起使用?

另外,X.509 是 PKI 的标准吗?那么PKI本身就不是一个标准吗?

这是我困惑了很长时间的问题。谢谢大家。

1个回答

RSA是两种算法,一种用于非对称加密,另一种用于数字签名。它们使用相同类型的密钥,共享相同的核心操作,都称为“RSA”。

Diffie-Hellman 是一种密钥交换算法;您可以将其视为一种非对称加密算法,您无法选择加密的内容。这对于密钥交换来说很好,您只想在两个人之间获得一个基本上随机的共享秘密。请注意,在实践中,RSA 非对称加密的大多数用法也是密钥交换,例如在 SSL/TLS 中:客户端生成一个随机值,使用服务器的公钥对其进行加密,然后将其发送到服务器。

PKI 是一个概念它建立在证书的概念之上证书是对密钥所有权的断言。基本上,证书是一个包含身份(名称)和公钥的对象,并且该对象是数字签名的(例如,使用 RSA——签名算法——或 ECDSA)。通过验证此签名来验证证书。这个想法是,如果我知道颁发(签署)证书的人的公钥,那么我可以验证该签名,从而对证书中包含的公钥确实属于由证书中包含的身份。

当您以一种严格的层次结构的方式组织证书时,证书颁发者称为证书颁发机构并相互颁发证书,少数顶级 CA 称为“根 CA”,那么整个结构称为公共关键基础设施,即 PKI。

X.509 是证书格式和内容的标准。X.509 对于将使用什么签名算法来签署证书相当开放,但在实践中,99% 的时间都是 RSA。