第2章01--流密码(LFSR)
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第四章
流密码
一、流密码的基本概念 二、线性反馈移位寄存器序列 三、线性移位寄存器的一元多项式表示 四、m序列的伪随机性 五、m序列密码的破译
22
4.3 线性移位寄存器的一元多项式表示 设n级LFSR的输出序列满足递推关系
an+k=c1an+k-1 c2an+k-2 … cnak
P(x)=1+c1x+…+cn-1xn-1+cnxn 表示,称这个多项式为LFSR的特征多项式。
密文流:
c=c1c2…ci…=Ek1(m1)Ek2(m2)… 密钥流:{ki},i0。
一个完全随机的非周期序列,可以实现一次一密体制。但 需要无限存储单元和复杂的输出逻辑函数f。i是第i时刻 密钥流生成器的内部状态,以存储单元的存数矢量描述。
Eki(mi)…,ciC。
ki f (k , i )
第2章
流密码(序列密码)
一、流密码的基本概念 二、线性反馈移位寄存器序列 三、线性移位寄存器的一元多项式表示 四、m序列的伪随机性 五、m序列密码的破译
1
加密
ci mi ki mi ci ki
流密码的基本概念
解密
流密码是将明文划分成字符(如单个字母),或其编码 的基本单元(如0, 1数字),字符分别与密钥流作用进 行加密,解密时以同步产生的同样的密钥流实现。 流密码强度完全依赖于密钥序列的随机性(Randomness) 和不可预测性(Unpredictability)。
(*)
对任何k≥1成立。这种递推关系可用一个一元高次多项式
23
实例:(画出下列个移存器的逻辑框图,写出相应的线 性递推式,并讨论由它们所产生的序列)
1、不可约多项式 f ( x) x4 x3 x2 x 1 2、可约多项式 f ( x) x4 x3 x 1 ( x3 1)(x 1) 3、本原多项式 4、环式移存器
所以f(x)是本原多项式。
27
例:(32,7,5,3,2,1,0)
x32 x 7 x5 x3 x 2 x 1
C语言代码?
28
一些本原多项式:
29
30
f (a1, a2 ,, an ) cn a1 cn1a2 c1an
其中常数ci=0或1,是模2加法。 ci=0或1可用开关的断开和闭合来实现,如上图所示。
17
输出序列{at}满足 an+t=cnatcn-1at+1…c1an+t-1 其中t为非负正整数。
线性反馈移位寄存器因其实现简单、速度快、有较为成 熟的理论等优点而成为构造密钥流生成器的最重要的部件 之一。
20
f (a1, a2 ,, an ) cn a1 cn1a2 c1an
21
线性反馈移位寄存器输出序列的性质完全由其反馈函数 决定。 n n级线性反馈移位寄存器最多有2 个不同的状态。 若其初始状态为0,则其状态恒为0。若其初始状态非0, 则其后继状态不会为0。 n 因此n级线性反馈移位寄存器的状态周期小于等于2 -1。 n 其输出序列的周期与状态周期相等,也小于等于2 -1。 只要选择合适的反馈函数便可使序列的周期达到最大值 2n-1,周期达到最大值的序列称为m序列。
密钥流与明文流不相互独立!
6
同步流密码
密钥流产生器 加密变换器
主要问题:设计一个滚动的密钥产生器, 使k经其扩展成一个密钥流具有以下性质: 极大的周期、良好的统计特性、抗线性 分析、抗统计分析。
有限状态自动机FA
7
有限状态自动机FA (Finite state Automation)
12
两种常见的密钥流产生器
LFSR LFSR LFSR 非线性组合函数 LFSR 非 线 性 组 合 函 数
zi
zi
13
第四章
流密码
一、流密码的基本概念 二、线性反馈移位寄存器序列 三、线性移位寄存器的一元多项式表示 四、m序列的伪随机性 五、m序列密码的破译
14
线性反馈移位寄存器序列概念
移位寄存器是流密码产生密钥流的一个主要组成部分。 GF(2)上一个n级反馈移位寄存器由n个二元存储器与 一个反馈函数f(a1,a2,…,an)组成,如图所示。
例:本原多项式
f ( x) x 4 x 1
因为,f(x)|(x15-1),但不存在比15小的常数m,使 f(x)|(xm-1),所以f(x)的阶是15。 因为,一次多项式x、x+1不能整除f(x),所以任一个 三次多项式也不能整除f(x);
二次多项式x2+x+1不能整除f(x);
所以f(x)是不可约多项式。
18
例,下图是一个5级线性反馈移位寄存器,其初始状态为 (a1,a2,a3,a4,a5)=(1,0,0,1,1),可求出输出序列为:
反馈函数: 输出序列为
f a4 a1
1001101001000010101110110001111100110…
周期:31
19
在线性反馈移位寄存器中总是假定c1,c2,…,cn中至 少有一个不为0,否则f(a1,a2,…,an)≡0,这样的话, 在n个脉冲后状态必然是00…0,且这个状态必将一直 持续下去。 若只有一个系数不为0,设仅有cj不为0,实际上是 一种延迟装置。一般对于n级线性反馈移位寄存器,总 是假定c0=1。
5
流密码的分流 密 码 SSSC(Self-Synchronous Stream Cipher) i 依赖于( kI,i-1,mi),使密文 ci 不仅与当前 输入mi有关,而且由于ki对i的关系而与以前的输 入 m1, m2 ,…,mi-1 有关。一般在有限的 n 级存储下 将与mi-1,…,mi-n有关。 优点:具有自同步能力,强化了其抗统计分析的 能力 缺点:有n位长的差错传播。
每一存储器称为移位寄存器的一级,在任一时刻,这些级的内容构成该反 馈移位寄存器的状态,每一状态对应于GF(2)上的一个n维向量,共有2n种 可能的状态。每一时刻的状态可用n长序列表示: a1,a2,…,an
15
例: 3级反馈移位寄存器,其初始状态为 (a1,a2,a3)=(1,0,1),输出可由表求出
4
流密码的分类(1)
同步流密码SSC(Synchronous Stream Cipher): i与明文消息无关,密钥流将独立于明文。 特点:
对于明文而言,这类加密变换是无记忆的。但它是时变 的。 只有保持两端精确同步才能正常工作。 对主动攻击时异常敏感而有利于检测 无差错传播(Error Propagation)
f ( x) x 4 1
答案: 1、该移存器产生三类周期相同(全为5)的序列及一个全 零序列。 2、该移存器产生五类周期分别为6、3、3、2、1的序列及 一个全零序列。 3、该移存器产生周期为15的m序列及一个全零序列。
25
本原多项式
设p(x)是GF(2)上的多项式,使p(x)|(xp-1)的最小
φ
设计的关键是φ和ψ 采用非线性函数
i
k
11
ψ
k
zi
作为FA的密钥流产生器
(Z , ,, , 0 )
具有非线性的φ的FA理论很不完善,通 常采用线性状态转移函数φ以及非线性的 输出函数ψ 可将此类产生器分为驱动部分和非线性 组合部分。
驱动部分控制状态转移 LFSR 非线性组合部分提供统计特性良好的序列
8
例
f1 s1 s2 s3
S={s1,s2,s3},X={x1, x2,x3},Y=(y1,y2,y3) 转移函数 x1 y1 y2 y3 x2 y3 y1 y2 X3 y2 y3 y1 f2 s1 s2 s3 x1 s2 s3 s1 x2 s1 s2 s3 X3 s3 s1 s2
9
FA的状态图表示
核心问题是密钥流生成器的设计。
保持收发两端密钥流的精确同步是实现可靠解密的关 键技术。
2
流密码的框图
kI 安 全 信 道 kI
· · · KG
· · · KG
ki
mi Eki(mi) ci · · · ci
ki
mi Eki(mi)
3
流密码的框图
消息流:m=m1m2…mi,其中miM。
具有离散输入和输出(输入集和输出集均有 限)的一种数学模型
有限状态集S={si|i=1,2,…,l} 有限输入字符集X={ Xi|i=1,2,…,m} 有限输出字符集Y={ Yk|k=1,2,…,n} 转移函数 第j时刻输入Xj X ,输出Yj Y Yj=f 1(sj ,Xj) Sj+1 =f 2(sj ,Xj) 第j时刻输入Xj ∈X ,状态变为Sj+1∈S
p称为p(x)的周期或者阶。
仅能被非0常数或自身的常数倍除尽,但不能被其他 多项式除尽的多项式称为不可约多项式。 若n次不可约多项式p(x)的阶为2n-1,则称p(x)是n 次本原多项式。
以本原多项式为连接多项式产生的非零序列均是m序列。
26
若n次不可约多项式p(x)的阶为2n-1,则称p(x)是n次本原多项式
f ( x) x 4 x 1
f ( x) x 4 1
24
1、不可约多项式 f ( x) x4 x3 x2 x 1
2、可约多项式 f ( x) x4 x3 x 1 ( x3 1)(x 1)
3、本原多项式
4、环式移存器
f ( x) x 4 x 1
若输入为 x1x2x1x3x3x1 初始状态s1
状态序列:s1s2s2s3s2s1s2
输出序列: y1
10
y1 y2
y1 y3 y1
作为FA的密钥流产生器
同步流密码的密钥流产生器可看为一 个参数为k的FA 输出集Z,状态集Σ,状态转移函数 φ和输出函数ψ,初态0
k
(Z , ,, , 0 )
状态 (a1,a2,a3)
非线性反馈移位寄存器
输出
1 1 1 0 1 1
0 1 1 1 0 1
1 0 1 1 1 0
1 0 1 1 1 0
16
如果移位寄存器的反馈函数f(a1,a2,…,an)是a1, a2,…,an的线性函数,则称之为线性反馈移位寄存器 LFSR(linear feedback shift register)。 此时f可写为