余艳玮现代密码学与应用序列密码

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(Linear Feedback Shift Register)
线性反馈移位寄存器(LFSR)
• 是许多密钥序列生成器的基本部件
LFSR ………
F
zi
……
LFSR1 LFSR2
LFSRn
F
zi
LFSR的优点
① 非常适合用硬件实现 ② 可以产生大周期序列 ③ 可以产生具有良好统计性质的序列 ④ 易于利用代数方法对其进行分析

状态σi:位序列
序列密码的基本原理
① 序列密码的关键就是产生密钥序列的算法
② 密钥序列产生算法应能产生的密钥序列z:
– 只能是伪随机序列 – 具有良好的随机性和不可预测性
③ 密钥序列产生算法都采用带存储的时序算法,
其理论模型为有限自动机,其实现电路为时序 电路
④ 序列密码实际应用中的关键技术:如何保持
– 状态序列σi :某个时刻移位寄存器存储的位所组成的序列
• σi =(bn,bn-1, … , b1) • 共有2n-1个可能的状态
• 线性反馈函数:f (f是线性函数)
bni f(bni1,bni2,..bi.), cnbni1 cn1bni2 L c1bi
• 其中常数ci=0或1,是模2加法
通信双方的精确同步? (zi 与ci一一对应)
序列密码的分类——同步序列密码
① 同步序列密码
• 密钥序列的生成独立于明文和密文
同步序列密码通信模型
同步序列密码的特点
➢ 在保密通信过程中,通信的双方必须保持精确
的同步
• 对于同步序列密码,只要通信双方的密钥序列产生
器具有相同的种子密钥和相同的初始状态,就能
bn
bn1 …
b2
cn
c n1
c2

输出序列
b1
c1
例题
• 若其初始状态序列为 (b 1,b2,b3,b4 ,)(1 ,1 ,1 ,1 ) 求:
① 输入位是? ② 输出位是? ③ 级数(长度)n=? ④ 后续的状态序列分别为?共有多少个
不同的状态? ⑤ 输出序列是? ⑥ 周期T=? ⑦ 线性反馈函数f 如何表述?
大纲
• 序列密码的基本概念 • 密钥序列生成器 • 线性反馈移位寄存器(LFSR) • RC4
参考书籍
• 《Handbook of Applied Cryptography》: Chapter 6
• 《Applied Cryptography: Protocols, algorithms, and source code in C》: Chapter 16, 17
LFSR ………
F
LFSR1 LFSR2
F
zi
……
zi
LFSRn
Hale Waihona Puke Baidu
(1) 非线性组合生成器
F(x1,x2 ,L,xt )
N1-LFSR
N2-LFSR
zi
Nt-LFSR
(2) 非线性滤波生成器
N-LFSR L
F(xi1,xi2,L ,xit ) zi
(3) 钟控生成器
三、线性反馈移位寄存器(LFSR)
自同步序列密码通信模型
自同步序列密码的特点
• 自同步 • 有限的错误传播 • 主动攻击 • 明文统计扩散
二、密钥序列产生器
密钥序列产生器的构成
• 驱动部分:控制生成器的状态序列,并为非线性组合部
分提供统计性能良好的序列。 – 如,驱动部分可由一组最大长度线性反馈移位寄存器组成。
(将实际密钥k扩散成周期很大的驱动序列) – 扩散
线性反馈移位寄存器(LFSR)
n-位LFSR:
密钥序列产生器的构成
同步序列密码
• 密钥序列的生成独立于明文和密文
LFSR的组成
• 移位寄存器:是位的序列
– 输入位bn+1:最高有效位 – 输出位b1:最低有效位 – 级数(长度)n:包含的位的数目 – 周期T:输出序列从开始到重复时的长度
• 输出序列:最低有效位串
产生相同的密钥序列。
➢ 对失步的敏感性
• 收方的解密将一直错误,直到重新同步为止 • 容易检测插入、删除、重播等主动攻击
➢ 无错误传播
• 当通信中某些密文字符产生了错误(如0变成1,或1 变成0),只影响相应字符的解密,不影响其它字符
序列密码的分类——自同步序列密码
② 自同步序列密码
• 密钥序列由种子密钥和固定个数的以前的密 文字符的函数所生成
③ 采用一个短的种子密钥来控制某种算法产 生出长的密钥序列,供加、解密使用,而 短的种子密钥的存储、分配都较容易
序列密码 vs. 分组密码
序列密码的基本原理
利用种子密钥k和初始状态σ0产生一个密钥序列 z=z0z1…,并使用如下规则对明文序列 m=m0m1m2…加密,得到密文序列c:
c=c0c1c2…=Ez0(m0)Ez1(m1)Ez2(m2)…。
② 输出位是?
习题
下图为一个5级线性反馈移位寄存器,其初始状态为
( a 1 ,a 2 ,a 3 ,a 4 ,a 5 ) ( 1 ,1 ,0 ,1 ,0 )
输出序列
a5
a4
a3
a2
a1
则其输出序列为?
LFSR
• 线性反馈移位寄存器输出序列的性质完全由其反 馈函数决定。
• n级线性反馈移位寄存器最多有2n个不同的状态。 若其初始状态为0,则其状态恒为0。若其初始状 态非0,则其后继状态不会为0。
• 非线性部分:将驱动部分所提供的序列组合成密码特性
好的序列。
– 如,可提高密钥序列的线性复杂度(可隐蔽驱动序列与密钥k之间 过分明显的依赖关系)
– 混淆
• 这两部分构成刚好与Shannon早期提出的两条密码原 则——扩散和混淆是一致的。
常见的密钥序列产生器
目前最为流行和实用的密钥流产生器大多 基于线性反馈移位寄存器。如图所示,其驱 动部分是一个或多个线性反馈移位寄存器。
• n级LFSR的状态周期≤ 2n-1。其输出序列的周
期与状态周期相等,也≤ 2n-1。 • 只要选择合适的反馈函数便可使输出序列的周期
达到最大值2n-1
• 周期达到最大值的输出序列称为m序列。
例题
• 若其初始状态序列为 (b 1,b2,b3,b4 ,)(1 ,1 ,1 ,1 ) 求:
① 输入位是?
一、序列密码的基本概念
起源
• 一次一密
– 无条件安全:在理论上是不可破译的 – 但:要求密钥与明文具有相同长度、且不可重
复使用,增加了密钥分配与管理的困难
– 对策:用一个较小的密钥来伪随机地生成密钥
流。
① 人们试图以序列密码方式仿效“一次一密” 密码
② 序列密码的理论已经比较成熟,而且具有 工程实现容易、效率高等特点
相关文档
最新文档