分组密码体制-精
分组密码体制简介
分组密码体制简介分组密码体制也具有简捷、快速的特点,并且容易标准化,使其成为软硬件加密的主流算法。
目前主流的分组密码有:DES、IDEA…… .1.分组密码的特点与序列密码不同,分组密码是将明文序列划分成等长的分组(Block),对每一组用同一加密算法和同一密钥进行加密。
分组密码有其自身的优点,首先分组密码容易被标准化,因为在今天的数据网络通信中,信息通常是被成块的处理和传输的。
其次,使用分组赌东道密码容易实现同步,因为一个密码组的传输错误不会影响到其它的分组,丢失一个密文组不会对随后组的解密产生影响。
这就是说,传输错误不会扩散。
而这些方面恰恰是序列密码的最大缺点。
分组密码与序列密码相比的一个缺点就是算法庞大一些,需要更多的计算资源。
分组密码的另一大缺点是其安全性很难被证明。
尽管“可证明安全性”的研究发展很快,但目前的分组密码大多是“看来安全的”,还没有一个分组密码被证明是真正安全的,至多证明了局部安全性。
这其中的原因是:因商业化而要求分组密码算法的细节全部暴露,因此对分组密码的攻击类型很多,安全性概念也就很多,有人为了统一这些安全性概念,甚至引入了伪随机性和超伪随机性,它们是用概率图灵机来描述的,在实际设计和分析中很难应用。
2.分组密码的设计准则一、安全性准则对以下的安全性的描述总是基于以下的假设:加密体制(包括算法的细节)是公开的;安全性完全依赖于密钥;信道是不安全的,即攻击者可以任意的截取密文;攻击者有时也可以截取一些“废弃”的明文。
(1)分组长度和密钥长度:当明文分组长度为n比特时,至多需要2n个明文-密文对就可以彻底破解密钥。
同理当密钥长度为n比特时,对一个截获的密文,至多需要试验2n个密钥就可以破解了密文。
因此从安全性角度来考虑,明文分组长度的密钥长度因尽可能的大。
(2)混淆性:所设计的密码应使得明文、密文、密钥之间的依赖关系相当复杂,以至于这种依赖关系对密码分析者来说是无法利用的。
密码学分组密码
5. 数据扩展。一般无数据扩展,在采用同态置换和随机化 加密技术时可引进数据扩展。
6. 差错传播尽可能小。
设计分组密码常用的一些方法介绍 1. 代换
将n长的明文分组变换为唯一n长密文分组, 这样的变换是可逆的,称明文分组到密文 分组的可逆变换为代换。
D1(28 位)
8 2 16 1
(56 位) 置换选择 2
k1
(48 位)
循环左移
循环左移
Ci(28 位)
Di(28 位)
置换选择 2 ki
(56 位)
(48 位)
置换选择1和置换选择2
DES解密
和Feistel密码一样,DES的解密和加密使 用同一算法,只是子密钥的使用顺序相 反。
子密钥是独立产生的,可以独立存储。
DES加解密过程
令i表示迭代次数,表示逐位模2求和,f为加密函
数。DES的加密和解密过程表示如下。
加密过程:
L0R0 IP( 64bit输入码 )
பைடு நூலகம்
Li Ri1
i 1,2,,16
Ri Li1 f (Ri1, ki ) i 1,2,,16
64bit密文 IP1(R16L16 )
解密过程:
20 21 22 23 24 25
24 25 26 27 28 29
28 29 30 31 32 1
E的作用:
将32比特 的输入膨 胀为48比 特。
则输出为:B = t32 t1 t2 …… t32 t1
选择扩展运算:
12 34 56 78 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
现代密码学_第四五讲 分组密码
循环左移
D1 (28位) (56位) 置换选择2 k1 (48位)
14 3 23 16 41 30 44 46
置换方法
17 28 19 7 52 40 49 42 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
20
迭代的轮数
分组密码一般采用简单的、安全性弱的密码函数进行多
轮迭代运算,使得安全性增强。一般来说,分组密码迭代轮 数越多,密码分析越困难,但也不是追求迭代轮数越多越好, 过多迭代轮数会使加解密算法的性能下降,而实际的安全性 增强不明显。 决定迭代轮数的准则:密码算法分析的难度大 于简单穷举搜索攻击的难度。分组密码迭代轮数一般采用8、 10、12、16、20的居多。
循环左移
C16 (28位)
循环左移
C16 (28位) (56位) 置换选择2 k16 (48位)
注:去掉9,18,22,25,35,38, 43,54位
注:密钥各位在子密钥出现次数基本相同(12次至15次),平均次数为13.7
30
压缩替代S-盒(48位压缩到32位)
48比特
6比特 6比特 6比特 6比特 6比特 6比特 6比特 6比特
考虑,通常密钥长度t不能太大。当然,密钥长度t不能太小,
否则,难以抵抗对密钥的穷举搜索攻击。
7
分组密码的要求
分组长度要足够大 密钥量要足够大
当分组长度较小时,攻击者通过 穷举明文空间,得到密码变换规 律,难于抵御选择明文攻击。
密码变换足够复杂
加密和解密运算简单 无数据扩展或压缩
21
分组密码 4.1分组密码设计原则和设计方法
M C 0 1 1 3 2 4 3 5 4 6 5 7 6 0 7 9 8 8 9 2
密文为: 4560 5628
二、分组密码基本设计原则
1
安全原则
2
实现原则
二、分组密码基本设计原则
1
安全原则
安全性是分组密码设计时应考虑的最重要因
素。人们一般将 Shannon 提出的混乱原则和扩散 原则作为保证分组
x1 x2
m1
xn xn 1 xn 2
m2
x2 n
……
k
加 密 算 法
c1
k
加 密 算 法
c2
…… ……
密文
y1 y2
ys ys 1 ys 2
y2s
主要特点:同一密钥,同一加密算法, 分组加密,分组长度固定。
加密: ci Ek (mi ), i 1, 2,
c c1 c2 ,
4.1
分组密码设计原则和设计方法
4.1
分组密码设计原则和设计方法
分组密码概述 分组密码设计原则 分组密码设计方法
一、分组密码概述
分组密码是将明文数据序列按固定长度 进行分组,然后在同一密钥控制下用同一算 法逐组进行加密,从而将各个明文分组变换 成一个长度固定的密文分组的密码。 二进制明文的分组长度称为该分组密码 的分组长度或分组规模。同样,二进制密钥 的长度称为分组密码的密钥长度或密钥规模。
人们一般将shannon提出的混乱原则和扩散原则作为保证分组密码安全性的两个基本设计原扩散原则混乱原则混乱原则又称混淆原则又称混淆原则confusionconfusion混乱原则就是将密文明文密钥三者之间的统计关系和代数关系变得尽可能复杂保证密钥和明文的任何信息既不能由密文利用统计关系确定出来又不能由密文利用代数方法确定出来
分组密码体制
2018/10/5
图3.1 分组密码框图
3
• 与流密码不同之处在于输出的每一位数字不是 只与相应时刻输入的明文数字有关,而是与一 组长为n的明文数字有关。 • 在相同密钥下,分组密码对长为n的输入明文组 所实施的变换是等同的,所以只需研究对任一 组明文数字的变换规则 • 这种密码实质上是字长为n的数字序列的代换密 码
– 在以软件实现时,应选用简单的运算,使作用于 子段上的密码运算易于以标准处理器的基本运算, 如加、乘、移位等实现,避免用以软件难于实现 的逐比特置换。 – 为了便于硬件实现,加密和解密过程之间的差别 应仅在于由秘密密钥所生成的密钥表不同而已。 这样,加密和解密就可用同一器件实现。 – 设计的算法采用规则的模块结构,如多轮迭代等, 以便于软件和VLSI(超大规模集成电路)快速实 现。
2018/10/5
13
• 如果分组长度太小,系统则等价于古典的 代换密码,容易通过对明文的统计分析而 被攻破。
– 这个弱点不是代换结构固有的,只是因为分 组长度太小。如果分组长度n足够大,而且从 明文到密文可有任意可逆的代换,那么明文 的统计特性将被隐藏而使以上的攻击不能奏 效
• 从实现的角度来看,分组长度很大的可逆 代换结构是不实际的。
2018/10/5 9
⑤ 数据扩展尽可能地小。一般无数据扩展, 在采用同态置换和随机化加密技术时可引 入数据扩展。 ⑥ 差错传播尽可能地小。 • 要实现上述几点要求:
– 首先要在理论上研究有效而可靠的设计方法 – 而后进行严格的安全性检验 – 要易于实现
2018/10/5
10
§3.1.1 代换
• 如果明文和密文的分组长都为n比特,则明文 的每一个分组都有2n个可能的取值。为使加密 运算可逆(使解密运算可行),明文的每一个 分组都应产生惟一的一个密文分组,这样的变 换是可逆的, • 称明文分组到密文分组的可逆变换为代换。
分组密码体制
两个基本设计方法
由于对称分组密码的缺点是不善于隐藏明文的 统计特性,因而对“统计分析”攻击方式的抵御能 力不强,故Shannon提出了两个抵抗“统计分析” 的方法:混淆和扩散。
◆混淆:目的是为了隐藏明文和密文之间的关系,增加密 钥和密文之间关系的复杂性。可以使用“代替”的方法 来实现。
◆扩散:目的是让密文没有统计特征,也就是将明文中的 统计信息散布到整个密文中,增加密文与明文之间关系 的复杂性,以挫败推测出密钥的尝试。可以使用“置换” 的方法来实现。
对于给定的64位的明文p,通过初始置换IP获得64位的 p320,位并记将为pR00分,为即左p0右=I两P(部p)=分L,0R前0。面IP32置位换记如为图L所0,示后。面
置换表中的数字1~64代表的仅仅是明文 分组中元素所处的位置,而非元素的值!
• 第四步:初始逆置换IP-1 应用初始逆置换IP-1对最后一轮迭代之后得到 的R16L16进行置换,得到密文C。
• 分组加密算法本质上体现了n位明文分组和n位密文分组的一一 映射。
• 分组大小n的选择
1“)统如计果分n较析一码小”般,,方的不则法,同得的对变到攻于换的击的n明。位总文分数空组为间的(和2对n密)!称,文分也空组就间密是有限,容易受到 2)如果n充说分,大密,钥则的由个于数得为到(的2n明)!个文。空间和密文空间足够大, 明文的统计特征将被掩盖,可以抵抗“统计分析”方法的攻击 ;但同时也将导致密钥数目的急剧增加和密钥空间的急剧增大 ,这会给密钥的分配、管理和存储带来很大的困难。
Feistel 密码结构
DES算法的整体结构 ——Feistel密码结构
• 每一轮的迭代算法 加密:对于每一轮 i=1,2,...,n,新 的左右部分根据如下规则重新
第3章分组密码体制
第3章分组密码体制3.1分组密码概述图3.1分组密码框图3.1.1代换图3.2代换结构2现代密码学(第2版)3.1.2扩散和混淆3.1.3 Feistel密码结构1. Feistel加密结构图3.3 Feistel网络2. Feistel解密结构现代密码学(第2版) 3图3.4 Feistel加解密过程4现代密码学(第2版)3.2数据加密标准3.2.1DES描述图3.5 DES加密算法框图1. 初始置换现代密码学(第2版) 52. 轮结构图3.6 DES加密算法的轮结构图3.7函数F(R,K)的计算过程6现代密码学(第2版)3. 密钥的产生现代密码学(第2版)7图3.8二重DES8现代密码学(第2版)3.2.3两个密钥的三重DES图3.9两个密钥的三重DES 3.2.4 3个密钥的三重DES3.3差分密码分析与线性密码分析3.3.1差分密码分析3.3.2线性密码分析3.4分组密码的运行模式现代密码学(第2版)93.4.1电码本(ECB)模式图3.10 ECB模式示意图10现代密码学(第2版)3.4.2密码分组链接(CBC)模式图3.11 CBC模式示意图3.4.3密码反馈(CFB)模式图3.12 CFB模式示意图3.4.4输出反馈(OFB)模式图3.13 OFB模式示意图3.5 IDEA3.5.1设计原理1. 密码强度图3.14 MA 结构2. 实现3.5.2加密过程图3.15 IDEA的加密框图1. 轮结构图3.16 IDEA第1轮的轮结构图3.17 IDEA的输出变换2. 子密钥的产生3. 解密过程图3.18 IDEA加密和解密框图3.6 AES 算法——Rijndael3.6.1 Rijndael的数学基础和设计思想1. 有限域GF(28)2. 系数在GF(28)上的多项式3. 设计思想3.6.2算法说明1. 状态、种子密钥和轮数2. 轮函数图3.19字节代换示意图图3.20行移位示意图图3.21列混合运算示意图图3.22密钥加运算示意图3. 密钥编排图3.23 Nb=6且Nk=4时的密钥扩展与轮密钥选取4. 加密算法5. 加解密的相近程度及解密算法习题。
分组密码模式
分组密码模式分组密码模式分组密码与流密码分组密码:每次只能处理特定长度的⼀块数据的⼀类算法,“⼀块”就称为分组(block )。
⼀个分组的⽐特数就称为分组长度(block length)。
流密码: 对数据流进⾏连续的处理的⼀类密码。
只有⼀次性密码本属于流密码,⽽DES 、三重DES 、AES 等⼤多数对称密码算法都属千分组密码。
模式分组密码算法只能加密固定产固定的分组,若加密的铭⽂的长度超过分组密码的长度,需要对分组密码算法进⾏迭代,以便将所有的密码全部加密。
明⽂分组和密⽂分组主动攻击者Mallory窃听者Eve 只能被动地进⾏窃听,⽽主动攻击者则可以主动介⼊发送者和接收者之间的通信过程,进⾏阻碍通信或者是篡改密⽂等活动。
这样的攻击者⼀般称为Mallory 。
ECB模式使⽤ECB 模式加密时,相同的明⽂分组会被转换为相同的密⽂分组,也就是说,我们可以将其理解为是⼀个巨⼤的“明⽂分组⼀密⽂分组”的对应表,因此ECB 模式也称为电⼦密码本模式。
当最后⼀个明⽂分组的内容⼩于分组长度时,需要⽤⼀些特定的数据进⾏填充( padding )。
CBC 模式在CBC 模式中,⾸先将明⽂分组与前⼀个密⽂分组进⾏XOR 运算,然后再进⾏加密。
ECB 和 CBC 的区别初始化向量当加密第⼀个明⽂分组时,由于不存在“前⼀个密⽂分组”,因此需要事先准备⼀个长度为⼀个分组的⽐特序列来代替“前⼀个密⽂分组”,这个⽐特序列称为初始化向量(Initialization Vector) ,通常缩写为IV 。
⼀般来说,每次加密时都会随机产⽣⼀个不同的⽐特序列来作为初始化向量。
CBC模式的特点明⽂分组在加密之前⼀定会与“前⼀个密⽂分组”进⾏XOR 运算,因此即便明⽂分组 1和 2 的值是相等的,密⽂分组1 和 2 的值也不⼀定是相等的。
这样⼀来,ECB 模式的缺陷在CBC模式中就不存在了。
在CBC 模式中,我们⽆法单独对⼀个中间的明⽂分组进⾏加密。
分组密码——精选推荐
分组密码分组密码概述所谓分组密码,简单地说就是对明⽂进⾏分组,每组的长度都相同,然后对每组明⽂使⽤密钥进⾏加密得密⽂,解密即对每组明⽂使⽤密钥进⾏解密得到明⽂。
通常情况是明⽂、密⽂等长。
(好处是处理速度快,节约了存储,避免了浪费带宽.)1. 定义分组密码包含5个部分{M,C,K,E,D},M=F(2,n)明⽂空间K=F(2,k)密钥空间C=F(2,n)密⽂空间E加密变换;D解密变换明⽂m1m2……mn通过密钥k加密算法得到密⽂c1c2……cn分组密码是⼀种映射:E:M*K->CD:C*K->M注:分组密码实际上是{0,1,2,……,2^n-1}到其⾃⾝的⼀⼀映射,密钥k不同映射不同。
2. 基本要求分组长度⾜够长(防⽌明⽂穷举攻击)密钥长度⾜够长(防⽌密钥穷举攻击)加解密算法要⾜够复杂(能抗击各种已知攻击)3. 分组密码的原则为有效抵抗对密码体质的通知分析,⾹农提出了两个原则:扩展原则和混乱原则。
扩散:指每1bit明⽂的变化尽可能多地影响密⽂序列的bit,以隐蔽明⽂的统计特性,防⽌对密钥进⾏逐段攻击破译;混乱:指加密变换过程中明⽂、密钥以及密⽂之间的关系尽可能的复杂,以防⽌破译者采⽤统计分析⽅法进⾏攻击。
4. 分组密码的结构(SP⽹络)需求分析:⼀个分组密码既要难于分析(复杂),⼜要易于实现(简单),迭代密码可克服这⼀对⽭盾。
其加密变换⼀般采取如下结构:由⼀个简单的函数F(易于实现)迭代若⼲次⽽形成。
其中Yi-1是第i轮迭代的输⼊,Yi是第i轮的输出,Zi由密钥k导出,这类密码即迭代密码。
如DES是16轮迭代密码,多次迭代可实现必要的混乱与扩散。
F函数采⽤代换置换结构,置换由P盒实现,起扩散作⽤,代换可提供混淆作⽤,其中代换被精⼼设计且起关键作⽤,⼈们常称其为“⿊盒⼦”。
SP结构具有雪崩效应,雪崩效应指输⼊(明⽂或密钥)即使只有很⼩的变化,也会导致输出(密⽂)产⽣巨⼤的变化。
第3章-分组密码体制(new)
图3.1 分组密码框图
分组密码实质上是字长为n的数字序列的代换密码。
与流密码比较:
与一组长为n的明文数字有关。
在相同密钥下,对长为n的输入明文组所实施的变换是 等同的,所以只需研究对任一组明文数字的变换规则。 用途: 易于构造伪随机数生成器、流密码、消息认证码 (MAC)和杂凑函数等, 消息认证技术、数据完整性机制、实体认证协议以及
价值20万美元的计算机改装成的专用解密机,用56小时破译了56 比特密钥
的DES。 美国国家标准和技术协会(NIST)已征集并进行了几轮评估、筛选,产
生了称之为AES(advanced encryption standard) 的新加密标准。
尽管如此,DES对于推动密码理论的发展和应用毕竟起了重大作用, 对于掌握分组密码的基本理论、设计思想和实际应用仍然有着重要的参考
单钥数字签字体制的核心组成部分。
对分组密码的要求:
安全性、运行速度、存储量(程序的长度、数据分组
长度、高速缓存大小)、实现平台(硬件、软件、芯片)、
运行模式等。 需要与安全性要求之间进行适当的折中选择。
通常取m=n。
若m>n,则为有数据扩展的分组密码; 若m<n,则为有数据压缩的分组密码。 在二元情况下,x和y均为二元数字序列,它们的每个分量 xi,yi∈GF(2)。
采用DES,于是便使用Feistel 网络作为DES 的要素之一。
思想:利用乘积密码可获得简单的代换密码,乘积密 码指顺序地执行两个或多个基本密码系统,使得最后结果 的密码强度高于每个基本密码系统。 Shannon提出的利用乘积密码实现混淆和扩散思想的 具体应用
1.Feistel加密结构
输入:长为2w的明文,分成左右 两半L0和R0,一个密钥K。 在进行完n轮迭代后,左右两半 再合并到一起以产生密文分组。 第i轮迭代的输入为前一轮输出 的函数:
中北大学马巧梅密码学课件第3章分组密码体制
密码学
图3.2表示n=4的代换密码的一般结构,4比特输 入产生16个可能输入状态中的一个,由代换结构将 这一状态映射为16个可能输出状态中的一个,每一 输出状态由4个密文比特表示。
加密映射和解密映射可由代换表来定义,如表 3.1所示。这种定义法是分组密码最常用的形式, 能用于定义明文和密文之间的任何可逆映射。
例如DES中将输入为48比特、输出为32比特的 代换用8个S盒来实现,每个S盒的输入端数仅为6比 特,输出端数仅为4比特。
密码学
3.1.2 扩散和混淆
扩散和混淆是由Shannon提出的设计密码系统 的两个基本方法,目的是抗击敌手对密码系统的统 计分析。
密码学
扩散:将明文的统计特性散布到密文中去。 实现方式:使得明文的每一位影响密文中多位的值, 等价于说密文中每一位均受明文中多位影响。 扩散的目的:使明文和密文之间的统计关系变得尽可 能复杂,以使敌手无法得到密钥;
每轮的轮函数的结构都相同,但以不同的子密 钥Ki作为参数。代换过程完成后,再交换左、右两 半数据,这一过程称为置换。
这种结构是Shannon提出的代换——置换网络 (substitution-permutation network, SPN)的特有 形式。
密码学
Feistel网络的实现与以下参数和特性有关:
图 3.4
Feistel 加 解 密 过 程
密码学
加密过程的最后一轮执行完后,两半输出再经 交换,因此密文是RE16‖LE16。解密过程取以上密 文作为同一算法的输入,即第1轮输入是RE16‖LE16, 等于加密过程第16轮两半输出交换后的结果。
密码学
3.2 数据加密标准
数据加密标准(data encryption standard, DES)是迄今为止世界上最为广泛使用和流行的一 种分组密码算法,它的分组长度为64比特,密钥长 度为56比特,它是由美国IBM公司研制的。DES在 1975年3月17日首次被公布在联邦记录中,经过大 量的公开讨论后,DES于1977年1月15日被正式批 准并作为美国联邦信息处理标准,即FIPS-46,同 年7月15日开始生效。规定每隔5年由美国国家保密 局(national security agency, NSA)作出评估,并 重新批准它是否继续作为联邦加密标准。
分组密码体制分组密码概述
64bits
4
注意事项
从这章开始,假定加密和认证的文本、图像、音频 等任何格式的原声信息,都存在相应的编码方式, 转话为二进制的数据流。在具体算法中,表示为 messag={0,1}*
1M的大小文件多少bit?若分组密码每组分块长度 为64bits,则1M大小文件需要分成多少块?
1M= 1024*1024*8 bits = 2 23 bits
7
分组密码的发展历史
民用 不存在陷门 足够的安全强度 标准化通信需求
8
分组密码的发展历史
1973年5月美国联邦政府提出征求在传输和存储数据 中保护计算机数据的密码算法的建议;
1975年3月,美国国家标准局(NBS) 首次公布IBM公 司提出的算法Lucifer中选;
1977年1月NBS正式向社会公布,采纳IBM公司设计 的方案作为非机密数据的数据加密标准 (Data Encryption Standard). DES正式成为美国联邦政府 信息处理标准,即FIPS-46标准,同年7月开始生 效。
5
分组密码的定义
定义 一个分组密码体制(P, K, C, E, D),其中 P=C={0,1}l ;K={0,1}t.
加密变换: E:P×K→C, 当k ∈K确定时,Ek 为P →C的一一映射.
解密变换: D: C×K →P, 当k ∈K确定时,Dk 为C →P的一一映射.
D ·E =I k=(k0,k1,…,kt-1)
3
分组密码定义
若分组密码明文块长度为64bits
64bits 明文 students
64bits computer
64bits learning
64bits are this
加密
第8次课 分组密码体制-des
穷举攻击分析
穷举攻击就是对所有可能的密钥逐个进行 脱密测试, 直到找到正确密钥为止的一种攻击 方法.
穷举攻击判断正确密钥的方法:
将利用试验密钥解密得到的可能明文与已 掌握的明文的信息相比较,并将最吻合的那个 试验密钥作为算法输出的正确密钥。
2020/1/6
26
穷举攻击的算法
已知条件:已知密文c及对应的明文m.
度为56 bits。 算法主要包括:初始置换IP、16轮迭代的乘积变换、
逆初始置换IP-1以及16个子密钥产生器。
2020/1/6
9
DES加密算法框图
16轮迭代 的乘积变换
2020/1/6
子密钥产生器
10
DES算法框图
输入 64 bit明文数据
标
初始置换IP
准
数
乘积变换
据
(16轮迭代)
加 密
密钥(64 bit )
除去第8,16, ,64位(8个校验位)
置换选择1,PC1
Ci(28 bit)
Di(28 bit)
循环左移ti+1bit
循环左移ti+1bit
置换选择2,PC2
ki
2020/1/6
23
置换选择1
57 49 41 33 25 17 9 1 58 50 42PC-134 26 18 10 2 59 51 43 35 27 19 11 3 60 50 44 36 5 55 47 39 31 23 15 7 62 54 46 38 30 22 14 6 61 53 45 37 29 21 13 5 28 20 12 4
3
15 12 8 2 4 9 1 7 5 11 2 14 10 0 6 13
精品课件-应用密码学-3-分组密码概述
每一种知识都需要努力, 都需要付出,感谢支持!
26
知识就是力量,感谢支持 !
27
----谢谢大家!!
28
9
分组密码的发展历史 民用 不存在陷门 足够的安全强度 标准化通信需求
10
分组密码的发展历史 1973年5月美国联邦政府提出征求在传输和存储数据中保护计
算机数据的密码算法的建议; 1975年3月,美国国家标准局(NBS) 首次公布IBM公司提出的算
法Lucifer中选; 1977年1月NBS正式向社会公布,采纳IBM公司设计的方案作为
5
分组密码定义
若分组密码明文块长度为64bits
64bits 明文 students
64bits computer
64bits learning
64bits are this
加密
加密
加密
加密
密文 ×××××××× ×××××××× ×××××××× ××××××××
64bits
64bits
64bits
扩散:明文和密钥中任何一比特值得改变,都会在某种程度上影 响到密文值的变化,以防止将密钥分解成若干个孤立的小部分, 然后各个击破。(扩散函数)
17
保密系统的安全性分析 及分组密码攻击手段
攻击目的 1. 完全破译:破译使用者的密钥 例:备用钥匙 2. 部分破译:恢复某些密文对应的明文 例:猜测出某些特定格式的明文 信函开头:DEAR ***
18
保密系统的安全性分析 及分组密码攻击手段
攻击种类 被动攻击:守株待兔
1. 唯密文攻击:密码分析者有一个或更多的用同一个密钥 加密的密文,通过对这些截获的密文进行分析得出明文 或密钥.
2. 已知明文攻击:除待解的密文外,密码分析者有一些明 文和用同一个密钥加密这些明文所对应的密文.
分组密码体制
图3.3 Feistel网络示意图
Feistel网络中每轮结构都相同,每轮中右半数据被 作用于轮函数F后,再与左半数据进行异或运算, 这一过程就是上面介绍的代换。每轮的轮函数的结 构都相同,但以不同的子密钥Ki作为参数。代换过 程完成后,再交换左、右两半数据,这一过程称为 置换。这种结构是Shannon提出的代换——置换网 络(substitution-permutation network, SPN)的特 有形式。
② 密钥量要足够大(即置换子集中的元素足够 多),尽可能消除弱密钥并使所有密钥同等地好, 以防止密钥穷举攻击奏效。但密钥又不能过长,以 便于密钥的管理。DES采用56比特密钥,看来太短 了,IDEA采用128比特密钥,据估计,在今后30~ 40年内采用80 比特密钥是足够安全的。
③ 由密钥确定置换的算法要足够复杂,充分实现 明文与密钥的扩散和混淆,没有简单的关系可循, 能抗击各种已知的攻击,如差分攻击和线性攻击; 有高的非线性阶数,实现复杂的密码变换;使对手 破译时除了用穷举法外,无其它捷径可循。
④ 加密和解密运算简单,易于软件和硬件高速实 现。如将分组n化分为子段,每段长为8、16或者32。 在以软件实现时,应选用简单的运算,使作用于子 段上的密码运算易于以标准处理器的基本运算,如 加、乘、移位等实现,避免用以软件难于实现的逐 比特置换。为了便于硬件实现,加密和解密过程之 间的差别应仅在于由秘密密钥所生成的密钥表不同 而已。这样,加密和解密就可用同一器件实现。设 计的算法采用规则的模块结构,如多轮迭代等,以 便于软件和VLSI快速实现。此外,差错传播和数 据扩展要尽可能地小。
所以解密过程第1轮的输出为LE15‖RE15,等于加密 过程第16轮输入左右两半交换后的结果。容易证明 这种对应关系在16轮中每轮都成立。一般地,加密 过程的第i轮有
第3章02--分组密码体制(DES)
10 11 12 13
12 13 14 15 16 17 16 17 18 19 20 21
20 21 22 23 24 25
24 25 26 27 28 29 28 29 30 31 32 1
16
密钥加密运算
将子密钥产生器输出的48 bit子密 钥ki 与选择扩展运算E输出的48 bits 数据按位模2相加。
26
穷举攻击算法的计算复杂性
定理 设密钥在密钥空间K中服从均匀分布, 且没有等效密钥,则穷举攻击平均需要检 K 个密钥后才找到正确密钥。 1 验完
2 2
结论: 对DES算法的穷举攻击平均计算复杂 性为255.
27
讨论:使用二重DES产生的映射是否等价于单 重DES加密?
二重DES
k2 yi yi D
31
30 29 28 27 26 25
38 37 36 35 34 33
初始置换IP
将64 bit明文的位置进行置换,得到一个乱序 的64 bit明文组,而后分成左右两段,每段为 32 bit,以L0和R0表示,IP中各列元素位置号 数相差为8。
逆初始置换IP-1。将16轮迭代后给出的64 bit组 进行置换,得到输出的密文组。输出为阵中元 素按行读得的结果。 IP和 IP-1 在密码意义上作用不大,它们的作用 在于打乱原来输入x的ASCII码字划分的关系。
算法主要包括:初始置换IP、16轮迭代的乘积变换、 逆初始置换IP-1以及16个子密钥产生器。
8
DES加密算法框图
16轮迭代 的乘积变换
子密钥产生器
9
DES算法框图
输入 64 bit明文数据