数字签名及数字证书的一些浅显见解

数字签名及数字证书的一些浅显见解

公钥及私钥

  • 是一对的,公钥发布出去共享给别人,私钥只有自己才有,用私钥加密,只可以用公钥解密,用公钥加密,则只可以用私钥解密(非对称加密),保密通信的实现:A、B双方交换公钥,A发消息给B时,A用B的公钥加密,那只有B自己能解密(因为只有B有私钥),其他人只有B的公钥只能加密信息,但不能解密信息,同理B要发消息给A时也是同样操作;

数字签名

  • A想远程连接B的电脑,B要确定确实是A在连接自己,那么A就要证明自己是A(A是B信任的机器,其他非信任机器连接的话是不允许连接的,在连接的时候连接端会告诉被连接端自己的身份,但是这个是需要验证的,不能连接端说自己是A就是A,如果其他连接端也说自己是A的话,那就很容易被冒充,所以要验证,需要A证明自己就是A)
  • A对要发的消息主体用hash函数生成摘要(digest),然后用A自己的私钥加密这个摘要生成***数字签名N*** ,同时生成一个随机密码,用这个密码对消息主体进行加密,得到***加密后的消息主体M***,另外用B的公钥加密这个随机密码,得到***加密后的随机密码S***,然后将***加密后的消息主体M、加密后随机密码S、数字签名N***一并发给B
  • B收到消息先用A的公钥解密***数字签名N***,得到A的摘要,然后用B(自己)的私钥解密A发过来的***加密后的随机密码S***,得到加密消息主体的随机密码,用这个密码解密***加密后的消息主体M***,得到消息主体,最后对消息主体hash得到摘要,将这个摘要与前面解密***数字签名N***得到的摘要进行对比,如果一致则可以证明A就是A

数字证书

  • A将自己的公钥在证书中心(certificate authority,简称CA)做公证,证书中心产生一对新秘钥,证书中心保留私钥,并用私钥加密A的公钥和其他一些相关信息,生成‘数字证书’,A发消息给B时将消息本体、数字签名、数字证书一同发给B,B用在证书中心那里取得的A的数字证书公钥(也就是前面证书中心在为A的公钥做公证时产生的那一对新秘钥里的公钥)解开数字证书,得到A的公钥,用这个公钥来解开A的数字证书,得到摘要,同时对消息本体用hash函数生成摘要,两个摘要进行对比,如果一致则说明可以验证A的身份,不一致则可能不是A发的消息或者消息被篡改;
    • 考虑以下情况:
    • 如果A发的消息被中间人C劫持,C如果直接改消息,但不重新生成摘要并生成数字签名,则B收到消息并用hash函数生成摘要时与解开数字签名的所获得的摘要对比时不一致;
    • C修改消息,并重新生成摘要,因为没有A的私钥,只能用C自己的私钥进行加密并生成数字签名,则B收到消息时用解开数字证书获得的公钥无法解开数字签名;
    • C修改消息,并用C自己的私钥重新生成摘要,同时将消息附带的A的数字证书替换成C自己的数字证书,则B收到消息时无法用证书中心发出的A的数字证书公钥解开数字证书;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hongccsdn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值