流密码(二)m序列、Geffe序列生成器、钟控生成器
m序列
定义:若 C(D)∈Z2[D] 是一个L次本原多项式,则 <L,C(D)> 称 为最大长度LFSR。最大长度LFSR在非零初始状态下的输出称为m序列。
(m序列的统计性质) 设s是由长为L的最大长度 LFSR所生成的m序列. s满足Golomb随机性假设。即每个m序列也是伪噪声序列 (pn序列)。
本原多项式的概念:
本原多项式是近世代数中的一个概念,是唯一分解整环上满足所有系数的最大公因数为1的多项式。本原多项式不等于零,与本原多项式相伴的多项式仍为本原多项式.
Geffe生成器
Geffe生成器由三个长度为L1,L2,L3 的最长LFSR定义而成,其中 L1,L2,L3两两互素。其非线性组合函数为:
f(x1,x2,x3)=x1x2 ⊕x3x2 ⊕x3=x1x2 ⊕(1+x2)x3
LSFR2输出为1的时候,LSFR1与LSFR2 相连:LSFR2输出为0的时候,LSFR3与LSFR2 相连。
Geffe生成器抗相关攻击的能力弱,由结构可以看出,攻击者可以从L1、L2、L3进行分析,输出序列有75% 的可能与L1相关,75% 的可能与L3相关。
JK触发器
please触发器
Please触发器由8个LFSR,4个JK触发器和1个循环计数器组成,循环计数器进行选通控制。
please触发器抗相关攻击的能力也很弱。
钟控生成器
交错生成器
使用一个LFSR R1来控制两个LFSR即 R2和 R3的步调,产生的**流是 R2和 R3 输出序列的异或。
交错生成器的结构图为:
实例不在此展示
交错生成器的特性:
假设 R1产生了一个周期为2L1-1的序列。同时,假设R2 和 R3 是最长的LFSR,长度分 别为 L2和 L3 ,满足 gcd(L2,L3)=1.
x是交错生成器的输出序列。
收缩生成器
假设LFSR R1 和 R2 的输出序列分别是 a0,a1,a2,…和b0,b1,b2,…则由收缩生成器产生的**流是 x0,x1,x2,…,其中 xj=bij ,并且对 每个 j>=0 ,ij 是序列 a0,a1,a2,…中第 j个1的位置。
《现代密码学第四版》P28有另一种钟控生成器,读者有兴趣可以自行查阅。