两种数字签名方案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

两种数字签名技术

0902班贺信学号:14092400635

1.数字签名的基本概念

1.1 数字签名的定义

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

1.2 数字签名的基本要求

身份鉴别允许我们确认一个人的身份;数据完整性认证则帮助我们识别消息的真伪、是否完整;抗否认则防止人们否认自己曾经做过的行为。数字签名技术用来保证信息的完整性。“数字签名”是通过一个单向函数对要传送的报文进行处理后得到的,用以认证报文来源并

核实报文是否发生变化的一个字母数字串。数字签名可以解决否认、伪造、篡改及冒充等问题。类似于手书签名,数字签名也应满足一下基本要求:

1)收方能够确认或证实发方的签名,但不能伪造签名。

2)发方向收方发出签名的消息后,就不能再否认他所签发的消息,以保证他不能抵赖之前的交易行为。

3)收方对已收到的签名信息不能否认,即有收报认证。

4)第三者可以确认收发双方之间的信息传递,但不能伪造这一过程。

1.3 数字签名的原理

数字签名是通过密码技术对电子文档的电子形式的签名,并非是书面签名的数字图像化。它类似于手写签名或印章,也可以说它就是电子印章。我们对一些重要的文件进行签名,以确定它的有效性。但伪造传统的签名并不困难,这就使得数字签名与传统签名之间的重要差别更加突出:如果没有产生签名的私钥,要伪造由安全密码数字签名方案所产生的签名,计算上是不可行的。人们实际上也可以否认曾对一个议论中的文件签过名。但是否认一个数字签名却困难得多,这样做本质上证明在签名生成以前私钥的安全性就受到危害。这是由于数字签名的生成需要使用私钥,而它对应的公钥则用以验证签名。因而数字签名的一个重要性质就是非否认性,目前已经有一些方案,如数字证书,把一个实体(个人,组织或系统)的身份同一个私钥和公钥对

"绑定"在一起。这使得一个人很难否认数字签名。

1.4 数字签名的作用

网络的安全,主要是网络信息安全,需要采取相应的安全技术措施,提供适合的安全服务。数字签名机制作为保障网络信息安全的手段之一,可以解决伪造,抵赖,冒充和篡改问题。数字签名的目的之一,就是在网络环境中代替传统的手工签字与印章,其可抵御的网络攻击主要有:

1) 防冒充(伪造)。其他人不能伪造对消息的签名,因为私有密钥只有签名者自己知道,所以其他人不可以构造出正确的签名结果数据。显然要求各位保存好自己的私有密钥,好像保存自己家门的钥匙一样。

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

3) 防篡改(防破坏信息的完整性)。传统的手工签字,假如要签署一本200 页的合同,是仅仅在合同末尾签名呢还是对每一页都有签名,不然,对方会不会偷换其中几页这些都是问题所在。而数字签名,如前所述:签名与原有文件已经形成了一个混合的整体数据,不可能篡改,从而保证了数据的完整性。

4) 防重放。如在日常生活中, A 向B 借了钱,同时写了一张借条给B ;当A 还钱的时候,肯定要向B 索回他写的借条撕毁,不然,

恐怕他会再次挟借条要求 A 再次还钱。在数字签名中,如果采用了对签名报文添加流水号,时戳等技术,可以防止重放攻击。

5) 防抵赖。如前所述,数字签名可以鉴别身份,不可能冒充伪造,那么,只要保存好签名的报文,就好似保存好了手工签署的合同文本,也就是保留了证据,签名者就无法抵赖。以上是签名者不能抵赖,那如果接受者确已收到对方的签名报文,却抵赖没有收到呢?要预防接受者的抵赖,在数字签名体制中,要求接受者返回一个自己签名的表示收到的报文,给对方或者是第三方,或者引入第三方机制。如此操作,双方均不可抵赖。

6) 机密性(保密性)。有了机密性保证,截收攻击也就失效了。手工签字的文件(如合同文本)是不具备保密性的,文件一旦丢失,文件信息就极可能泄露。数字签名,可以加密要签名的消息。当然,签名的报文如果不要求机密性,也可以不用加密。

2. 数字签名技术

数字签名的目的就是要保证文件的真实性,防止签名者抵赖。对文件进行了签名说明签名者认可了这份文件。然而有时一个文件上的签名并不是签名者真正想要签的,而是别人伪造的签名。攻击者会利用一些攻击模型来达到伪造签名的目的。这些攻击模型包括唯密文攻击、已知明文攻击、选择明文攻击、选择密文攻击等。一个签名方案不可能在任何情况下都是安全的,这是因为对一个给定的消息,攻击者用

验证算法可以采用穷举法来尝试所有的签名,直到找到一个有效的签名为止。因此,只要有足够的时间,攻击者总是可以对任意消息伪造Alice 的签名。所以,设计签名方案时就应考虑到这些攻击,针对这些攻击设计计算上安全的签名方案。

2.1 RSA 签名方案

设n = pq ,其中p 和q 是大素数。定义K={(n,p,q,a,b)|n=pq},p 和q 为素数,ab ≡ 1(mod (n))}。值n 和b 为公钥,值p,q 和a 为私钥。对K={(n,p,q,a,b)},定义:sigk(x) = xa(mod n)

verk(x, y) = trie<=>x ≡y b(mod n)。Alice 使用RSA 解密函数Dk 为x 消息签名,因为Dk=sigk 是保密的,所以只有Alice 能够产生这一签名,而验证算法使用RSA 加密函数Ek 。因Ek 是公开的,所以任何知道Ek 的人都能验证该签名。

2.2ElGamal 签名方案

ElGamal 算法既可用于数字签名又可用于加密,其安全性依赖于计算有限域上离散对数的难度。设P 是一个素数,两个随即数g 和x ,要

求g ,x

可由一组用户共享。假定被加密信息为M ,首先选择一个随机数k ,k

与p-1互质,计算a=)(mod p g k ,b=)(mod p M y k .(a,b)为密文,是明文

的两倍长。解密计算M=b/)(mod p a x 。

相关文档
最新文档