数字签名(Digital Signature)技术

来源:互联网 发布:风中有朵雨做的云 知乎 编辑:程序博客网 时间:2024/05/03 10:14

数字签名类似于物理上的签名,通过一些技术手段保证了数据的不可仿造性与不可否认性


一个数字签名方案至少应满足以下三个条件:

1、签名者时候不能否认自己的签名 即不可否认性

2、接受者能验证签名,其他任何人都不能伪造签名 即不可仿造性

3、当双方关于签名的真伪发生争执时,第三方能够解决双方之间的争执


根据DSS(Digital Signature Standard,数字签名标准),数字签名的步骤一般分为以下几步:

1、发送方用一个Hash函数对消息进行处理,形成一个固定长度的信息摘要(如MD5)

2、发送方将自己的私人密钥sk和信息摘要进行DSA算法计算,产生数字签名

3、将数字签名和消息一起发送出去.

4、接收方用同样的Hash函数对消息进行计算,产生消息摘要

5、接收方用DSA算法对消息摘要和发送方的公开密钥进行计算,产生数字签名1,同时,从接收到的消息中得到数字签名2。

若1=2则数字签名得到验证,否则验证失败


在实际应用中,如在网页中,信息是公开的,但是必须保证信息不被伪造,则可以利用数字签名技术保证信息的完整性及不可伪造性。

但如果信息是像E-mail,电子商务等需要保密的场合,则不仅要保证上述几点,还需要保证保密性。此时需要将数字签名技术与加密技术结合使用

大致步骤如下:

1、发送方A形成信息摘要M,然后用私钥加密成Cm

2、对想要发送的信息P与加密后的摘要M一起用对称密钥加密(对称密钥是随机产生的)

3、用接收方的公开密钥加密对称密钥,形成Ck

4、将2、3步得到的结果发送给接收方B

5、B收到信息后用自己的私钥解密信息,得到对称密钥Ck

6、B用得到的对称密钥Ck解密剩下的信息,得到信息P与Cm

7、B用同样的Hash函数对P进行加密得到M',并用A的公开密钥解密Cm得到M,如果M' = M ,则验证成功


0 0
原创粉丝点击