数字证书

​ 它作为数字签名的一个应用,它将某个实体与某个公钥绑定在一起。通俗来说,它就像是一个官方机构对某个用户的身份进行认证,通过一个具体的证书来让其他用户相信该用户的身份是合法的,当其他用户需要验证该身份的合法性时,只要用该官方机构的公钥进行验证即可。比如,本科毕业证书上有校长的签名和学校的公章,它们的存在就认证了该学生的毕业证书是合法认可的。当学生就业的时候,面试官对其毕业证书进行验证,核实这是否是学校的公章和校长的签名。下图是GlobalSign Organization Validation CA颁发给baidu.com的数字证书的一个具体实例,包括版本号、***、签名算法、有效期等内容,具体如下图所示:
公钥密码学4

图1
![图2](https://img-blog.csdnimg.cn/20201029103529230.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM5ODY5Mzg3,size_16,color_FFFFFF,t_70#pic_center)
图2
X.509证书

​ 最熟悉的数字证书应该就是X.509标准,它被应用在TLS/SSL等许多Internet协议里。该标准里含有公钥、身份信息、签名信息以及证书吊销列表和用于从最终对证书进行签名的证书签发机构直到最终可信点为止的证书合法性验证算法(如上图)。下图是X.509证书链的例子,分别有前向证书和后向证书,如 X < < W > > W < < V > > V < < Y > > Y < < Z > > Z < < B > > X<<W>>W<<V>>V<<Y>>Y<<Z>>Z<<B>> X<<W>>W<<V>>V<<Y>>Y<<Z>>Z<<B>> A A A为了获取到 B B B的公钥证书,需要走的路径。
公钥密码学4

图3
公钥基础设施

​ 在电子商务中,必须从技术上保证线上交易的安全性,能够实现身份认证、安全传输、不可否认性、数据完整性。PKI可被用来广泛的分发公钥。典型的PKI系统包括PKI策略、软硬件系统、证书机构CA、***构RA、证书发布系统和PKI应用等。目前,PKI的生产厂家有很多,如VeriSign和Entrust。

​ 如果以百度为例,可看到其证书路径为:GlobalSign Root CA -> GlobalSign Organization Validation CA -> baidu.com。
公钥密码学4

图4

​ 这是一个长度为3的证书链,根CA为GlobalSign Root CA,是最高级别的签发人,负责认证二级CA身份的合法性,它是自签名,下级对他的信任是无条件的;二级CA为GlobalSign Organization Validation CA,用来认证公钥持有者(baidu.com)身份的证书,即该证书是否确实是来源于百度;主体为baidu.com,该证书包含百度的公钥,访问者就是使用该公钥将数据加密后再传输给百度。
​ 这很简单直接,你只要信任根CA,就可以安全的与其他人沟通。但是这也是其致命缺点,只要攻击者攻破或取得根CA的位置,就可以渗透整个信任链。

“Trust of Web”模型:这是一个完全分布式的模型,其中没有中央信任点,任何人都可以发布证书给其他任何人,这其中的信任度得靠用户自己做出判断。它的一个变体被用于PGP电子邮件加密程序中的公钥分发。

随机预言机模型

​ 现如今对于随机预言机所扮演的角色,在密码学团体中存在着很多争论,一个活跃的研究领域就是判定在随机预言机模型下的安全性证明究竟在现实中保证了什么,既有反对也有支持的。其根本共识是:**在随机预言机模型下的安全性证明比起没有任何证明要好得多。**总之,使用一个在随机预言机模型下证明安全的方案明显好于使用一个没有任何安全性证明的方案。当然,如果在标准模型下可以证明这个方案的安全性,那还是推荐这个的。

​ ==随机预言机(Random Oracle)==就是对任何输入都传回一个真正均匀随机的输出,对于相同的输入,它每次都会用输出同样的值。而且,它要求是一个无限大的函数,在方案中,如果将其更换成实际的任何有限函数,都将变得不安全。

​ 运用随机预言机的一个具体实例:1994年提出了新的RSA填充方案——OAEP(最优非对称加密填充),比PKCS#1 稍微复杂一点。在随机预言模型中,如果使用最强大的随机预言(即,G和H为理想型的密码学哈希函数),那么使用OAEP的RSA加密可被证明减少了RSA问题的难度。当然OAEP 的安全性证明也适用于随机预言模型。 OAEP的具体过程如图3所示:
公钥密码学4

图5

加密:
X = m 00... ⨁ G ( r ) X=m00... \bigoplus G(r) X=m00...G(r)
Y = r ⨁ H ( X ) Y=r \bigoplus H(X) Y=rH(X)

解密:
r = Y ⨁ H ( X ) r=Y \bigoplus H(X) r=YH(X)
m 00... = X ⨁ G ( r ) m00...=X \bigoplus G(r) m00...=XG(r)

​ 由于密码学哈希函数的特性——输入的一个比特的变化会导致输出结果的完全不同,所以攻击者要完全恢复出 X X X Y Y Y才能**,而安全证明中的 G G G H H H函数是随机预言机,理论上非常安全。

相关文章: