2.3. DES 算法的应用误区
0/ 算法具有极高安全性,到目前为止,除了用穷举搜索法对 0/ 算法进行攻击外,还没有发现更有效的办法。而 E= 位长的
密钥的穷举空间为 %E=,这意味着如果一台计算机的速度是每一秒种检测一百万个密钥,则它搜索完全部密钥就需要将近 %%DE 年
的时间,可见,这是难以实现的,当然,随着科学技术的发展,当出现超高速计算机后,我们可考虑把 0/ 密钥的长度再增长一些,
以此来达到更高的保密程度。
由上述 0/ 算法介绍我们可以看到:0/ 算法中只用到 =- 位密钥中的其中 E= 位,而第 D、=、%-、=- 位 D 个位并未参
与 0/ 运算,这一点,向我们提出了一个应用上的要求,即 0/ 的安全性是基于除了 D,=,%-,=- 位外的其余 E= 位的组
合变化 %E= 才得以保证的。因此,在实际应用中,我们应避开使用第 D,=,%-,=- 位作为有效数据位,而使用其它的 E= 位
作为有效数据位,才能保证 0/ 算法安全可靠地发挥作用。如果不了解这一点,把密钥 C 的 D,=,%-,=- 位作为有效数
据使用,将不能保证 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 签名的安全性依赖于乘法群B84上的离散对数计算。素数 必须足够大,且 至少包含一个大素数
因子以抵抗 9HJ7 算法的攻击。3 一般都应采用信息的 77 值如 7 算法。/G 的安全性主要依赖于 和