事实上,当我试图更好地理解整个主题时,我有不止一个问题。对于 CTF 挑战,我目前正在阅读 LSFR。挑战提供的代码作为示例是一个 5 位 lsfr,它从其位序列生成一个 32 字节长的密钥(8 位到一个字节,这 32 次)。因此,对于这个特定的 5 位情况,密钥的第一个和最后一个字节是相同的,因为在 2^5-1 次迭代之后,整个序列重复。此外,如果我正确理解 LSFR 背后的整个逻辑,我只能为 5 位版本生成 2^5-1 个唯一键。(从一个特定的种子开始,例如 s=1)。我也可以有 2^5 个不同的初始种子。根据我的测试,这不会产生额外的 31 个唯一的 32 字节密钥,而只会产生相同的密钥,但顺序不同。好的,所以这里有我的问题。
a) 上述陈述是否正确或我遗漏了什么?
b) 如果以上是正确的,那么如果至少使用 8bit_lsfr (2^8-1),我最多可以获得 255 个唯一键。正确的 ?
c) 即使我增加 lsfr 的位,我也将始终获得最多 255 个唯一键,因为我只能有 255 个唯一字节并且字节序列会重复。那是对的吗 ?
d)因此将位数增加到 8 位以上是没有意义的,或者对于我看不到的这种特殊情况还有其他好处吗?
感谢您提前更好地理解这一点的任何帮助。最好的 Zaphoxx