我不知道在那篇密码学的文献上说过不公开的算法就是不安全的算法。而我记得的原话是:一个加密算法的安全性不能依赖于算法的保密。不依赖于算法保密和算法是否需要公开并没有任何逻辑上的联系。
逻辑上,如果一个算法的安全性不依赖算法的保密,那么对算法保密就更能够保证其安全性。大家可以翻翻德国二战时用的密码系统——依格码,它的破译始于获得了一台样机。如果没有这台样机,我估计那些天才的数学家(包括图灵先生),都不可能开展破译工作。而依格码的设计原理,恰恰就是不依赖于算法保密的。
之所以有人说如果一个算法不公开的话就不能保证其有效性,是因为如果不公开算法,就没有多少人了解,也没有太多人去分析其弱点,而算法的弱点就不容易被发现。但是,这里有一个前提,那就是:分析出你的弱点的人,必须会诚实的告诉你弱点所在。我不认为美国的国家安全局会义务为中国政府去做分析。
有一个例子,是关于目前用得很多的DES加密标准。DES加密标准在推行之前提交给美国的安全部(NSA),而NSA修改了DES算法中S盒的若干位,至于为什么修改没有作任何说明。也许是这个算法的制定者IBM在这里加了后门,NSA信不过他们;也许是NSA为了留有后门,修改了S盒。反正谁也不知道原因。
根据算法保密而判定一个算法不安全,是站不住脚的。至于一个商业算法是否需要保密,那是另外的问题了。我的看法是:这更可能是一个前期的保护手段和一个讨价还价的筹码。
至于为什么Wi-Fi在改进后还保留了RC4的算法呢?这是因为RC4这个算法速度很快,仅仅是密钥生成和异或操作,适合于CPU运算能力不强的AP。这样不至于在加密的时候对AP的性能产生太大的影响。
不过,比较好的加密算法基本上都是分组加密,通过多次轮换计算出来,但这种方法对CPU的要求较高。为了加快速度,非常好的的解决方法都是通过专用芯片来实现。这样,WAPI标准的推行,必然会给这些加密芯片带来很大的市场。
应该承认,我们在芯片设计和生产上不占任何优势,标准的强制推行和算法保密在不违反WTO的原则上给本地厂家提供了一个保护。但这种保护的作用需要依赖于标准推行的成功和国内市场的消化能力。不过,这已经不完全是技术的问题了。
在发稿前收到一个消息,中国政府和美国达成协议,无限期推迟实施WAPI强制性标准。同时致力于通过国际标准组织将WAPI的标准融入今后的国际标准中,下个月IEEE将来到北京和国家标准局共同商讨这件事情。
也许,这才是强制推行WAPI的意义所在。