第二章流密码 -zhp
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
分组密码与流密码的区别就在于有无记忆性。 流密码的滚动密钥z0=f(k,σ0)由函数f、密钥k和指定的初态σ0 完全确定。 由于输入加密器的明文可能影响加密器中内部记忆元件的 存储状态,σi(i>0)可能依赖于k,σ0,x0,x1,…,xi-1等参数。
k
k
y1
xi
x1
xm
无记忆元件
内部记忆元件
本原多项式:若n次不可约多项式p(x)的阶为2n-1,由称 p(x)为n次本原多项式 定理: 设{ai}∈G(p(x)), {ai}为m序列的充要条件是p(x)为 本原多项式。
Modern Cryptography
16:37
例2.5 设p(x)=x4+x+1,由于p(x)|(x15-1),但不存在小于15的常数
an+k = c1an+k-1c2an+k-2 … cnak (*)
对任何k>=1成立。这种递推关系可用一个一元高次多项式 p(x)=1+c1x+…+cn+1xn-1+cnxn 表示,称这个多项式为LFSR的特征多项式或特征多项式。
当给定特征多项式和初始态后,LFSR的整个输出序列就
完全确定了。由于有2n 种初始态,故最多有2n个序列,其中 非恒零的有2n-1个,记2n-1个非零序列的全体为G(p(x))。
Modern Cryptography
k
16:37
安全信道 k
滚动密钥生成器 zi
滚动密钥生成器 zi
xi
Ez xi
i
yi
yi
Dz yi
i
xi
i F ( i 1 , k ), zi f ( i , k ),
密钥 状态 密钥流
ci E ( zi , mi ).
工作原理:移位寄存器中所有位的值右移一位,最右边的一个 寄存器移出的值是输出位,最左边的一个寄存器的值由反馈 函数的输出值填充,反馈函数f是n个变元(a1,a2,…,an)的 布尔函数,移位寄存器根据需要不断地右移输出m位,形成 输出序列o1,o2,…,om
Modern Cryptography
有限状态自动机可用有向图表示,称为转移图。 转移图的顶点对应于自动机的状态,若状态si在输入A(1)i时转为 状态sj,且输出一字符A(2)j,则在转移图中,从状态si到状态sj有 一条标有(A(1)i, A(2)j)的弧线
例: 转移函数如下表
若输入序列是: 输出序列为
,初始状态为
,则
有限状态自动机的状态转移图
2.1 流密码的基本概念
流密码的基本思想:将明文逐位转换成密文 密钥: k 产生一个密钥流: z = z0 z1… 明文串: x = x0 x1 x2… 加密: y = y0 y1 y2… = Ez0(x0)Ez1(x1)Ez2(x2)…。 密钥流发生器f : zi = f(k,σi), σi是加密器中的记忆元件(存储器)在时刻i的状态,f是由 密钥k和σi产生的函数。
GF(2)上的n级线性反馈移位寄存器
Modern Cryptography
16:37
例:下图是一个5级线性反馈移位寄存器,其初始状态为 (a1,a2,a3,a4,a5)=(1,0,0,1,1),求出输出序列及周期: 1001101001000010101110110001111100110… 周期为31。
i : 密钥流生成器的内部状态 0 : 密钥流生成器的初始状态
k : 种子(初始)密钥 F : 状态转移函数 f : 密钥流生成函数
密钥流生成器
8
同步流密码的特点
同步要求:只要通信双方的密钥序列产生器具有相同的“种
子序列”和相同的“初始状态”,就能产生相同的密钥序列。
无错误传播:一个密文的传输错误不会影响下一个密文的 解密。 主动攻击(的方法):一个主动攻击者对密文字符进行的 插入、删除或从重复都会立即破坏系统的同步性,从而可 能被解密器检测出来。作为性质2)的结果,主动攻击者可 能有选择地对密文字符进行改动,并准确地知道这些改动 对明文的影响。因此,必须采用附加技术为数据提供数据 源认证,并保证数据的完整性
2.1.3 密钥流产生器
密钥流产生器: 参数为k的有限状态自动机。
一个输出符号集Z、一个状态集∑、两个函数φ和ψ[以及一个初
始状态σ0组成。 状态转移函数φ:σi→σi+1,将当前状态σi变为一个新状态σi+1, 输出函数ψ:σi→zi,当前状态σi变为输出符号集中的一个元素zi。
设计关键:φ和ψ,使得输出序列z满足密钥流序列z应满足 的几个条件,并且要求在设备上是节省的和容易实现的。 为了实现这一目标,必须采用非线性函数。 采用线性的φ和非线性的ψ时,将能够进行深入的分析并可 以得到好的生成器。 可将这类生成器分成驱动部分和非线性组合部分。 驱动部分控制生成器的状态转移,并为非线性组合部分 提供统计性能好的序列。 非线性组合部分要利用这些序列组合出满足要求的密钥 流序列。
16:37
例:如下一个3级反馈移位寄存器,其初始状态为(a1, a2, a3)=(1, 0, 1),输出为下表。
状态 (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
即输出序列为101110111011…,周期为4。
22
练习
若初始状态为(0,0,1),求线性反馈函数的输出序列及 周期?
yi
yl
y E k x
yi E
zi
xi
2.1.1 同步流密码
同步流密码
流密码
自同步流密码
σi独立于明文字符的叫做同 步流密码; 否则叫做自同步 流密码
同步流密码
在同步流密码中,由于zi=f(k,σi)与明文字符无关,因而此 时密文字符yi=Ezi(xi)也不依赖于此前的明文字符。因此, 可将同步流密码的加密器分成密钥流产生器和加密变换 器两个部分。
m-序列
例 3级LFSR的特征多项式为: f(x)=1+x2+x3
ak=a k-2a k-3 初始状态为: (0,0,1), 输出序列为: a=0010111
010 100 001
011
101
100 001 010 011 101 111 110
29
111 110
初始状态为: (1,0,1), 输出序列为: a=1011100.
这就是为什么所有序列密码也有密钥的原因。密钥流发生器的输出是 密钥的函数。 这样,Alice有一个明文/密文对,但她只能读到用特定密钥加密的消 息。 更换密钥,攻击者就不得不重新分析。
实际使用中,密码设计者的最大愿望是设计出一个滚动密钥 生成器,使得密钥经其扩展成的密钥流序列具有如下性质:
33
{ai}为m序列的关键在于p(x)为本原多项式,n次本原多项 式的个数为 φ(2n-1)/n 其中φ 为欧拉函数。 已经证明,对于任意的正整数n,至少存在一个n次本原多 项式。所以对于任意的n级LFSR,至少存在一种连接方式使 其输出序列为m序列。
LFSR序列a=(a0, a1,…,an-1,…) 满足递推关系式: an=an-2+an-3.
时 刻 0 1 2 3
状 1 0 1 1 0 1 0 1
态 0 0 1 0
3级 2级 1级
输 出 0 0 1 0
4
5 6
1
0 0
1
1 0
1
1 1
1
1 1
线性反馈移位寄存器
如果移位寄存器的反馈函数f(a1,a2,…,an)是寄存器中某些 位的异或,则称之为线性反馈移位寄存器 LFSR(linear feedback shift register)此时f可写为: f(a1,a2,…,an)=cna1 cn-1a2 …c1an 其中常数 ci=0 或 1 , 是模 2 加法。 ci=0 或 1 可用开关的 断开和闭合来实现,这样的线性函数共有2n个。
Modern Cryptography
16:37
自同步流密码
k
密钥流生成器
zi mi E(zi,mi) ci
内部状态i依赖于(kI,i-1,mi),使密文ci不仅与当前输入 mi有关,而且由于ki对i的关系而与以前的输入m1, m2 ,…,mi-1有关。一般在有限的n级存储下将与mi1,…,mi-n有关。
Baidu Nhomakorabea极大的周期 良好的统计特性 抗线性分析 抗统计分析
2.1.2 有限状态自动机
密钥流的安全性要求越高,设计越复杂,因此序列密 码对在设计密钥流生成器时,既要考虑安全性,也要考虑 实用性:①密钥K容易分配、保管,更换;②易于实现,快 速。 有限状态自动机理论来指导设计密钥流生成器。 有限状态自动机是具有离散输入和输出(输入集和输 出集均有限)的一种数学模型,由以下3部分组成: ① 有限状态集S = { si | i=1,2,…,l }。 ② 有限输入字符集 A1={ A(1)j| j=1,2,…,m} 有限输出字符集A2={A(2)k |k=1,2,…,n}。 ③ 转移函数A(2)k=f1(si, A(1)j ),sh=f2(si, A(1)j) 即在状态为si,输入为A(1)j时,输出为A(2)k,而状态转移为 s h。
一个5级线性反馈移位寄存器
26
n级线性反馈移位寄存器的状态周期小于等于2n-1。 输出序列的周期与状态周期相等,也小于等于2n-1。 只要选择合适的反馈函数便可使序列的周期达到最大值2n-1。 周期达到最大值的序列称为m序列。
2.3 线性移位寄存器的一元多项式表示
设n级线性移位寄存器的输出序列{ai}满足递推关系:
Modern Cryptography
16:37
LFSR F
LFSR1
驱动部分
LFSR2 F
非线性组合部分
LFSRn
非线性组合部分
常见的两种密钥流产生器
19
2.2线性反馈移位寄存器
反馈移位寄存器(Feedback shift register FSR)是由n位 的寄存器和反馈函数(feedback function )组成,n位寄 存器的初始状态称为移位寄存器的初态
假的Alice得到一份密文和相应的明文,她就可以将两者异或恢复出
密钥流。或者,如果她有两个用同一个密钥流加密的密文,她就可以 让两者异或得到两个明文互相异或而成的消息。这是很容易破译的, 接着她就可以用明文跟密文异或得出密钥流。
现在,无论她再拦截到什么密文消息,她都可以用她所拥有的密钥 流进行解密。另外,她还可以解密,并阅读以前截获到的消息。一旦 Alice得到一明文/密文对,她就可以读懂任何东西了。
第2章 流密码
流密码的基本概念 线性反馈移位寄存器 线性移位寄存器的一元多项式表示 m序列的伪随机性 m序列密码的破译 非线性序列
密码体制的分类
流密码 私钥密码 分组密码 密码体制 基于大数分解困难问题 公钥密码 基于离散对数困难问题 ......
10
二元加法流密码
明文序列: m= m1 m2 m3 …; 密钥序列: z= z1 z2 z3 …; 密文序列: c= c1 c2 c3 …; 加密变换: ci=zimi (i=1,2,3,…); 解密变换: mi=zici (i=1,2,3,…).
是目前最为常用的流密码体制,其加密变换可表示为yi=zi xi。
定义 设p(x)是GF(2)上的多项式,使p(x)|(xp-1)的最小p称为 p(x)的周期或阶。 不可约多项式:仅能被非零常数或自身的常数倍除尽,但
不能被其他多项式除尽的多项式称为即约多项式或不可约
多项式。 定理: n级LFSR产生的序列有最大周期2n-1的必要条件是 其特征多项式为不可约的。
例:设 f(x)=x4+x3+x2+x+1 是 GF(2) 上的不可约多项式,但是 它的输出序列是000110001100011 …,周期是5,不是m序 列。 解:f(x)的不可约性由多项式x,x+1, x2+x+1不能整除f(x) 而得。对于k≥5,输出序列用ak=ak-1a k-2a k-3ak-4 检验 即可。
l,使得p(x)|(xl-1),所以p(x)的阶为15。p(x)的不可约性可由x,
x+1, x2+x+1都不能整除p(x)得到,所以p(x)是本原多项式。 若LFSR以p(x)为特征多项式,则输出序列的递推关系为 ak=ak-1
ak-4(k≥4)
若初始状态为1001,则输出为 100100011110101100100011110101… 周期为24-1=15,即输出序列为m序列。