在密码学中如何找出给定密码的支持模式



PHP函数:

  • http://cz.php.net/manual/en/function.mcrypt-list-modes.php -它列出了所有可用的模式,但你不能添加算法名称。
  • http://cz.php.net/manual/en/mcrypt.constants.php - RC4是一个流密码

我可以假设在加密中实现的所有其他密码都支持CBC, OFB, NOFB, CFB和ECB分组密码模式吗?

理论上是应该的。我很感兴趣在实践中是否如此。

谢谢!

PHP文档中的库介绍页说:

这是mcrypt库的接口,它支持各种块算法,例如DES, TripleDES, Blowfish(默认),3-WAY, safe - sk64, safe - sk128, TWOFISH, TEA, RC2和GOST inCBC, OFB, CFB和ECB密码模式。

这个库看起来是为了支持与分组密码选择正交的不同操作模式而设计的,这似乎是一个好主意。此外,正如您已经发现的,有两个函数mcrypt_list_algorithmsmcrypt_list_modes可以独立访问它们

另一方面,底层库libcrypt的主页说:

应该记住,不是所有的模式都适用于所有的分组密码,要么是因为实现约束或设计约束。

没有迹象表明哪种模式会或不会与哪种密码一起工作,但是-也许这可能取决于块大小?

看起来详细的答案只能在libcrypt或PHP包装器的源代码中找到。

最新更新