0/ 算法具有极高安全性,到目前为止,除了用穷举搜索法对 0/ 算法进行攻击外,还没有发现更
有效的办法。而 A= 位长的密钥的穷举空间为 %A=,这意味着如果一台计算机的速度是每一秒种检测一百
万个密钥,则它搜索完全部密钥就需要将近 %%BA 年的时间,可见,这是难以实现的,当然,随着科学技
术的发展,当出现超高速计算机后,我们可考虑把 0/ 密钥的长度再增长一些,以此来达到更高的保密
程度。
由上述 0/ 算法介绍我们可以看到:0/ 算法中只用到 =- 位密钥中的其中 A= 位,而第
B、=、%-、=- 位 B 个位并未参与 0/ 运算,这一点,向我们提出了一个应用上的要求,即 0/
的安全性是基于除了 B,=,%-,=- 位外的其余 A= 位的组合变化 %A= 才得以保证的。因此,在实
际应用中,我们应避开使用第 B,=,%-,=- 位作为有效数据位,而使用其它的 A= 位作为有效数
据位,才能保证 0/ 算法安全可靠地发挥作用。如果不了解这一点,把密钥 E 的
B,=,%-,=- 位作为有效数据使用,将不能保证 0/ 加密数据的安全性,对运用 0/ 来达到保
密作用的系统产生数据被破译的危险,这正是 0/ 算法在应用上的误区,留下了被人攻击、被人破译的
极大隐患
3、ElGamal 算法
/G 算法既能用于数据加密也能用于数字签名,其安全性依赖于计算有限域上离散对数这一难题。
密钥对产生办法。首先选择一个素数 ,两个随机数H和 ),H)#计算 H&),则其公钥为 H和 。
私钥是 )。H 和 可由一组用户共享。
/G 用于数字签名。被签信息为 3,首先选择一个随机数 与 互质,计算
H&
再用扩展 / "算法对下面方程求解 !:
3)(!
签名就是!。随机数 须丢弃。
验证时要验证下式:
&4&!H&3
同时一定要检验是否满足 ##。否则签名容易伪造。
/G 用于加密。被加密信息为 3,首先选择一个随机数 , 与 互质,计算
H&
!&3
!为密文,是明文的两倍长。解密时计算
3!I&)
/G 签名的安全性依赖于乘法群D84上的离散对数计算。素数 必须足够大,且 至少包含一个大素数
因子以抵抗 9HJ7 算法的攻击。3 一般都应采用信息的 77 值如 7 算法。/G 的安全性主要依赖于