917825-密码学-第四章 分组密码 4.1分组密码设计原则和设计方法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
迭代密码通过将一个弱的密码函数(称为圈函 数、轮函数等)迭代若干次,产生一个强的密码函 数,既能快速、有效地实现,又能使明文和密钥 得到必要的混乱和扩散。
三、分组密码设计方法
F 称为圈变换、圈函数或轮
函数,r 称为迭代次数、圈
F
k1
数或轮数。
F
k1, k2, , kr 是 r 个圈子密钥
k2
在设计圈函数时,要充分
2.实现原则
硬件 实现原则
软件 实现原则
二、分组密码基本设计原则
硬件实现原则
硬件实现分组密码,通常是将密码算法做 成一个专用的超大规模集成电路芯片。这可使 加、脱密运算高速完成,但需大批量生产方可 降低成本。因此,硬件实现适合对信息快速、 实时进行处理的系统,以及可大规模生产的时 候。
二、分组密码基本设计原则
1.安全原则
混乱原则
扩散原则
二、分组密码基本设计原则
混乱原则(又称混淆原则)(Confusion)
c Ek (m) f (k, m)
混乱原则就是将密文、明文、密钥三者之 间的统计关系和代数关系变得尽可能复杂,保 证密钥和明文的任何信息既不能由密文利用统 计关系确定出来,又不能由密文利用代数方法 确定出来。
此外,还要考虑算法的执行速度,设计的算法要 便于分析。
明文分组长度为n,密文分组长度为s,若 n > s,则称其为有数据压缩的分组密码; 若n < s,则称其为有数据扩展的分组密码。
本章我们都取 n = s 例1 移位密码中的电文倒置法 明文为: 2346 3498 密文为: 6432 8943 密钥(4321)
一、分组密码概述
例2 代替密码 明文为: 2346 3498
三、分组密码设计方法
迭代密码的常见模型有S-P网络(代 替-置换网络)、 Feistel网络等。
三、分组密码设计方法
(三)代替-置换网络(S-PN)
一个SPN就是一类特殊的迭代密码。设l和m 都是正整数,明密文都是长为lm的二元向量,一 个SPN包含两个变换,分别记为πs和πp。
s :{0,wenku.baidu.com}l {0,1}l 实现 l 比特的代替,即S盒
二、分组密码基本设计原则
可进一步理解为: (1)当前明文不能由已知的明文、密文及
少许密钥比特代数地或统计地表示出来。 (2)当前密钥不能由已知的明文、密文及
少许密钥比特代数地或统计地表示出来。
混乱原则使得分组密码算法有足够的 “非线性”因素。
二、分组密码基本设计原则
扩散原则(Diffusion)
一、分组密码概述
明文
x1x2 xn xn1xn2
m1
m2
x2n ……
加 密
k算

加 密
k算

……
密文
c1
c2
y1 y2 ys ys1 ys2
…… y2s
主要特点:同一密钥,同一加密算法,
分组加密,分组长度固定。
加密: ci Ek (mi ), i 1, 2,
c c1 c2
,
m m1 m2
一、分组密码概述
三、分组密码设计方法
(一)乘积密码
Shannon在1949提出,其主要思想就是通过 简单密码的乘积来组合密码体制。
假设 M= C
S1 (M , C, K1, E1, D1) S2 (M ,C, K2 , E2 , D2 )
S1和 S2的乘积密码体制 S1×S2定义为:
S1 S2 (M ,C, K1 K2 , E, D)
密钥形式为:K= ( K1,K2 )
三、分组密码设计方法
加密和解密规则定义如下:
EK (x) E(K1,K2 ) (x) EK2 [EK1 (x)] y DK ( y) D(K1,K2 ) ( y) DK1 [DK2 ( y)] x
注意:解密次序与加密次序相反
D(K1,K2 ) ( y) DK1{DK2 [EK2 (EK1 (x))]} DK1 [EK1 (x)] x
Ek (x) (x k)(mod 26) Dk ( y) ( y k)(mod 26)
三、分组密码设计方法
假设 S1 是乘法密码, S2 是移位密码,很容 易看出 S1× S2 是仿射密码。 对于S1× S2 ,其密钥形式为(a, k)
E(a,k) (x) (ax k)(mod 26)
4.1 分组密码设计原则和设计方法
4.1 分组密码设计原则和设计方法
分组密码概述 分组密码设计原则 分组密码设计方法
一、分组密码概述
分组密码是将明文数据序列按固定长度 进行分组,然后在同一密钥控制下用同一算 法逐组进行加密,从而将各个明文分组变换 成一个长度固定的密文分组的密码。
二进制明文的分组长度称为该分组密码的 分组长度或分组规模。同样,二进制密钥的长 度称为分组密码的密钥长度或密钥规模。
扩散原则要求人们设计的密码应使得每个 明文比特和密钥比特影响尽可能多的密文比特。
扩散原则应将明文的统计规律和结构规律 散射到相当长的一段统计中去。
二、分组密码基本设计原则
(1)明文和密钥中的每一位影响密文中的尽 可能多的位;
(2)密文中的每一位都受到明文和密钥中的 尽可能多位的影响。
扩散原则使得每个明文比特和密钥比特均应 影响密文的所有比特。
三、分组密码设计方法
例3: (乘法密码)设 M=C=Z26 K {a Z26 : gcd(a,26) 1} 对于 a K ,明文 x,密文y,定义:
Ea (x) ax(mod 26)
Da ( y) a1 y(mod 26)
例4: (移位密码)设 M=C=K=Z26 对于 k ,K 明文 x,密文 y,定义:
利用代替密码(实现混乱)和移位
密码(实现扩散)各自的优点,抵
F
kr
消各自的缺点,保证通过多次
迭代,形成一个强的分组密码
算法。
三、分组密码设计方法
对于一个给定的密钥编排方案,圈函数 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
的两部分Li和Ri,按如下方式进行变换。
F (Li1, Ri1, ki ) (Li , Ri )
Li-1(w位)
Ri-1(w位)
f
ki
Li(w位)
Li Ri1
Ri(w位)
Ri Li1 f (Ri1, ki )
三、分组密码设计方法
Feistel 模型的设计要求 分组大小:分组越大安全性越高,但速度也越慢。 密钥大小:密钥越长安全性越高,但速度也越慢。 循环次数:循环越多,安全性越高。 圈函数:复杂性越高则抗击密码分析的能力就越强。 子密钥产生算法:越复杂,密码分析就越困难。
对于S2× S1 ,其密钥形式为(k, a)
E(k,a) (x) a(x k)(mod 26) (ax ak)(mod 26)
三、分组密码设计方法
如果将密码体制S 和自己做乘积,得到密码 体制 S×S,记为S 2。如果做n重乘积,得到的密 码体制记为S n。
如果S2= S,称该密码体制是幂等的。
二、分组密码基本设计原则
2
实现原则
便于实现是分组密码设计时应考虑的重要 因素。分组密码应符合简单、快速和成本低廉 的原则。
分组密码应适合硬件和(或)软件实现。硬件 实现速度快;软件实现灵活性强、成本低廉。
例: 对高速通信数据的加密----硬件实现; 嵌入到系统软件的加密程序----软件实现
二、分组密码基本设计原则
p :{1, 2, ,lm} {1, 2, ,lm} 实现 lm 比特的置换 即P盒
三、分组密码设计方法
S
S
……
S
S
S
……
S
P
P
P
S
S
……
S
k1
k2
kr
非线性代替S一般被称为混乱层,主要起混乱
的作用;线性置换P一般被称为扩散层,主要起扩
散的作用。
三、分组密码设计方法
(四)Feistel模型
Feistel模型将输入(2w位)分成相同长度
硬件实现原则
用硬件实现的分组密码应遵循下述原则: (1) 加、脱密的相似性; (2) 结构的规则性; (3) 设计成迭代型; (4) 选择易于硬件实现的编码环节,避免硬件 难于实现的编码环节。
二、分组密码基本设计原则
软件实现原则
软件实现分组密码,成本较低且可以灵活地 编程,但其速度一般没有硬件实现快。
密码学
第四章 分组密码
第四章 分组密码
主要内容:分组密码的基本概念,分组密码的基本 设计原则和设计方法,典型的分组密码算法,常见 的分组密码攻击方法,以及分组密码的工作模式等。
重点:数据加密标准(DES)、高级加密标准(AES)。
希望大家能理解分组密码设计的原理与方法, 掌握DES、AES等分组密码算法,了解常见的分组 密码安全性分析方法。
如果密码体制是幂等的,使用乘积系统就毫无 意义,这是因为使用多余的密钥,但并不能提高 更多的安全性。
如果密码体制不是幂等的,多次乘积就有可 能提高安全性。通常是将代替密码和置换密码做 乘积。
三、分组密码设计方法
(二)迭代密码
当今大多数分组密码都是乘积密码,乘积密 码通常伴随一系列置换与代替操作,常见的乘积 密码是迭代密码。
用软件实现的分组密码应遵循下述原则: (1) 加、脱密算法结构的相似性; (2) 使用子块; (3) 设计成迭代型; (4) 使用既简单又易于软件实现的运算。
三、分组密码设计方法
对一个分组密码,安全原则要求其实现足够 的混乱和扩散,实现原则要求其易于软件和(或)硬 件实现。
Shannon提出乘积密码的思想。乘积密码的 基本思想是通过将一个易于实现的具有一定混乱 和扩散结构的较弱的密码函数进行多次迭代来产 生一个强的密码函数。
M 0123456789 C 1345670982
密文为: 4560 5628
二、分组密码基本设计原则
1
安全原则
2
实现原则
二、分组密码基本设计原则
1
安全原则
安全性是分组密码设计时应考虑的最重要因 素。人们一般将Shannon提出的混乱原则和扩散 原则作为保证分组密码安全性的两个基本设计原 则。
二、分组密码基本设计原则
相关文档
最新文档