ras加密 java_浅析RAS算法的保密性能

RAS算法是基于数论原理的公开密钥密码体制,是目前最有效的公开密钥加密算法之一,RAS算法的安全依赖于大数分解的困难性,已广泛地应用于网络和数据安全性系统的加密、数字签名和身份认证等需许多领域。

RAS算法的安全性依赖于大数分解,如果破译分析者能够分解大数n,那么做多只要试探2次就你按构造本算法相同的方法求出解密密钥,从而破译出明文。但大整数n的素因子分解问题是一个极为困难的问题。目前已知的做好的算法需要进行 e√1nn1n(1nn)次算数运算。如果用一台每秒108次运算的计算机来分解一个160位的十进制数,所需时间(年)有如下的计算:

8387d72228a03bad2d5f4f0c67a5d6c8.png

由以上计算可知,增加n的位数,分解他所需时间将更长,这就大大地提高了RAS的安全性。虽然并没有从理论上证明破译RAS的难度与大数分解难度是等价的,但从提出到现在已近30年,RAS经历了各种攻击的考验。

关于素数的选择

攻击者破译RAS算法的步骤为:

1、分解n,求出p、q

2、由Φ(n)=(p-1)(q-1),求出Φ(n)。

3、由ed=1modΦ(n),求出d。

为了更好地防范分解,在选择p、q时,一是注意p和q在位数上要相差极为数字;二是(p-1)和(q-1)都应含有大的素数因子,以增加攻击者猜算出Φ(n)的困难性;三是gcd(p-1,q-1)应当小。满足这些条件的素数称作安全素数。

实际上,所谓攻击者破译RAS算法,指的是由已知的e和n来推算d和Φ(n)。为了密码算法的安全,必须使p*q乘积的结果尽量大,这又使计算量将呈指数增长,算法实现的难度增大,实用性降低。RAS公开密钥算法的矛盾难点就在于计算存储容量和计算运行速度,位数减少,则速度变快,难度降低,安全性变差。

事实上,所有的应用算法都是基于这样一个合理的假设,当破译一个算法的花费远大于它的收益时,这种算法就是安全的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值