数字签名技术

目录

一、数字签名

二、数字签名技术

2.1、基于哈希算法的数字签名与验证

2.2、基于非对称密钥加密体制的数字签名与验证

三、数字签名的作用


一、数字签名

数字签名(又称公钥数字签名)是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。它是一种类似写在纸上的普通的物理签名,但是在使用了公钥加密领域的技术来实现的,用于鉴别数字信息的方法。一套数字签名通常定义两种互补的运算,一个用于签名,另一个用于验证。数字签名是非对称密钥加密技术与数字摘要技术的应用。

所谓数字签名就是附加在数据单元上的一些数据,或是对数据单元所作的密码变换。这种数据或变换允许数据单元的接收者用以确认数据单元的来源和数据单元的完整性并保护数据,防止被人(例如接收者)进行伪造。它是对电子形式的消息进行签名的一种方法,一个签名消息能在一个通信网络中传输。基于公钥密码体制和私钥密码体制都可以获得数字签名,主要是基于公钥密码体制的数字签名。包括普通数字签名和特殊数字签名。普通数字签名算法有RSA、ElGamal、Fiat-Shamir、Guillou- Quisquarter、Schnorr、Ong-Schnorr-Shamir数字签名算法、Des/DSA,椭圆曲线数字签名算法和有限自动机数字签名算法等。特殊数字签名有盲签名、代理签名、群签名、不可否认签名、公平盲签名、门限签名、具有消息恢复功能的签名等,它与具体应用环境密切相关。

二、数字签名技术

数字签名的特点:
1、报文鉴别:
接收者能够核实发送者对报文的签名,确信该报文世发送者发送的,其他人无法伪造报文的签名。
2、报文的完整性:
接收者确信所收到的数据和发送者发送的完全一致而没有被篡改过。
3、不可否认:
发送者事后不能抵赖对报文的签名

数字签名技术大多基于哈希摘要和非对称密钥加密体制来实现。

2.1、基于哈希算法的数字签名与验证

哈希函数是一种"压缩函数",利用哈希函数可以把任意长度的输入经由散列函数算法变换成固定长度的输出,该输出的哈希值就是消息摘要,也称数字摘要。

在正式的数字签名中,发送方首先对发送文件采用哈希算法,得到一个固定长度的消息摘要( Message Digest);

再用自己的私钥对消息摘要进行签名,形成发送方的数字签名。

数字签名将作为队件和原文一起发送给接收方;接收方首先用发送方的公钥对数字签名进行解密得到发送方的数字摘要,然后用相同的哈希函数对原文进行哈希计算,得到一个新的消息摘要,最后将消息摘要与收到的消息摘要做比较。具体过程如下图所示 

数字签名技术_第1张图片

2.2、基于非对称密钥加密体制的数字签名与验证

目前已有多种实现数字签名的算法,但是采用公钥算法要比采用对称加密算法更容易实现。

为了进行签名,A使用其私钥SKA对报文X进行D运算,如下图。A把经过D运算得到的密文传送给BB为了核实签名,用A的公钥进行E运算,还原出明文X

数字签名技术_第2张图片

 除A外没有别人持有A的私钥,所以除A外没有别人能够产生密文DSKA(X)。这样B就相信报文是A签名发送的。以此实现报文鉴别。

其他人如果篡改了报文,但由于无法得到A的私钥SKA来对X进行加密,那么B对篡改的报文进行解密后,就会得到不可读的报文,以此判断报文的完整性。

A要抵赖曾发送过报文给BB可以XDSKA(X)出示给进行公证的第三方,第三方就很容易通过PKA去证实A确实发送X给了B,以此判断不可否认性。

这三项功能的关键点在于:第三方无法持有A的私钥SKA

上述过程仅对报文进行了数字签名,未对报文进行加密。因为截获到密文DSKA(X)并知道发送者的身份时,可通过查阅手册即可获得发送者的公钥PKA,因此可以知道报文的内容。

下图可同时实现数字签名和加密传输。图中SKASKB分别代表AB的私钥,PKAPKB分别代表AB的公钥。

数字签名技术_第3张图片

三、数字签名的作用

1、防冒充(伪造):私有密钥只有签名者自己知道,所以其他人不可能构造出正确的。 

2、鉴别身份:由于传统的手工签名一般是双方直接见面的,身份自可一清二楚。在网络环境中,接收方必须能够鉴别发送方所宣称的身份。 

3、防篡改(防破坏信息的完整性):签名与原有文件已经形成了一个混合的整体数据,不可能被篡改,从而保证了数据的完整性。

4、防重放:采用了对签名报文添加流水号、时间戳等技术,可以防止重放攻击。

5、防抵赖。在数字签名体制中,要求接收者返回一个自己的签名表示收到的报文,给对方或者第三方或者引入第三方机制。如此操作,双方均不可抵赖。

6、机密性(保密性)。手工签字的文件(如同文本)是不具备保密性的,文件一旦丢失,其中的信息就极可能泄露。可以对数字签名的报文进行加密。

你可能感兴趣的:(密码学,数字签名,非对称密钥数字签名,Hash实现数字签名)