3

我正在寻找一个好的许可许可(BSD/MIT 或 PD)DES 实现在 C 中,最小的运行时内存使用(即最小的读写内存,最好也是小的代码/表大小)。速度不是问题;事实上,在某些方面,越慢越好,因为它为暴力登录尝试提供了一些自然防御。

我见过的所有传统实现都会对大表进行惰性/运行时初始化,这是我试图避免的。我很乐意static const在二进制文件中包含数据表,事实上,这就是我已经部分破解了我现在拥有的实现,但我想知道是否有任何现有的实现可以做更好地以牺牲性能为代价最小化表的大小,这样二进制文件就不会那么大(大约 50kb 的表)。

注意:是的,DES 很烂。预期的用例是用于实现crypt处理传统密码登录的功能。

4

2 回答 2

3

具有MIT 许可证的示例和来自libtomcrypt的版本对于所有目的都是完全免费的。

第一个版本似乎也对表进行了惰性初始化,而它们是 libtomcrypt 中的静态常量。但是 libtomcrypt 似乎为您提供了速度与大小的编译标志,#ifndef LTC_SMALL_CODE较大的表前面有一个,也许可以解决您的问题?

于 2012-05-27T15:24:06.533 回答
0

Applied Cryptography的源代码部分包含大量 DES 实现的链接——我没有全部查看,但很有可能其中至少有一个满足您的需求。

于 2012-05-27T04:51:59.763 回答