曲径通幽论坛

 找回密码
 立即注册
搜索
查看: 2968|回复: 0
打印 上一主题 下一主题

[PKI/SSL] PKI简述(公钥加密与公钥验证)

[复制链接]

716

主题

734

帖子

2946

积分

超级版主

Rank: 9Rank: 9Rank: 9

积分
2946
跳转到指定楼层
楼主
发表于 2013-11-25 21:00:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
PKI ((Public Key Infrastructure,公共密钥基础结构)主要提供了两种功能:



    1. 将发送的数据加密


    2. 接收到数据后,验证数据是否为本人所发,同时确认数据的完整性,即检查数据在发送过程中是否被篡改

使用 公钥私钥 这组密钥来支持上述功能。

公钥:用户的公钥(public key)是可以公开给其他用户的。
私钥:用户的私钥(private key)为用户私有,并存储在用户的计算机中,只有本人可以访问。

用户需要通过 CA (Certification Authority,证书颁发机构) 申请证书的方法来获取公钥和私钥对。

公钥加密
PKI 使用公钥来加密/解密数据,工作原理简述如下:
比如说,张三手头有一对公钥和私钥,他将这个公钥告诉给李四,李四就用此密钥来加密电子邮件,然后发给张三。张三的计算机上存储有私钥,因此他可以正常读取邮件,如是其它用户通过非法手段拦截了该邮件,由于没有相应的私钥,无法解密,也就无法读取邮件的内容。

公钥加密简单的说:公钥用来加密,私钥用来解密,这种加密方法称之为“非对称(asymmetric)加密”。还有一种加密是“私钥加密”(secret key encryption),又称为“对称(symmetric)加密”,加密和解密使用同一个密钥。

公钥验证
还是以上面的张三和李四的收发电子邮件为例,注意这会儿李四手中有一组公钥和私钥,并将公钥告知了张三。李四向张三发送邮件,李四可以用“公钥验证”(Public Key Authentication)将要发送的数据进行“数字签名”,在张三收到邮件后,可以通过该数字签名来验证这邮件确实是李四发出的,同时还会检查数据在发送过程中是否被修改。

在上述过程中,发件人李四利用自己的的私钥将数据签名,而张三会利用李四的公钥来验证此份邮件。

那数字签名是如何产生,又是如何来验证身份的呢?

1. 李四的电子邮件通过消息散列算法(message hash algorithm),比如 sha1 的运算处理后,产生一个消息摘要(message digest),它又被称为“数字指纹”(digital fingerprint)。

2. 李四的电子邮件客户端利用李四的私钥将该消息摘要加密,所使用的加密方法为“公钥加密算法”(public key encryption algorithm),加密后的结果被称为数字签名。

3. 李四的电子邮件客户端将电子邮件本身与数字签名一起发送给张三。

4. 张三的邮件客户端在收到李四的邮件后,会将邮件本身和数字签名分开处理:




    张三的邮件也会重新经过“消息散列算法”(和李四所用的一样,如 sha1)进行运算,产生一个新的消息摘要。



    数字签名经过公钥加密算法的解密处理后,可得到李四传来的原消息摘要



新的消息摘要如果与原的消息摘要相同,那么表示该邮件确实是李四发过来的,而且也没被恶意篡改,否则该邮件的发件人被假冒或者邮件内容已经被篡改。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|曲径通幽 ( 琼ICP备11001422号-1|公安备案:46900502000207 )

GMT+8, 2024-5-18 23:35 , Processed in 0.057160 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表