数字签名的条件和基本形式_数字签名的确认及实现过程
数字签名的条件
所谓数字签名(DigitalSignature)(又称公钥数字签名、电子签章)是一种类似写在纸上的普通的物理签名,但是使用了公钥加密领域的技术实现,用于鉴别数字信息的方法。一套数字签名通常定义两种互补的运算,一个用于签名,另一个用于验证。
在金融和商业等系统中,许多业务都要求在单据上进行签名或加盖印章,证实其真实性,以备日后检查,可是在利用计算机网络来传送报文时,显然不能用手签的方法,在计算机中我们可以采用数字签名的方法,利用公开密钥来实现数字签名,从而代替传统的签名。
为使数字签名能代替传统的签名,必须满足下面三个条件:
(1)接收者能够核实发送者对报文的签名;
(2)发送者事后不能抵赖对其报文的签名;
(3)接收者无法伪造对报文的签名。
数字签名的基本形式
对于交换信息的双方而言,数字签名的最基本形式是该信息基于某种特定的附加信息(如密钥或标识等的信息摘录)。发送方对发送的报文签名并随同报文一起发送,以担保报文的内容,若需接收方也对报文的内容进行担保,则要求接收方向发送方返回一个签名的回执(可以是对报文的再签名)。
数字签名的确认
数字签名的确认是一个参照原信息和给定的公共密码来查验数字签名的过程,进而决定为同一信息使用私人密码创建的数字签名与被参照的公共密码是否保持一致.通过使用与创建数字签名相同的哈希函数功能,来计算出原信息新的哈希函数结果,以达到对数据签名的确认.接着,使用公共密码和新的哈希函数结果,确认者可以检查数字签名是否是使用相应的私人密码签署的,新计算出来的哈希函数结果是否与在签名过程中被转化为数字签名的原哈希函数结果值相匹配.
确认软件将认同数字签名为"已被确认",假如:
(1)签名者的私人密码是用来对信息进行数据签名的,而公共密码是用来确认数字签名的,因为,公共密码将只确认签名者使用私人密码签署数字签名.而事实上,公共密码已经确认了签名是由私人密码作出的;
(2)信息未曾被改变,在确认过程中,这一点可以通过将确认者计算出来的哈希函数结果与从数字签名中的哈希函数结果相对比得出结论来.
数字签名的实现过程
数字签名的简单实例是直接利用RSA算法和发送方的秘密密钥。对被签名的数据进行加密。当接收方收取本块密文时,使用发送方的公开密钥进行解密,如果能够还原明文,则根据公开密钥体制的特点(公开密钥加密的密文只能用秘密密钥解密,秘密密钥加密的密文只能用公开密钥解密),可以认为该数据确实来自于希望的发送方。
数字签名的使用一般涉及以下几个步骤,这几个步骤即可由签名者也可由被签署信息的接受者来完成:
(1)用户生成或取得独一无二的加密密码组.
(2)发件人在计算机上准备一个信息(如以电子邮件的形式).
(3)发件人用安全的哈希函数功能准备好"信息摘要".数字签名由一个哈希函数结果值生成.该函数值由被签署的信息和一个给定的私人密码生成,并对其而言是独一无二的.为了确保哈希函数值的安全性,应该使通过任意信息和私人密码的组合而产生同样的数字签名的可能性为零.
(4)发件人通过使用私人密码将信息摘要加密.私人密码通过使用一种数学算法被应用在信息摘要文本中.数字签名包含被加密的信息摘要.
(5)发件人将数字签名附在信息之后.
(6)发件人将数字签名和信息(加密或未加密)发送给电子收件人.
(7)收件人使用发件人的公共密码确认发件人的电子签名.使用发件人的公共密码进行的认证证明信息排他性地来自于发件人.
(8)收件人使用同样安全的哈希函数功能创建信息的"信息摘要".
(9)收件人比较两个信息摘要.假如两者相同,则收件人可以确信信息在签发后并未作任何改变.信息被签发后哪怕是有一个字节的改变,收件人创建的数据摘要与发件人创建的数据摘要都会有所不同.
(10)收件人从证明机构处获得认证证书(或者是通过信息发件人获得),这一证书用以确认发件人发出信息上的数字签名的真实性.证明机构在数字签名系统中是一个典型的受委托管理证明业务的第三方.该证书包含发件人的公共密码和姓名(以及其他可能的附加信息),由证明机构在其上进行数字签名.
其中,第(1)~(6)是数字签名的制作过程,(7)~(10)是数字签名的核实过程.