基于改进RSA算法加密的数字签名 李丽,谭昕 (沈阳职业技术学院汽车分院,辽宁沈阳1 10015) 摘 要 为了鉴定公文收发双方的身份,必须采用数字签名技术。文章首先对数字签名技术和RSA算法进行了分析, 针对RSA运算效率的缺陷,将传统双素数变为四素数。然后对数字签名进行了设计。优化后的算法在运算速度上有一 定优势并且有较高的可能性。 关键词加密;RSA密码算法;数字签名;消息摘要 中图分类号:TP393 文献标识码:A 文章编号:1671—7597(2O14)1 5-0038-01 进入21世纪,各行各业以及部门对于网络资源和网 络环境有很大的需求,很多重大问题都在网络上传播,比如一 些涉及到国家和社会公共安全的问题,作为确保信息安全的重 要措施,数字签名技术现在收到了越来越多的青睐和普及应用。 数字签名的原理是把数据添加到消息上,或者是变换消息密码。 早期曾有专家提出当私钥d小于模数N1/4时,RSA密码系统是 不安全的。当前RSA密码系统的参数是在024比特到048比特 之间,模数巨大,这样运行速度就会很大程度影响。如何解决 这一问题,不同的人提出了不同的简化算法,这篇文章综合考 虑了算法的特性,最终应用四素数RSA算法。 四素数RSA算法的基本思路如下。 建立在传统的双素数RSA的法则上,素数的数量取四,算 法仍然成立,算法: 1)任选四个不一样的大素数,P,q,,和S,算出 n pqrs年口妒( )= 一1)(q-1)(,一1)( 一1)。 这种处理数据的方法可以让信息接收者准确的判断出消息的来 源和完整性。它是对电子形式的消息进行签名的一种方法。作 为如今最普及的非对称加密算法,RSA具有安全性高,易于实 现的特性,即可用于数据的加密,而且可以应用与身份验证。 本文对RSA算法和数字签名的目前状况进行了深刻分析,能够 改善RSA存在的为,之后对数字签名进行设计。 1数字签名的基本思路 数字签名的基本原理来源于密码技术。意思就是在传输信 息的时候在信息中添加一个“签名”,信息的传送者为文件添加 密钥或者是对信息进行加密。其中包含的加密算法包括了对称 加密和非对称加密两类。对称加密中所用到的密钥的基本原理 2)选择加密秘钥,需要满足要求的e,算出私钥d,需要使 de=-lmod ̄(n)成立。 3)加密解密的步骤传统的算法是相同的,仍然为: 加密算法:C:E(m)=m modn 是一样的,所以双方互通信息时必须通过安全的方式来交换密 钥,如果一个人的密钥别窃取,另一个人的信息安全也就毫无 保障了。与此同时,随着用户的增多,密钥的管理也会呈平方 级数的增长趋势。但是非对称加密所使用的密钥是完全不一样 解密算法:m=D(c)E C modn 从数论的方向也能验证算法是准确的,证明如下。 证明:设明文是m,密文c,密钥(d,n),公钥(e,n)。根 据加密解密步骤得出:D(= c)=-cm (i,,z。amn,de=-lmod ̄o(n), de=-l+k ̄p(n),k取整数,带入上式得D(c);m gcd(m,n)=1,由欧拉定理: modn,如果 pqrs, ( )§lmodn,如果 的,并且不能从这一个推出下一个。为了保证持有者的身份特征, 只有密钥的持有者才知道自己密钥对中的私有密钥。专业的仲 裁中心可以管理公共密钥,随着其复杂程度的增加表现出线性 增长的趋势。 故(m,n)中必含P,q,,,S之一,pg,p,, , 之一, pqr,prs,qrs之一,以下提供P,q,r, 之一的证明步骤:若 gcd(m, )=P,m=cp,1≤C_<qrs,由欧拉定理: ⅢP( )E lmodq,mP( );1modr( );1mods对任意k恒有 k(q‘ )=lmodqm ̄q。州 )o‘ ) 一 )三1modq就 有mX(q。州 )0 ) 。 )兰1+^g, , ,,2 RSA算法改进及其在数字签名中的用处 2.1 RSA密码 RSA密码作为一种分组密码,它的形成是基于大 整数的素分子分解的问题上的。这种算法拥有较强的完善性和 可开发性,所以很适用于电子公文的狮子签名。它的工作的基 本思路如下。 得出mkV( )il+蛔,因为m=c,因此得出m州 p,g,,,S都是素数,故 gcd(p,qrs)=l,gcd(m,qrs)=1, 得 m 任 意k, 总 满 足m g’州 = ,m+cphq,已知 1modqrs, 对 一 =lmo曲 ,m枷‘ i1+hqrs, ,m ( ) i m+chpqrs得出m )“ mmodn。 2.2四素数RSA算法在数字签名中的应用 2.2.1杂凑函数 1)参数的生成:①随意选出两个大素数P和q,算出n=pq 和欧拉函数;②任选一个和 ( )为香菇素数的小整数e,通过e 算出d,让其能够满足de-=lmod ̄o(n)的条件,这时候的公开密钥 是(n,e)私人密钥是(p,q,d);⑧选出普遍使用的散列函数h。 2)签名步骤:①签名人应首先对文件编码,然后映射成 杂凑函数又称为Hash函数、报文摘要函数、散列函数等。 其目的是将任意长度的报文m都压缩成指定长度的数据H(m)。 D=H(m)又称为m的指纹,代表了消息m的身份。杂凑函数的 用途 : 1)完整性检验——利用二元对(m,It(m))的不可更改性 ^( ;②通过对c=E(m)=mdmodn的计算,这是A的一个就是c。 3)验证步骤:re=D(C)=memodn。 在RSA的中,这种算法的原理为加密算法和解密算法 有如下联系:在上述算法中,和在功能上可以互相交换。 由以上算法分析可知,RSA算法中大数的模幂运算比较费时, 实现。此时,m的变化将导致H(m)的变化。 2)提供文件的指纹,用于数字签名。只要H(m)不可替换, 就保证m不可能再更改。 3)将杂凑值作为密钥,从而压缩掉密钥的冗余度。 Il(下转第32页)lI