数字签名

数字签名

书信或文件是根据亲笔签名或印章来证明其真实性。但在计算机网络中传送的文电又如何盖章呢?这就需要使用数字签名。数字签名必须能够实现以下三点功能:

  1. 接收者能够核实发送者对报文的签名。也就是说,接收者能够确信该报文的确是发送者发送的。其他人无法伪造对报文的签名。这就叫做报文鉴别
  2. 接收者确信所收到的数据和发送者发送的完全一样而没有被篡改过。这就叫做报文的完整性
  3. 发送者事后不能抵赖对报文的签名。这就叫做不可否认

现在已有多种实现数字签名的方法。但采用公钥算法要比采用对称密钥算法更容易实现。下面就来介绍这种数字签名。
为了进行签名,A用其私钥 SKA 对报文X进行D运算。D运算本来叫做解密运算。还没有加密怎么就进行解密呢?这并没有关系。因为D运算只是得到了某种不可读的密文。A经过D运算得到的密文传送给B。B为了核实签名,用A的公钥进行E运算,还原出明文X。请注意,任何人用A的公钥 PKA 进行E运算后都可以得出A发送的明文。可见下图的D运算和E运算都不是为了解密和加密,而是为了进行签名和核实签名。
这里写图片描述

下面讨论一下数字签名为什么具有上述的三点功能。
因为除A外没有别人持有A的私钥 SKA ,所以除A外没有别人能产生密文 DSKA(X) 。这样,B就相信报文X是A签名发送的。这就是报文鉴别的功能。同理,其他人如果篡改过报文,但并无法得到A的私钥 SKA 来对X进行加密。B对篡改过的报文进行解密后,将会得到不可读的明文,就知道收到的报文被篡改过。这样就保证报文完整性的功能。若A要抵赖曾发送报文给B,B可把X及 DSKA (X)出示给进行公认的第三者。第三者很容易用 PKA 去证实A确实发送X给B。这就是不可否认的功能。这里的关键都是没有其他人能够持有A的私钥 SKA

但上述过程公对报文进行了签名。对报文X本身却未保密。因为截获到密文 DSKA(X) 并知道发送者身份的任何人,通过查阅手册即可获得发送者的公钥 PKA ,因而能知道报文的内容。若采用下图的方法,则可同时实现秘密通信和数字签名。图中 SKA SKB 分别为A和B的私钥,而 PKB PKB 分别为A和B的公钥。
这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值