加密与解密算法的研究
发布时间:2015-07-09 11:04
摘 要:计算机信息的保密问题显得越来越重要,无论是个人信息通信还是电子商务发展,都迫切需要保证Internet网上信息传输的安全,需要保证信息安全。其中,信息安全的核心是密码技术。
关键词:信息安全 密码技术 方案论证 应用
1.对称密码体制
对称密码体制是一种传统密码体制,也称为私钥密码体制。在对称加密系统中,加密和解密采用相同的密钥。因为加解密密钥相同,需要通信的双方必须选择和保存他们共同的密钥,各方必须信任对方不会将密钥泄密出去,这样就可以实现数据的机密性和完整性。对于具有n个用户的网络,需要n(n-1)/2个密钥,在用户群不是很大的情况下,对称加密系统是有效的。但是对于大型网络,当用户群很大,分布很广时,密钥的分配和保存就成了问题。
2.非对称密码体制
非对称密码体制也叫公钥加密技术,该技术就是针对私钥密码体制的缺陷被提出来的。在公钥加密系统中,加密和解密是相对独立的,加密和解密会使用两把不同的密钥,加密密钥向公众公开,谁都可以使用,解密密钥只有解密人自己知道,非法使用者根据公开的加密密钥无法推算出解密密钥,故其可称为公钥密码体制。如果一个人选择并公布了他的公钥,另外任何人都可以用这一公钥来加密传送给那个人的消息。私钥是秘密保存的,只有私钥的所有者才能利用私钥对密文进行解密。
3.目的和意义
(1)解决大规模网络应用中密钥的分发和管理问题
采用分组密码、序列密码等对称密码体制时,加解密双方所用的密钥都是秘密的,而且需要定期更换,新的密钥总是要通过某种秘密渠道分配给使用方,在传递的过程中,稍有不慎,就容易泄露。公钥密码加密密钥通常是公开的,而解密密钥是秘密的,由用户自己保存,不需要往返交换和传递,大大减少了密钥泄露的危险性。同时,在网络通信中使用对称密码体制时,网络内任何两个用户都需要使用互不相同的密钥,只有这样,才能保证不被第三方窃听,因而N个用户就要使用N(N–1)/2个密钥。采用公钥密码体制,N个用户只需要产生N对密钥。由此可见,只有公钥密码才能方便、可靠地解决大规模网络应用中密钥的分发和管理问题。
(2)实现网络中的数字签名机制
对称密钥技术由于其自身的局限性,无法提供网络中的数字签名。这是因为数字签名是网络中表征人或机构的真实性的重要手段,数字签名的数据需要有惟一性、私有性,而对称密钥技术中的密钥至少需要在交互双方之间共享,因此,不满足惟一性、私有性,无法用做网络中的数字签名。相比之下,公钥密码技术由于存在一对公钥和私钥,私钥可以表征惟一性和私有性,而且经私钥加密的数据只能用与之对应的公钥来验证,其他人无法仿冒,所以,可以用做网络中的数字签名服务。
二、方案论证
1.介绍RSA公钥密码体制
RS A是Rivest,Shamir,Adleman提出基于数论的非对称密钥体制。RSA是建立在大整数分解的困难上的,是一种分组密码体制。RSA建立方法如下:首先随机选两个大素数p,q , 计算n=p • q;计算欧拉函数 φ(n)=(p-1)(q-1);任选一个整数e为公开加密密钥,由e求出秘密解密密钥加密/解密:将明文分成长度小于 位的明文块m,加密过程是:c = E(m,e) = mod n解密过程是:m = D(c,d) = mod n
2.RSA公钥密码体制的安全性分析
RSA的安全性依赖于大整数的因式分解问题。实际上,人们推测RSA的安全性依赖于大整数的因式分解问题,但谁也没有在数学上证明从c和e计算m需要对n 进行因式分解。可以想象可能会有完全不同的方式去分析RSA。然而,如果这种方法能让密码解析员推导出d,则它也可以用作大整数因式分解的新方法。最难以令人置信的是,有些RSA变体已经被证明与因式分解同样困难。甚至从RSA加密的密文中恢复出某些特定的位也与解密整个消息同样困难。
3.设计RSA系统的注意事项
(1)经过对RSA安全性的分析,可以得出使用RSA时应该注意的事项:
随机选择足够大素数;在使用RSA的通信网络协议中,不应该使用公共模;不要让攻击者得到原始的解密结果;解密密钥d相对模数n来说不应过小;应该或者加密密钥大;或者被加密的信息m总是大而且m不能是一些已知值的乘积,后面一种情况可以在加密前对m填充随机值实现。相关的消息不能用同样的密钥加密,加密前对消息进行随机值填充破坏消息之间的代数联系及相关性,但是要注意填充算法的选择;应该使获得对任意值的原始签名不可能。被签名的消息应该与模数差不多大,而且不是一些已知值的乘积;
(2)RSA系统的参数选择
RSA系统是第一个将安全性植基于因子分解的系统。很明显地,在公开密钥(e,N)中,若N能被因子分解,则在模N中所有元素价的最小公倍数(即所谓陷门)T=φ(N)=(p-1)(q-1)即无从隐藏。使得解密密钥d不再是秘密,进而整个RSA系统即不安全。虽然迄今人们尚无法“证明”,破解RSA系统等于因子分解。但一般“相信”RSA系统的安全性,等价于因子分解。即:若能分解因子N,即攻破RSA系统;若能攻破RSA系统,即分解因子N(相信,但未证明)。因此,在使用RSA系统时,对于公开密钥N的选择非常重要。必须使得公开N后,任何人无法从N得到T。此外,对于公开密钥e与解密密钥d,亦需有所限制。否则在使用上可能会导致RSA系统被攻破,或应用在密码协议上不安全。
4.RSA公钥密码体制的应用
(1)数字签名
长期以来的日常生活中,对于重要的文件,为了防止对文件的否认,伪造,篡改等等的破坏,传统的方法是在文件上手写签名。但是在计算机系统中无法使用手写签名,而代之对应的数字签名机制。数字签名应该能实现手写签名的作用,其本质特征就是仅能利用签名者的私有信息产生签名。因此,当它被验证时,它也能被信任的第三方(如法官)在任一时刻证明只有私有信息的唯一掌握者才能产生此签名。其特点:签名是可信的,签名是不能伪造的,签名是不可重用的,签名后的文件是不能更改的,签名是不能否认的。
三、过程论述
1.RSA算法工作原理
首先,找出三个数,p,q,r,其中p,q是两个相异的质数,r是与(p-1)(q-1)互质的数......p,q,r这三个数便是privatekey 接着,找出m,使得rm==1mod(p-1)(q-1).....这个m一定存在,因为r与(p-1)(q-1)互质,用辗转相除法就可以得到了.....再来,计算n=pq.......m,n这两个数便是public key编码过程是,若资料为a,将其看成是一个大整数,假设a=n的话,就将a表成s进位(s=n,通常取s=2^t),则每一位数均小于n,然后分段编码......接下来,计算b==a^mmodn,(0=b若p,q是相异质数,rm==1 mod (p-1)(q-1),a是任意一个正整数,b==a^m mod pq, c==b^r mod pq, 则c==amod pq 证明的过程, 会用到费马小定理, 叙述如下:
m是任一质数,n是任一整数,则n^m==nmodm证明因为rm==1 mod(p-1)(q-1),所以rm=k(p-1)(q-1)+1,其中k是整数因为在modulo中是preserve乘法的(x==ymodz and u==vmodz=xu==yv modz),所以
c==b^r==(a^m)^r==a^(rm)==a^(k(p-1)(q-1)+1)modpq
(1)如果a不是p的倍数,也不是q的倍数时:
则a^(p-1)==1modp(费马小定理)=a^(k(p-1)(q-1))==1 modp a^(q-1) ==1 mod q(费马小定理)=a^(k(p-1)(q-1))==1 modq所以p,q均能整除a^(k(p-1)(q-1即a^(k(p-1)(q-1))==1modpq即a^(k(p-1)(q-1))==1 mod pq=c==a^(k(p-1)(q-1)+1)==a mod pq
(2)如果a是p的倍数,但不是q的倍数时:
则a^(q-1)==1 mod q(费马小定理)=a^(k(p-1)(q-1))==1 modq
=c==a^(k(p-1)(q-1)+1)==a mod q=q|c-a
因p|a=c==a^(k(p-1)(q-1)+1)==0 modp=p|c-a
所以,pq|c-a=c==amod pq
(3)如果a是q的倍数,但不是p的倍数时,证明同上
(4)如果a同时是p和q的倍数时:
则pq|a =c==a^(k(p-1)(q-1)+1)==0mod pq=pq|c-a
=c==a mod pq
这个定理说明a经过编码为b再经过解码为c时,a ==c mod n(n =pq)但我们在做编码解码时,限制0=a
2.RSA 的安全性
RSA的安全性依赖于大数分解,但是否等同于大数分解一直未能得到理论上的证明,因为没有证明破解 RSA就一定需要作大数分解。假设存在一种无须分解大数的算法,那它肯定可以修改成为大数分解算法。目前, RSA 的一些变种算法已被证明等价于大数分解。不管怎样,分解n是最显然的攻击方法。现在,人们已能分解多个十进制位的大素数。因此,模数n 必须选大一些,因具体适用情况而定。
3.RSA的速度
由于进行的都是大数计算,使得RSA最快的情况也比DES慢上一倍,无论是软件还是硬件实现,速度一直是RSA的缺陷。一般来说只用于少量数据加密。
参考文献
[1] 陈 运.信息加密原理[M].成都:电子科技大学出版社,1990.
张 周.我国企业开始重视网络安全[J].计算机世界A9版.2000,(3).
张文政,孟庆志.通信保密技术[J].计算机应用.1998,(6):25~28.
王 勇.RSA公开密钥密码体制的密钥生成研究
关键词:信息安全 密码技术 方案论证 应用
1.对称密码体制
对称密码体制是一种传统密码体制,也称为私钥密码体制。在对称加密系统中,加密和解密采用相同的密钥。因为加解密密钥相同,需要通信的双方必须选择和保存他们共同的密钥,各方必须信任对方不会将密钥泄密出去,这样就可以实现数据的机密性和完整性。对于具有n个用户的网络,需要n(n-1)/2个密钥,在用户群不是很大的情况下,对称加密系统是有效的。但是对于大型网络,当用户群很大,分布很广时,密钥的分配和保存就成了问题。
2.非对称密码体制
非对称密码体制也叫公钥加密技术,该技术就是针对私钥密码体制的缺陷被提出来的。在公钥加密系统中,加密和解密是相对独立的,加密和解密会使用两把不同的密钥,加密密钥向公众公开,谁都可以使用,解密密钥只有解密人自己知道,非法使用者根据公开的加密密钥无法推算出解密密钥,故其可称为公钥密码体制。如果一个人选择并公布了他的公钥,另外任何人都可以用这一公钥来加密传送给那个人的消息。私钥是秘密保存的,只有私钥的所有者才能利用私钥对密文进行解密。
3.目的和意义
(1)解决大规模网络应用中密钥的分发和管理问题
采用分组密码、序列密码等对称密码体制时,加解密双方所用的密钥都是秘密的,而且需要定期更换,新的密钥总是要通过某种秘密渠道分配给使用方,在传递的过程中,稍有不慎,就容易泄露。公钥密码加密密钥通常是公开的,而解密密钥是秘密的,由用户自己保存,不需要往返交换和传递,大大减少了密钥泄露的危险性。同时,在网络通信中使用对称密码体制时,网络内任何两个用户都需要使用互不相同的密钥,只有这样,才能保证不被第三方窃听,因而N个用户就要使用N(N–1)/2个密钥。采用公钥密码体制,N个用户只需要产生N对密钥。由此可见,只有公钥密码才能方便、可靠地解决大规模网络应用中密钥的分发和管理问题。
(2)实现网络中的数字签名机制
对称密钥技术由于其自身的局限性,无法提供网络中的数字签名。这是因为数字签名是网络中表征人或机构的真实性的重要手段,数字签名的数据需要有惟一性、私有性,而对称密钥技术中的密钥至少需要在交互双方之间共享,因此,不满足惟一性、私有性,无法用做网络中的数字签名。相比之下,公钥密码技术由于存在一对公钥和私钥,私钥可以表征惟一性和私有性,而且经私钥加密的数据只能用与之对应的公钥来验证,其他人无法仿冒,所以,可以用做网络中的数字签名服务。
二、方案论证
1.介绍RSA公钥密码体制
RS A是Rivest,Shamir,Adleman提出基于数论的非对称密钥体制。RSA是建立在大整数分解的困难上的,是一种分组密码体制。RSA建立方法如下:首先随机选两个大素数p,q , 计算n=p • q;计算欧拉函数 φ(n)=(p-1)(q-1);任选一个整数e为公开加密密钥,由e求出秘密解密密钥加密/解密:将明文分成长度小于 位的明文块m,加密过程是:c = E(m,e) = mod n解密过程是:m = D(c,d) = mod n
2.RSA公钥密码体制的安全性分析
RSA的安全性依赖于大整数的因式分解问题。实际上,人们推测RSA的安全性依赖于大整数的因式分解问题,但谁也没有在数学上证明从c和e计算m需要对n 进行因式分解。可以想象可能会有完全不同的方式去分析RSA。然而,如果这种方法能让密码解析员推导出d,则它也可以用作大整数因式分解的新方法。最难以令人置信的是,有些RSA变体已经被证明与因式分解同样困难。甚至从RSA加密的密文中恢复出某些特定的位也与解密整个消息同样困难。
3.设计RSA系统的注意事项
(1)经过对RSA安全性的分析,可以得出使用RSA时应该注意的事项:
随机选择足够大素数;在使用RSA的通信网络协议中,不应该使用公共模;不要让攻击者得到原始的解密结果;解密密钥d相对模数n来说不应过小;应该或者加密密钥大;或者被加密的信息m总是大而且m不能是一些已知值的乘积,后面一种情况可以在加密前对m填充随机值实现。相关的消息不能用同样的密钥加密,加密前对消息进行随机值填充破坏消息之间的代数联系及相关性,但是要注意填充算法的选择;应该使获得对任意值的原始签名不可能。被签名的消息应该与模数差不多大,而且不是一些已知值的乘积;
(2)RSA系统的参数选择
RSA系统是第一个将安全性植基于因子分解的系统。很明显地,在公开密钥(e,N)中,若N能被因子分解,则在模N中所有元素价的最小公倍数(即所谓陷门)T=φ(N)=(p-1)(q-1)即无从隐藏。使得解密密钥d不再是秘密,进而整个RSA系统即不安全。虽然迄今人们尚无法“证明”,破解RSA系统等于因子分解。但一般“相信”RSA系统的安全性,等价于因子分解。即:若能分解因子N,即攻破RSA系统;若能攻破RSA系统,即分解因子N(相信,但未证明)。因此,在使用RSA系统时,对于公开密钥N的选择非常重要。必须使得公开N后,任何人无法从N得到T。此外,对于公开密钥e与解密密钥d,亦需有所限制。否则在使用上可能会导致RSA系统被攻破,或应用在密码协议上不安全。
4.RSA公钥密码体制的应用
(1)数字签名
长期以来的日常生活中,对于重要的文件,为了防止对文件的否认,伪造,篡改等等的破坏,传统的方法是在文件上手写签名。但是在计算机系统中无法使用手写签名,而代之对应的数字签名机制。数字签名应该能实现手写签名的作用,其本质特征就是仅能利用签名者的私有信息产生签名。因此,当它被验证时,它也能被信任的第三方(如法官)在任一时刻证明只有私有信息的唯一掌握者才能产生此签名。其特点:签名是可信的,签名是不能伪造的,签名是不可重用的,签名后的文件是不能更改的,签名是不能否认的。
三、过程论述
1.RSA算法工作原理
首先,找出三个数,p,q,r,其中p,q是两个相异的质数,r是与(p-1)(q-1)互质的数......p,q,r这三个数便是privatekey 接着,找出m,使得rm==1mod(p-1)(q-1).....这个m一定存在,因为r与(p-1)(q-1)互质,用辗转相除法就可以得到了.....再来,计算n=pq.......m,n这两个数便是public key编码过程是,若资料为a,将其看成是一个大整数,假设a
m是任一质数,n是任一整数,则n^m==nmodm证明因为rm==1 mod(p-1)(q-1),所以rm=k(p-1)(q-1)+1,其中k是整数因为在modulo中是preserve乘法的(x==ymodz and u==vmodz=xu==yv modz),所以
c==b^r==(a^m)^r==a^(rm)==a^(k(p-1)(q-1)+1)modpq
(1)如果a不是p的倍数,也不是q的倍数时:
则a^(p-1)==1modp(费马小定理)=a^(k(p-1)(q-1))==1 modp a^(q-1) ==1 mod q(费马小定理)=a^(k(p-1)(q-1))==1 modq所以p,q均能整除a^(k(p-1)(q-1即a^(k(p-1)(q-1))==1modpq即a^(k(p-1)(q-1))==1 mod pq=c==a^(k(p-1)(q-1)+1)==a mod pq
(2)如果a是p的倍数,但不是q的倍数时:
则a^(q-1)==1 mod q(费马小定理)=a^(k(p-1)(q-1))==1 modq
=c==a^(k(p-1)(q-1)+1)==a mod q=q|c-a
因p|a=c==a^(k(p-1)(q-1)+1)==0 modp=p|c-a
所以,pq|c-a=c==amod pq
(3)如果a是q的倍数,但不是p的倍数时,证明同上
(4)如果a同时是p和q的倍数时:
则pq|a =c==a^(k(p-1)(q-1)+1)==0mod pq=pq|c-a
=c==a mod pq
这个定理说明a经过编码为b再经过解码为c时,a ==c mod n(n =pq)但我们在做编码解码时,限制0=a
2.RSA 的安全性
RSA的安全性依赖于大数分解,但是否等同于大数分解一直未能得到理论上的证明,因为没有证明破解 RSA就一定需要作大数分解。假设存在一种无须分解大数的算法,那它肯定可以修改成为大数分解算法。目前, RSA 的一些变种算法已被证明等价于大数分解。不管怎样,分解n是最显然的攻击方法。现在,人们已能分解多个十进制位的大素数。因此,模数n 必须选大一些,因具体适用情况而定。
3.RSA的速度
由于进行的都是大数计算,使得RSA最快的情况也比DES慢上一倍,无论是软件还是硬件实现,速度一直是RSA的缺陷。一般来说只用于少量数据加密。
参考文献
[1] 陈 运.信息加密原理[M].成都:电子科技大学出版社,1990.
张 周.我国企业开始重视网络安全[J].计算机世界A9版.2000,(3).
张文政,孟庆志.通信保密技术[J].计算机应用.1998,(6):25~28.
王 勇.RSA公开密钥密码体制的密钥生成研究
上一篇:对我国中小型企业实施CRM的探讨
下一篇:随机型存储模型应用研究