现代密码学课件第5讲-分组密码_第1页
现代密码学课件第5讲-分组密码_第2页
现代密码学课件第5讲-分组密码_第3页
现代密码学课件第5讲-分组密码_第4页
现代密码学课件第5讲-分组密码_第5页
已阅读5页,还剩47页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

kok电子竞技:文档简介

第四章分组密码一、分组密码概述二、分组密码运行模式三、DES四、AES五、分组密码的分析2022/12/231第四章分组密码一、分组密码概述2022/12/201一、分组密码概述2022/12/232一、分组密码概述2022/12/202分组密码概述分组密码是许多系统安全的一个重要组成部分。可用于构造拟随机数生成器流密码消息认证码(MAC)和杂凑函数消息认证技术、数据完整性机构、实体认证协议以及单钥数字签字体制的核心组成部分。

2022/12/233分组密码概述分组密码是许多系统安全的一个重要组成部分。可用于应用中对于分组码的要求安全性运行速度存储量(程序的长度、数据分组长度、高速缓存大小)实现平台(硬、软件、芯片)运行模式2022/12/234应用中对于分组码的要求安全性2022/12/204分组密码概述明文序列x1,x2,…,xi,…加密函数E:Vn×KVn

这种密码实质上是字长为m的数字序列的代换密码。

解密算法加密算法密钥k=(k0,k1,…,kt-1)密钥k=(k0,k1,…,kt-1)明文x=(x0,x1,…,xm-1)明文x=(x0,x1,…,xm-1)密文x=(y0,y1,…,ym-1)2022/12/235分组密码概述明文序列x1,x2,…,xi,…解

分组密码概述通常取n=m。若n>m,则为有数据扩展的分组密码。若n<m,则为有数据压缩的分组密码。2022/12/236

分组密码概述通常取n=m。2022/12/206分组密码设计问题

分组密码的设计问题在于找到一种算法,能在密钥控制下从一个足够大且足够好的置换子集中,简单而迅速地选出一个置换,用来对当前输入的明文的数字组进行加密变换。2022/12/237分组密码设计问题分组密码的设计问题在于找到分组密码算法应满足的要求分组长度n要足够大:防止明文穷举攻击法奏效。密钥量要足够大:尽可能消除弱密钥并使所有密钥同等地好,以防止密钥穷举攻击奏效。由密钥确定置换的算法要足够复杂:充分实现明文与密钥的扩散和混淆,没有简单的关系可循,要能抗击各种已知的攻击。2022/12/238分组密码算法应满足的要求分组长度n要足够大:2022/12/分组密码算法应满足的要求加密和解密运算简单:

易于软件和硬件高速实现。数据扩展:

一般无数据扩展,在采用同态置换和随机化加密技术时可引入数据扩展。差错传播尽可能地小。

2022/12/239分组密码算法应满足的要求加密和解密运算简单:2022/12/代换网络代换是输入集A到输出A’上的双射变换:

fk:AA'

式中,k是控制输入变量,在密码学中则为密钥。实现代换fk的网络称作代换网络。双射条件保证在给定k下可从密文惟一地恢复出原明文。2022/12/2310代换网络代换是输入集A到输出A’上的双射变换:2022/12代换网络代换fk的集合:

S={fkkK}K是密钥空间。如果网络可以实现所有可能的2n!个代换,则称其为全代换网络。全代换网络密钥个数必须满足条件:#{k}2n!2022/12/2311代换网络代换fk的集合:2022/12/2011代换网络密码设计中需要先定义代换集S,而后还需定义解密变换集,即逆代换网络S-1,它以密文y作为输入矢量,其输出为恢复的明文矢量x。要实现全代换网络并不容易。因此实用中常常利用一些简单的基本代换,通过组合实现较复杂的、元素个数较多的代换集。实用密码体制的集合S中的元素个数都远小于2n!。2022/12/2312代换网络密码设计中需要先定义代换集S,而后还需定义解密变换集代换盒(S盒)在密码设计中,可选n=rn0,其中r和n0都为正整数,将设计n个变量的代换网络化为设计r个较小的子代换网络,而每个子代换网络只有n0个输入变量。称每个子代换网络为代换盒(SubstitutionBox)

S盒x5

x4

x3

x2

x1

x0y3

y2

y1

y0DES的S盒2022/12/2313代换盒(S盒)在密码设计中,可选n=rDES的S1-盒的输入和输出关系x5x0x5x4x3x2x1x010101100列号0123456789101112131415行号01441312151183106125907101574142131106121195382411481362111512973105031512824917511214100613

(y3

,

y2,

y1

,y0)=(0,0,1,0)2022/12/2314DES的S1-盒的输入和输出关系x5x0扩散和混淆扩散将明文的统计特性散布到密文中。实现的方式是使明文的每一位影响密文中多位的值。2022/12/2315扩散和混淆扩散将明文的统计特性散布到密文中。实现的方式是使明S盒的设计准则迄今为止,有关方面未曾完全公开有关DES的S盒的设计准则。Branstead等曾披露过下述准则:P1S盒的输出都不是其输入的线性或仿射函数。P2改变S盒的一个输入比特,其输出至少有两比特产生变化,即近一半产生变化。P3当S盒的任一输入位保持不变,其它5位输入变化时(共有25=32种情况),输出数字中的0和1的总数近于相等。这三点使DES的S盒能够实现较好的混淆。2022/12/2316S盒的设计准则迄今为止,有关方面未曾完全公S盒的组合问题:如何将几个S盒组合起来构成一个n值较大的组。

将几个S盒的输入端并行,并通过坐标置换(P-盒)将各S盒输出比特次序打乱,再送到下一级各S盒的输入端,起到了Shannon所谓的“扩散”作用。S盒提供非线性变换,将来自上一级不同的S盒的输出进行“混淆”。经过P-盒的扩散作用使1均匀地分散到整个输出矢量中,从而保证了输出密文统计上的均匀性,这就是Shannon的乘积密码的作用。2022/12/2317S盒的组合问题:如何将几个S盒组合起来构成一个n值较大的组Feistel网络

将nbit明文分成为左右各半、长为n/2bit的段,以L和R表示。然后进行多轮迭代,其第i轮迭代的输出为前轮输出的函数

Li=Ri-1

Ri=Li-1f(Ri-1,Ki)式中,Ki是第i轮用的子密钥,f是任意密码轮函数。称这种分组密码算法为Feistel网络(FeistelNetwork),它保证加密和解密可采用同一算法实施2022/12/2318Feistel网络将nbit明文分成为左右各半、长迭代分组密码若以一个简单函数f,进行多次迭代,就称其为迭代密码。每次迭代称作一轮(Round)。相应函数f称作轮函数。每一轮输出都是前一轮输出的函数,即y(i)=f[y(i-1),k(i)],其中k(i)是第i轮迭代用的子密钥,由秘密密钥k通过密钥生成算法产生。

子密钥产生器kk(1)k(2)k(r)y(0)=xy(1)y(2)y(r-1)y(r)=y2022/12/2319迭代分组密码若以一个简单函数f,进行多次迭代,就称其为迭代密对合密码(InvolutionCipher)

加密函数f(x,k),实现F2n×F2t

F2n的映射。其中,n是分组长,t是密钥长。若对每个密钥取值都有f[f(x,k),k]=x,即f(x,k)2=I(恒等置换)则称其为对合密码,以fI表示。2022/12/2320对合密码(InvolutionCipher)20I型迭代分组密码以对合密码函数构造的多轮迭代分组密码。E[x,k]=fI[fI[

fI[fI[x,k(1)],k(2)],k(r-1)],k(r)]D[y,k]=fI[fI[

fI[fI[y,k(r)],k(r-1)],k(2)],k(1)]

缺点:对任意偶数轮变换,若对所有i选择k(2i-1)=k(2i),则加密的变换等价于恒等变换,在实用中需要避免这类密钥选择。2022/12/2321I型迭代分组密码以对合密码函数构造的多轮迭代分组密码。202

对合置换和II型迭代分组密码对合置换令P是对x的置换,即P:F2n

F2n

,若对所有xGF(2n),有P[P[x]]=x,即PP=I(恒等置换),以PI表示。II型迭代分组密码每轮采用对合密码函数和对合置换级连,即F[x,k]=PI[fI[x,k]]并选解密子密钥与加密子密钥逆序,则加密解密可用同一器件完成。DES、FEAL和LOKI等都属此类。2022/12/2322

对合置换和II型迭代分组密码对合置换2022/12/202

III型迭代分组密码群密码:若密钥与明文、密文取自同一空间GF(2n),且y=xk式中,是群运算,则称其为群密码。显然x可通过k的逆元求得x=yk-1令xk为一群密码,令fI(x,kB)为一对合密码,以F[x,k]=fI(xkA,kB)为迭代函数,可以III型多轮迭代分组密码。在最后一轮中,另外加了一次群密码运算,用以保证整个加、解密的对合性。2022/12/2323

III型迭代分组密码群密码:若密钥与明文、密文取自同一空III型迭代分组密码轮函数F

F

y(1)y(r-1)(a)加密

x

fI···

fI

y

kA(1)kB(1)kA(r)kB(r)kA(r+1)F

F

y

fI···fI

x

(b)解密

kA(r+1))-1

kB(r)(kA(r))-1

kB(1)(kA)-1

2022/12/2324III型迭代分组密码轮函数FIV型迭代分组密码

在III型密码的轮函数基础上,再增加一个对合置换PI,构成IV型迭代分组密码的轮函数

F[x,k]=PI[fI[xkA,kB]]2022/12/2325IV型迭代分组密码在III型密码的轮函

IV型迭代分组密码轮函数Fy(1)y(r-1)

F

x

fIPI···

fI

PIPI

y

kA(1)kB(1)

kA(r)

kB(r)

kA(r+1)(a)加密

FF

y

fIPI···

fI

x

(b)解密(kA(r+1))-1kB(r)

PI[kA(r)]-1

PI[kA(2)]-1

kB(1)(kA(1))-1

2022/12/2326

IV型迭代分组密码轮函数F第四章分组密码一、分组密码概述二、分组密码运行模式三、DES四、AES五、分组密码的分析2022/12/2327第四章分组密码一、分组密码概述2022/12/201一、分组密码概述2022/12/2328一、分组密码概述2022/12/202分组密码概述分组密码是许多系统安全的一个重要组成部分。可用于构造拟随机数生成器流密码消息认证码(MAC)和杂凑函数消息认证技术、数据完整性机构、实体认证协议以及单钥数字签字体制的核心组成部分。

2022/12/2329分组密码概述分组密码是许多系统安全的一个重要组成部分。可用于应用中对于分组码的要求安全性运行速度存储量(程序的长度、数据分组长度、高速缓存大小)实现平台(硬、软件、芯片)运行模式2022/12/2330应用中对于分组码的要求安全性2022/12/204分组密码概述明文序列x1,x2,…,xi,…加密函数E:Vn×KVn

这种密码实质上是字长为m的数字序列的代换密码。

解密算法加密算法密钥k=(k0,k1,…,kt-1)密钥k=(k0,k1,…,kt-1)明文x=(x0,x1,…,xm-1)明文x=(x0,x1,…,xm-1)密文x=(y0,y1,…,ym-1)2022/12/2331分组密码概述明文序列x1,x2,…,xi,…解

分组密码概述通常取n=m。若n>m,则为有数据扩展的分组密码。若n<m,则为有数据压缩的分组密码。2022/12/2332

分组密码概述通常取n=m。2022/12/206分组密码设计问题

分组密码的设计问题在于找到一种算法,能在密钥控制下从一个足够大且足够好的置换子集中,简单而迅速地选出一个置换,用来对当前输入的明文的数字组进行加密变换。2022/12/2333分组密码设计问题分组密码的设计问题在于找到分组密码算法应满足的要求分组长度n要足够大:防止明文穷举攻击法奏效。密钥量要足够大:尽可能消除弱密钥并使所有密钥同等地好,以防止密钥穷举攻击奏效。由密钥确定置换的算法要足够复杂:充分实现明文与密钥的扩散和混淆,没有简单的关系可循,要能抗击各种已知的攻击。2022/12/2334分组密码算法应满足的要求分组长度n要足够大:2022/12/分组密码算法应满足的要求加密和解密运算简单:

易于软件和硬件高速实现。数据扩展:

一般无数据扩展,在采用同态置换和随机化加密技术时可引入数据扩展。差错传播尽可能地小。

2022/12/2335分组密码算法应满足的要求加密和解密运算简单:2022/12/代换网络代换是输入集A到输出A’上的双射变换:

fk:AA'

式中,k是控制输入变量,在密码学中则为密钥。实现代换fk的网络称作代换网络。双射条件保证在给定k下可从密文惟一地恢复出原明文。2022/12/2336代换网络代换是输入集A到输出A’上的双射变换:2022/12代换网络代换fk的集合:

S={fkkK}K是密钥空间。如果网络可以实现所有可能的2n!个代换,则称其为全代换网络。全代换网络密钥个数必须满足条件:#{k}2n!2022/12/2337代换网络代换fk的集合:2022/12/2011代换网络密码设计中需要先定义代换集S,而后还需定义解密变换集,即逆代换网络S-1,它以密文y作为输入矢量,其输出为恢复的明文矢量x。要实现全代换网络并不容易。因此实用中常常利用一些简单的基本代换,通过组合实现较复杂的、元素个数较多的代换集。实用密码体制的集合S中的元素个数都远小于2n!。2022/12/2338代换网络密码设计中需要先定义代换集S,而后还需定义解密变换集代换盒(S盒)在密码设计中,可选n=rn0,其中r和n0都为正整数,将设计n个变量的代换网络化为设计r个较小的子代换网络,而每个子代换网络只有n0个输入变量。称每个子代换网络为代换盒(SubstitutionBox)

S盒x5

x4

x3

x2

x1

x0y3

y2

y1

y0DES的S盒2022/12/2339代换盒(S盒)在密码设计中,可选n=rDES的S1-盒的输入和输出关系x5x0x5x4x3x2x1x010101100列号0123456789101112131415行号01441312151183106125907101574142131106121195382411481362111512973105031512824917511214100613

(y3

,

y2,

y1

,y0)=(0,0,1,0)2022/12/2340DES的S1-盒的输入和输出关系x5x0扩散和混淆扩散将明文的统计特性散布到密文中。实现的方式是使明文的每一位影响密文中多位的值。2022/12/2341扩散和混淆扩散将明文的统计特性散布到密文中。实现的方式是使明S盒的设计准则迄今为止,有关方面未曾完全公开有关DES的S盒的设计准则。Branstead等曾披露过下述准则:P1S盒的输出都不是其输入的线性或仿射函数。P2改变S盒的一个输入比特,其输出至少有两比特产生变化,即近一半产生变化。P3当S盒的任一输入位保持不变,其它5位输入变化时(共有25=32种情况),输出数字中的0和1的总数近于相等。这三点使DES的S盒能够实现较好的混淆。2022/12/2342S盒的设计准则迄今为止,有关方面未曾完全公S盒的组合问题:如何将几个S盒组合起来构成一个n值较大的组。

将几个S盒的输入端并行,并通过坐标置换(P-盒)将各S盒输出比特次序打乱,再送到下一级各S盒的输入端,起到了Shannon所谓的“扩散”作用。S盒提供非线性变换,将来自上一级不同的S盒的输出进行“混淆”。经过P-盒的扩散作用使1均匀地分散到整个输出矢量中,从而保证了输出密文统计上的均匀性,这就是Shannon的乘积密码的作用。2022/12/2343S盒的组合问题:如何将几个S盒组合起来构成一个n值较大的组Feistel网络

将nbit明文分成为左右各半、长为n/2bit的段,以L和R表示。然后进行多轮迭代,其第i轮迭代的输出为前轮输出的函数

Li=Ri-1

Ri=Li-1f(Ri-1,Ki)式中,Ki是第i轮用的子密钥,f是任意密码轮函数。称这种分组密码算法为Feistel网络(FeistelNetwork),它保证加密和解密可采用同一算法实施2022/12/2344Feistel网络将nbit明文分成为左右各半、长迭代分组密码若以一个简单函数f,进行多次迭代,就称其为迭代密码。每次迭代称作一轮(Round)。相应函数f称作轮函数。每一轮输出都是前一轮输出的函数,即y(i)=f[y(i-1),k(i)],其中k(i)是第i轮迭代用的子密钥,由秘密密钥k通过密钥生成算法产生。

子密钥产生器kk(1)k(2)k(r)y(0)=xy(1)y(2)y(r-1)y(r)=y2022/12/2345迭代分组密码若以一个简单函数f,进行多次迭代,就称其为迭代密对合密码(InvolutionCipher)

加密函数f(x,k),实现F2n×F2t

F2n的映射。其中,n是分组长,t是密钥长。若对每个密钥取值都有f[f(x,k),k]=x,即f(x,k)2=I(恒等置换)则称其为对合密码,以fI表示。2022/12/2346对合密码(InvolutionCipher)20I型迭代分组密码以对合密码函数构造的多轮迭代分组密码。E[x,k]=fI[fI[

fI[fI[x,k(1)],k(2)],k(r-1)],k(r)]D[y,k]=fI[fI[

fI[fI[y,k(r)],k(r-1)],k(2)],k(1)]

缺点:对任意偶数轮变换,若对所有i选择k(2i-1)=k(2i),则加密的变换等价于恒等变换,在实用中需要避免这类密钥选择。2022/12/2347I型迭代分组密码以对合密码函数构造的多轮迭代分组密码。202

对合置换和II型迭代分组密码对合置换令P是对x的置换,即P:F2n

F2n

,若对所有xGF(2n),有P[P[x]]=x,即PP=I(恒等置换),以PI表示。II型迭代分组密码每轮采用对合密码函数和对合置换级连,即F[x,k]=PI[fI[x,k]]并选解密子密钥与加密子密钥逆序,则加密解密可用同一器件完成。DES、FEAL和LOKI等都属此类。2022/12/2348

对合置换和II型迭代分组密码对合置换2022/12/202

III型迭代分组密码群密码:若密钥与明文、密文取自同一空间GF(2n),且y=xk式中,是群运算,则称其为群密码。显然x可通过k的逆元求得x=yk-1令xk为一群密码,令fI(x,kB)为一对合密码,以F[x,k]=fI(xkA,kB)为迭代函数,可以III型多轮迭代分组密码。在最后一轮中,另外加了一次群密码运算,用以保证整个加、解密的对合性。2022/12/2349

III型迭代分组密码群密码:若密钥与明文、密文取自同一空III型迭代分组密码轮函数F

F

y(1)y(r-1)(a)加密

x

fI···

fI

y

kA(1)kB(1)kA(r)kB(r)kA(r+1)F

F

y

fI···fI

x

(b)解密

kA(r+1))-1

kB(r)(kA(r))-1

kB(1)(kA)-1

2022/12/2350III型迭代分组密码轮函数FIV型迭代分组密码

在III型密码的轮函数基础上,再增加一个对合置换PI,构成IV型迭代分组密码的轮函数

F[x,k]=PI[fI[xkA,kB]]2022/12/2351IV型迭代分组密码在III型密码的轮函

IV型迭代分组密码轮函数Fy(1)y(r-1)

F

x

fIPI···

fI

PIPI

y

kA(1)kB(1)

kA(r)

kB(r)

kA(r+1)(a)加密

FF

y

fIPI···

fI

x

(b)解密(kA(r+1))-1kB(r)

PI[kA(r)]-1

PI[kA(2)]-1

kB(1)(kA(1))-1

2022/12/2352

IV型迭代分组密码轮函数F

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论