《第四章-分组密码-4.1分组密码设计原则和设计方法-密码学课件.ppt》由会员分享,可在线阅读,更多相关《第四章-分组密码-4.1分组密码设计原则和设计方法-密码学课件.ppt(36页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、密码学第四章 分组密码主主要要内内容容:分分组组密密码码的的基基本本概概念念,分分组组密密码码的的基基本本设设计计原原则则和和设设计计方方法法,典典型型的的分分组组密密码码算算法法,常常见见的分组密码攻击方法,以及分组密码的工作模式等。的分组密码攻击方法,以及分组密码的工作模式等。重点:重点:数据加密标准数据加密标准(DES)、高级加密标准、高级加密标准(AES)。希希望望大大家家能能理理解解分分组组密密码码设设计计的的原原理理与与方方法法,掌掌握握DES、AES等等分分组组密密码码算算法法,了了解解常常见见的的分分组组密码安全性分析方法。密码安全性分析方法。第四章 分组密码4.1 分组密码设
2、计原则和设计方法 分组密码分组密码是将明文数据序列按固定长度是将明文数据序列按固定长度进行分组,然后在同一密钥控制下用同一算进行分组,然后在同一密钥控制下用同一算法逐组进行加密,从而将各个明文分组变换法逐组进行加密,从而将各个明文分组变换成一个长度固定的密文分组的密码。成一个长度固定的密文分组的密码。一、分组密码概述一、分组密码概述 二进制明文的分组长度称为该分组密码的二进制明文的分组长度称为该分组密码的分组长度分组长度或或分组规模分组规模。同样,二进制密钥的长。同样,二进制密钥的长度称为分组密码的度称为分组密码的密钥长度密钥长度或或密钥规模密钥规模。主要特点:主要特点:同一密钥,同一加密算法
3、,同一密钥,同一加密算法,分组加密,分组长度固定。分组加密,分组长度固定。加加密密算算法法k加加密密算算法法k 明文明文密文密文加密加密:一、分组密码概述一、分组密码概述 明文分组长度为明文分组长度为n,密文分组长度为,密文分组长度为s,若,若n s,则称其为有数据,则称其为有数据压缩压缩的分组密码;的分组密码;若若n s,则称其为有数据,则称其为有数据扩展扩展的分组密码。的分组密码。本章我们都取本章我们都取 n=s例例1 移位密码中的电文倒置法移位密码中的电文倒置法明文为:明文为:2346 3498密文为:密文为:6432 8943密钥(密钥(4321)一、分组密码概述一、分组密码概述1 安
4、全原则安全原则2 实现原则实现原则二、分组密码基本设计原则二、分组密码基本设计原则1 安全原则安全原则二、分组密码基本设计原则二、分组密码基本设计原则 安安全全性性是是分分组组密密码码设设计计时时应应考考虑虑的的最最重重要要因因素素。人人们们一一般般将将Shannon提提出出的的混混乱乱原原则则和和扩扩散散原原则则作作为为保保证证分分组组密密码码安安全全性性的的两两个个基基本本设设计计原原则。则。混乱原则混乱原则混乱原则混乱原则(又称混淆原则又称混淆原则又称混淆原则又称混淆原则)(Confusion)Confusion)混乱原则混乱原则就是将就是将密文、密文、明文、密钥明文、密钥三者之三者之间
5、间的统计关系和的统计关系和代数关系代数关系变得尽可能复杂,保变得尽可能复杂,保证密钥和明文的任何信息既不能由密文利用统证密钥和明文的任何信息既不能由密文利用统计关系确定出来,又不能由密文利用代数方法计关系确定出来,又不能由密文利用代数方法确定出来。确定出来。二、分组密码基本设计原则二、分组密码基本设计原则 扩散原则扩散原则扩散原则扩散原则(Diffusion)(Diffusion)扩散原则要求人们设计的密码应使得每个扩散原则要求人们设计的密码应使得每个明文明文比特和比特和密钥密钥比特影响尽可能多的比特影响尽可能多的密文密文比特。比特。扩散原则应将明文的统计规律和结构规律扩散原则应将明文的统计规
6、律和结构规律散射到相当长的一段统计中去散射到相当长的一段统计中去。二、分组密码基本设计原则二、分组密码基本设计原则 (1 1)明文和密钥中的每一位影响密文中的尽)明文和密钥中的每一位影响密文中的尽可能多的位;可能多的位;(2 2)密文中的每一位都受到明文和密钥中的)密文中的每一位都受到明文和密钥中的尽可能多位的影响。尽可能多位的影响。扩扩散散原原则则使使得得每每个个明明文文比比特特和和密密钥钥比比特特均均应影响密文的所有比特应影响密文的所有比特。二、分组密码基本设计原则二、分组密码基本设计原则 硬件硬件实现原则实现原则2.实现原则实现原则 软件软件实现原则实现原则二、分组密码基本设计原则二、分
7、组密码基本设计原则硬件实现原则硬件实现原则 硬硬件件实实现现分分组组密密码码,通通常常是是将将密密码码算算法法做做成成一一个个专专用用的的超超大大规规模模集集成成电电路路芯芯片片。这这可可使使加加、脱脱密密运运算算高高速速完完成成,但但需需大大批批量量生生产产方方可可降降低低成成本本。因因此此,硬硬件件实实现现适适合合对对信信息息快快速速、实实时时进进行行处处理理的的系系统统,以以及及可可大大规规模模生生产产的的时时候。候。二、分组密码基本设计原则二、分组密码基本设计原则硬件实现原则硬件实现原则 用硬件实现的分组密码应遵循下述原则:用硬件实现的分组密码应遵循下述原则:(1)(1)加、脱密的相似
8、性;加、脱密的相似性;(2)(2)结构的规则性;结构的规则性;(3)(3)设计成迭代型;设计成迭代型;(4)(4)选选择择易易于于硬硬件件实实现现的的编编码码环环节节,避避免免硬硬件件难于实现的编码环节。难于实现的编码环节。二、分组密码基本设计原则二、分组密码基本设计原则软件实现原则软件实现原则 软软件件实实现现分分组组密密码码,成成本本较较低低且且可可以以灵灵活活地地编程编程,但其速度一般没有硬件实现快。,但其速度一般没有硬件实现快。用软件实现的分组密码应遵循下述原则:用软件实现的分组密码应遵循下述原则:(1)(1)加、脱密加、脱密算法结构算法结构的相似性;的相似性;(2)(2)使用子块;使
9、用子块;(3)(3)设计成迭代型;设计成迭代型;(4)(4)使用既简单又易于软件实现的运算。使用既简单又易于软件实现的运算。二、分组密码基本设计原则二、分组密码基本设计原则 对对一一个个分分组组密密码码,安安全全原原则则要要求求其其实实现现足足够够的的混混乱乱和和扩扩散散,实实现现原原则则要要求求其其易易于于软软件件和和(或或)硬件实现硬件实现。Shannon提提出出乘乘积积密密码码的的思思想想。乘乘积积密密码码的的基基本本思思想想是是通通过过将将一一个个易易于于实实现现的的具具有有一一定定混混乱乱和和扩扩散散结结构构的的较较弱弱的的密密码码函函数数进进行行多多次次迭迭代代来来产产生一个强的密
10、码函数生一个强的密码函数。三、分组密码设计方法三、分组密码设计方法加密和解密规则定义如下加密和解密规则定义如下:注意:注意:解密次序与加密次序相反解密次序与加密次序相反 三、分组密码设计方法三、分组密码设计方法例例3:(乘法密码乘法密码)设设 M=C=Z26对于对于 ,明文明文 x,密文密文 y,定义定义:例例4:(移位密码移位密码)设设 M=C=K=Z26对于对于 ,明文,明文 x,密文,密文 y,定义,定义:三、分组密码设计方法三、分组密码设计方法 假设假设 S1 是乘法密码,是乘法密码,S2 是移位密码,很容是移位密码,很容易看出易看出 S1 S2 是仿射密码是仿射密码。对于对于S1 S
11、2,其密钥形式为,其密钥形式为(a,k)对于对于S2 S1,其密钥形式为,其密钥形式为(k,a)三、分组密码设计方法三、分组密码设计方法(二)(二)迭代密码迭代密码 当今大多数分组密码都是乘积密码,乘积密当今大多数分组密码都是乘积密码,乘积密码通常伴随一系列置换与代替操作,常见的乘积码通常伴随一系列置换与代替操作,常见的乘积密码是迭代密码。密码是迭代密码。迭迭代代密密码码通通过过将将一一个个弱弱的的密密码码函函数数(称称为为圈圈函函数数、轮轮函函数数等等)迭迭代代若若干干次次,产产生生一一个个强强的的密密码码函函数数,既既能能快快速速、有有效效地地实实现现,又又能能使使明明文文和和密密钥钥得到
12、必要的混乱和扩散。得到必要的混乱和扩散。三、分组密码设计方法三、分组密码设计方法F 称为圈变换、圈函数或轮称为圈变换、圈函数或轮函数,函数,r 称为迭代次数、圈称为迭代次数、圈数或轮数。数或轮数。是是 r 个圈子密钥个圈子密钥三、分组密码设计方法三、分组密码设计方法 在在设设计计圈圈函函数数时时,要要充充分分利利用用代代替替密密码码(实实现现混混乱乱)和和移移位位密密码码(实实现现扩扩散散)各各自自的的优优点点,抵抵消消各各自自的的缺缺点点,保保证证通通过过多多次次迭迭代代,形形成成一一个个强强的的分分组组密密码算法。码算法。迭迭代代密密码码的的常常见见模模型型有有S-P网网络络(代代替替-置
13、换网络置换网络)、Feistel网络网络等。等。三、分组密码设计方法三、分组密码设计方法(三)(三)代替置换网络代替置换网络(S-PN)一个一个SPN就是一类特殊的迭代密码。设就是一类特殊的迭代密码。设l和和m都是正整数,明密文都是长为都是正整数,明密文都是长为lm的二元向量,一的二元向量,一个个SPN包含两个变换,分别记为包含两个变换,分别记为s和和p。实现实现 l 比特的代替,即比特的代替,即S盒盒 实现实现 lm 比特的置换比特的置换 即即P盒盒三、分组密码设计方法三、分组密码设计方法k1k2kr 非线性代替非线性代替S一般被称为一般被称为混乱层混乱层,主要起混乱,主要起混乱的作用;线性
14、置换的作用;线性置换P一般被称为一般被称为扩散层扩散层,主要起扩,主要起扩散的作用。散的作用。三、分组密码设计方法三、分组密码设计方法(四)(四)Feistel模型模型Li(w位位)Ri(w位位)Li-1(w位位)Ri-1(w位位)f FeistelFeistel模型将输入模型将输入模型将输入模型将输入(2w2w位位位位)分成相同长度分成相同长度分成相同长度分成相同长度的两部分的两部分的两部分的两部分L Li i和和和和R Ri i,按如下方式进行变换按如下方式进行变换按如下方式进行变换按如下方式进行变换。ki三、分组密码设计方法三、分组密码设计方法Feistel 模型的设计要求模型的设计要求分组大小分组大小:分组越大安全性越高,但速度也越慢。:分组越大安全性越高,但速度也越慢。密钥大小密钥大小:密钥越长安全性越高,但速度也越慢。:密钥越长安全性越高,但速度也越慢。循环次数循环次数:循环越多,安全性越高。:循环越多,安全性越高。圈函数圈函数:复杂性越高则抗击密码分析的能力就越强。:复杂性越高则抗击密码分析的能力就越强。子密钥产生算法子密钥产生算法:越复杂,密码分析就越困难。:越复杂,密码分析就越困难。此此外外,还还要要考考虑虑算算法法的的执执行行速速度度,设设计计的的算算法法要便于分析。要便于分析。三、分组密码设计方法三、分组密码设计方法