数字证书和数字签名的理解

数字签名的理解:
1.张三有两把钥匙,一把是公钥,另一把是私钥。
2.张三把公钥送给他的朋友们----李四、王五、赵六----每人一把。
3.李四给张三写信,写完后用张三的公钥加密,达到保密的效果。
4.张三收信后,用私钥解密,看到信件内容。
5.张三给李四回信,写完后用Hash函数,生成信件的摘要(digest)。
6.张三使用私钥,对这个摘要加密,生成"数字签名"(signature)。
7.张三将这个签名,附在信件下面,一起发给李四。
8.李四收信后,取下数字签名,用张三的公钥解密,得到信件的摘要。由此证明,这封信确实是张三发出的。
9.李四再对信件本身使用Hash函数,将得到的结果,与上一步得到的摘要进行对比。如果两者一致,就证明这封信未被修改过。



数字签名的缺陷:
王五想欺骗李四,他偷偷使用了李四的电脑,用自己的公钥换走了张三的公钥。因此,他就可以冒充张三,写信给李四。

解决的办法:数字证书

1.李四发现,自己无法确定公钥是否真的属于张三。她想到了一个办法,要求张三去找"证书中心"(certificate authority,简称CA),为公钥做认证。证书中心用自己的私钥,对张三的公钥和一些相关信息一起加密,生成"数字证书"(Digital Certificate)。


2.张三拿到数字证书以后,就可以放心了。以后再给李四写信,只要在签名的同时,再附上数字证书就行了。

3.李四收信后,用CA的公钥解开数字证书,(检查证书的签名,检查证书的主题 是否为张三的,这样就能相信公钥就是张三的公钥了)
就可以拿到张三的真实的公钥了,然后就能证明"数字签名"是否真的是张三签的。
王五再想写信给李四时,直接冒充张三,使用张三的证书显然不行了,因为他没有张三的私钥,写信内容无法签名验证通过。



注意:
CA是负责签发证书、认证证书、管理已颁发证书的机关。它要制定政策和具体步骤来验证、识别用户身份,并对用户证书进行签名,以确保证书持有者的身份和公钥的拥有权。
如果用户想得到一份属于自己的证书,他应先向 CA 提出申请。在 CA 判明申请者的身份后,便为他分配一个公钥,并且 CA 将该公钥与申请者的身份信息绑在一起,并为之签字后,便形成证书发给申请者。 如果一个用户想鉴别另一个证书的真伪,他就用 CA 的公钥对那个证书上的签字进行验证,一旦验证通过,该证书就被认为是有效的。



=================银行系统数字签名使用

有三种证书:建行CA认证中心的根证书、建行网银中心的服务器证书,每 个网上银行用户在浏览器端的客户证书。有了这三个证书,
就可以在浏览器与建行网银服务器之间建立起SSL连接。这样,您的浏览器与建行网银服务器之间就有 了一个安全的加密信道。
您的证书可以让与您通讯的对方 验证您的身份(您确实是您所声称的那个您),同样,您也可以用与您通讯的对方的证书 验证他的身份
(他确实是他所声称的那个他),而这一验证过程是由系统自动完成的。


银行系统一般做法是:

1. 用对方的公钥加密数据,对方收到后用自己的私钥解密;
2. 用你自己的私钥签名数据,对方收到后用你自己的公钥验证签名。

网银在传递数据过程中要把”传递的数据“用自己的私钥进行签名,而且要把”传递的数据“用公钥进行加密
客户端有自己的私钥和一个数字证书,其中私钥和服务器中的公钥成对,而且数字证书中的公钥和服务器上的私钥成对匹配.

过程如下:

(1)客户A准备好要传送的数字信息(明文)。  

 (2)客户A对数字信息进行哈希(hash)运算,得到一个信息摘要。

  3)客户A用自己的私钥(SecretKey)对信息摘要进行加密得到客户A的数字签名,并将其附在数字信息上。  

  4)客户A随机产生一个加密密钥(DES密钥),并用此密钥对要发送的信息进行加密,形成密文。

  5)客户A用双方共有的公钥(PublicKey)对刚才随机产生的加密密钥进行加密,将加密后的DES密钥连同密文一起传送给银行B。  

  6)银行B收到客户A传送过来的密文和加过密的DES密钥,先用自己的私钥(SecretKey)对加密的DES密钥进行解密,得到DES密钥。  

  7)银行B然后用DES密钥对收到的密文进行解密,得到明文的数字信息,然后将DES密钥抛弃(即DES密钥作废)。  

  8)银行B用双方共有的公钥(PublicKey)对客户A的数字签名进行解密,得到信息摘要。银行B用相同的hash算法对收到的明文再进行一次hash运算,得到一个新的信息摘要。  
  9)银行B将收到的信息摘要和新产生的信息摘要进行比较,如果一致,说明收到的信息没有被修改过。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值