对称密码体制

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

分组密码的设计准则
S盒的设计准则——混乱
P盒的设计准则——扩散 轮函数F的设计准则——安全性、速度、灵活性 迭代的轮数——使密码分析的难度大于简单穷举搜索攻击的难度
子密钥的生成方法——实现简单、速度、不存在简单关系、种子密 钥的影响、计算子密钥困难、没有弱密钥
分组密码的操作模式
• 电子密码本(ECB)模式 • 密码分组链接(CBC)模式 • 计数器(CRT)模式 • 输出反馈(OFB)模式 • 密码反馈(CFB)模式
输入(32位,来自于S盒)
16 29 1 5 2 32 19 22
7 12 15 18 8 27 13 11
20 28 23 31 24 3 30 4
21 17 26 10 14 9 6 25
输出(48位)
输出(32位)
图5-19 扩展变换E
图5-20 P变换
将48位输出按8行、6列的次序排列;排列时,将输入位序号按32,1,2,...,31,32位 的次序排列,但上一行的后两位依次在下一行的前两位得到重用
代替,起 混乱作用, 使统计关 系复杂化
换位,起 扩散作用, 隐藏明文 的统计特 性
P盒的分类
1 2 3 4 5 6 7 8 普通型 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 压缩型 1 2 3 4 5 6 1 2 3 4 5 1 2 3 4 5 6 7 8 扩展型
n位输入、n位输出的换 位操作,有n!种可能 的映射关系
Baidu Nhomakorabea
17 9 26 18 35 27 44 36
63 55 47 39 31 7 62 54 46 38 14 6 61 53 45 21 13 5 28 20
33 15 30 22 37 29 12 4
CO(28位)
DO(28位)
14 3 23 16 41 30 44 46
17 28 19 7 52 40 49 42
1、分组长度
分组越长,安全性越高,但加、解密速度越慢。一般选64位或128位
2、密钥长度
密钥越长,安全性越高,但处理速度有很大影响,一般选128、256、512位等
3、迭代轮数
一般取迭代轮数为16轮
4、子密钥生成算法:越复杂越难破译 5、轮函数 :越复杂越能抵抗攻击
Feistel结构的解密过程本质 上与加密过程一致。 处理方法:以密文作为算 法的输入,并按加密的逆 序列使用子密钥Ki。
第五章 对称密码体制
CONTENTS
对称密码体制的基本概念
分组密码原理 分组密码操作模式 DES典型的对称密码算法
1
2
3
4
§5-1 分组密码
分组密码模型
分组密码处理的单位是一组明 文,即将明文消息分组编码后 的数字序列m0,m1,..mi 划分成 长度为L位的组 m={m0,m1,m2,...,mL-1} 各个长度为L的分组分别在秘钥k={k0,k1,k2,...,kt-1}(秘钥长度为t)的控制 下变换成与明文组等长的一组密文数字序列c={c0,c1,c2,...,cL-1} L通常为64,128,256或512位
n位输入、m位输出的 换位操作(m<n),输出 中有n-m位不会被输出
n位输入、m位输出的 换位操作(m>n),输出 中有m-n位被重用输出
2、雪崩效应
• 雪崩效应:输入(明文或密钥) 即使只有很小的变化,也会导 致输出发生巨大变化的现象
1 0 0 0
S1
S1
S1
0 1 0 1
• 输入位有很少的变化,经过多 轮变换以后导致多位发生变化。 即明文的一个比特的变化应该 引起密文许多比特的改变
输入(32位)
重用
32 4 8 12 16 20 24 28
1 5 9 13 17 21 25 29
2 6 10 14 18 22 26 30
3 7 11 15 19 23 27 31
4 8 12 16 20 24 28 32
5 9 13 17 21 25 29 1
扩展后所得到的 48位结果再与Ki 进行异或,这样 得到的48位结果 再经过一个代替 函数S(S变换)产 生32位的输出, 最后按照图5-20 进行置换(P置换)
0 0 0 0
S2
. . .
P
S2
. . .
P
. . .
S2
. . .
0 0 0 1
0 0 0 0
Sn
Sn
Sn
1 0 1 1
3、Lucifer算法 用S盒和P盒交替在秘 钥控制下组成复杂的、分组 长度足够大的密码设计方法
各个S盒都有两个代换表S0 和S1和,在一比特密钥(0或1) 控制下进行选取。
11 15 12 27 31 51 39 50
24 6 4 20 37 45 56 36
1 21 26 13 47 33 34 29
5 10 8 2 55 48 53 32
图5-24 置换选择1
密钥(48位)
第9,18,22,25,35,38, 43,54位(共8位)被去掉
DES的一般设计准则 1、随机性。输出与输入间是无规律的。
2、雪崩效应。改变输入中的1位,平均要导致大约一半的输出位被改
变。
3、完全性。每个输出位都是所有输入位的一个复杂函数(而不只是
输入的某些位的一个函数)
4、非线性性。加密函数对任何密钥值都是非仿射的(即非线性的)
5、相关(关系)免疫性。输出是统计上独立于任何输入位的子集。 不会与输入位的任何子集相关。
分组密码算法实际上就是在秘钥的控制下,通过某个置换 来实现对明文分组加密变换。
为了保证密码算法的安全强度,对密码算法的要求如下:
(1)分组长度应足够大。使得不同明文分组的个数足够大,以防 让明文被穷举法攻击。新的算法标准—般要求M=128。 (2) 密钥空间应足够大。尽可能消除弱密钥,从而使所有密钥同 等概率,以防灾学密钥攻击。同时,密钥不能太长,以利于密钥管 理。DES采用56比特有效密钥,现在看来显然不够长。今后一段时 间内,128比特密钥应该是足够安全的。
(3) 由密钥确定的算法要足够复杂。充分实现明文与密钥的扩散和 混淆,没有简单关系可循,要能抵抗各种已知的攻击,如差分攻击 和线性攻击等;另外,还要求有较高的非线性阶数。
(4) 软件实现的要求。尽量使用适合编程的子块和简单的运算。密 码运算在块上进行,要求子块的长度能适应软件编程,如8、16、 32比特等。应尽量避免按比特置换 。
第16轮变换的逻辑关系为:
R1 6 R1 5 L1 6 L1 5 F ( R 1 5 , K 1 6 )
即最后一轮得出的左、右两半部分不需 要交换
在这个循环中 使用的轮密钥Ki 的长度是48位 输入的Ri-1是32 位,先被扩展 到48位,属于 扩展型P盒 扩展变换E将32 位输入 扩展为 48位输出,实际 上32位输入中有 16位被重用
最后它们同时作为置换选择2 的输入,置换选择2属于压缩型P盒, 它将56位输入压缩成48位输出,作 为轮秘钥输入函数F。
Ci-1(28位)
8的倍数位(8,16,24,32,40, 48,56,64 ,共8位)被去掉
循环左移
Di-1(28位)
循环左移
密钥(56位)
57 49 41 33 25 1 58 50 42 34 10 2 59 51 43 19 11 3 60 52
DES算法
• 分组长度为64 bits (8 bytes)
• 密文分组长度也是64 bits
• 密钥长度为64 bits,有8 bits奇偶校验,有效密 钥长度为56 bits
• DES密钥总数为:256 • 算法主要包括:初始置换 IP 、 16 轮迭代的乘积变 换、逆初始置换IP-1以及子密钥产生器
F函数的计算
每一个S盒 都接受6位 的输入, 并产生4位 的输出
S1盒的定义
使用S1盒的一个例子

输入

输出:0010
密钥的产生 64位的密钥经置换选择1变换 后输出的56位密钥被分成两个28位 的值C0和D0 每个循环中,Ci-1和Di-1分别 经过一个由表(循环左移位数)确定的 1位或2位的循环左移,这些经过移 位的值再作为下一循环的输入。
分组密码原理
扩散和混乱是分组密码最本质的要求,它们分别是基于换位或代替操 作来实现。 •扩散
就是将每一位明文的影响尽可能迅速地作用到较多的输出密文位中去,以便隐 藏明文的统计特性。
•混乱
是指密文和明文之间的统计特性关系尽可能地复杂化。
乘积密码有助于扩散和混乱。
指依次使用两个或两个以上的基本密码,所得结果的密码强度将强于所有单个 密码的强度,即乘积密码是扩散和混乱两种基本密码操作的组合变换。
§5-2
数据加密标准(DES)
• 数据加密标准(DES,Data Encryption Standard) • DES是世界上最早公开的实用密码算法标准,也是迄今为止应用 最为广泛的一种密码算法。 • DES用软件进行解码需要用很长时间,而用硬件解码速度非常快。 • 在POS、ATM、磁卡及智能卡(IC卡)、加油站、高速公路收费 站等领域应用DES算法,以此来实现关键数据的保密。 • DES处理的明文分组长度为64位,密文分组长度也是64位,使用 的密钥长度为56位。 • DES的整个体制是公开的,系统的安全性完全靠密钥的保密。
16 15 14 13 12 11 10 9
56 55 54 53 52 51 50 49
24 23 22 21 20 19 18 17
64 63 62 61 60 59 58 57
32 31 30 29 28 27 26 25
+8
输出(64位)
图5-17 逆初始置换(IP-1)
每个循环的详细过程
1、SP网络
由多重S变换和P变换组合成 的变换网络 基本操作: S变换(代替)--起混乱作用 P变换(换位)--起扩散作用
S盒被认为是一 个微型的代替密 码。 S盒的输入和输 出位数不一定相 同,S盒有可逆 和不可逆之分, 可逆S盒的输入 位数和输出位数 相同
P盒就是传统的 换位操作 普通型、压缩型 和扩展型
输入:128位明文和512位密钥
1比特密钥
变换后得到128位密文输出
非线性
P盒是线性的——打乱各S盒 输出数字的次序,起扩散作 用
线性
线性
S盒是非线性的,将来自上 一级不同的S盒的输出进行 “混淆”
每个S盒的输入、输出均为4位
现代分组密码都属于乘积密码,分为两种类型:
① 同时使用了可逆和不可逆的基本变换部件,被称为Feistel密码, 如DES; ② 只使用了可逆的基本变换部件,被称为非Feistel密码,如AES
Feistel密码
加密算法的输入是长为2W位 的明文和密钥K,明文被均分 为长度为W位的L0和R0两部分。
这两部分经过n轮迭代后交换 位置组合在一起成为密文。 运算逻辑关系为:
L i R i 1 ( i 1, 2 , , n)
, n)
F置换由密 钥K决定
R i L i 1 F ( R i 1 , K i )( i 1, 2 ,
每轮迭代都有相同的结构(如图 5-7) 代替作用在数据的左半部分, 它通过轮函数F作用数据的右半 部分后,与左半部分数据进行 异或来完成(F函数是一种不可逆 的基本变换)。
每轮迭代的轮函数相同,但每 轮的子密钥Ki不同。
代替之后,交换数据的左右部 分实现置换。这就是SP网络的 思想。
Feistel结构的实现依赖的参数和特征:
Feistel密码结构
初始置换IP
表中的数字代表初始置 换或逆初始置换时64位 输入分组的位序号 +8 整个64位按8行、8列 排列;
表中的位置代表置换后 输出的位顺序。 初始置换和逆初始置换 都是基于普通型P盒的 换位操作
最右边一列按2,4,6,8 和1,3,5,7的次序排列 往左边各列的序号依 次为紧邻其右边一列 各位序号加8
逆初始置换IP-1
整个64位按8行、8列 排列 左边第二列按8, 7,6,5,4,3,2,1的次序 排列 往右边隔一列的位序 号依次为当前列各位 序号加8;认为最右边 一列的隔列为最左边 一列 +8
40 39 38 37 36 35 34 33 8 7 6 5 4 3 2 1
输入(64位)
48 47 46 45 44 43 42 41
如图,给出了一个循环的内部结构。 每个64位中间结果的左右两个部分被当 成两个独立的32位数据处理。
前15轮中每一轮变换的逻辑关系为:
L i R i 1 ( i 1 , 2 , 3 ,..., 15 )
( i 1 , 2 , 3 ,..., 15 )
R i L i 1 F ( R i 1 , K i )
相关文档
最新文档