RSA加密算法的的安全分析

作者:鄢喜爱 杨金民 田华

4. 1 大整数的分解问题

RSA 的安全性主要是基于分解大整数的困难性假定, 至今在理论和实践中还未能证明有分解大整数的有效办法。随着人类计算能力的提高, 原来被认为不可能分解的某些大整数可能会

被成功分解, 这对RSA 的安全性构成了潜在的威胁。如果密码分析者能够分解( 公开已知的) n,那么就可以找到p 和q, 进而得到z。有了z 和e( 公开已知的) 之后, 只要使用 uclid 扩展算法就可以找到d。

4.2 密钥的位数问题

有一种提高RSA 运算速度的建议是使公钥e 取较小的值, 这会使加密变得易于实现, 速度有所提高, 但这样是不安全的。在使用RSA 算法时对其密钥的选取特别注意其大小。就目前的计算机水平用1 024 位的密钥是安全的, 2 048 位是安全的。RSA 实验室认为, 512 位的n 已不够安全, 应停止使用, 个人需要用668 位的n, 公司用1024 位的n, 极其重要的场合应该用2 048 位的n。

4. 3 共享整数n 的问题

当不同的用户之间共享整数n 时, 密码分析者通过截获来自不同用户的密文, 能够有机会计算出密文。例如: 如果用户A 的公钥为(n, e1) ,用户B 的公钥为(n, e2) , 其中gcd( e1 , e2) = 1。用户C 要发送消息x 给用户A 和用户 B, 并分别用用户A 和用户B 的公钥对该消息加密, 得到与用户A 和用户 B 相对应的密文y1=xe1 mod n。一旦密码分析者截获了y1 ,y2 , 就可以计算出明文x, 这种攻击方法称为”同模攻击”。因此, 不同用户之间不要共享整数n.

4.4 算法的同态问题

RSA 算法具有同态的特点, 即对于任意的x1, x2 I Zn , k ( x1, x2 ) = k (x1) k (x2) 成立。如果密码分析者获知密文y1与y2 的明文分别为x1和x2, 则能够得知密文 y y mod n 的明文为x1 x2mod n。这种攻击方法称/ 选择明文攻击0,通过采用单向函数能应对这种攻击行为。在具体应用中, 经常在加密之前进行杂凑处理或单向变换, 以此破坏RSA 算法的同态性质。

恒波软件在研究各类加密算法的基础上,采用*先进的加密技术为企业和个人提供完善的数据保护服务,如旗下的移动硬盘加密软件、文件夹加密软件等都是加密强度非常高,为广大企业和个人用户所喜欢的加密软件。