第六题
话不多说直接上脚本:
|
|
用 sage
版本的 python2
运行这个脚本,可以得到:
|
|
第八题
我觉得这个题目的 bk 序列是有问题的:
|
|
这也就是说能够构造 bk 的最小多项式是 $$x^{15} + 1$$,这很显然不是一个四级序列:
虽然 bk 的周期等同于一个 4 级 m-sequence 的周期,
它并不是 m-sequence,它的特征多项式也非常奇怪。
这意味着我们只能用穷举法求他的周期,使用公式 $$(2^n - 1)(2^m - 1)$$ 是错误的。
话不多说上代码(第六题中的技巧已经被封装:shesl-crypto):
|
|
结果如下:
|
|
周期是 105,虽然和公式结果一样,但是我们并不能使用公式。
例 2-8
定理 2-7: GF(2) 上的 n 长 m-sequence {ai} 应该满足下面的三个条件:
- 在一个周期内,0、1 出现的次数分别是 $$2^{n-1} - 1$$ 和 $$2^{n - 1}$$;
- 在一个周期内,总游程数为 $$2^{n-1}$$;对长为 $$i (1 \le i \le n-1)$$ 的游程有 $$2^{n-1-i}$$ 个,0、1 各半;
- $${a_i}$$ 的自相关函数为 $$\displaystyle R(\tau) = \begin{cases} 1, & \tau = 0 \\displaystyle -\frac{1}{2^n - 1}, & 0 < \tau \le 2^n - 2 \end{cases}$$
对于例 2-8,其等价于 $$f_1 = 1 + x +x^3, f_2 = 1 + x^2 + x^3$$ 这样两个多项式,构成一个钟控序列生成器,现在我们通过上面的定理 2-7 证明它是不是一个 m 序列。他们的转移矩阵是很显然的。
话不多说,直接上代码:
|
|
运行它就可以发现:
|
|
他们的 0、1 数量差了很多。