说明:双击或选中下面任意单词,将显示该词的音标、读音、翻译等;选中中文或多个词,将显示翻译。
您的位置:首页 -> 词典 -> 可编程加密代码
1)  programmable secreted code
可编程加密代码
2)  encryption [in'kripʃən]
编密码,加密
3)  programmable options code setting
可编程选择代码的设定
4)  encryption [in'kripʃən]
加密;编<密>码;译成密码
5)  source programming code"
源编程代码
6)  Source code programming
源代码编程
补充资料:Rsa加密算法

这是一个现在在网络上、银行系统、军事情报等等许多领域用处非常广泛的加密算法,已经深深的影响到我们每一个人。一个以rsa加密算法为业务的公司他的市值就可以达到5亿美元。他极大的保证了我们的交易的安全性,一组以rsa算法产生的密码是需要当前世界上所有电脑联机不断的工作25年才能够破解的,这个足以说明他的价值之大,用处之广泛。有一组资料说,以rsa加密算法进行的加密软件他的下载和使用量远远超过了windows软件、ie浏览器等等著名软件。这个是进入未来网络生活中不可缺少的工具。

1978年就出现了这种算法,它是第一个既能用于数据加密也能用于数字签名的算法。它易于理解和操作,也很流行。算法的名字以发明者的名字命名:ron rivest, adishamir 和leonard adleman。但rsa的安全性一直未能得到理论上的证明。

rsa的安全性依赖于大数分解。公钥和私钥都是两个大素数( 大于 100个十进制位)的函数。据猜测,从一个密钥和密文推断出明文的难度等同于分解两个大素数的积。

密钥对的产生:选择两个大素数,p 和q 。计算:

n = p * q

然后随机选择加密密钥e,要求 e 和 ( p - 1 ) * ( q - 1 ) 互质。最后,利用euclid 算法计算解密密钥d, 满足

e * d = 1 ( mod ( p - 1 ) * ( q - 1 ) )

其中n和d也要互质。数e和n是公钥,d是私钥。两个素数p和q不再需要,应该丢弃,不要让任何人知道。 加密信息 m(二进制表示)时,首先把m分成等长数据块 m1 ,m2,..., mi ,块长s,其中 2^s <= n, s 尽可能的大。对应的密文是:

ci = mi^e ( mod n ) ( a )

解密时作如下计算:

mi = ci^d ( mod n ) ( b )

rsa 可用于数字签名,方案是用 ( a ) 式签名, ( b ) 式验证。具体操作时考虑到安全性和 m信息量较大等因素,一般是先作 hash 运算。

rsa 的安全性。

rsa的安全性依赖于大数分解,但是否等同于大数分解一直未能得到理论上的证明,因为没有证明破解rsa就一定需要作大数分解。假设存在一种无须分解大数的算法,那它肯定可以修改成为大数分解算法。目前,rsa的一些变种算法已被证明等价于大数分解。不管怎样,分解n是最显然的攻击方法。现在,人们已能分解140多个十进制位的大素数。因此,模数n必须选大一些,因具体适用情况而定。

rsa的速度:

由于进行的都是大数计算,使得rsa最快的情况也比des慢上100倍,无论是软件还是硬件实现。速度一直是rsa的缺陷。一般来说只用于少量数据加密。

rsa的选择密文攻击:

rsa在选择密文攻击面前很脆弱。一般攻击者是将某一信息作一下伪装(blind),让拥有私钥的实体签署。然后,经过计算就可得到它所想要的信息。实际上,攻击利用的都是同一个弱点,即存在这样一个事实:乘幂保留了输入的乘法结构:

( xm )^d = x^d *m^d mod n

前面已经提到,这个固有的问题来自于公钥密码系统的最有用的特征--每个人都能使用公钥。但从算法上无法解决这一问题,主要措施有两条:一条是采用好的公钥协议,保证工作过程中实体不对其他实体任意产生的信息解密,不对自己一无所知的信息签名;另一条是决不对陌生人送来的随机文档签名,签名时首先使用one-way hashfunction 对文档作hash处理,或同时使用不同的签名算法。在中提到了几种不同类型的攻击方法。

rsa的公共模数攻击。

若系统中共有一个模数,只是不同的人拥有不同的e和d,系统将是危险的。最普遍的情况是同一信息用不同的公钥加密,这些公钥共模而且互质,那末该信息无需私钥就可得到恢复。设p为信息明文,两个加密密钥为e1和e2,公共模数是n,则:

c1 = p^e1 mod n

c2 = p^e2 mod n

密码分析者知道n、e1、e2、c1和c2,就能得到p。

说明:补充资料仅用于学习参考,请勿用于其它任何用途。
参考词条