分组密码 4.1分组密码设计原则和设计方法

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

便于实现是分组密码设计时应考虑的重要 因素。分组密码应符合简单、快速和成本低廉 的原则。
分组密码应适合硬件和(或)软件实现。硬件 实现速度快;软件实现灵活性强、成本低廉。
例: 对高速通信数据的加密----硬件实现; 嵌入到系统软件的加密程序----软件实现
二、分组密码基本设计原则
2.实现原则
硬件 实现原则
p :{1, 2, , lm} {1, 2, , lm} 实现 lm 比特的置换
即P盒
三、分组密码设计方法
S S
P
S
S
P
…… ……
S
S
P

S

S

……

S
k1
k2
kr
非线性代替S一般被称为混乱层,主要起混乱 的作用;线性置换P一般被称为扩散层,主要起扩
散的作用。
三、分组密码设计方法
三、分组密码设计方法
迭代密码的常见模型有 S-P 网络 ( 代
替-置换网络)、 Feistel网络等。
三、分组密码设计方法
(三)代替-置换网络(S-PN)
一个S-PN就是一类特殊的迭代密码。设l和m 都是正整数,明密文都是长为lm的二元向量,一 个S-PN包含两个变换,分别记为πs和πp。
s :{0,1}l {0,1}l 实现 l 比特的代替,即S盒
密钥形式为:K= ( K1,K2 )
三、分组密码设计方法
加密和解密规则定义如下:
EK ( x) E( K1 , K2 ) ( x) EK2 [EK1 ( x)] y DK ( y) D( K1 , K2 ) ( y) DK1 [DK2 ( y)] x
注意:解密次序与加密次序相反
4.1
分组密码设计原则和设计方法
4.1
分组密码设计原则和设计方法
分组密码概述 分组密码设计原则 分组密码设计方法
一、分组密码概述
分组密码是将明文数据序列按固定长度 进行分组,然后在同一密钥控制下用同一算 法逐组进行加密,从而将各个明文分组变换 成一个长度固定的密文分组的密码。 二进制明文的分组长度称为该分组密码 的分组长度或分组规模。同样,二进制密钥 的长度称为分组密码的密钥长度或密钥规模。
(四)Feistel模型
Feistel模型将输入(2w位)分成相同长度 的两部分Li和Ri,按如下方式进行变换。
F ( Li 1, Ri 1, ki ) ( Li , Ri )
Li-1(w位) f
Ri-1(w位) ki
Li(w位)
Li Ri 1
Ri(w位)
Ri Li 1 f ( Ri 1 , ki )
三、分组密码设计方法
Feistel 模型的设计要求 分组大小:分组越大安全性越高,但速度也越慢。 密钥大小:密钥越长安全性越高,但速度也越慢。 循环次数:循环越多,安全性越高。 圈函数:复杂性越高则抗击密码分析的能力就越强。 子密钥产生算法:越复杂,密码分析就越困难。 此外,还要考虑算法的执行速度,设计的算法 要便于分析。
三、分组密码设计方法
(二)迭代密码
当今大多数分组密码都是乘积密码,乘积密 码通常伴随一系列置换与代替操作,常见的乘积 密码是迭代密码。 迭代密码通过将一个弱的密码函数 (称为圈函 数、轮函数等)迭代若干次,产生一个强的密码函 数,既能快速、有效地实现,又能使明文和密钥 得到必要的混乱和扩散。
三、分组密码设计方法
F 称为圈变换、圈函数或轮 函数,r 称为迭代次数、圈 数或轮数。
k1, k2 , , kr 是 r 个圈子密钥
F F
k1
k2
在设计圈函数时,要充分 利用代替密码 ( 实现混乱 ) 和移 位密码 ( 实现扩散 ) 各自的优点, 抵消各自的缺点,保证通过多 次迭代,形成一个强的分组密 码算法。
F
kr
三、分组密码设计方法
例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 提出的混乱原则和扩散 原则作为保证分组密码安全性的两个基本设计原 则。
软件 实现原则
二、分组密码基本设计原则
硬件实现原则
硬件实现分组密码,通常是将密码算法做 成一个专用的超大规模集成电路芯片。这可使 加、脱密运算高速完成,但需大批量生产方可 降低成本。因此,硬件实现适合对信息快速、 实时进行处理的系统,以及可大规模生产的时 候。
二、分组密码基本设计原则
硬件实现原则
D( K1 ,K2 ) ( y) DK1 {DK2 [EK2 (EK1 ( x))]} DK1 [EK1 ( x)] x
三、分组密码设计方法
例3: (乘法密码)设 M=C=Z26 K {a Z 26 : gcd( a,26) 1} 对于 a K ,明文 x,密文 y,定义:
二、分组密码基本设计原则
可进一步理解为: (1)当前明文不能由已知的明文、密文及 少许密钥比特代数地表示出来。 (2)当前密钥不能由已知的明文、密文及 少许密钥比特统计地表示出来。 混乱原则使得分组密码算法有足够的 “非线性”因素。
二、分组密码基本设计原则
扩散原则(Diffusion) 扩散原则要求人们设计的密码应使得每个 明文比特和密钥比特影响尽可能多的密文比特。
密码学
第四章
分组密码
第四章
分组密码
主要内容:分组密码的基本概念,分组密码的基本 设计原则和设计方法,典型的分组密码算法,常见 的分组密码攻击方法,以及分组密码的工作模式等。
重点:数据加密标准(DES)、高级加密标准(AES)。 希望大家能理解分组密码设计的原理与方法, 掌握DES、AES等分组密码算法,了解常见的分组 密码安全性分析方法。
用硬件实现的分组密码应遵循下述原则: (1) 加、脱密算法结构相同; (2) 结构的规则性; (3) 设计成迭代型; (4) 选择易于硬件实现的编码环节,避免硬件 难于实现的编码环节。
二、分组密码基本设计原则
软件实现原则
软件实现分组密码,成本较低且可以灵活地 编程,但其速度一般没有硬件实现快。 用软件实现的分组密码应遵循下述原则: 加、脱密算法结构的相似性; 使用子块; 设计成迭代型; 使用既简单又易于软件实现的运算。
Ea ( x) ax(mod 26)
Da ( y) a1 y(mod 26)
例4: (移位密码)设 M=C=K=Z26
对于 k K ,明文 x,密文 y,定义:
Ek ( x) ( x k )(mod 26)
Dk ( y) ( y k )(mod 26)
三、分组密码设计方法
二、分组密码基本设计原则
1.安全原则
混乱原则
扩散原则
二、分组密码基本设计原则
混乱原则(又称混淆原则)(Confusion)
c Ek (m) f (k , m)
混乱原则就是将密文、明文、密钥三者之 间的统计关系和代数关系变得尽可能复杂,保 证密钥和明文的任何信息既不能由密文利用统 计关系确定出来,又不能由密文利用代数方法 确定出来。
三、分组密码设计方法
如果将密码体制 S 和自己做乘积,得到密码 体制 S×S,记为S 2。如果做 n 重乘积,得到的密 码体制记为S n。 如果S 2= S,称该密码体制是幂等的。 如果密码体制是幂等的,使用乘积系统就毫 无意义,这是因为使用多余的密钥,但并不能提 高更多的安全性。 如果密码体制不是幂等的,多次乘积就有可 能提高安全性。通常是将代替密码和置换密码做 乘积。
m m1 m2
一、分组密码概述
明文分组长度为n,密文分组长度为s, 若n > s,则称其为有数据压缩的分组密码; 若n < s,则称其为有数据扩展的分组密码。
本章我们都取
n=s
例1 移位密码中的电文倒置法
明文为: 2346 3498 密文为: 6432 8943 密钥(4321)
一、分组密码概述
(1) (2) (3) (4)
三、分组密码设计方法
对一个分组密码,安全原则要求其实现足够 的混乱和扩散,实现原则要求其易于软件和 ( 或 ) 硬件实现。 Shannon 提出乘积密码的思想。乘积密码的 基本思想是通过将一个易于实现的具有一定混乱
和扩散结构的较弱的密码函数进行多次迭代来产
生一个强的密码函数。
三、分组密码设计方法
(一)乘积密码
Shannon在1949提出,其主要思想就是通过 简单密码的乘积来组合密码体制。 假设 M= C
S1 (M , C, K1, E1, D1 )
S2 (M , C, K2 , E×S2定义为:
S1 S2 (M , C, K1 K2 , E, D)
假设 S1 是乘法密码, S2 是移位密码,很 容易看出 S1× S2 是仿射密码。 对于S1× S2 ,其密钥形式为(a, k)
E( a,k ) ( x) (ax k )(mod 26)
对于S2× S1 ,其密钥形式为(k, a)
E( k ,a) ( x) a( x k )(mod 26) (ax ak )(mod 26)
一、分组密码概述
明文
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 ,
扩散原则应将明文的统计规律和结构规律 散射到相当长的一段统计中去。
二、分组密码基本设计原则
(1)明文和密钥中的每一位影响密文中的 尽可能多的位; (2)密文中的每一位都受到明文和密钥中 的尽可能多位的影响。
扩散原则使得每个明文比特和密钥比特均 应影响密文的所有比特。
二、分组密码基本设计原则
2
实现原则
对于一个给定的密钥编排方案,圈函数 F 的输入为圈密钥kr和当前状态wr-1,下一个状态 定义为:wr=F(wr-1,kr)。初态 w0定义为明文 x, 密文y定义为经过 r 轮后的状态。
加密过程: w0←x w1←F(w0,k1) w2←F(w1,k2) ………… wr-1←F(wr-2,kr-1) wr←F(wr-1,kr) y←wr 解密过程: wr←y wr-1←F-1(wr,kr) wr-2←F-1 (wr-1,kr-1) ………… w1←F-1 (w2,k2) w0←F-1 (w1,k1) x←w0
相关文档
最新文档