在CPA4软件中有提供设计LFSR加密器的功能:

尝试设计LFSR加密器,并用CAP4验证随机性-LMLPHP

输入LFSR的大小,初始密钥,还有反馈密钥。

点击Set Key后点击Show LFSR

尝试设计LFSR加密器,并用CAP4验证随机性-LMLPHP

观察LFSR,发现初始密钥是1101,转成十六进制是D,反馈密钥是1001,转成十六进制是9,正确。

接下来输入循环的次数20000,点击run就自动生成20000个二进制位。

结果仅截取前面一部分来验证是否达到最大周期:

1111

0101

1001

0001

1110

1011

0010

0011

1101

0110

0100

0111

1010

1100

1000

1111

发现周期是15,已经达到最大周期。特征多项式为x+x+1

CAP4也提供随机性测试:

尝试设计LFSR加密器,并用CAP4验证随机性-LMLPHP

无法通过单个位测试

尝试设计LFSR加密器,并用CAP4验证随机性-LMLPHP

无法通过扑克牌测试

尝试设计LFSR加密器,并用CAP4验证随机性-LMLPHP

所以虽然这个LFSR达到最大周期,但是随机性测试没有通过,是无法作为一个合格的密钥流生成器的。

本文章不旨在设置合格的密钥流生成器,仅说明如何去设计LFSR及测试随机性的方法。

05-10 23:58