【安全课件】第14讲—序列密码
第14讲-序列密码3
LFSR序列的综合:B-M算法
第六章 序列密码与移位寄存器
——伪随机序列的生成
数学与统计学学院 贾小英 2013.03
主要内容
序列密码简介
线性反馈移位寄存器序列 m序列的伪随机性
B-M 算法 线性移位寄存器的非线性组合
上 节 回 顾
定理:设
a (a 0 a1 ...a N 1 )
是GF(2)上的一个无
穷周期序列。其线性复杂度
- n个LFSR。提供供组合部分使用的周期大且
随机性良好的序列。 滤波部分。
-组合函数f。从GF(2)n到GF(2)的非线性函数。
线性移位寄存器的非线性组合 非线性组合生成器
L F S Rn
L F S Rn-1
…
L F S R2 L F S R1
驱动部分
…
非 线 性 组 合 函 数 f
密钥序列为:
LFSR
驱动部分
非线性滤波函数f
滤波部分
kt
kt 密钥序列为:(k0 , k1 ,...) 。其中, f (at , at 1 ,...at n1 )
线性移位寄存器的非线性组合 例:
密文
an
an-1
…
a2
a1
驱动 部分
c1
AND
c2
AND
cn 1
AND
cn
AND
滤波 部分
明文 明文:
…
线性移位寄存器的非线性组合 非线性滤波生成器 通过非线性地滤波一个LFSR的状态来得到一个非线性 的密钥序列。 驱动部分。
- 一个n阶LFSR。提供供滤波部分使用的周期
大且随机性良好的序列。 滤波部分。
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
第4章(序列密码)
4.4 线性移位寄存器的一元多项式表示
设 n 级线性移位寄存器的输出序列满足递推 关系 an+k=c1an+k-1 c2an+k-2 … cnak (*) 对任何 k 1 成立。这种递推关系可用一个一 元高次多项式 P(x)=1+c1x+…+cn-1xn-1+cnxn 表示,称这个多项式为LFSR的联系多项式或 特征多项式。
初始状态由用户确定,当第i个移位时钟脉冲 到来时,每一级存储器ai都将其内容向下一级 ai-1传递,并根据寄存器此时的状态a1,a2,…,an 计算f(a1,a2,…,an),作为下一时刻的an。反馈函 数f(a1,a2,…,an)是n元布尔函数,即n个变元 a1,a2,…,an可以独立地取0和1这两个可能的值, 函数中的运算有逻辑与、逻辑或、逻辑补等运 算,最后的函数值也为0或1。
图4-4 GF(2)上的n级线性反馈移位寄存器
输出序列{at}满足 an+t=cnat cn-1at+1 … c1an+t-1 其中t为非负正整数。 线性反馈移位寄存器因其实现简单、速度快、 有较为成熟的理论等优点而成为构造密钥流生 成器的最重要的部件之一。
例4.2 图4-5是一个5级线性反馈移位寄存器, 其初始状态为(a1,a2,a3,a4,a5)=(1,0,0,1,1),可 求出输出序列为 1001101001000010101110110001111100110 … 周期为31。
即输出序列为101110111011…,周期为4。 如果移位寄存器的反馈函数f(a1,a2,…,an)是a1 ,a2,…,an的线性函数,则称之为线性反馈 移位寄存器LFSR(linear feedback shift register )。此时f可写为 f(a1,a2,…,an)=cna1 cn-1a2 … c1an 其中常数ci=0或1 2加法。ci=0或1可 用开关的断开和闭合来实现,如图4-4所示。
【学习课件】第14-15讲数据加密技术(序列加密)
• 只要选择合适的连接多项式便可使线性移位寄存
器的输出序列周期达到最大值2n –1,并称此时的
输出序列为最大长度线性移位寄存器输出序列,
简称为m序列。
ppt课件
16
二、线性移位寄存器序列密码
1、线性移位寄存器
• 仅当连接多项式g(x)为本原多项式时,其线性移
• 例如,如果通信中丢失或增加了一个密文字符,则收
方的解密将一直错误。
ppt课件
4
一、序列密码的基本概念
①同步序列密码
种子密钥k
种子密钥k
密钥序列 产生算法
密钥序列 产生算法
m1,m2, …
k1,k2,… c1,c2,…
Ci = mi⊕ki
k1,k2,… m1,m2,…
设密文失步 c = c1, c3, c4, … cn-1, cn ( c2 丢失)
• 注意:错误与失步是不同的概念!
设密文错误 c = c1, c2, c3, … cn-1, cn ( c2 错) ⊕ k= k1, k2, k3, … kn-1, kn (密钥正确)
m=m1,×, m3, …ppt课m件 n-1, mn (仅 m2 错)
6
一、序列密码的基本概念
②自同步序列密码( Self- Synchronous Stream Cipher)
• 密钥流的每一位是前面固定数量密文位的函数。军方
称为密文自动密钥
• 密钥序列产生算法与明文(密文)相关,则所产生的
密钥序列与明文(密文)相关。
• 设密钥序列产生器具有 n位存储,则加密时一位密文
错误将影响后面连续 n个密文错误。在此之后恢复正 确。
• 解密时一位密文错误也将影响后面连续 n个明文错。
序列密码算法
序列密码算法随着互联网的飞速发展,信息安全问题越来越受到人们的关注。
在信息安全领域中,密码学是一门重要的学科,其研究的对象就是如何保护信息的机密性、完整性和可用性。
密码学中的一种重要技术就是密码算法,而序列密码算法就是其中的一种。
序列密码算法是一种基于序列的密码算法,它使用一个生成器生成一个伪随机序列,然后将该序列与明文进行异或操作,得到密文。
在解密时,使用相同的生成器生成相同的伪随机序列,再将密文与该序列进行异或操作,即可得到明文。
因此,序列密码算法的安全性主要依赖于伪随机序列的质量。
序列密码算法有很多种,其中最常见的是RC4算法。
RC4算法是一种流密码(Stream Cipher)算法,它采用变长密钥,最长可达256位,但通常使用40位或128位密钥。
RC4算法的主要流程如下:1. 初始化阶段:生成一个S盒(S-Box)和一个T盒(T-Box)。
2. 密钥调度阶段:使用密钥填充S盒和T盒。
3. 伪随机数生成阶段:使用S盒和T盒生成伪随机数序列。
4. 加密阶段:将伪随机数序列与明文进行异或操作,得到密文。
5. 解密阶段:使用相同的密钥和相同的S盒和T盒生成相同的伪随机数序列,再将密文与该序列进行异或操作,即可得到明文。
RC4算法具有以下优点:1. 加密速度快:由于RC4算法采用流密码算法,每次只需要处理一位明文,因此加密速度非常快。
2. 实现简单:RC4算法的实现非常简单,只需要一些基本的位运算和数组操作即可。
3. 可逆性强:RC4算法的加密和解密使用相同的密钥和相同的算法,因此具有强的可逆性。
但是,RC4算法也存在一些缺点:1. 密钥长度较短:RC4算法的密钥长度最长只能达到256位,这使得它的安全性受到了一定的限制。
2. 安全性不足:由于RC4算法的S盒和T盒生成方式不够随机,因此可能存在安全漏洞,容易受到攻击。
为了弥补RC4算法的不足,人们提出了很多改进的序列密码算法,如Salsa20、ChaCha20等。
序列密码
+ 容易验证该线性反馈移位寄存器的输出序列为 1001101001000010101110110001111100110…, 这个线性移位寄存器序列是一个周期序列,周期为31。
四川大学电子信息学院 24
3 线性反馈移位寄存器的一元多项式表示
设一个GF(2)上的n阶线性移位寄存器的反馈函数为: f(x1,x2,… , xn)=-cnx1-cn-1x2-…-c1xn, 其中ci∈GF(2), 1≤i≤n。 该线性移位寄存器的输出序列a0a1a2…满足递推关系式 an+t=-c1an+t-1-c2an+t-2-…-cnat,t≥0, 即 an+t+c1an+t-1+c2an+t-2+…+cnat=0,t≥0。
0
a0 1
S1=(1, 1, 0)
四川大学电子信息学院
21
在第二个时钟到来时
第3级 第2级 第1级 输出
1 1 f(x1,x2,x3)=x1x2⊕x3 x1=1, x2=1, x3=0
1
a0 0
S2=(1, 1, 1)
则其输出序列和状态序列如下 状态序列: (1,0,1) (1,1,0) (1,1,1) (0,1,1) (1,0,1) (1,1,0) …. 输出序列: 1 0 1 1 1 0 …. 由上面的结果可以看出,这个反馈移位寄存器的状态序 列和输出序列都是周期序列,其周期为4。
序列密码基础
唐
龙
四川大学电子信息学院
1
主要内容
• 序列密码的概述 • 伪随机序列的常规特性 • 序列密码的分类 • 有限域上的线性反馈移存器(LFSR)
• RC4
四川大学电子信息学院
2
1、序列密码的概述 、
1.1 序列密码定义
• 香农的保密理论提出:一次一密是理论完全保密的密码体 香农的保密理论提出: 但是必须满足随机的密钥序列必须满足与明文等长。 制,但是必须满足随机的密钥序列必须满足与明文等长。 • 设想使用少量的真随机数按一定的固定规则生成“伪随机” 设想使用少量的真随机数按一定的固定规则生成“伪随机” 的密钥序列,代替真正的随机序列。这就产生了序列密码。 的密钥序列,代替真正的随机序列。这就产生了序列密码。 序列密码关键就是如何设计伪随机序列。 序列密码关键就是如何设计伪随机序列。 • 少量的真随机数,就是序列密码的密钥,也有人称为种子 少量的真随机数,就是序列密码的密钥, 密钥。 密钥。 • 序列密码的安全性基础在于如何刻画密钥序列“随机性” 序列密码的安全性基础在于如何刻画密钥序列“随机性”, 如何保障密钥序列的“随机性” 如何保障密钥序列的“随机性”不会造成加密算法在实际 中被攻破。 中被攻破。
序列密码(1)
序列密码设计思想简述序列密码是通过位方式操作,采用一次一密的加密方式,如果产生的密钥序列为随随机序列,理论上是不可破译的,但是这会造成密钥长度与明文一样长,存储和传递密钥的代价很大,所以在实际应用中很少使用。
实际的做法是根据一组密钥源和一个密钥序列产生器(KG)生成伪随机密钥序列,这样就解决了由于密钥过长产生的存储和传递问题,问题的关键在于KG的设计,使其产生的k伪随机序列尽可能满足随机性。
所有的密钥序列,都是由种子密钥K经过变化产生的,密钥亮的大小取决于K的变化量的大小。
但是K毕竟是有限的位,其变化量也是有限的不会超过n2,为了更好地抵抗统计分析,尽可能的使k的周期最大化,且k的变化具有均匀分布的特性,所有的变化都可能出现,且出现的概率相同。
由k推测KG或K在计算上不可行,满足Shannon 混乱原则和扩散原则。
能抵抗各种已知攻击。
KG应该具有可重复性,即输入K相同不论何时何地输出的k应该相同,以上所述是KG的设计原则。
KG设计完成后,还需要利用一些方法对其产生的k进行随机性、混乱性、扩散性、密码分析等各种检测,检测KG的设计是否满足上述的原则。
驱动子系统f,类似于分组密码中的P盒,属于线性变换,由种子密钥K控制,设计简单,无法单独完成混淆,无法抵御线性分析和统计分析,f的作用在于生成多个统计性能良好(大周期、均匀分布)的子序列,线性变换还有扩散的作用,即生成序列中一位的变化造成子序列中大量位的变化,子序列中的任何一位与生成序列中的每一位存在关系。
非线性组合子系统F,类似于分组密码中的S盒,由种子密钥K控制,对f提供的多个子序列进行非线性组合,使其线性复杂度实现最大化,提供序列的混乱性,使明文、密文、密钥之间的关系尽可能的复杂,防止线性攻击和统计分析。
另外f与F要相互独立,F不能泄漏任何f的结构信息。
序列密码与分组密码的最大不同之处在于,序列密码具有记忆性,分组密码没有记忆性。
序列密码是有状态的,与加密到第几步有很大关系,也叫状态密码,而分组密码的每个分组的加密密钥都是一样的,如果对分组密码的密钥产生加入记忆模块,那么就变成了序列密码。
序列密码(讲用)
f(x1,x2,x3)=x1x2⊕x3 一个GF(2)上的3阶非线性反馈移位寄存器
18/32
在初始状态下,即0时刻
第3级 第2级 第1级 输出
1
0
1
f(x1,x2,x3)=x1x2⊕x3 在第一个时钟到来时
第3级 第2级 第1级
S0=(1, 0, 1)
输出
1 1 f(x1,x2,x3)=x1x2⊕x3 x1=1, x2=0, x3=1
12/32
自同步序列密码
自同步序列密码的密钥流的产生和已经产生的固定数量 的密文字符有关,即是一种有记忆变换的序列密码。如图所 示。 密钥流 生成器 密 钥 流 ki 明文流mi 加密算法E 自同步序列密码模型
13/32
密钥流 生成器 密 钥 流 ki 密文流ci 解密算法D 明文流mi
自同步序列密码的特点
输出序列满足: an+t=c1an+t-1+c2an+t-2+…+cnat,t≥0
21/32
例 设一个GF(2)上的5阶线性反馈移位寄存器如图所示,其反 馈函数为f(x1,x2,x3,x4,x5)=x1⊕x4,初始状态为S0= (1,0,0,1,1) x5 x4 x3 x2 x1 输出
+ 容易验证该线性反馈移位寄存器的输出序列为 1001101001000010101110110001111100110…, 这个线性移位寄存器序列是一个周期序列,周期为31。
2/32
容易想到,使用流密码对消息 m 执行加密时,最简单的 做法就是让密钥流中的第 i 个比特与明文串中的对应比特直 接做 XOR 运算,即
对应的解密算法为:
3/32
由于实现XOR逻辑运算非常简单, 因此这 样的加解密操作将是快速有效的。如果这里的 密钥流是完全随机的(random)、与明文相同长 度的比特串,对应的密码被称为一次一密体制 (one-time pad)。显然,此时明文串与密文串之 间就是相互独立的。 不知道密钥的攻击者即 便守候在公开信道上从而得到密文串,他也无 法获得关于明文的任何信息。事实上, Shannon曾证明了“一次一密的密码体制是不 可破解的(unbreakable)”。
【安全课件】第14讲—序列密码
反馈多项式的含义
一个r级线性移存器的线性递推式表示为:
a n c 1 a n 1 c 2 a n 2 c r a n r( n r )
引进迟延算子D:D k a k 1 ,D ia k a k i,D 0 I 递推式可改写为:c 0 In a c 1 D n c 2 a D 2 a n c r D r a n 0 即:( c 0 c 1 D c 2 D 2 c r D r) a n 0c0 1
8
序列和周期
一般地,一个移存器序列表示为:aa0a1a2ai
• 对于序列 aa0a1a2,ai若存在整数p使得对任 意正整数k有ak akp 成立,称满足该式的最小 正整数p为序列的周期。
r级线性反馈移存器的最长周期: 2r 1 ,能达 到最长周期的线性移存器序列称为m序列。
• 在密码学中,我们希望参与变换的序列周期越 长越好,因此对线性反馈移存器我们更感兴趣 的是能达到最长周期的序列,即m序列。
特例:当q=2时,G(f)中任意两个序列之和仍然 属于G(f)。
5
(不)可约多项式
(不)可约多项式 定义:若存在g(x),h(x),使得f(x)=g(x)h(x),则
称f(x)是可约多项式;否则,称其为不可约多 项式。
6
定理2:若f(x)|h(x),则G(f) G(h).
例1:联结多项式为
将上式中的D用符号x代替,引入多项式:
f(x ) c rx r c r 1 x r 1 c 1 x 1
从而有:f(D )an0,(nr) 那么对于序列a, f (D)a0
18
14
二、m序列特性
(二)移加特性
L(t)(a)是左移变换,就是将序列 a 左移t位所得 到的序列。
序列密码
旺旺:旺我旺:能我过能软过软考考主要内容序列密码的基本概念 序列密码的分类 线性移位寄存器序列 线性移位寄存器的输出序列求解旺旺:我能过软考序列密码的基本概念版权所有:我能过软考香农证明了“一次一密”不可破解。
用序列密码模仿“一次一密”密码。
为了安全,序列密码应使用尽可能长的密钥,但是,长密钥的存储、分配存在困难。
设计一个好的密钥序列产生算法,利用较短的种子密钥,产生长的密钥序列。
作为核心密码的主流密码3 旺旺:我能过软考序列密码的分类 同步序列密码自同步序列密码 1)同步序列密码 密钥序列产生算法与明密文无关 产生的密钥序列和明密文无关 在通信中,通信双方必须保持精确的同步 不存在错误传播版权所有:我能过软考输出反馈模式OFB4 旺旺:我能过软考同步序列密码的失步分析版权所有:我能过软考设密c=c1, c2, c4, c5…., cn-1, cn文⊕ k=k1, k2, k3, k4…., cn-1, cn失 步m=m1,m2, X,X…., X, X 可以检测插入、删除、重播等主动攻击(c3 丢失) (密钥正确)5 旺旺:我能过软考同步序列密码错误传播分析版权所有:我能过软考c=c1, c2, c3, c4…., cn-1, cn ⊕ k=k1, k2, k3,k4…., cn-1, cnm=m1,m2,X,m4 …,mn-1 ,mn-1 不存在错误传播(c3 错误) (密钥正确)6 旺旺:我能过软考自同步序列密码错误传播分析版权所有:我能过软考 ci错误只影响n个密钥,导致n位错误,有限的错误传播 同步丢失,会影响n位解密,然后重新建立同步, 如: 电视信号、手机通信 难于检测出主动攻击7 旺旺:我能过软考线性移位寄存器序列 1、移位寄存器如果反馈函数f(S0、 S1 、 … 、 Sn-1)是线性函数,则 称移位寄存器为线性移位寄存器;否则,称为非线性 移位寄存器。
5-序列密码
我国的密码分级
前三种国家密码局统一管理。
核心密码:保护党、政、军的核心机密 涉密网 普通密码:保护国家和事企业单位秘密信息 非涉密网商用密码:保护国家和事企业单位敏感信息 个人密码:保护个人隐私
我国商用密码政策: 统一领导、集中管理、定点研制、专控经营、 满足使用。
无线局域网产品使用的SMS4密码算法,是国内官方公布的第 一个商用密码算法。
b2 b1
…
反馈函数f
n位寄存器中的初始值称为移位寄存器的初态。 反馈函数f:n个变元的布尔函数。 bn,bn-1,…,b2,b1取值{0,1}
f(bn,bn-1,…,b2,b1)
f也取值{0,1}
例:3级LFSR
f(x)=b3+b1
3 2 1
第0时刻 第1时刻 第2时刻 第3时刻 第4时刻 第5时刻 第6时刻 第7时刻
官方公布商用密码
国家密码管理局公告(第 7 号) 2006.1.6
无线局域网产品须采用下列经批准的密码算法: 1、对称密码算法:SMS4; 2、签名算法:ECDSA; 3、密钥协商算法:ECDH; 4、杂凑算法:SHA-256; 5、随机数生成算法:自行选择。
其中,ECDSA和ECDH密码算法须采用我局指定 的椭圆曲线和参数。
理论上能产生周期为2n-1的伪随机序列
b3 b2 b1
初态:100
b3 b2 b1
反馈函数f
反馈函数f
m序列
m序列有良好的随机性,50年 代作为密钥序列用于军用,60 年代发现不安全。
若一个n阶的LFSR的输出序列周期为2n-1,则称 该序列为m序列。
f a 4 a1
本原多项式
f ( x) x x 1
数据加密技术(序列加密)
Hill密码
总结词
Hill密码是一种基于线性代数的替换式密 码,通过将明文中每个字母表示为矩阵 中的元素进行加密。
VS
详细描述
Hill密码使用一个n阶矩阵作为密钥,明 文中每个字母在矩阵中表示为一个元素。 加密时,将明文中所有字母对应的矩阵元 素进行线性变换,得到密文中相应位置的 字母。Hill密码的安全性较高,但需要使 用较大的矩阵和复杂的计算方法。
THANKS FOR WATCHING
感谢您的观看
未来展望
随着技术的不断发展,序列加密算法将继续向着更加高效、安全和易于实现的方向发展。同时,随着量 子计算等新兴技术的出现,序列加密算法也需要不断更新和完善,以应对未来的挑战。
02
序列加密的基本原理
密钥生成与分发
密钥生成
在序列加密中,密钥是一个随机生成 的序列,用于加密和解密数据。密钥 生成算法应确保密钥的随机性和不可 预测性,以提高加密的安全性。
安全性高
由于密钥流的随机性,序列加密具有 较高的安全性,能够抵御多种攻击。
加密速度快
由于序列加密只对每个数据块进行加 密,因此加密速度较快。
易于实现
序列加密算法相对简单,易于实现和 使用。
序列加密的重要性
保护数据安全
序列加密能够有效地保护数据的安全性,防止数据被非法获取和 篡改。
保障通信隐私
在通信过程中,序列加密能够保护通信内容的隐私,防止通信内容 被窃听和截获。
数据加密技术(序列加 密)
目录
• 序列加密概述 • 序列加密的基本原理 • 常见的序列加密算法 • 序列加密的应用场景 • 序列加密的未来发展 • 案例分析:DES加密算法
01
序列加密概述
定义与特点
序列密码体制续解析精品PPT课件
2021/1/8
因此,如果知道{ck}中相邻位的值ck-1和ck,就可以推断出ak 和bk中的一个。而一旦知道足够多的这类信息,就可通过密码分 析的方法得到序列{ak}和{bk}。为了克服上述缺点,Pless提出了由 多个J-K触发器序列驱动的多路复合序列方案,称为Pless生成器
。
2021/1/8
9
3.Pless生成器 Pless生成器由8个LFSR、4个J-K触发器和1个循环计数器构
Geffe序列的周期实现了极大化,且0与1之间的分布大体上是 平衡的。
2021/1/8
6
2.J-K触发器 J-K触发器如下图所示,它的两个输入端分别用J和K表示,其
输出ck不仅依赖于输入,还依赖于前一个输出位ck-1,即
ck x1 x2 ck1 x1
其中x1和x2分别是J和K端的输 入。由此可得J-K触发器的真值表 ,如下表所示。
{ak}=0,1,1,…和 {bk}=1,0,0,1,0,1,1,… 于是,输出序列{ck}是0,1,1,0,1,0,0,1,1,1,0,1,0,1,0,0,1,0,0,1,0,… 其周期为:(22-1)(23-1)=21。
由表达式ck=(ak+bk+1)ck-1+ak可得:
ck
ak
,
bk ,
ck1 0 ck1 1
应用密码学
张仕斌 万武南 张金全 孙宣东编著
序列密码(讲用)
9
序列密码
序列密码为一六元组(P,C,K,L,E,D)和函数g,并满足 以下条件:
1. P是由所有可能明文构成的有限集。 2. C是由所有可能密文构成的有限集。 3. K是由所有可能密钥构成的有限集。
因为确定性算法产生的序列是周期的或准 周期的,为了使序列密码达到要求的安全保密 性,密钥经其扩展成的密钥流序列应该具有如 下性质:极大的周期、良好的统计特性、抗线 性分析、抗统计分析。
我们仅对实用中最感兴趣的二元情形即 GF(2)上的序列密码原理进行介绍,但其理论 是可以在任何有限域GF(q)中进行研究的。
5
由此可见, 序列密码的安全性主要依赖于密钥序列k0k1…=A(k), 当k0k1…是离散无记忆的随机序列时,则该系统就是一次一密密 码, 它是不可破的. 但通常A(k)是一个由k通过确定性算法产生的 伪随机序列, 因而此时, 该系统就不再是完全保密的. 设计序列密 码的关键是设计密钥序列A(k),密钥序列A(k)的设计应考虑如 下几个因素:
(2)无错误传输。在传输期间,一个密文字符被改变只 影响该字符的恢复,不会对后继字符产生影响。
12
自同步序列密码
自同步序列密码的密钥流的产生和已经产生的固定数量 的密文字符有关,即是一种有记忆变换的序列密码。如图所 示。
密钥流 生成器
密钥流 生成器
密 钥 流
ki 明文流mi 加密算法E
密文流ci
密 钥 流
《应用密码学》
序列密码
1
1 概述
按照对明文消息加密方式的不同,对称密码体制一般可以分为两类:分组密 码(block cipher)和流密码(stream cipher) 。
(现代密码学课件)02序列密码
2
一、二进制与位运算
二进制表示 字符编码 常用位运算 位运算练习
3
二进制表示
在现代密码算法中,我们通常需要将明文 用二进制的明文流来表示,然后再对二进 制的明文流加密。
任何十进制数字都可以用二进制数字表示 练习:将自己的学号的后三位用二进制数
字表示(后面的练习还需要用到)
输 出 时刻 状 态
4321
18
0 0 0 1 0 0
9 10 11 12 0 1101 1110 1111 0111 0011 0001
输出
1 0 1 0 1 1 1 1
33
LFSR 练习
设3级 LFSR 的递归函数为ai+3=ai+2+ai,初 始状态为 (a1,a2,a3)=(1,0,1)。求输出序列和 周期,并画出LFSR的示意图。
ai+n
c1
c2
ai+n-1 xn
ai+n-2 xn-1
cn-1
cn
ai+1
ai
ai-1, …, a1
x2
x1
31
线性反馈移位寄存器例子
例子:n=4的LFSR。输出序列满足ai+4=ai+1+ai。初始 状态(a1,a2,a3,a4)为1000。序列的周期为15=24-1。
ai+4 ai+3
ai+2
优点:具有自同步能力,强化了其抗统计分析 的能力
缺点:有n位长的差错传播。
11
同步流密码
同步流密码SSC (Synchronous Stream Cipher):
i与明文消息无关,密钥流将独立于明文。
第4章 序列密码
2019/8/6
2019/8/6
2019/8/6
14
111444
随机种子是从哪儿获得的?
随机种子为什么是在内存的0040:006CH处取?那么0040:006CH处存放的是什么?
学过《计算机组成原理》课程应该记得在编制ROM BIOS时钟中断服务程序时,会用 到Intel 8253定时/计数器,它与Intel 8259中断芯片的通信使得中断服务程序得以运转, 主板每秒产生的18.2次中断正是处理器根据定时/记数器值控制中断芯片产生的。在计 算机的主机板上都会有这样一个定时/记数器用来计算当前系统时间,每过一个时钟信 号周期都会使记数器加一,而这个记数器的值存放在哪儿呢?
紧接着,输出随机数(调用random()方法)
Random()是根据随机种子RAND_SEED的值计算得出随机数:
RAND_SEED=(RAND_SEED*123+59)%65536; 注意:随机数的计算方法在不同的计算机中是不同的,即使在相同的计算机中安装的 不同的操作系统中也是不同的。(比如在linux和windows下相同的随机种子在这两种 操作系统中生成的随机数是不同的,这说明它们的计算方法不同。)
这个记数器的值就存在内存的0040:006CH处,其实这一段内存空间是这样定义的: TIMER_LOW DW ? ;地址为 0040:006CH TIMER_HIGH DW ? ;地址为 0040:006EH TIMER_OFT DB ? ;地址为 0040:0070H
时钟中断服务程序中,每当TIMER_LOW转满时,此时记数器也会转满,记数器的 值归零,即TIMER_LOW处的16位二进制归零,而TIMER_HIGH加1。
(2)不可预测性
不可预测性是指即使给出的产生序列的硬件和所有以前产生序列的全部知
序列密码
序列密码内容提要(或本章引言)使用流密码对某一消息m执行加密操作时一般是先将m分成连续的符号(一般为比特串),m=m1m2m3……;然后使用密钥流k=k1k2k3……中的第i 个元素k i对明文消息的第i个元素m i执行加密变换,i=1,2,3,……;所有的加密输出连接在一起就构成了对m执行加密后的密文。
序列密码以其易于实现、加解密快速、无错误传播、应用协议简单等优点,在政府、军事、外交等重要部门的保密通信以及各种移动通信系统中被广泛使用。
本章重点♦一次一密加密体制;♦线性反馈移位寄存器;♦基于线性反馈移位寄存器的伪随机序列生成器;♦伪随机序列的安全性;♦m序列;♦RC4、A5算法。
2.1 概述 (2级标题)按照对明文消息加密方式的不同,对称密码体制一般可以分为两类:分组密码(block cipher)和流密码(stream cipher)z分组密码:对于某一消息m,使用分组密码对其执行加密操作时一般是先对m进行填充得到一个长度是固定分组长度s的整数倍的明文串M;然后将M划分成一个个长度为s的分组;最后对每个分组使用同一个密钥执行加密变换。
z流密码(也称序列密码):使用流密码对某一消息m执行加密操作时一般是先将m分成连续的符号(一般为比特串),m=m1m2m3……;然后使用密钥流k=k1k2k3……中的第i个元素k i对明文消息的第i个元素m i执行加密变换,i=1,2,3,……;所有的加密输出连接在一起就构成了对m执行加密后的密文。
与分组密码相比,序列密码受政治的影响很大,目前应用领域主要还是在军事、外交等部门。
虽然也有公开设计和研究成果发表,但作为密码学的一个分支,流密码的大多设计与分析成果还是保密的。
目前可以公开见到、较有影响的流密码方案包括A5、SEAL、RC4、PIKE等。
本章主要讨论流密码加密体制,关于分组密码的知识将在下一章给出。
容易想到,使用流密码对消息m执行加密时,最简单的做法就是让密钥流中的第i个比特与明文串中的对应比特直接做XOR运算,即图2-1 简单的流密码加密结构对应的解密运算即为:图2-2 简单的流密码解密结构由于实现XOR逻辑运算非常简单,因此这样的加解密操作将是快速有效的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相信命运,让自己成长,慢慢的长大 。2020年12月7日星期 一1时57分52秒Monday, December 07, 2020
爱情,亲情,友情,让人无法割舍。20.12.72020年12月7日 星期一 1时57分52秒20.12.7
谢谢大家!
14
二、m序列特性
(二)移加特性
L(t)(a)是左移变换,就是将序列 a 左移t位所得 到的序列。
性质3:若 a 是由r级本原线性移存器产生的m序列, 则 a L(t) (a) (t 0 mod 2r 1) 是与 a 平移等价的m序列。 性质4:周期为p的m序列 a ,左移t (t 0 mod 2r 1) 位 得到序列 b ,将 a 与 b 按位对齐。则在一个周期 段中,序列 a 与序列 b (0,0)的有(p-3)/4对,(1, 1)、(1、0)、(0、1)的各有(p+1)/4对。
加强自身建设,增强个人的休养。2020年12月7日下 午1时57分20.12.720.12.7
精益求精,追求卓越,因为相信而伟 大。2020年12月7日星 期一下 午1时57分52秒13:57:5220.12.7
让自己更加强大,更加专业,这才能 让自己 更好。2020年12月下 午1时57分20.12.713:57December 7, 2020
2
实例(画出移存器的逻辑框图,写出相应的线性
递推式)
多项式
f (x) x4 x3 x2 1
答案: 线性递推式: at=at-4+at-3+at-2
x1
x2
x3
x4
3
非退化的移位寄存器
若反馈函数形如:f (x1, x2, , xn ) cnx1 cn1x2 c1xn
,其中 ci GF(q),1 i n ,则称其为线性反馈寄存 器;否则称其为非线性反馈移为寄存器。
12
m序列的游程分布规律
性质2:将r级m序列的一个周期段首尾相接,其游程 总数为N=2r-1;其中没有长度大于r的游程;有1个长 度为r的1游程,没有长度为r的0游程;没有长度为
r-1的1游程,有1个长度为r-1的0游程;有 2r2k个长 度为k(1 k r 2) 的1游程,有2r2k 个长度
• 在密码学中,我们希望参与变换的序列周期越 长越好,因此对线性反馈移存器我们更感兴趣 的是能达到最长周期的序列,即m序列。
9
本原多项式
若n次多项式f(x)是不可约多项式且 p(f)=qn-1,则称f(x)是GF(q)上的本原多项式。
以本原多项式为连接多项式产生的非零序 列均是m序列。
10
m序列特性
周期为3
01//01//……
周期为2
111111…..
周期为1
000000……
周期为1
7
极小多项式
定义:对于一条移位寄存器序列a,称其联 结多项式中次数最低的多项式为a的极小多 项式。
定义:满足f(x)|1-xr 的最小正整数r为f(x)的
周期,记为p(f(x)),简记为p(f)。
例子:x4+x3+x2+x+1的周期为5 (x4+x3+x2+x+1)(x+1)=x5+1
15
二、m序列特性
(三)自相关特性
若 a (a0a1a2 )是一个周期为p的0、1序列, 定义{0 1}上的映射η为:(0) 1, (1) 1 ,定义 序列 a (a0a1a2 ) 的自相关函数为
p 1
C(t) (ai )(ait ) i0
性质5:若 a (a0a1a2 ) 是一个r级m序列,那么
8
序列和周期
一般地,一个移存器序列表示为:a a0a1a2 ai • 对于序列 a a0a1a2 ,ai 若 存在整数p使得对任
意正整数k有ak ak p 成立,称满足该式的最小 正整数p为序列的周期。 r级线性反馈移存器的最长周期: 2r 1 ,能达 到最长周期的线性移存器序列称为m序列。
6
定理2:若f(x)|h(x),则G(f) G(h).
例1:联结多项式为
f(x)=x4+x3+x+1=(x+1)2(x2+x+1)
线性递推式:at=at-4+at-3+at-1 输出序列:000111//000111//…… 周期为6
011//011//……
周期为3
001//001//……
m序列的统计特性 1、 m序列的“0、1”信号的频次规律
性质1 :r级m序列的一个周期中,1出现 2r1个, 0出现 2r1 1个。
11
m序列的游程分布规律
若干个信号连续出现的现象称游程。对于序列 a,称a中形如01…10或10…01的段为一个1游 程或0游程,游程中所含1或0的个数称为该游 程的长度,如0110为一个长为2的1游程,101 为一个长为1的0游程。
2r 2
2r 1,
t0
C(t) (ai )(ait )
i0
1,
0 t 2r 1
16
习题
一、一个线性移存器如图,
(1)写出该线性移存器的线性递推式。 (2)写出该线性移存器的联接多项式。 (3)写出该线性移存器生成的序列。
1
2
3
4
二、已知 f (x) x6 x 1 是6次本原多项式,a是 f (x) 生 成的m序列, (1) a的周期是多少? (2) a在的一个周期内,0、1各出现多少次? (3) a在的一个周期内,游程分布如何?
做一枚螺丝钉,那里需要那里上。20.12.713:57:5213:57Dec -207-D ec-20
日复一日的努力只为成就美好的明天 。13:57:5213:57:5213:57Monday, December 07, 2020
安全放在第一位,防微杜渐。20.12.720.12.713:57:5213:57:52December 7, 2020
17
反馈多项式的含义
一个r级线性移存器的线性递推式表示为:
an c1an1 c2an2 cr anr (n r)
引进迟延算子D:Dak ak1, Diak aki , D0 I 递推式可改写为:c0Ian c1Dan c2D2an cr Dran 0 即:(c0 c1D c2D2 cr Dr )an 0 c0 1
将上式中的D用符号x代替,引入多项式:
f (x) cr xr cr1xr1 c1x 1
从而有:f (D)an 0, (n r) 那么对于序列a, f (D)a 0
18
生活中的辛苦阻挠不了我对生活的热 爱。20.12.720.12.7Monday, December 07, 2020
人生得意须尽欢,莫使金樽空对月。13:57:5213:57:5213:5712/7/2020 1:57:52 PM
其中 cn 0 ,若 cn 0 我们说该寄存器是退化 的,否则是非退化的。
4
移位寄存器序列空间
符号说明:G(f)表示以f(x)为联结多项式的n级线 性移位寄存器序列构成的空间
定理1:G(f)是GF(q)上的一个n维线性空间。 证明:只需证明G(f)中的任意两个序列的任意线
性组合也属于G(f)即可。即证:
这些年的努力就为了得到相应的回报 。2020年12月7日星期 一1时57分52秒13:57:527 December 2020
科学,你是国力的灵魂;同时又是社 会发展 的标志 。下午1时57分 52秒下 午1时57分13:57:5220.12.7
每天都是美好的一天,新的一天开启 。20.12.720.12.713:5713:57:5213:57:52Dec- 20线性移位寄存器量 Nhomakorabea密码研究室
王滨
2005年3月29日
1
移位寄存器序列的三种表示方法:
线性递推式(一元多项式): at+n=c1at+n-1+c2at+n-2+…+cnat ,t>=0
联结多项式: f(x)=1+c1x+c2x2+…+cnxn
状态转移矩阵: 满足:st+1=stTf 称st=(at,at+1,at+2,…,at+n-1)为n维状态
a G( f ),b G( f ), a b G( f ), , GF (q)
特例:当q=2时,G(f)中任意两个序列之和仍然 属于G(f)。
5
(不)可约多项式
(不)可约多项式 定义:若存在g(x),h(x),使得f(x)=g(x)h(x),则
称f(x)是可约多项式;否则,称其为不可约多 项式。
为k(1 k r 2) 的0游程。
13
二、m序列特性
(一)统计特性
1、“0、1”信号频次
性质1 :r级m序列的一个周期中,1出现 2r1 个, 0出现 2r1 1 个。
2、游程分布 性质2:在r级m序列的一个周期中,有1个长度为r的 1游程和1个长度为r-1的0游程;长度为 k(1 k r 2) 的1游程和0游程各有 2r2k 个。