公钥私钥数字签名数字证书详解
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
公钥私钥数字签名数字证书详解
加密和认证
首先我们需要区分加密和认证这两个基本概念。 加密是将数据资料加密,使得非法用户即使取得加密过的资料,也无法获取 正确的资料内容,所以数据加密可以保护数据,防止监听攻击。其重点在于数据 的安全性。身份认证是用来判断某个身份的真实性,确认身份后,系统才可以依 不同的身份给予不同的权限。 其重点在于用户的真实性。 两者的侧重点是不同的。
公钥和私钥
其次我们还要了解公钥和私钥的概念和作用。 在现代密码体制中加密和解密是采用不同的密钥(公开密钥),也就是非对 称密钥密码系统,每个通信方均需要两个密钥,即公钥和私钥,这两把密钥可以 互为加解密。公钥是公开的,不需要保密,而私钥是由个人自己持有,并且必须 妥善保管和注意保密。 公钥私钥的原则:
1. 2. 3. 4. 一个公钥对应一个私钥。 密钥对中,让大家都知道的是公钥,不告诉大家,只有自己知道的,是私钥。 如果用其中一个密钥加密数据,则只有对应的那个密钥才可以解密。 如果用其中一个密钥可以进行解密数据,则该数据必然是对应的那个密钥进行的加 密。
非对称密钥密码的主要应用就是公钥加密和公钥认证, 而公钥加密的过程和 公钥认证的过程是不一样的,下面我就详细讲解一下两者的区别。
基于公开密钥的加密过程
比如有两个用户 Alice 和 Bob,Alice 想把一段明文通过双钥加密的技术发 送给 Bob,Bob 有一对公钥和私钥,那么加密解密的过程如下:
1. Bob 将他的公开密钥传送给 Alice。 2. Alice 用 Bob 的公开密钥加密她的消息,然后传送给 Bob。 3. Bob 用他的私人密钥解密 Alice 的消息。
上面的过程可以用下图表示,Alice 使用 Bob 的公钥进行加密,Bob 用自己 的私钥进行解密。
基于公开密钥的认证过程
身份认证和加密就不同了,主要用于鉴别用户的真伪。这里我们只要能够鉴 别一个用户的私钥是正确的,就可以鉴别这个用户的真伪。 还是 Alice 和 Bob 这两个用户,Alice 想让 Bob 知道自己是真实的 Alice, 而不是假冒的,因此 Alice 只要使用公钥密码学对文件签名发送给 Bob,Bob 使 用 Alice 的公钥对文件进行解密,如果可以解密成功,则证明 Alice 的私钥是正 确的,因而就完成了对 Alice 的身份鉴别。整个身份认证的过程如下:
1. Alice 用她的私人密钥对文件加密,从而对文件签名。 2. Alice 将签名的文件传送给 Bob。 3. Bob 用 Alice 的公钥解密文件,从而验证签名。
上面的过程可以用下图表示,Alice 使用自己的私钥加密,Bob 用 Alice 的 公钥进行解密。
什么是数字签名呢? 先看看微软官方给出的定义:“数字签名”是指可以添加到文件的电子安全标 记。 使用它可以验证文件的发行者以及帮助验证文件自被数字签名后是否发生更 改。 如果文件没有有效的数字签名,则无法确保该文件确实来自它所声称的源,或者 无法确保它在发布后未被篡改(可能被病毒篡改)。较为安全的做法是,除非您 确定该文件的创建者而且知道其内容才可以安全地打开,否则不要打开该文件。 即便是有效的数字签名也无法验证文件的内容没有危害。 必须决定是否应根据发 行者的身份以及下载文件的位置信任文件的内容。 上面的说法有点太过于书面了,不便理解,这里我们可以通过图片通俗易懂地理 解,"数字签名"(digital signature)和"数字证书"(digital certificate) 到底是什么。 1.
鲍勃有两把钥匙,一把是公钥,另一把是私钥。 2.
鲍勃把公钥送给他的朋友们----帕蒂、道格、苏珊----每人一把。 3.
苏珊要给鲍勃写一封保密的信。她写完后用鲍勃的公钥加密,就可以达到保密的 效果。 4.
鲍勃收信后,用私钥解密,就看到了信件内容。这里要强调的是,只要鲍勃的私 钥不泄露,这封信就是安全的,即使落在别人手里,也无法解密。 5.
鲍勃给苏珊回信,决定采用"数字签名"。他写完后先用 Hash 函数,生成信件的 摘要(digest)。 6.
然后,鲍勃使用私钥,对这个摘要加密,生成"数字签名"(signature)。 7.
鲍勃将这个签名,附在信件下面,一起发给苏珊。 8.
苏珊收信后,取下数字签名,用鲍勃的公钥解密,得到信件的摘要。由此证明, 这封信确实是鲍勃发出的。 9.
苏珊再对信件本身使用 Hash 函数,将得到的结果,与上一步得到的摘要进行对 比。如果两者一致,就证明这封信未被修改过。 10.
复杂的情况出现了。道格想欺骗苏珊,他偷偷使用了苏珊的电脑,用自己的公钥 换走了鲍勃的公钥。此时,苏珊实际拥有的是道格的公钥,但是还以为这是鲍勃 的公钥。因此,道格就可以冒充鲍勃,用自己的私钥做成"数字签名",写信给苏 珊,让苏珊用假的鲍勃公钥进行解密。 11.
后来,苏珊感觉不对劲,发现自己无法确定公钥是否真的属于鲍勃。她想到了一 个办法,要求鲍勃去找"证书中心"(certificate authority,简称 CA),为公 钥做认证。证书中心用自己的私钥,对鲍勃的公钥和一些相关信息一起加密,生 成"数字证书"(Digital Certificate)。 12.
鲍勃拿到数字证书以后, 就可以放心了。 以后再给苏珊写信, 只要在签名的同时, 再附上数字证书就行了。 13.
苏珊收信后,用 CA 的公钥解开数字证书,就可以拿到鲍勃真实的公钥了,然后 就能证明"数字签名"是否真的是鲍勃签的。 14.
下面,我们看一个应用"数字证书"的实例:https协议。这个协议主要用于网页加密。
15.
首先,客户端向服务器发出加密请求。
16.
服务器用自己的私钥加密网页以后,连同本身的数字证书,一起发送给客户端。
17.