浅谈网络中数字签名技术

1.为什么引入数字签名技术?

当用户A和用户B进行通信时,若未使用数字签名,则用户A可以随意地伪造报文,并声称该报文是来之用户B的;同时用户B也可以否认曾经真正发送给用户A的报文。因此,在收发双方未建立起完全信任关系时,单纯的报文认证就显得不够充分,因而需要数字签名技术。

2.数字签名是什么?

数字签名是网络中进行安全交易的基础,数字签名不仅可以保证信息的完整性和信息源的可靠性,而且可以防止通信双方的欺骗和抵赖行为。虽然报文认证能够保证通信双方免受任何第三方的攻击,然而却不能保护通信双方中的一方防止另一方的欺骗和伪造。

3.数字签名遵循的规则?

  1) 报文鉴别——接收者能够核实发送者对报文的签名 (证明来源)

  2)报文的完整性——发送者事后不能抵赖对报文的签名(防否认)

  3)不可否认——接收者不能伪造对报文的签名(防伪造)

4.数字签名的实现

 实现数字签名的算法很多,例如EIGamal、Schnorr等,但是采用公钥算法更容易实现。

下图为基于公钥的数字签名的实现

用户A向用户B发送信息的实现过程:用户A用自己的私钥对明文加密并签名,然后将密文通过网络传输,用户B用A的公钥对明文进行解密并核实数字签名。

基于公钥的数字签名遵循上面提到的三条规则:

  1)因为除用户A外没有人能具有A的私钥,所以除A外没有人能产生这个密文。因此B相信报文x是A签名发送的。

  2)若A要抵赖曾发送报文给B,B可将明文和对应的密文出示给第三者。第三者很容易用A的公钥去证实A确实发送X给B。 

  3)反之,若B将X伪造成X',则B不能在第三者前出示对应的密文,这样就证明了B伪造了报文。

上图中只对报文进行签名,而对报文X本身却未保密,因为截获到密文并知道发送者身份的任何人可以获得发送者的公钥然后去解密这个密文。因此,提出同时实现秘密通信和数字签名的方法。

下图为具有保密性的数字签名:

用户A向用户B发送信息的实现过程:用户A用自己的私钥对明文进行D运算签名,对签名的结果用B的公钥进行E运算加密而得到密文,然后密文在互联网中进行传输,在接收端用B的私钥进行D运算进行解密,恢复成原来的签名,最后将签名用A的公钥进行E运算,恢复成原来的明文。

猜你喜欢

转载自blog.csdn.net/weixin_42070473/article/details/110120671