密码学——第8章 序列密码和移位寄存器
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第八章序列密码和移位寄存器
香农证明了“一次一密”密码体制在理论上是不可破译的,促使人们长期以来一直寻求某种能仿效“一次一密”密码的密码体制,序列密码就是所寻求的方法之一。目前,序列密码是世界军事、外交等领域应用的主流密码体制。
序列密码的加、解密过程:
[1]将报文、语音、图像、数据等原始明文转换成明文数据序列;
[2]将转换后的数据序列用密钥序列进行逐位加密生成密文数据序列并发送
给接收者;
[3]接收者用相同的密钥序列对密文数据序列进行逐位解密恢复出明文序列。
●序列密码不存在数据扩展和错误传播,实时性好,加解密实现容易。
序列密码的发展历程:
●Vernam密码最早的二进制序列密码系统。当Vernam密码中的密钥序列
为完全随机的二进制序列时,它就是“一次一密”密码。但其密钥产生分配和管理都极为困难,故未得到广泛应用。
●随着微电子技术和数学理论的发展,基于伪随机序列的序列密码成为当前
最通用的密码系统。这种序列密码中,加、解密的密钥序列都是伪随机序列。
●伪随机序列是由密钥流产生器产生的。密钥流产生器实际上就是通过给定
算法产生通常是0-1数据流的密钥流。
伪随机序列:
序列密码可看成多表密码的一种,其密钥流是有周期的,因为密钥流是周期的,所以要完全做到随机非常困难。一般,希望密钥流的周期尽可能大,至少应与明文的长度相等。由于这种密码的密钥序列不可能做到随机,只要求截获比周期短的一段密文时不至泄露更多的信息,故这样的序列称为伪随机序列。
序列密码的安全保密性主要依赖于密钥序列,因此研究什么样的伪随机序列可以作为序列密码的密钥序列就成为序列密码研究中的主要问题,即序
列密码的关键是产生密钥序列的算法。
8.1 序列密码的一般原理
假设序列密码中
● M 为明文空间是由可能的二进制数字序列组成的集合
● K 为密钥空间,K k ∈为控制算法A 产生长密钥序列的一个短密钥。
序列密码的成败取决于算法A 的保密程度和复杂程度,各国的核心密码
都不公布算法A 。序列密码的加、解密过程:
● 对于每一个短密钥K k ∈,由算法A 确定一个二进制序列 21)(k k k A =。 ● 加密时,当明文n m m m m M m 21,=∈时对n i ,,2,1 =,计算i i i k m c ⊕=,则密文为n c c c k m E c 21),(==。
● 解密时,对n i ,,2,1 =,计算i i i k c m ⊕=,恢复出明文。
通常称密钥k 为种子密钥。由k 通过算法A 产生的 21)(k k k A =序列称为密钥序列。
密钥源
密钥序列产生器
算法A
密钥序列产生器
算法A
信道
+
秘密信道
短密钥k
21m m
21c c
21k k
21k k +
21m m 图 8.1 序列密码系统
短密钥k
因此,序列密码的安全性主要依赖于密钥序列 21)(k k k A =,当 21k k 是离散无记忆的二进均匀分布信源产生的随机序列时,则该密码系统是一次一密密码。但实际上)(k A 是由k 通过确定性算法产生的伪随机序列,故该系统不再是完全保密的。
设计序列密码系统的关键是设计密钥序列)(k A ;破译序列密码也只需求出所使用的)(k A 。
序列密码系统中密钥序列设计应考虑如下因素:
[1] 系统的安全保密性;
[2] 密钥易于分配、保管、更换; [3] 产生密钥序列简单、快速。
目前,密钥序列的产生大多数是基于移位寄存器。
为达到安全保密性要求,序列密码的密钥序列应满足伪随机准则:
[1] 极大的周期。现代密码机的数据率为108bit/s ,如果10年内不使用
重复的{}i k ,要求{}i k 的周期>3×1016或255。
● 周期长,是为了不至使通过两组密文相加的结果和语言冗余度分析
就能获得一些关于明文的信息;
[2] 良好的随机统计特性,即序列中每位接近均匀分布。
● 良好的随机特性是为了使密钥序列能很好地掩盖住明文,以抵抗“已
知明文攻击”;
[3] 序列线性不可预测性充分大。
● 线性不可预测性是为防止从部分密钥序列通过线性关系简单的推导
出整个密钥序列的测度。
上述三个准则是保证序列密码安全性的必要条件,但不是充分条件。一般随设计密钥产生器方法的不同,确保系统安全性的要求也不同。实用中最感兴趣的是GF (2)上的序列密码。 群的概念
定义*1 给定一集合{} ,,b a G =和该集合上的运算*,满足下列四条件作的代数系统>*< ,G 称为群:
● 封闭性:若G b a ∈,,则存在C c ∈,使c b a =* ● 结合律成立:G c b a ∈,,恒有)()(c b a c b a **=**
● 存在单位元素e :即存在G e ∈,对G a ∈∀,恒有a a e e a =*=*
● 存在逆元素:对于G a ∈,恒有G b ∈,使e a b b a =*=*,元素b 称为a 的逆元素,用1-a 表示,即1-=a b 。
若对G b a ∈∀,有a b b a *=*则称>*< ,G 为阿贝尔(Abel )群。为简便起见,简记b a *为ab 。
域的概念 定义*2
F 是至少含有两个元素的集合,对F 定义了两种运算“+”和“*”,
并且满足以下三条件的代数系统>*+<,,F 称为域。
● F 的元素关于运算“+”构成阿贝尔群,设单位元为0。 ● {}0\F 关于运算构成阿贝尔群。 ● 对于F c b a ∈,,分配律成立。即
b
c a c b a c c b c a c b a *+*=+**+*=*+)()(
若F 域的元素有限个,则称之为有限域或伽罗瓦(Galois )域。{}0\F 表示集合F 除去元素{}0后的元素。
p 是素数,则{}1,,2,1,0-=p F 在p m od 的意义下关于“+”和“*”运
算构成的域用)(p GF 表示。
8.2 线性移位寄存器
移位寄存器是序列密码中产生密钥序列的一个主要组成部分。GF (2)上n 级反馈移位寄存器的表示见图8.2。图中
n
a 1
-n a 2
a 1
a )
,,,(21n a a a f
输出序列
图 8.2 n 级反馈移位寄存器
● 标有a 1, a 2, …, a n -1, a n 的小方框表示(0,1)二值存储单元,信号流从左向右。
这n 个二值存储单元称为该反馈移位寄存器的级。
● 在任一时刻,这n 级的内容构成该反馈移位寄存器的状态,即反馈移位
寄存器的状态对应于一个GF (2)上的n 维向量,共有2n 种可能的状态。 ● 每一时刻的状态可用n 长序列:a 1, a 2, …, a n ,或n 维向量 f (a 1, a 2, …, a n )