首页 百科知识 数字签名基本原理

数字签名基本原理

时间:2022-12-16 百科知识 版权反馈
【摘要】:值得说明的是,数字签名与数据加密完全独立。这也正是电子签名问题成为电子商务中的重要的技术与法律问题的原因所在。如RSA数字签名方案和二次剩余作为素因子分解问题的特殊情况。②具有消息自动恢复特性的数字签名方案。安全的数字签名使接收方可以确认文件确实来自声称的发送方。

4.1.1 数字签名基本原理

数字签名过程一般对数据摘要信息进行处理,所谓数据摘要就是散列函数对消息处理产生的散列值,也称其为消息的散列值,摘要信息在数字签名中应用过程可以概述为:首先使用某种散列算法,对要发送的数据进行处理,生成数据摘要信息;然后采用公钥密码算法,用私钥加密数据摘要信息。加密后的数据摘要信息就相当于用户的签名,类似于现实生活中的签名和印章。接收方可以对接收到的签名结果进行验证,以判断签名的有效性。

由上述介绍可知,一个签名体制一般包括两个部分:一是发送方的签名部分,对消息M签名,可以记作s=Sig(K,M),签字算法使用的密钥是秘密的,即是签字者的私钥。二是接收方的认证部分,对签名S的验证可以记作Ver(M,S,K)—(真,假),认证算法使用的密钥是发送方(即签名者)的公钥。

现在使用的数字签名系统都是建立在公钥密码体制基础之上的。当然,在单密钥体制上建立数字签名系统还是可以的,但是其原理和实现都比较复杂,且计算量大,故都不使用于实际的系统。所以本章主要介绍基于公钥密码体制的数字签名系统。

1.数字签名

(1)数字签名的特点

在日常的社会生活和经济往来中,签名盖章和识别签名是一个重要的环节,例如银行业务、挂号邮件、合同、契约和协议的签订等都离不开签名。

在书面文件上签名是确认文件的一种手段,其作用有三点:第一,因为签名难以否认,从而可确认文件已签署这一事实;第二,因为签名不易仿冒,从而可确定文件是真的这一事实;第三,如果对签名有争议,可以请专家分析辨认笔迹的真伪。

数字签名与书面文件签名有相同之处在于采用数字签名,能确认以下三点:第一,信息是由签名者发送的;第二,信息自签发后到收到为止未曾做过任何修改;第三,如果A否认对信息的签名,可以通过仲裁解决A和B之间的争议。因此,数字签名就可用来防止电子信息因易被修改而有人作伪,或冒用别人名义发送信息,或发出(收到)信件后又加以否认等情况发生。

数字签名又不同于手写签名:数字签名随文本的变化而变化,手写签字反映某个人个性特征,是不变的;数字签名与文本信息是不可分割的,而用手写签字是附加在文本之后的,与文本信息是分离的。

综上所述,完善的数字签名应具备签字方不能抵赖,他人不能伪造,在公证人面前能够验证真伪的能力。

(2)数字签名的非形式化定义

联合国国际贸易法委员会《电子商务示范法》第7条的规定给电子签名一个非形式化的定义:“数字签名”系指在数据电文中,以电子形式所含、所附或在逻辑上与数据电文有联系的数据以及与数据电文有关的任何方法,它可用于与数据电文有关的签字持有人的身份确认和表明此人认可数据电文所含信息。

(3)数字签名的功能

数字签名机制提供了一种鉴别方法,以解决银行、电子贸易中的如下问题:

①身份认证。收方通过发方的电子签名能够确认发方的确切身份,但无法伪造。

②保密。双方的通信内容高度保密,第三方无从知晓。

③完整性。通信的内容无法被篡改。

④不可抵赖。发方一旦将电子签字的信息发出,就不能再否认。

值得说明的是,数字签名与数据加密完全独立。数据可以只签名或只加密,也可既签名又加密,当然,也可以既不签名也不加密。

(4)电子签名的法律地位

电子交易的安全依赖于技术上采用适当的安全措施,如电子签名技术,以确认使用人的身份,确保信息保密及完整无缺,保障已进行的交易不被推翻。随着电子商务的发展,电子签名的使用越来越多,其法律问题就显得日益突出。如果电子签名法律问题不解决,交易安全就最终得不到保障,实际上电子商务就不具有实际意义。这也正是电子签名问题成为电子商务中的重要的技术与法律问题的原因所在。

因此,电子签名就需要人们对它的“签名”功能赋予合法的法律地位。2005年4月1日,中国开始实施《电子签名法》,这是一部被誉为中国信息化领域的第一部法律。它的实施为电子商务的发展打造了一个良好的法律环境。该部法律规定,可靠的电子签名与手写签名或者盖章具有同等的法律效力,消费者可用手写签名,公章的“电子版”,秘密代号、密码或其他电子方式签名。

2.数字签名方案的分类

根据不同的标准,数字签名方案有不同的分类方法。

(1)基于数学难题的分类

根据数字签名方案所基于的数学难题,可分为:

①基于离散对数问题的签名方案。如EIGamal型数字签名方案和美国数字签名算法(DSA)。

②基于素因子分解问题的签名方案。如RSA数字签名方案和二次剩余作为素因子分解问题的特殊情况。当前也发展了好几种基于二次剩余的签名方案,如Rabin数字签名方案和1997年Nyang和Song所设计的快速数字签名方案等。

③上述两种的结合签名方案。如1994年Ham设计的一种数字签名方案;1997年Laih和Kuo设计的一种新的数字签名方案。

(2)基于签名用户的分类

根据签名用户的情况,可将数字签名方案分为单个用户签名的数字签名方案和多个用户的数字签名方案。

(3)基于数字签名所具有特性的分类

根据数字签名方案是否具有消息自动恢复特性,可将之分为:

①不具有自动恢复特性的数字签名方案。一般数字签名不具有此特性,如EIGamal数字签名。

②具有消息自动恢复特性的数字签名方案。1994年,Nyberg和Ruepple首次提出一类基于离散对数问题的具有消息恢复特性的数字签名方案。

(4)基于数字签名所涉及的通信角色分类

根据数字签名所涉及的通信角色可分为直接数字签名(仅涉及通信的源和目的两方)和需仲裁的数字签名(除通信双方外,还有仲裁方)。

3.数字签名使用模式与使用原理

(1)数字签名使用模式

目前使用的数字签名主要有三种模式:

①智慧卡式。使用者拥有一个像信用卡一样的磁卡,储存有自己的数字信息。使用时只需在计算机扫描器上扫描,然后输入自己设定的密码即可。

②密码式。它是由使用者设定一个密码,通过特定的硬件,使用者利用电子笔在电子板上签名后将信息存入计算机。电子板不仅记录下签名的形状,而且对使用者签名时使用的力度、写字的速度都有记载,以防他人盗用签名。

③生物测定式。它是以使用者的身体特征为基础,通过特定的设备对使用者的指纹、面部、视网膜或眼球进行数字识别,从而确定对象是否与原使用者相同。许多公司的计算机程序实际运用的大都是将两种或三种技术结合在一起,这样可以大大提高数字签名的安全可靠性

(2)数字签名使用原理

安全的数字签名使接收方可以确认文件确实来自声称的发送方。鉴于签名私钥只有发送方自己保存,他人无法做一样的数字签名,因此发送方不能否认他参与了交易。

数字签名的加密解密过程和私有密钥的加密解密过程正好相反,使用的密钥对也不同。数字签名使用的是发送方的密钥对,发送方用自己的私有密钥进行加密,接收方用发送方的公开密钥进行解密。这是一个一对多的关系:任何拥有发送方公开密钥的人都可以验证数字签名的正确性。而私有密钥的加密解密则使用的是接收方的密钥对,这是多对一的关系:任何知道接收方公开密钥的人都可以向接收方发送加密信息,只有唯一拥有接收方私有密钥的人才能对信息解密。在实际应用过程中,通常一个用户拥有两个密钥对,另一个密钥对用来对数字签名进行加密解密,一个密钥对用来对私有密钥进行加密解密。这种方式提供了更高的安全性。

在实际运用中,直接用公开密码的私钥对文件进行签字并不完全可行,如需对相当长的文件进行签名认证怎么办?若将文件按比特划分成一块一块,用相同的密钥独立地签每一个块,这样速度太慢!

通常的解决办法是引入可公开的密码散列函数(Hash Function,也叫摘要函数、哈希函数)。它将取任意长度的消息做自变量,结果产生规定长度的消息摘要。如数字签名标准DSS中的消息摘要为160bit,然后签名消息摘要。它发生在签名后、加密前,对邮件传输或存储都有节省空间的好处。

利用散列函数进行数字签名和验证的文件传输过程如下:

①发送方首先用哈希函数从原文得到数字摘要,然后采用公开密钥体系用发送方的私有密钥对数字摘要进行签名,并把签名后的数字摘要附加在要发送的原文后面。

②发送方选择一个秘密密钥对文件进行加密,并把加密后的文件通过网络传输到接收方。

③发送方用接收方的公开密钥对秘密密钥进行加密,并通过网络把加密后的秘密密钥传输到接收方。

④接收方使用自己的私有密钥对密钥信息进行解密,得到秘密密钥的明文。

⑤接收方用秘密密钥对文件进行解密,得到经过加密的数字摘要。

⑥接收方用发送方的公开密钥对数字签名进行解密,得到数字摘要的明文。

⑦接收方用得到的明文和哈希函数重新计算数字摘要,并与解密后的数字摘要进行对比。如果两个数字签名是相同的,说明文件在传输过程中没有被破坏。

上述流程可用图4-1表示。

图4-1 数字签名过程

如果第三方冒充发送方发出了一个文件,因为接收方在对数字签名进行验证时使用的是发送方的公开密钥,只要第三方不知道发送方的私有密钥,解密出来的数字签名和经过计算的数字签名必然是不相同的。这就提供了一个确认发送方身份的方法。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈