分组密码体制-精

合集下载

分组密码体制简介

分组密码体制简介

分组密码体制简介分组密码体制也具有简捷、快速的特点,并且容易标准化,使其成为软硬件加密的主流算法。

目前主流的分组密码有:DES、IDEA…… .1.分组密码的特点与序列密码不同,分组密码是将明文序列划分成等长的分组(Block),对每一组用同一加密算法和同一密钥进行加密。

分组密码有其自身的优点,首先分组密码容易被标准化,因为在今天的数据网络通信中,信息通常是被成块的处理和传输的。

其次,使用分组赌东道密码容易实现同步,因为一个密码组的传输错误不会影响到其它的分组,丢失一个密文组不会对随后组的解密产生影响。

这就是说,传输错误不会扩散。

而这些方面恰恰是序列密码的最大缺点。

分组密码与序列密码相比的一个缺点就是算法庞大一些,需要更多的计算资源。

分组密码的另一大缺点是其安全性很难被证明。

尽管“可证明安全性”的研究发展很快,但目前的分组密码大多是“看来安全的”,还没有一个分组密码被证明是真正安全的,至多证明了局部安全性。

这其中的原因是:因商业化而要求分组密码算法的细节全部暴露,因此对分组密码的攻击类型很多,安全性概念也就很多,有人为了统一这些安全性概念,甚至引入了伪随机性和超伪随机性,它们是用概率图灵机来描述的,在实际设计和分析中很难应用。

2.分组密码的设计准则一、安全性准则对以下的安全性的描述总是基于以下的假设:加密体制(包括算法的细节)是公开的;安全性完全依赖于密钥;信道是不安全的,即攻击者可以任意的截取密文;攻击者有时也可以截取一些“废弃”的明文。

(1)分组长度和密钥长度:当明文分组长度为n比特时,至多需要2n个明文-密文对就可以彻底破解密钥。

同理当密钥长度为n比特时,对一个截获的密文,至多需要试验2n个密钥就可以破解了密文。

因此从安全性角度来考虑,明文分组长度的密钥长度因尽可能的大。

(2)混淆性:所设计的密码应使得明文、密文、密钥之间的依赖关系相当复杂,以至于这种依赖关系对密码分析者来说是无法利用的。

密码学分组密码

密码学分组密码
4. 加密和解密运算简单,易于软件和硬件的高速实现。
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分组密码设计原则和设计方法

分组密码 4.1分组密码设计原则和设计方法
例2 代替密码 明文为: 2346 3498
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个可能的取值。为使加密 运算可逆(使解密运算可行),明文的每一个 分组都应产生惟一的一个密文分组,这样的变 换是可逆的, • 称明文分组到密文分组的可逆变换为代换。

分组密码体制

分组密码体制
5
两个基本设计方法
由于对称分组密码的缺点是不善于隐藏明文的 统计特性,因而对“统计分析”攻击方式的抵御能 力不强,故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章分组密码体制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. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档