数字签名(又称公钥数字签名)是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。它是一种类似写在纸上的普通的物理签名,但是在使用了公钥加密领域的技术来实现的,用于鉴别数字信息的方法。一套数字签名通常定义两种互补的运算,一个用于签名,另一个用于验证。数字签名是非对称密钥加密技术与数字摘要技术的应用。
数字签名技术具有的特性
鉴权
公钥加密系统允许任何人在发送信息时使用公钥进行加密,接收信息时使用私钥解密。当然,接收者不可能百分之百确信发送者的真实身份,而只能在密码系统未被破译的情况下才有理由确信。
鉴权的重要性在财务数据上表现得尤为突出。举个例子,假设一家银行将指令由它的分行传输到它的中央管理系统,指令的格式是(a,b),其中a是账户的账号,而b是账户的现有金额。这时一位远程客户可以先存入100元,观察传输的结果,然后接二连三的发送格式为(a,b)的指令。这种方法被称作重放攻击。
数据完整性
数据完整性指在传输、存储信息或数据的过程中,确保信息或数据不被未授权的篡改或在篡改后能够被迅速发现。
传输数据的双方都总希望确认消息未在传输的过程中被修改。加密使得第三方想要读取数据十分困难,然而第三方仍然能采取可行的方法在传输的过程中修改数据。一个通俗的例子就是同形攻击:回想一下,还是上面的那家银行从它的分行向它的中央管理系统发送格式为(a,b)的指令,其中a是账号,而b是账户中的金额。一个远程客户可以先存100元,然后拦截传输结果,再传输(a,b),这样他就立刻变成百万富翁了。
不可抵赖性
在密文背景下,抵赖这个词指的是不承认与消息有关的举动(即声称消息来自第三方)。消息的接收方可以通过数字签名来防止所有后续的抵赖行为,因为接收方可以出示签名给别人看来证明信息的来源。
数字签名的重要作用
(1)防冒充(伪造)。私有密钥只有签名者自己知道,所以其他人不可能构造出正确的。
(2)可鉴别身份。由于传统的手工签名一般是双方直接见面的,身份自可一清二楚。在网络环境中,接收方必须能够鉴别发送方所宣称的身份。
(3)防篡改(防破坏信息的完整性)。对于传统的手工签字,假如要签署一份200页的合同,是仅仅在合同末尾签名呢?还是对每一页都签名?如果仅在合同末尾签名,对方会不会偷换其中的几页? 而对于数字签名,签名与原有文件已经形成了一个混合的整体数据,不可能被篡改,从而保证了数据的完整性。
(4)防重放。如在日常生活中,A向B借了钱,同时写了一张借条给B,当A还钱的候,肯定要向B索回他写的借条撕毁,不然,恐怕他会再次用借条要求A还钱。在数字签名中,如果采用了对签名报文添加流水号、时间戳等技术,可以防止重放攻击。
(5)防抵赖。如前所述,数字签名可以鉴别身份,不可能冒充伪造,那么,只要保好签名的报文,就好似保存好了手工签署的合同文本,也就是保留了证据,签名者就无法抵赖。那如果接收者确已收到对方的签名报文,却抵赖没有收到呢? 要预防接收者的抵赖。在数字签名体制中,要求接收者返回一个自己的签名表示收到的报文,给对方或者第三方或者引入第三方机制。如此操作,双方均不可抵赖。
(6)机密性(保密性)。手工签字的文件(如同文本)是不具备保密性的,文件一旦丢失,其中的信息就极可能泄露。数字签名可以加密要签名消息的杂凑值,不具备对消息本身进行加密,当然,如果签名的报名不要求机密性,也可以不用加密。
保证信息传输的完整性、发送者的身份认证、防止交易中的抵赖发生。
数字签名技术是将摘要信息用发送者的私钥加密,与原文一起传送给接收者。接收者用发送者的公钥解密被加密的摘要信息,然后用HASH函数对收到的原文产生一个摘要信息 ,与解密的摘要信息对比。如果相同,则说明收到的信息是完整的,在传输过程中没有被修改,否则说明信息被修改过,因此数字签名能够验证信息的完整性。