视频
优点:
- 减轻会话密钥重用危害;
- 产生乱数序列一般没有周期;(因为明文一般没有周期)
- 抗破译能力更强;
缺点:
若 f 和 g 都不是时钟 i 的函数,则该模型产生乱数序列一定是最终周期序列。
- 一定不是时钟 i 的函数,与时钟无关;
- 不能有记忆;
- 不能有明文反馈
乱数生成函数只能是密钥和反馈密文的函数。
脱密函数: mi=D(k,di,ci)=D(k,f(k,Ci),ci)
改造即为初始乱源(一个/多个线性反馈移存器或非线性~),加上关于密钥 k 的非线性变换 g(x)。
要求:
- 周期长;-> 乱源输入序列周期长
- 平衡性等伪随机特性好; -> g(x) 是平衡函数
- 线性复杂度大(能够产生给定有限长序列最短的线性反馈移存器级数
n); -> g(x) 非线性程度高
关键要求:
- 实际找不出乱数序列不随机性;
- 乱数序列求不出密钥;
Si=(s1i,s2i,...,sLi)
xi=(sj1i,sj2i,...,sjni)
第 i 时刻输出的乱数:d∗i=g(xi)=g(si∗j∗1,si∗j∗2,...,si∗jn)
(平衡特性)由 LFSR 理论可知,在 L 级 LFSR 状态序列的一个周期内,前馈函数 g(x) 的 n 为输入向量 xi:
- 取非全零向量次数都是 2L−n ;
- 取全零向量的次数为 2L−n−1 ;
g(x) 的二元乱序输入序列是平衡函数,则 g(x) 输出序列也是几乎平衡的, g(x) 是平衡函数。
乱数序列是平衡序列⇔g(x)是平衡函数
设非线性滤波模型由一个级数为 L 的本源 LFSR 和一个次数为 m 的非线性 Boole 函数 g(x) 组成,其中 g(x) 与密钥无关,则有:
- 乱数序列的线性负载度 ≤L∗m=∑∗i=1mCLi(CLi为从L中取i的组合数)
- 对任意给定的素数级 LFSR,在次数为 m 的 Boole 函数集合里随机选 g(x),它的线性复杂度是最大 (=Lm) 的概率是 pm≈e−Lm/2LL>e−1/L
di=a⋅Si=aSitT=aAitS0t=(aAit)⋅S0
即建立线性方程组求解:
设aAit=(bit,L,bit,L−1,...,bit,1),S0=(xL,xL−1,...,x1)则可建立线性方程组,满秩则可求解S0。
滤波函数 g(x) 是非线性变换时,通过对其线性逼近,可以由乱数以一定概率得到输入线性组合 α⋅S(i)
β⋅di=以概率ρa,b相等α1sj1(i)⊕...⊕α1sjn(i)
由线性组合建立相应方程组。
该方程组为含错方程组,概率 ρ∗a,b 为方程组正确率,∣ρ∗a,b∣=∣2ρ_a,b−1∣ 为方程组的优势。
求解采用穷举法,则需要已知乱数个数为 O(ρ2_a,b),穷举量是 2L。
攻击者希望优势尽可能大,反之亦然。计算的复杂性也和 ρ 相关而与 α 无关。
针对特殊的 LFSR, 如反馈多项式系数非常稀疏时,对于优势很大的含错方程组,可以在多项式时间内求解。
- 攻击者希望优势 ∣ρ_a,b∣ 尽可能大;
- 设计者希望反馈多项式中的 1 尽可能多;(破坏稀疏系数条件)
Pa,b=P(β⋅di=α1sj1(i))⊕...⊕α1sjn(i))=limT→∞T1#{1≤i≤T:β⋅di=α1sj1(i))⊕...⊕α1sjn(i)}
结论:
ρa,b=T1i=1∑T(−1)β⋅di⊕α⋅x(i)≈W(f)(α→β)