8-序列密码
极大的周期 良好的统计特性 抗线性分析 抗统计分析。
15
基于移位寄存器的流密码算法
rn rn-1 … r2 r1 bn bn-1 … b2 b1
bn bn-1 … b2
挪威政府的首席密码学家Ernst Selmer 于1965年提出了移位寄存 器理论,它是序列密码中研究随机密钥流的主要数学工具.
移位寄存器是指有n个寄存器(称为n-级移位寄存器)r1,r2,…,rn从 右到左排列,每个寄存器中能存放1位二进制数,所有寄存器中的数可以 统一向右(或向左)移动1位,称为进动1拍. 即r1的值(b1)右移1位后输出, 然后r2的值(b2)送r1 , r3的值(b3)送r2,……最后, rn的值(bn)送rn-1.
下图是一个5级线性反馈移位寄存器,其初始状 态为(a1,a2,a3,a4,a5)=(1,0,0,1,1),可求出输出序列 为1001101001000010101110110001111100110…,周 期为31。
29
序列的周期性
当一个无限序列{si}是由一个有限序列重复而成 时,这个序列是有周期的。即存在一个正整数r, 使得对所有的正整数k,有:sk+r= sk。
序列密码
1
主要内容
• 流密码(序列密码)起源 • 流密码的分类 • 线性反馈寄存器 • RC4密码算法
2
流密码的思想起源
种子密钥
密钥流生成器
k12
c12
明文
m12
加密过程
3
流密码的思想起源
种子密钥
密钥流生成器
k12
m12
密文
c12
解密过程
4
流密码的思想起源
• 设明文为m=m1m2… mi∈GF(2), i>0
19
基于移位寄存器的流密码算法
线性反馈移位寄存器LFSR(linear feedback shift register)的反馈函数为线性函数
作为密钥流的序列{ai}的周期一定要大 否则密钥流的空间太小,利用穷举搜索可以
得到密钥流{ai}
n级LFSR输出的序列的周期r不依赖于寄存器的 初始值,而依赖于特征多项式p(x)
20
基于移位寄存器的流密码算法
定义 设n级LFSR的输出序列{ai}满足递推关系
f (a1, a2 , an ) cna1 cn1a2 c1an
ank cnank1 c a n1 nk2
bn
… bn1
b2
c1ak (k 1).
输出序列
b1
c1
c2
缺点:一旦接收端和发送端的种子密钥和内部状态不同步,解密 就会失败,两者必须立即借助外界手段重新建立同步。
10
流密码技术的发展及分类
k
k
密钥流 生成器
密钥流 生成器
zi
E(zi,mi) mi
ci
信道
ci
zi E(zi,mi)
mi
自同步流密码SSSC(Self-Synchronous Stream Cipher)
例: 5级线性反馈移位寄存器产生的密钥序列 加密得到的明文串为011001111111001,对应的密 文串为101101011110011。求该LFSR的反馈函数。
解:由明密文得相应的密钥序列为 110100100001010;
利用前10个密钥序列比特建立如下方程:
37
基于移位寄存器的流密码算法
也可以说无限序列{si}具有如下结构: s0s1s2…sr-1s0s1s2…sr-1s0s1s2…
所以具有此性质的最小正整数r,称为这个序列的 周期。s0s1…sr-1称为这个周期序列的生成序列。
若序列{si}中除了开始几项外,以后的剩余部 分是周期序列,则此序列称为准周期序列。
30
基于移位寄存器的流密码算法
n级LFSR输出的序列的最大周期是2n 1 为什么?
LFSR的寄存器状态遍历2n 1个非零状态 初始状态为全零,则输出序列为0的循环
定义 当LFSR的寄存器状态遍历2n 1个非零状 态时,序列的周期达到最大2n 1,这种序列被称为 m序列。
31
基于移位寄存器的流密码算法
定义 若n次不可约多项式p(x)的阶为2n-1,则称 p(x)为n次本原多项式。
的优点是即使接收端和发送端不同步,只要接收端能连 续地正确地接受到n个密文符号,就能重新建立同步。因此 自同步流密码具有有限的差错传播 ,且分析较同步流密码的 分析困难得多
11
流密码技术的发展及分类
思考:假设j=n/4,n为分组长度 对于DES,n=64, j=16;对AES,n=128,j=32
p(x) 1 x x4
则其级联多项式对应的线性反馈寄存器图? 和反馈函数?
f (a1,a2,a3,a4 ) a1 a4
27
例题
已知一个5级的LFSR的联结多项式为: p(x) 1 x2 x5
则其级联多项式对应的线性反馈寄存器图?
a5
a4
a3
a2
输出序列
a1
28
LFSR举例
18
反馈移位寄存器
例4-1:左图是一个3级 反馈移位寄存器,其初始状
态为(a1,a2,a3)=(1,0,1),输
出可由右表求出。
即输出序列为 101110111011…,周期为4。
a3 a2 a1 101 11 0 1 11 011
1 01 1 10 1 11 …….
输出 1 0 1 1 1 0 1 …..
定理 {ai}是周期为2n 1的m-序列的充要条件是 其特征多项式f(x)为n阶本原多项式
32
基于移位寄存器的流密码算法
定义 设 p(x) 是GF(2) 上的多项式,使p(x)|(x p 1) 的最小的p称为 p(x) 的周期或者阶。
例: f (x) x4 x3 x2 x 1 为 GF(2) 上多项
密文对 M {m1, m2 ,, m2n},C {c1,c2,,c2n},则可确 定一段2n位长的密钥序列 K {k1, k2,, k2,n}由此可以 完全确定反馈多项式的系数。
35
基于移位寄存器的流密码算法
kn1 k1an k2an1 kna1
kn 2
k6 k1 k2 k3
k7 k2 k3 k4
k8
k3
k4
k5
kk19反0 馈 kk函54 数kk65 为kk76
输出序列
a5
a4
a3
a2
a1
反馈多项式?则其输出序列为?
f (a1, a2 , a3, a4 , a5 ) a1 a2 a4
24
LFSR的形式化表示
a5
a4
a3
a2
a1
输出序列
则其联结多项式为?
p(x) 1 c1x cn1xn1 cn xn c2 1, c4 1, c5 1 p(x) 1 x2 x4 x5
bn
… bn1
b2
输出序列
b1
c1
c2
cn1
cn
…
22
注意:
LFSR与联结多项式是一一对应的,如
果知道了线性反馈移位寄存器的结构, 可以写出它的联结多项式,同样可以根 据联结多项式画出移位寄存器的结构。
23
LFSR举例
下图为一个5级线性反馈移位寄存器,其初始状态为
(a1, a2 , a3 , a4 , a5 ) (1,1,0,1,0)
rn rn-1 … r2 r1 bn bn-1 … b2 b1
输出位oi
反馈函数 f
17
反馈移位寄存器
初始状态由用户确定,当第i个移位时钟脉冲到 来时,每一级存储器ai都将其内容向下一级ai-1传递, 并计算f(a1,a2,…,an)作为下一时刻的an。
反馈函数f(a1,a2,…,an)是n元布尔函数,即n 个变元a1,a2,…,an 可以独立地取0和1两个可能的值, 函数中的运算有逻辑与、逻辑或、逻辑补等运算, 最后的函数值也为0或1。
k2an
k3an 1
kn 1a1
k2n knan kn1an1 k2n1a1
n个线性方程包含n个未知数:a1,a2,...,an,所以
可惟一解出ai (i=0,1,…,n)
从而可确定该线性反馈移位寄存器接下来的状
态,也就能够得到余下的密钥序列。
36
基于移位寄存器的流密码算法
• 设密钥为k=k1k2…
ki∈GF(2), i>0
• 设密文为c=c1c2…
ci∈GF(2), i>0
• 则加密变换为ci= mi + ki (mod 2)
i>0
• 则解密变换为mi= ci&
流密码的思想起源
密钥流生成、存储和分
• 思想起源:20世纪发2困0难年代的Vernam体制, 即“一次一密”密码体制。香农利用信息 论证明“一次随机一序列密实计现算”机密无法码体制在理论上不 可破译
34
基于移位寄存器的流密码算法
1 若LFSR的反馈函数已知,破译者已知连续n 位明密文对{m1, m2,, mn}和{c1, c2 ,, cn} 则可以推导
出n比特密钥流 {k1, k2 ,, kn},ki mi ci 继而由反
馈函数得到整个密钥流{ki} 2 已知明文攻击下,假设破译者已知了2n位明
25
例题
一个3-级的反馈移位寄存器,反馈函数 f(x)=b1⊕b3,初态为100,输出序列?
状态 100 110 111 011 101 010 001 100
输出位 0 0
1 1 1 0 1 0