数字签名

想求些关于数字签名技术在国内外发展和研究现状的信息。谢谢了,写论文一点头绪都没有呢

0、引言
随着信息时代的到来,人们希望能通过网络信息传输对文
件、契约、合同、信件和账单等进行数字签名来代替以往的手写
签名。数字签名的目的是提供一种手段,使得一个实体把他的身
份与某个信息捆绑在一起。一个消息的数字签名实际上是一个
数,它仅仅依赖于签名者知道的某个秘密,也依赖于被签名信息
本身。所以,将数字签名看成是一种证明签名者身份和所签署内
容真实性的一段信息。
1、RSA算法描述
RSA算法是Rivest,Shamir和Adleman于1977年提出的比
较完善的公钥密码系统。RSA算法是一个既能用于加密又能用
于数字签名的公开密钥算法。RSA算法是基于这样一个数论事
实:将两个大素数相乘十分容易,但是想分解它们的乘积却是困
难的。
RSA公钥加密的整个算法可以通过以下步骤来描述。
1)生成两个大的素数p和q,p≠q;
2)计算n=p×q,!(n)(p-1)(q-1);
3)随机选择一个整数(公开的加密密钥),0<e<!(n),使得
gcd(e,!(n))=1;
4)计算满足下列条件(保密的解密密钥),ed=1mod!(n);
5)对明文的加密运算是:c=E(m)=memodn;
6)对密文的解密运算是:m=D(c)=cdmodn。
此时公开(e,n)作为加密密钥E,自己保密(d,n)作为解密密钥
D。隐藏p和q。
2、RSA的保密性
假设用户A获得了一对密钥变换(EA、DA),其中EA是可以
公布于众的加密密钥,DA是由用户A自行秘密保管的解密密
钥。当用户B要向用户A发送消息M时,B只需要找到EA,用它
对消息M进行加密,C=EA(M),然后把密文C在公共信道上传
送给A。当A收到密文C后,就用A秘密保管的解密密钥DA解
密,DA(C)=DA(EA(M))=M,恢复出明文M。利用上述加密解密
过程可使用户A和B之间达到保密传输。因为即使有窃听者获
得了密文C,但是他没有解密密钥DA,所以不能恢复出明文M
例如:
如果用户A取p=7,q=71则n=pq=3337,!(n)(p-1)(q-1)=46×
70=3220随机选取加密密钥e=79,则d=79-1。公开e和n,将d保
密,隐藏p和q。设用户B要发给A的信息为m=688,用户B对m
进行如下加密:c=68879mod3337=1570然后将密文c发给用户A
用户A则利用保密的解密密钥进行如下解密:15701019mod3337=
688=m。
虽然这解决了用户A和B之间的保密传输,但是并没有解
决可靠性,当A收到密文C时,并不能确定密文C就是用户B
发来得。因为主动攻击的扰乱者也是知道用户A的加密密钥的
因此扰乱者可以冒充B发一条假消息给A,这时A是无法判断
该消息是否B发来的。这个问题可以利用数字签名来解决。
3、RSA数字签名方案
3.1公钥加密体制的数字签名原理
其原理是:用户B用你的私钥来"加密"一组信息,用户A用公钥来解密,如果"解密"成功,说明这组信息就是用户B加密
的,用户B无法否认这个事实,这就是数字签名。
假设用户B获得了一对密钥变换(EB、DB),其中EB是可以公
布于众的加密密钥,DB是由用户B自行秘密保管的解密密钥。
当用户B要向用户A发送消息M时,如果用户B首先用自己保
管的解密密钥DB作变换,C'=DB(M),然后把C'传送给A,当A
收到密文C'后,可以用B的公开密钥EB作逆变换,EB(C')=EB
(DB(M))=M,恢复出原始信息M。这样A就可以判断该消息一
定是B发来的,因为只有B才知道秘密密钥DB,除B外,任何
人都不能仿造信息C',因此C'可以作为用户B的数字签名,A可
以通过EB来验证B的合法性,B对消息C'的确定性也是无法否
认的。这样的应用只解决了消息的可靠性,可以防止第三者插
入、伪造和篡改消息,但是并不能解决消息M的保密性,因为除
了A以外,其他人也能收到,并恢复消息M。
3.2保密性和可靠性的解决方案
为了同时解决信息的保密性和可靠性这两个问题,我们可
以对消息作如下处理:
用户A和B分别获得了各自的密钥对(EA、DA)和(EB、DB),
如果B要向A发送一条消息M,则可以先把消息M用B的秘
密密钥DB处理,再用A的公开密钥EA加密,即C=EA(DB(M)),
然后把C发送给A,A收到信息C后,先用自己的秘密密钥DA
解C,再用B的公开密钥EB恢复,即
EB(DA(C))=EB(DA(EA(DB(M))))=EB(DB(M))=M。
把这两种方法如此地结合起来,用于加密信息,这样就可以
到达人们预期的目的。使公共信道上传输的信息,即具有保密
性,有具有可靠性,即可以防止第三者的被动窃取,又可以防止
第三者的主动破坏,同时还具有认可和公证的能力。
4、RSA安全性分析
RSA的安全性依赖于大数分解的难度,目前因子分解速度
最快的算法,其时间复杂性为exp(sqrt(n)1n1n(n))。若和为100位
的十进制数,这样为200位十进制数,按每秒107次运算的超高
速计算机,也要108年才能破解。因此,在一定有效期内,RSA数字
签名是安全可靠的。2002年成功分解了158位的十进制数,故
选取的素数p和q应该是长度为100的十进制数(相当于332
位二进制数)。为了达到长期安全应该至少使用1024位。
RSA的安全性受到的最大威胁就是整数素因子分解技术的
发展,如果因素分解技术有了突破性发展,那么RSA的破解将会
变得非常简单,可以直接计算出私钥。
5、结束语
数字签名有很多实现方法,目前广泛应用的主要有Hash签
名,DSS签名,RSA签名,ElGamal签名。其中RSA签名是最流行
的一种数字签名算法,尽管数字签名技术还不够完善,如签名后
的文件可能被接收者重复使用,公开密钥加密算法的效率相当
低,不易用于长文件的加密等。我们可以把RSA算法与其他算
法(如DES算法)结合起来使用,既提高了他它的运行速度,又保
证了一定的安全性。随着Internet的快速发展及其算法的不断改
进和完善,其应用领域会日益广泛,有着广阔的发展前景。

参考资料:浅谈基于RSA的数字签名及其应用

温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网