不对称加密
- 一个公钥对应一个私钥。
- 密钥对中,让大家都知道的是公钥,不告诉大家,只有自己知道的,是私钥。
- 如果用其中一个密钥加密数据,则只有对应的那个密钥才可以解密。
- 如果用其中一个密钥可以进行解密数据,则该数据必然是对应的那个密钥进行的加密。
加密和认证:
1. Bob将他的公开密钥传送给Alice。
2. Alice用Bob的公开密钥加密她的消息,然后传送给Bob。
还是Alice和Bob这两个用户,Alice想让Bob知道自己是真实的Alice,而不是假冒的,因此Alice只要使用公钥密码学对文件签名发送给Bob,Bob使用Alice的公钥对文件进行解密,如果可以解密成功,则证明Alice的私钥是正确的,因而就完成了对Alice的身份鉴别。整个身份认证的过程如下:
1. Alice用她的私人密钥对文件加密,从而对文件签名。
3. Bob用Alice的公钥解密文件,从而验证签名。
数字证书
什么是数字签名呢? 先看看微软官方给出的定义:
“数字签名”是指可以添加到文件的电子安全标记。使用它可以验证文件的发行者以及帮助验证文件自被数字签名后是否发生更改。如果文件没有有效的数字签名,则无法确保该文件确实来自它所声称的源,或者无法确保它在发布后未被篡改(可能被病毒篡改)。较为安全的做法是,除非您确定该文件的创建者而且知道其内容才可以安全地打开,否则不要打开该文件。 即便是有效的数字签名也无法验证文件的内容没有危害。必须决定是否应根据发行者的身份以及下载文件的位置信任文件的内容。
百度定义:
数字证书就是互联网通讯中标志通讯各方身份信息的一串数字,提供了一种在Internet上验证通信实体身份的方式,其作用类似于司机的驾驶执照或日常生活中的身份证。它是由一个由权威机构——CA机构,又称为证书授权(Certificate Authority)中心发行的,人们可以在网上用它来识别对方的身份。数字证书是一个经证书授权中心数字签名的包含公开密钥拥有者信息以及公开密钥的文件。最简单的证书包含一个公开密钥、名称以及证书授权中心的数字签名,此外,数字证书只在特定的时间段内有效。
工作原理:
数字证书采用公钥体制,即利用一对互相匹配的密钥进行加密、解密。每个用户自己设定一把特定的仅为本人所知的私有密钥(私钥),用它进行解密和签名;同时设定一把公共密钥(公钥)并由本人公开,为一组用户所共享,用于加密和验证签名。当发送一份保密文件时,发送方使用接收方的公钥对数据加密,而接收方则使用自己的私钥解密,这样信息就可以安全无误地到达目的地了。通过数字的手段保证加密过程是一个不可逆过程,即只有用私有密钥才能解密。
用户也可以采用自己的私钥对信息加以处理,由于密钥仅为本人所有,这样就产生了别人无法生成的文件,也就形成了数字签名。采用数字签名,能够确认以下两点:
1.保证信息是由签名者自己签名发送的,签名者不能否认或难以否认。
2.保证信息自签发后到收到为止未曾作过任何修改,签发的文件是真实文件。
具体例子:
数字证书"的实例:https协议(这个协议主要用于网页加密):
2.服务器用自己的私钥加密网页以后,连同本身的数字证书,一起发送给客户端;
5.如果这张数字证书不是由受信任的机构颁发的,浏览器会发出另一种警告;
6.如果数字证书是可靠的,客户端就可以使用证书中的服务器公钥,对信息进行加密,然后与服务器交换加密信息。
备注:
B.U盾工作原理
U盾又作移动数字证书,它存放者你个人的数字证书,并不可读取。同样,银行也记录者你的数字证书。
1.当你尝试进行网上交易时,银行先给你一个"冲击",它包含了随机数,以及该随机数HASH,它们都由公钥加密,这样就可以保证只有你能解密这个"冲击" --你计算该随机数的HASH,并和用私钥解出的HASH,两者相同后,便可确认银行的身份;
2.接下来,以一个只有你和银行知道的算法,利这个随机数和一些其它信息,生成"响应"和相应的HASH,再用私钥加密后发回银行。(此时银行也以相同的算法计算该"响应")
3.银行用公钥解密,并验证HASH正确,接下来银行比较两个"相应"是否相同,相同的话客户的身份也确认了。
ps:
--你的数字证书有一对,一份在U盾里的私钥,一份在银行的公钥(其实两份银行都有) 。
--至于私钥的保密性由U盾来完成。U盾的控制芯片被设计为只能写入证书,不能读取证书,并且所有利用证书进行的运算都在U盾中进行。所以,只能从U盾读出运算结果。