论文部分内容阅读
摘 要 为了鉴定公文收发双方的身份,必须采用数字签名技术。文章首先对数字签名技术和RSA算法进行了分析,针对RSA运算效率的缺陷,将传统双素数变为四素数。然后对数字签名进行了设计。优化后的算法在运算速度上有一定优势并且有较高的可能性。
关键词 加密;RSA密码算法;数字签名;消息摘要
中图分类号:TP393 文献标识码:A 文章编号:1671-7597(2014)15-0038-01
进入21世纪,各行各业以及政府部门对于网络资源和网络环境有很大的需求,很多重大问题都在网络上传播,比如一些涉及到国家和社会公共安全的问题,作为确保信息安全的重要措施,数字签名技术现在收到了越来越多的青睐和普及应用。数字签名的原理是把数据添加到消息上,或者是变换消息密码。这种处理数据的方法可以让信息接收者准确的判断出消息的来源和完整性。它是对电子形式的消息进行签名的一种方法。作为如今最普及的非对称加密算法,RSA具有安全性高,易于实现的特性,即可用于数据的加密,而且可以应用与身份验证。本文对RSA算法和数字签名的目前状况进行了深刻分析,能够改善RSA存在的为,之后对数字签名进行设计。
1 数字签名的基本思路
数字签名的基本原理来源于密码技术。意思就是在传输信息的时候在信息中添加一个“签名”,信息的传送者为文件添加密钥或者是对信息进行加密。其中包含的加密算法包括了对称加密和非对称加密两类。对称加密中所用到的密钥的基本原理是一样的,所以双方互通信息时必须通过安全的方式来交换密钥,如果一个人的密钥别窃取,另一个人的信息安全也就毫无保障了。与此同时,随着用户的增多,密钥的管理也会呈平方级数的增长趋势。但是非对称加密所使用的密钥是完全不一样的,并且不能从这一个推出下一个。为了保证持有者的身份特征,只有密钥的持有者才知道自己密钥对中的私有密钥。专业的仲裁中心可以管理公共密钥,随着其复杂程度的增加表现出线性增长的趋势。
2 RSA算法改进及其在数字签名中的用处
2.1 RSA密码体制
RSA密码体制作为一种分组密码体制,它的形成是基于大整数的素分子分解的问题上的。这种算法拥有较强的完善性和可开发性,所以很适用于电子公文的狮子签名。它的工作的基本思路如下。
1)参数的生成:①随意选出两个大素数p和q,算出n=pq和欧拉函数;②任选一个和φ(n)为香菇素数的小整数e,通过e算出d,让其能够满足de≡1modφ(n)的条件,这时候的公开密钥是(n,e)私人密钥是(p,q,d);③选出普遍使用的散列函数h。
2)签名步骤:①签名人应首先对文件编码,然后映射成h(M);②通过对c=E(m)=mdmodn的计算,这是A的一个就是C。
3)验证步骤:m=D(C)=memodn。
在RSA的体制中,这种算法的原理为加密算法和解密算法有如下联系:在上述算法中,和在功能上可以互相交换。
由以上算法分析可知,RSA算法中大数的模幂运算比较费时,早期曾有专家提出当私钥d小于模数N1/4时,RSA密码系统是不安全的。当前RSA密码系统的参数是在024比特到048比特之间,模数巨大,这样运行速度就会很大程度影响。如何解决这一问题,不同的人提出了不同的简化算法,这篇文章综合考虑了算法的特性,最终应用四素数RSA算法。
四素数RSA算法的基本思路如下。
建立在传统的双素数RSA的法则上,素数的数量取四,算法仍然成立,算法:
1)任选四个不一样的大素数,p,q,r和s,算出和φ(n)=(p-1)(q-1)(r-1)(s-1)。
2)选择加密秘钥,需要满足要求的e,算出私钥d,需要使de≡1modφ(n)成立。
3)加密解密的步骤传统的算法是相同的,仍然为:
加密算法:
解密算法:
从数论的方向也能验证算法是准确的,证明如下。
证明:设明文是m,密文c,密钥(d,n),公钥(e,n)。根据加密解密步骤得出:D(≡dc)≡cme(≡medmn,de≡1modφ(n),de≡1+kφ(n),k取整数,带入上式得,如果,由欧拉定理:,如果故中必含之一,pq,pr,ps,qr之一,之一,以下提供之一的证明步骤:若由欧拉定理:
对任意k恒有
mk(q-1)=1modq,mk(q-1)(r-1)(s-1)(p-1)≡1modq就有mk(q-1)(r-1)(s-1)(p-1)≡1+hq,得出mkφ(n)≡1+hq,因为因此得出已知都是素数,故
得对任意k,总满足mk(q-1)(r-1)(s-1)(p-1)≡1modqrs,m=cp,得出。
2.2 四素数RSA算法在数字签名中的应用
2.2.1 杂凑函数
杂凑函数又称为Hash函数、报文摘要函数、散列函数等。其目的是将任意长度的报文m都压缩成指定长度的数据H(m)。D=H(m)又称为m的指纹,代表了消息m的身份。杂凑函数的用途[5]:
1)完整性检验—利用二元对(m,H(m))的不可更改性实现。此时,m的变化将导致H(m)的变化。
2)提供文件的指纹,用于数字签名。只要H(m)不可替换,就保证m不可能再更改。
3)将杂凑值作为密钥,从而压缩掉密钥的冗余度。
4)伪随机数生成。
杂凑函数主要用于数字签名的有效性,算法都是虚假的任选的函数,所欲的添凑数值都是相同可能的。输出并不是凭借能够分辨出来的方式依附于输入,随机输入单个比特的数值改变,就会导致比特串中将近一般的比特发生改变。把杂凑函数运用到数字签名中,既可以加快签名速度,又可以不泄漏要签名的消息。
2.2.2 改进RSA算法的数字签名
通过使用杂凑函数改善后的RSA算法,需要通过签名如下。
1)用户将输出的信息加载到杂凑函数,生成消息摘要。
2)用户用私钥对信息摘要完成签名。
3)用户把信息和签名同事传送到用户那里。
4)用户在收到消息和签名后,需要使用公钥解密,然后通过杂凑函数算出一次摘要信息,看两者是否相等。如果相同,就表示消息的确来自于客户,而且在信息传输过程中没有被修改:如果不相同,则消息并不是来源于用户。
3 结束语
RSA算法是当代社会非常普及的算法,我们针对它做出了详细的研究,展示出了当前它的研究状况,而且修改了很多不完善的地方,实现了基于改进后的RSA算法的数字签名技术。随着电子政务的发展,能够体现信息安全的重要手段的数字签名科技,必将在在电子公文领域得到人们的广泛认可。
参考文献
[1]倪福根.数字签名技术在校园信息管理系统中的应用[J].福建电脑,2008(1):169.
[2]RIVEST R L,SHAMIR A,ADLEMAN L.A method for obtaining digitalsignatures and public key cryptosystems[J]. Communications of theAssociation for Computer Machinery,1978,21(2):120-126.
[3]肖振久,胡驰.AES与RSA算法优化及其混合加密体制[J].计算机应用研究,2013(31).
[4]杨波.现代密码学[M].北京:清华大学出版社,2007.
[5]向金海.电子公文的加密与数字签名研究[D].中国地质大学,2003.
关键词 加密;RSA密码算法;数字签名;消息摘要
中图分类号:TP393 文献标识码:A 文章编号:1671-7597(2014)15-0038-01
进入21世纪,各行各业以及政府部门对于网络资源和网络环境有很大的需求,很多重大问题都在网络上传播,比如一些涉及到国家和社会公共安全的问题,作为确保信息安全的重要措施,数字签名技术现在收到了越来越多的青睐和普及应用。数字签名的原理是把数据添加到消息上,或者是变换消息密码。这种处理数据的方法可以让信息接收者准确的判断出消息的来源和完整性。它是对电子形式的消息进行签名的一种方法。作为如今最普及的非对称加密算法,RSA具有安全性高,易于实现的特性,即可用于数据的加密,而且可以应用与身份验证。本文对RSA算法和数字签名的目前状况进行了深刻分析,能够改善RSA存在的为,之后对数字签名进行设计。
1 数字签名的基本思路
数字签名的基本原理来源于密码技术。意思就是在传输信息的时候在信息中添加一个“签名”,信息的传送者为文件添加密钥或者是对信息进行加密。其中包含的加密算法包括了对称加密和非对称加密两类。对称加密中所用到的密钥的基本原理是一样的,所以双方互通信息时必须通过安全的方式来交换密钥,如果一个人的密钥别窃取,另一个人的信息安全也就毫无保障了。与此同时,随着用户的增多,密钥的管理也会呈平方级数的增长趋势。但是非对称加密所使用的密钥是完全不一样的,并且不能从这一个推出下一个。为了保证持有者的身份特征,只有密钥的持有者才知道自己密钥对中的私有密钥。专业的仲裁中心可以管理公共密钥,随着其复杂程度的增加表现出线性增长的趋势。
2 RSA算法改进及其在数字签名中的用处
2.1 RSA密码体制
RSA密码体制作为一种分组密码体制,它的形成是基于大整数的素分子分解的问题上的。这种算法拥有较强的完善性和可开发性,所以很适用于电子公文的狮子签名。它的工作的基本思路如下。
1)参数的生成:①随意选出两个大素数p和q,算出n=pq和欧拉函数;②任选一个和φ(n)为香菇素数的小整数e,通过e算出d,让其能够满足de≡1modφ(n)的条件,这时候的公开密钥是(n,e)私人密钥是(p,q,d);③选出普遍使用的散列函数h。
2)签名步骤:①签名人应首先对文件编码,然后映射成h(M);②通过对c=E(m)=mdmodn的计算,这是A的一个就是C。
3)验证步骤:m=D(C)=memodn。
在RSA的体制中,这种算法的原理为加密算法和解密算法有如下联系:在上述算法中,和在功能上可以互相交换。
由以上算法分析可知,RSA算法中大数的模幂运算比较费时,早期曾有专家提出当私钥d小于模数N1/4时,RSA密码系统是不安全的。当前RSA密码系统的参数是在024比特到048比特之间,模数巨大,这样运行速度就会很大程度影响。如何解决这一问题,不同的人提出了不同的简化算法,这篇文章综合考虑了算法的特性,最终应用四素数RSA算法。
四素数RSA算法的基本思路如下。
建立在传统的双素数RSA的法则上,素数的数量取四,算法仍然成立,算法:
1)任选四个不一样的大素数,p,q,r和s,算出和φ(n)=(p-1)(q-1)(r-1)(s-1)。
2)选择加密秘钥,需要满足要求的e,算出私钥d,需要使de≡1modφ(n)成立。
3)加密解密的步骤传统的算法是相同的,仍然为:
加密算法:
解密算法:
从数论的方向也能验证算法是准确的,证明如下。
证明:设明文是m,密文c,密钥(d,n),公钥(e,n)。根据加密解密步骤得出:D(≡dc)≡cme(≡medmn,de≡1modφ(n),de≡1+kφ(n),k取整数,带入上式得,如果,由欧拉定理:,如果故中必含之一,pq,pr,ps,qr之一,之一,以下提供之一的证明步骤:若由欧拉定理:
对任意k恒有
mk(q-1)=1modq,mk(q-1)(r-1)(s-1)(p-1)≡1modq就有mk(q-1)(r-1)(s-1)(p-1)≡1+hq,得出mkφ(n)≡1+hq,因为因此得出已知都是素数,故
得对任意k,总满足mk(q-1)(r-1)(s-1)(p-1)≡1modqrs,m=cp,得出。
2.2 四素数RSA算法在数字签名中的应用
2.2.1 杂凑函数
杂凑函数又称为Hash函数、报文摘要函数、散列函数等。其目的是将任意长度的报文m都压缩成指定长度的数据H(m)。D=H(m)又称为m的指纹,代表了消息m的身份。杂凑函数的用途[5]:
1)完整性检验—利用二元对(m,H(m))的不可更改性实现。此时,m的变化将导致H(m)的变化。
2)提供文件的指纹,用于数字签名。只要H(m)不可替换,就保证m不可能再更改。
3)将杂凑值作为密钥,从而压缩掉密钥的冗余度。
4)伪随机数生成。
杂凑函数主要用于数字签名的有效性,算法都是虚假的任选的函数,所欲的添凑数值都是相同可能的。输出并不是凭借能够分辨出来的方式依附于输入,随机输入单个比特的数值改变,就会导致比特串中将近一般的比特发生改变。把杂凑函数运用到数字签名中,既可以加快签名速度,又可以不泄漏要签名的消息。
2.2.2 改进RSA算法的数字签名
通过使用杂凑函数改善后的RSA算法,需要通过签名如下。
1)用户将输出的信息加载到杂凑函数,生成消息摘要。
2)用户用私钥对信息摘要完成签名。
3)用户把信息和签名同事传送到用户那里。
4)用户在收到消息和签名后,需要使用公钥解密,然后通过杂凑函数算出一次摘要信息,看两者是否相等。如果相同,就表示消息的确来自于客户,而且在信息传输过程中没有被修改:如果不相同,则消息并不是来源于用户。
3 结束语
RSA算法是当代社会非常普及的算法,我们针对它做出了详细的研究,展示出了当前它的研究状况,而且修改了很多不完善的地方,实现了基于改进后的RSA算法的数字签名技术。随着电子政务的发展,能够体现信息安全的重要手段的数字签名科技,必将在在电子公文领域得到人们的广泛认可。
参考文献
[1]倪福根.数字签名技术在校园信息管理系统中的应用[J].福建电脑,2008(1):169.
[2]RIVEST R L,SHAMIR A,ADLEMAN L.A method for obtaining digitalsignatures and public key cryptosystems[J]. Communications of theAssociation for Computer Machinery,1978,21(2):120-126.
[3]肖振久,胡驰.AES与RSA算法优化及其混合加密体制[J].计算机应用研究,2013(31).
[4]杨波.现代密码学[M].北京:清华大学出版社,2007.
[5]向金海.电子公文的加密与数字签名研究[D].中国地质大学,2003.