cryptography - 对于 nbit LFSR(特别是伽罗瓦算法),唯一 32 字节密钥的最大数量只能是 255 是否正确?
问题描述
事实上,当我试图更好地理解整个主题时,我有不止一个问题。对于 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
解决方案
推荐阅读
- javascript - 通过使用 navigateByUrl() 传递查询参数
- testing - NPM - 只有在测试通过时如何发布?
- node.js - docker 在容器上运行但不在服务器上运行
- java - HttpMessageConversionException 中的 UnrecognizedPropertyException 未在 ControllerAdvice 中展开
- mariadb - MariaDB:从 SQL Server 的 ODBC CONNECT 引擎中选择插入不断导致“错误代码 1406 数据太长”
- java - 在 Socket.read() 处于活动状态时继续处理主要活动
- linux-kernel - 更改 YOCTO Linux 内核版本
- php - 在 WordPress 中注册分类法后,在博客级别 2 上找不到页面
- excel - 如何从网站中提取我们所有的内部文本?
- azure-devops - 对组织的所有用户进行身份验证