基于RSA的数字签名改进方案

时间:2022-09-10 01:41:52

基于RSA的数字签名改进方案

摘要:该文在RSA数字签名的基础上,设计了两种改进方案,有效的解决了隐藏消息的问题,防止了不经意的信息泄露。这两种数字签名方案都是概率数字签名方案,因而安全性提高,具有多项式安全性。

关键词:数字签名;哈希函数;多项式安全性

中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2008)33-1345-02

Modified Digital Signature Scheme Based on RSA

JIA Jie,XU Ci-wen

(College of Science,Central University for Nationalities,Beijing 100081,China)

Abstract: Based on the RSA digital signature,the paper proposed two kinds of modified schemes,which overcome the weakness of message lost when not pay attention.Because they are probabilistic digital signature schemes,they can secure for polynomial.

Key words: digital signature;hash function;polynomial secure

1 引言

在公钥密码学中,密钥是由公开密钥和私有密钥组成的密钥对。在数字签名系统中,发送方首先用自己的私钥对某消息产生数字签名,当接收方接收到这个消息和其对应的数字签名后,利用发送方的公钥来证实这个签名的正确性。从表面上看,数字签名与公钥加密是公钥和私钥的运作顺序不同。实际上,数字签名与公钥加密一样也是用单向陷门函数确保其安全性。本质上,大数分解困难问题和离散对数困难问题等各种计算困难问题的存在是安全的数字签名方案存在的根本。数学签名的应用面很广,因具有“不可否认性”的特性,可以达到对称密钥密码所不能达到的功能。在实际应用中,公开密钥的数学签名技术可用来发展公开密钥基础设施以及数字认证。公钥密码的概念不仅仅体现于密码系统,数字签名也是公钥密码技术的一个重要组成部分。

Difie和Helman[1]首先提出了数字签名的概念。数字签名必须提供一种称为不可否认性的服务。所谓数字签名的不可否认性是指:签名的接收方能够证实发送方的身份,发送方不能否认其曾签署过的签名,任何人不能伪造和篡改签名。正是由于数字签名具有的独特功能和实际用途,使得它在网络通信中具有重要的作用。

2 RSA数字签名方案

第一个数字签名方案是由Rivest,Shamir和Adleman这三位密码学家首先提出的[2]。RSA密码体制用到了初等数论中的一个重要定理―欧拉定理,其安全性依赖于大整数的因数分解的困难性。其用作数字签名的方案如下[3]:

设A为签名人,任意选取两个大素数p和q,计算n=pq,φ(n)=(p-1)(q-1),随机选择整数e

签名:对于消息m(m

验证:接收人或验证人收到签名(m,s)后,利用A的公钥,计算m=se mod n,检查m=m是否成立。如果成立,则签名正确,否则,签名不正确。

事实上,若签名正是A所签,则有m=se mod n=(md)e mod n=m ed mod n=m。

分析:在该签名方案中,任何人都可以用A的公钥进行解密,不具备加密功能,只起到鉴别签名人身份的目的。如果消息m>n,时,可用哈希函数h进行压缩,计算s=(h(m))dmod n,接收方或验证方收到(m,s)后,先计算 m=se mod n,然后检查 m=h(m)是否成立,即可鉴别签名是否正确。在这里,m只起到一种支撑的作用,没有实质性的意义。如果m包含重要的信息,不能泄露,那么签名还需要进行加密处理,再传送。基于此,设计了下面的基于RSA的数字签名改进方案。

3 改进的数字签名方案

首先假设系统的初始化过程如上,A为签名人,A产生的公钥为(n,e),私钥为d。则改进的方案如下:

改进方案一:

签名:① 所签消息m

② 产生随机填充的伪随机数:r

③ 计算s1=mr[4]

④ 计算摘要值h=H(s1)

⑤ 产生签名shd mod n

⑥ 输出:(s1,s)

验证:① 收到签名(s1,s)

② 计算摘要值h=H(s1)

③ 计算h1semod n

④ 比较,若h=h1,则接受签名;

若h≠h1,则拒绝签名。

改进方案二:

签名:① 所签消息m

② 产生随机填充的伪随机数: r

③ 数据分组mr,并去掉其二进制的所有奇数位得到s1

④ 计算摘要值h=H(s1)

⑤ 产生签名s hd mod n

⑥ 输出:(s1,s)

验证:同方案一。

改进后的这两种数字签名方案,有效的解决了当信息m包含重要信息而泄露的问题。其中,方案一采用的是引用随机填充的伪随机数r和m进行异或作用使得原信息m被隐藏掉;而方案二是采用通过随机填充的伪随机数r与信息m的级连函数再去掉其二进制的奇数位的方法,也达到了此目的。总之,这两种方法都是通过引入随机数的方法,实现了在RSA数字签名的基础上进行概率数字签名的目的,从而使得它的签名方案的安全性大大提高,具有多项式安全性。

4 小结

该文针对传统的RSA数字签名方案在安全上的缺陷进行了改进,通过引入随机填充的伪随机数而实现了随机签名,从而构造了两种基于RSA的概率数字签名方案。因而其安全性提高,具有多项式安全性。

参考文献:

[1] W.Differ and M.Hellman,New directions in cryptography,IEEE Trans.Information Theory,1976,22,pp.644-654.

[2] R.L.Rivest, A.Shamir and L.Adleman,A Method for Obtaining Digital Signatures and Public Key Ctyptosystem,Comm.ACM,1978,21,pp.120-126.

[3] 赵泽茂.数字签名理论[M].科学出版社,2007,1,pp.26.

[4] 余梅生,邹惠.一种改进的RSA公钥密码体制[J].大连理工大学学报,2003,10.

注:“本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。”

上一篇:轻量级J2EE架构的研究 下一篇:嵌入式WAP浏览器的架构及实现