有没有一种快速的算法可以存储包含L位为1的所有各种N位数字?提供N和L参数。这是为了在类里面打破加密系统,我注意到两次定时攻击可以找出比特长度(N)和1比特数(L)。
与其强求下限和上限之间的所有值,不如将我需要测试的元素最小化。因此,我正在考虑使用一个包含所有元素的 vector ,该 vector 可能适合我从两次定时攻击中获取的信息。
任何提示将不胜感激。
我正在使用C++。
最佳答案
Bit Twiddling Hacks页面显示了如何枚举所有二进制数,其中每个生成的数字都使用O(1)工作精确地设置了n位。他们的解决方案在此处转载:
从最后的L位(全为1)之外的全0数开始,您应该能够使用它来枚举所需的所有数字。
希望这可以帮助!