第3讲 对称密钥密码体制

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
分组密码的原理
分组密码的设计原则 Feistel密码结构 数据加密标准 DES 其他分组密码 分组密码的典型攻击方法
1.分组密码的原理

密文中的每位数字不仅仅与某时刻输入的明文数字有关,而 是与该明文中一定组长的明文数字有关。分组密码将明文按
一定的位长分组,输出是固定长度的密文。
明文x=(x1, x2, ·) · · 加密算法 密文y=(y1, y2, ·, yn ) · · 解密算法 明文x=(x1, x2, ·) · ·

密钥k下的加密函数为 E (, k ) ,m表示待加密的信息,k为密 钥,则可将该映射记为 E : F2m S k F2m ,这个映射应满 足: k S k ,E (, k ) 是 F2m 到F2m 的一个置换;

密钥k下的解密函数记为 D(, k ),它是 E (, k ) 的逆。
3.4 数据加密标准 DES ( Data Encryption Standard )

DES(Data Encryption Standard)算法于1977年得到美国政 府的正式许可,是一种用56位密钥来加密64位数据的方法,
经解密变换得:
Dk (C) = Dk ((k1+m1)(k2+m2)·) = (k1+k1+m1)(k2+k2+m2)· · · · · 由于ki∈F2,则 ki+ki=0,i=1,2,·,故 Dk (C)= m1m2· = m 。 · · · · 密文C 可由明文m与密钥k进行模2加获得。因此要用该密码系统通信就要 求每发送一条消息都要产生一个新的密钥并在一个安全的信道上传送,习 惯上人们称这种通信系统为“一次一密系统”。
密钥k=(k1, k2, ·) · ·
密钥k=(k1, k2, ·) · ·
分组密码的基本模型
分组密码的长度
明文为分组长度为m的序列,密文为分组长度为n的序列:
n>m,称其为有数据扩展的分组密码; n<m,称其为有数据压缩的分组密码; n=m,称其为无数据扩展与压缩的分组密码。
我们一般所说的分组密码为无数据扩展与压缩的分组密码。

若一个加密算法没有比穷搜索更好的破译方法,则被认为是 不可破的。

实际使用的密钥流序列(简称密钥)都是按一定算法生成的,
因而不可能是完全随机的,所以也就不可能是完善保密系统。
为了尽可能提高系统的安全强度,就必须要求所产生的密钥 流序列尽可能具有随机序列的某些特征。如极大的周期、良 好的统计特性。
3.2 分组密码
称这个寄存器的初始状态是 (a0, a1, · , an-1)。 · ·
当加上一个脉冲时,每个寄存器的内容移给下一级,第 n 级内容输出,
同时将各级内容送给运算器 f (x0, x1, · , xn-1) ,并将运算器的结果 an= f · ·
(a0 , a1 , … , an-1) 反馈到第一级去。这样这个移位寄存器的状态就是 (a1 , a2 , · , an),而输出是a0 。 · ·
流密码的研究现状
当前对流密码的研究主要集中在以下两个方向: (1)什么样的序列可以作为安全可靠的密钥序列?即衡量密
钥流序列好坏的标准。
(2)如何构造线性复杂度高、周期大的密钥流序列?
流密码的研究现状
在保密强度要求高的场合如大量军事密码系统,仍多采用
流密码,美军的核心密码仍是“一次一密”的流密码体制。鉴
2.分组密码的设计原则
安全性角度:

“混乱原则”:为了避免密码分析者利用明文与密文之间的 依赖关系进行破译,密码的设计应该保证这种依赖关系足够 复杂。

“扩散原则” :为避免密码分析者对密钥逐段破译,密码的 设计应该保证密钥的每位数字能够影响密文中的多位数字 ; 同时,为了避免避免密码分析者利用明文的统计特性,密码
a jn
c a
i 1 i
n
j n 1
,j0
若 cn 0 ,则该LFSR生成的序列为周期序列。
密钥流生成器

最简单的反馈移位寄存器是线性移位寄存器(LFSR),反 馈函数是寄存器中某些位的简单异或。如教材P64图4.5。

异或(XOR)运算,异或密文和相同的密钥流就可以完成解密
不断地加脉冲,上述 n 级移位寄存器的输出就是一个二元(或q元)序列:
a0 , a1, a2 , · · ·
多项式

以LFSR的反馈系数所决定的多项式
f ( x) c0 c1 x c2 x ... cn 1 x
2 n 1
cn x c j x j
n j 0
n
操作。

流密码基于XOR运算具有下列属性:如果B=A⊕K,那么 A=B⊕K。
密钥流生成器
n 级移位寄存器 (见下图)
寄存器 1 寄存器 2 寄存器 3 · · · 寄存器 n
f (x0, x1, · , xn-1) · ·
开始时,设第1级内容是 an-1,第2级内容是 an-2 , · , 第n 级内容是 a0,则 · ·
又称反馈多项式、连接多项式。式中,c0=cn=1

互反多项式
1 c( x) f ( x) x f ( ) c0 x n c1 x n1 ... cn1 x cn x
* n
称作是LFSR的特征多项式。cn0称之为非奇异LFSR。
定义1:对于F2上的半无限序列a=a0a1„aj„,若存在正整数T和非
同步流密码中,消息的发送者和接收者必须同步才能做到正确 地加密解密,即双方使用相同的密钥,并用其对同一位置进行
操作。一旦由于密文字符在传输过程中被插入或删除而破坏了
这种同步性,那么解密工作将失败。否则,需要在密码系统中 采用能够建立密钥流同步的辅助性方法。
分解后的同步流密码
密钥流生成器

密钥流生成器设计中,在考虑安全性要求的前提下还应考虑 以下两个因素:
分组密码的特点

主要优点:
易于标准化;
易于实现同步。

主要缺点:
不善于隐藏明文的数据模式、对于重放、插入、删除等
攻击方式的抵御能力不强。
分组密码的数学表示

记明文空间和密文空间为 F2m(明文与密文分组的长度均为
m),密钥空间为 S k ( S k 是 F2r 的子集,r为密钥长度):
密钥k易于分配、保管、更换简单;
易于实现,快速。

目前密钥流生成器大都是基于移位寄存器的。因为移位寄存
器结构简单,易于实现且运行速度快。这种基于移位寄存器
的密钥流序列称为移位寄存器序列。
密钥流生成器

Βιβλιοθήκη Baidu
一个反馈移位寄存器由两部分组成:移位寄存器和反馈函数, 构 成一个密钥流生成器。 每次输出一位,移位寄存器中所有位都右
流密码的时变性--随时间而变化
流密码采用了类似于一次一密的思想,但加密各明文字的密钥 字不是独立随机选取的,而是由一个共同的较短的主密钥按一个算 法产生的。因此,它不具有一次一密的无条件安全性,但增加了实 用性,只要算法设计得当,其安全性可以满足实际应用的需要。 密钥流中的元素的产生由 i 时刻的流密码内部状态(记作 i )
设LFSR的反馈函数如前所示,若cn不为0,则该LFSR生成的序列a为周期序列, 也称非退化
同步流密码生成器分两部分: 一负责控制存储器状态并提供周期长,统计特性好的序列;
二序列进行非线性组合 布尔函数的表示方法: 真值表表示法 小项表示法 多项式表示法
流密码对密钥流的要求

没有绝对不可破的密码,比如穷搜索总能破译,只是破译所 需时间是否超过信息的有效期以及破译所需代价是否值得。
的设计应该保证明文的每位数字能够影响密文中的多位数字,
从而隐藏明文的统计特性。
2.分组密码的设计原则
可实现性角度:

应该具有标准的组件结构 (子模块),以适应超大规模集
成电路的实现。

分组密码的运算能在子模块上通过简单的运算进行。
3.3 Feistel密码结构
加密: Li = Ri-1 Ri = Li-1F(Ri-1,Ki) 解密: Ri-1 = Li Li-1 = RiF(Ri-1,Ki) = RiF(Li,Ki)
3.1 流密码

相对分组密码而言,流密码主要有以下优点:
第一,在硬件实施上,流密码的速度一般要比分组
密码快,而且不需要有很复杂的硬件电路: 当缓冲不足或必须对收到的字符进行逐一处理时,
流密码就显得更加必要和恰当;
第三,流密码能较好地隐藏明文的统计特征等。
第二,在某些情况下(例如对某些电信上的应用),
解密为:M=m1 m2…mi…=Dk1(c1)Dk2(c2)…Dki(ci)…
流密码的原理
密钥ki 密钥ki
明文mi 加密算法E
密 文 ci=Ek(mi) 解密算法D
明 文 mi=Dk(ci)
流密码通信模式框图
例 设明文、密钥、密文都是F2上的二元数字序列,明文m=m1m2·,密钥为 · ·
k=k1k2·,若加密变换与解密变换都是F2中的模2加法,试写出加密过程与 · · 解密过程。 [解] 经加密变换得密文: C = Ek (m) = Ek1(m1)Ek2(m2)· = (k1+m1) (k2+m2)· · · · ·
第3讲 对称密钥密码体制
1

流密码(序列密码)

按照对明文的处理方法进行分类
流密码是一种针对比特流的重要加密方法,这种密码使用非常简
单的规则,每次只对二进制串的一个比特进行编码。 流密码的原则是创建密钥流的随机比特串,并且将明文比特和密
钥流比特组合在一起,生成的比特串就是密文。
分组密码
在分组密码中,明文消息是按一定长度分组(长度较大的),每组都使用 完全相同的密钥进加密,产生相应的密文,相同的明文分组不管处在明文 序列的什么位置,总是对应相同的密文分组。
移一位,新的最左端的位根据寄存器中其它位计算得到。移位寄
存器输出的一位常常是最低有效位。

移位寄存器的周期是指输出序列从开始到重复时的长度。 这种方法通过一个种子(有限长)产生具有足够长周期的、随机 性良好的序列。只要生成方法和种子都相同,就会产生完全相同 的密钥流。
反馈函数
又称为n阶线性递归关系
流密码的原理

在流密码中,明文按一定长度分组后被表示成一个序列,并 称为明文流,序列中的一项称为一个明文字。加密时,先由 主密钥产生一个密钥流序列,该序列的每一项和明文字具有 相同的比特长度,称为一个密钥字。然后依次把明文流和密
钥流中的对应项输入加密函数,产生相应的密文字,由密文
字构成密文流输出。即 设明文流为:M=m1 m2…mi… 密钥流为:K=k1 k2…ki… 则加密为:C=c1 c2…ci…=Ek1(m1)Ek2(m2)…Eki(mi)…
明文流m i 加密算法E 密文流 c i 密钥流 k i 密钥流 发生器 安全通道 密钥 k
解密算法D
明文流m i
密钥流 发生器
密钥流 k i
图1 同步流密码模型
密钥发生器 种子 k
内部状态 输出函数
内部状态 输出函数
密钥发生器
种子 k
k 明文流 m i
密文流 c i
k 明文流 m i
图2 自同步流密码模型
负整数j0满足:对于所有j>j0,aj+T=aj均成立,则称终归周期序 列,T为周期。称所有可能周期中最小值为该序列的最小周期 定理:设n为任意整数,则F2上任意n级LSFR生成序列a都是终归 周期序列,其最小终归周期p(a)小于等于2n-1 称F2上周期为2n-1的n级LFSR序列a为n级最大LFSR序列,简称m序列
输入加密器存储器的明文,即密钥流的生成独立于明文流和密 文流的流密码称为同步流密码。使用最广泛。
自同步流密码也叫异步流密码 :状态转移函数
f s 与输入明文
有关,即其中密钥流的产生并不是独立于明文流和密文流的。
通常第i个密钥字的产生不仅与主密钥有关,而且与前面已经产
生的若干个密文字(与明文字)有关。
和种子密钥(记作k)决定 ,即 k i f (k , i ) ;加密变换 E k 与解 i 密变换 Dki 也和 i 时刻的流密码内部状态有关。
流密码分类

用状态转移函数 f s 描述流密码加密器中存储器的状态随时间变化
的过程。
同步流密码 :如果某个流密码中的状态转移函数 f s 不依赖被
于流密码的分析和设计在军事和外交保密通信中有重要价值,
流密码的设计基本上都是保密的,国内外少有专门论述流密码
学的著作,公开的文献也不多。尽管如此,由于流密码长度可 灵活变化,且具有运算速度快、密文传输中没有差错或只有有 限的错误传播等优点,目前仍是国际密码应用的主流,而基于 伪随机序列的流密码是当今最通用的密码系统。
相关文档
最新文档