数字签名特性
数字签名是指在计算机网络中传送的报文通过数字签名的方式来验证其真实性,具有如下三个特性:
1、接收者能够核实发送者对报文的签名。也就是说,接收者能够确信该报文的确是发送者发送的,其他人无法伪造对报文的签名,这就叫做报文鉴别;
2、接收者确信所收到的数据和发送者发送的完全一样而没有任何篡改,这就叫做报文的完整性;
3、发送者事后不能抵赖对报文的签名,这就叫做不可否认;
数字签名的实现
为了进行签名,A用其私钥SKA对报文X进行D运算(可理解为进行签名),如下图所示。A把经过D运算得到的密文传送给B,B为了核实签名,用A的公钥进行E运算(可理解为核实签名),还原出明文X;
在实现中又是如何体现出数字签名的三个特性的呢?
1、除了A之外没有别人持有A的私钥SKA,所有除A外没有别人能产生密文Dska(X)。这样,B就相信报文X是A签名发送的,这就是报文鉴别的功能;
2、其他人如果篡改过密文,由于没有A的私钥对X进行加密,B对篡改过的报文解密后,将会得出不可读的明文,就知道报文被篡改过了。这就保证了报文的完整性(更准确的应该用摘要算法,也就是Hash运算确定发送的信息没被篡改);
3、若A要抵赖,第三方很容易用PKA去证实A确实发送X给B。这就是不可否认的功能;
注:所有实现的关键就是没有其他人能够持有A的私钥SKA。
若采用下图所示的方法,则可同时实现秘密通信和数字签名。