有没有一种快速的算法可以存储包含L位为1的所有各种N位数字?提供N和L参数。这是为了在类里面打破加密系统,我注意到两次定时攻击可以找出比特长度(N)和1比特数(L)。

与其强求下限和上限之间的所有值,不如将我需要测试的元素最小化。因此,我正在考虑使用一个包含所有元素的 vector ,该 vector 可能适合我从两次定时攻击中获取的信息。

任何提示将不胜感激。

我正在使用C++。

最佳答案

Bit Twiddling Hacks页面显示了如何枚举所有二进制数,其中每个生成的数字都使用O(1)工作精确地设置了n位。他们的解决方案在此处转载:



从最后的L位(全为1)之外的全0数开始,您应该能够使用它来枚举所需的所有数字。

希望这可以帮助!

10-02 03:36