当前位置:文档之家› 序列密码

序列密码

图 2-11 三级线性反馈移位寄存器示例 根据联接多项式可知,该 LFSR 的反馈函数为 f (a1, a2, a3) = a1 ⊕ a3 。假 设初始状态为(a1, a2, a3)=(1,1,1),其状态转移图为:
图 2-12 三级 LFSR 的状态转移图 在状态转移图中,从初始状态开始,沿着箭头所指示的路径依次取出 最左边的分量便得到该 LFSR 的输出序列:1110100 1110100 ……,周期为 7(=23-1)。3 级移位寄存器的所有可能状态数为 23=8(含状态(0,0,0)),而本例 中从初始状态(1,1,1)开始可以得到所有非(0,0,0)的状态。
例. 如图为一个 4 级 LFSR,其联接多项式为 x4 + x3 + x2 + x + 1
图 2-13 四级 LFSR 1. 如取初始状态为(a1, a2, a3, a4)=(1,1,1,1),其状态转移图为:
图 2-14 初始状态转移图一 对应的输出序列为 11110 11110……,周期为 5。 2. 如取初始状态为(a1, a2, a3, a4)=(0,0,0,1),其状态转移图为:
2.3.1 反馈移位寄存器
如图 2-7 所示为一个反馈移位寄存器的流程图,信号从左到右。ai 表示 存储单元,取值为 0 或 1,ai 的个数 n 称为反馈移位寄存器的级。在某一时 刻,这些级的内容构成该反馈移位寄存器的一个状态,共有个 2n 个可能的 状态,每一个状态对应于与 F2 上的一个 n 维向量,用(a1, a2,…,an)表示。函 数 f 是一个 n 元布尔函数,称之为反馈函数。
图 2-8 线性反馈移位寄存器 显然,根据 LFSR 中反馈函数的系数 ci (i = 1,..., n) 取值的不同,这样的 反馈函数有 2n 种。令 ai (t) 表示 t 时刻第 i 级寄存器的内容,则第 t+1 时刻寄 存器的内容为:
ai (t + 1) = ai+1(t), i = 1,2,..., n −1 an (t + 1) = cna1(t) ⊕ cn−1a2 (t) ⊕ ... ⊕ c1an (t) 通常称多项式 cn xn + cn−1xn−1 + ... + c1x + 1 为上述 LFSR 的联接多项式。 显然 LFSR 的联接多项式与它的反馈函数是一一对应的:如果知道了 LFSR 的联接多项式,便立即可以求得该移位寄存器的反馈函数,反之亦然。
2.1 概述 (2 级标题)
第 2 章 序列密码
按照对明文消息加密方式的不同,对称密码体制一般可以分为两类:分 组密码(block cipher)和流密码(stream cipher)
z 分组密码:对于某一消息 m,使用分组密码对其执行加密操作 时一般是先对 m 进行填充得到一个长度是固定分组长度 s 的 整数倍的明文串 M;然后将 M 划分成一个个长度为 s 的分组; 最后对每个分组使用同一个密钥执行加密变换。
序列密码以其易于实现、加解密快速、无错误传播、应用协议简单等优 点,在政府、军事、外交等重要部门的保密通信以及各种移动通信系统中被 广泛使用。
本章重点
♦ 一次一密加密体制; ♦ 线性反馈移位寄存器; ♦ 基于线性反馈移位寄存器的伪随机序列生成器; ♦ 伪随机序列的安全性; ♦ m 序列; ♦ RC4、A5 算法。
2.2 流密码的结构
流密码可以进一步划分成同步流密码和自同步流密码两类。
2.2.1 同步流密码
在同步流密码中,密钥流的产生与明文消息流相互独立。同步流密码的 加密过程形如:
图 2-4 同步流密码加密结构 由于密钥流与明文串无关,所以同步流密码中的每个密文 ci 不依赖于 之前的明文 mi-1,……,m1。从而,同步流密码的一个重要优点就是无错误 传播:在传输期间一个密文字符被改变只影响该符号的恢复,不会对后继的 符号产生影响。 但是,在同步流密码中发送方和接收方必须是同步的,用同样的密钥且 该密钥操作在同样的位置时才能保证正确解密。如果在传输过程中密文字符 有插入或删除导致同步丢失,密文与密钥流将不能对齐,导致无法正确解密。 要正确还原明文,密钥流必须再次同步。 与同步流密码相反,自同步流密码有错误传播现象,但可以自行实现同 步。
序列密码
内容提要(或本章引言)
使用流密码对某一消息 m 执行加密操作时一般是先将 m 分成连续的符 号(一般为比特串),m=m1m2m3……;然后使用密钥流 k=k1k2k3……中的第 i 个元素 ki 对明文消息的第 i 个元素 mi 执行加密变换,i=1,2,3,……;所有的 加密输出连接在一起就构成了对 m 执行加密后的密文。
第 2 章 序列密码
而明文流)参与了密钥流的生成,使得密钥流的理论分析复杂化,目前的流 密码研究结果大部分都是关于同步流密码的,因为这些流密码的密钥流的生 成独立于消息流,从而使它们的理论分析成为可能。
2.3 线性反馈移位寄存器
如前所述,序列密码的安全强度取决于密钥流生成器生成的密钥流的安 全性(周期、游程分布、线性复杂度等,详见 2.4 节)。有多种产生同步密钥 流生成器的方法,最普遍的是使用一种称为线性反馈移位寄存器(linear feedback shift register, LFSR)的设备。采用 LFSR 作为基本部件的主要 原因是:LFSR 的结构非常适合硬件实现;LFSR 的结构便于使用代数方法进 行理论分析;产生的序列的周期可以很大;产生的序列具有良好的统计特性。
2.3.3 LFSR 示例
例. 如图所示为一 4 级线性反馈移位寄存器,状态转移关系为: ai (t + 1) = ai+1(t), i = 1,2,3 a4 (t + 1) = a1(t) ⊕ a4 (t)
第 2 章 序列密码
图 2-9 四级线性反馈移位寄存器示例 假设初始状态为(a1, a2, a3,a4)=(0,1,1,0),则可根据反馈函数计算出该线 性反馈移位寄存器在各时刻的所有状态,如表所示。
t
a4
a34
a3
a2
a1
0
0
1
1
0
1
0
0
1
1
2
1
0
0
1
3
0
1
0
0
4
0
0
1
0
5
0
0
0
1
6
1
0
0
0
7
1
1
0
0
8
1
1
1
0
9
1
1
1
1
10
0
1
1
1
11
1
0
1
1
12
0
1
0
1
13
1
0
1
0
14
1
1
0
1
15
0
1
1
0
由计算过程可见,在 t=15 时刻该寄存器的状态恢复至 t=0 时刻的状态,
因此之后的状态将开始重复。这个移位寄存器输出的序列就是
图 2-1 简单的流密码加密结构 对应的解密运算即为:
第 2 章 序列密码
图 2-2 简单的流密码解密结构 由于实现 XOR 逻辑运算非常简单,因此这样的加解密操作将是快速有效的。 如果这里的密钥流是完全随机的(random)、与明文相同长度的比特串,对应 的密码被称为一次一密体制(one-time pad)。显然,此时明文串与密文串之间 就是相互独立的。不知道密钥的攻击者即便守候在公开信道上从而得到密文 串,他也无法获得关于明文的任何信息。事实上,Shannon 曾证明了“一次 一密的密码体制是不可破解的(unbreakable)”。
与分组密码相比,序列密码受政治的影响很大,目前应用领域主要还是 在军事、外交等部门。虽然也有公开设计和研究成果发表,但作为密码学的 一个分支,流密码的大多设计与分析成果还是保密的。目前可以公开见到、 较有影响的流密码方案包括 A5、SEAL、RC4、PIKE 等。
本章主要讨论流密码加密体制,关于分组密码的知识将在下一章给出。 容易想到,使用流密码对消息 m 执行加密时,最简单的做法就是让密钥流 中的第 i 个比特与明文串中的对应比特直接做 XOR 运算,即
2.2.2 自同步流密码
第 2 章 序列密码
在自同步流密码中,密钥流的产生与之前已经产生的若干密文有关,其 加密过程形如:
图 2-5 自同步序列密码加密结构 其中密钥流 ki 的生成过程形如:
图 2-6 同步流密码的密钥流生成 用函数表示为:
σ i+1 = F (σ i , ci−1,..., ci−k ) zi = G(σ i , k) ci = E(zi , mi ) 其中, σ i 是密钥流生成器的内部状态(初始状态记作 σ 0 ); F 是状态转移函 数;G 是生成密钥流的函数;E 是自同步流密码的加密变换,它是 zi 与 mi 的 函数。 由此可见,如果自同步流密码中某一符号出现传输错误,则将影响到它 之后 k 个符号的解密运算,亦即,自同步流密码有错误传播现象。等到该错 误移出寄存器后寄存器才能恢复同步,因而一个错误至多影响 k 个符号。在 k 个密文字符之后,这种影响将消除,密钥流自行实现同步。由于密文流(从
011001000111101 011001000111101 ……,序列的周期为 15,也称该移位寄 存器的周期为 15(=24-1)。
为了从直观上描述这一 LFSR 的状态转移情况,可以使用一些方框以
及联接这些方框的箭头组成的图形,即为状态转移图。
第 2 章 序列密码
图 2-10 状态转移图 例. 如图所示是一个联接多项式为 x3 + x + 1 的线性反馈移位寄存器。
z 流密码(也称序列密码):使用流密码对某一消息 m 执行加密操 作时一般是先将 m 分成连续的符号(一般为比特串), m=m1m2m3……;然后使用密钥流 k=k1k2k3……中的第 i 个元素 ki 对明文消息的第 i 个元素 mi 执行加密变换,i=1,2,3,……;所 有的加密输出连接在一起就构成了对 m 执行加密后的密文。
相关主题