第二讲之第3章-对称密码体系课件.ppt

上传人:小飞机 文档编号:3731178 上传时间:2023-03-18 格式:PPT 页数:95 大小:2.70MB
返回 下载 相关 举报
第二讲之第3章-对称密码体系课件.ppt_第1页
第1页 / 共95页
第二讲之第3章-对称密码体系课件.ppt_第2页
第2页 / 共95页
第二讲之第3章-对称密码体系课件.ppt_第3页
第3页 / 共95页
第二讲之第3章-对称密码体系课件.ppt_第4页
第4页 / 共95页
第二讲之第3章-对称密码体系课件.ppt_第5页
第5页 / 共95页
点击查看更多>>
资源描述

《第二讲之第3章-对称密码体系课件.ppt》由会员分享,可在线阅读,更多相关《第二讲之第3章-对称密码体系课件.ppt(95页珍藏版)》请在三一办公上搜索。

1、第二讲 信息安全技术,第2章 密码技术基础第3章 对称密码体系第4章 公钥密码体系第5章 公钥基础设施PKI第六章 信息隐藏技术,第三章 对称密码体系,3.1 概述3.2 序列密码(流密码)3.3 分组密码3.4 DES数据加密标准 3.5 IDEA算法3.6 RC5算法,3.1 概述,对称加密算法是应用较早的加密算法,技术成熟。在对称加密算法中,使用的密钥只有一个,发收信双方都使用这个密钥对数据进行加密和解密。也称为“传统加密算法”、“单密钥加密算法”、“秘密密钥算法”。,对称密钥保密体制模型,注意:一个密钥,对存储信息的保护模型,对传输信息的保护模型,优/缺点,优点:算法简单,效率高,系统

2、开销小,适合加密大量数据。缺点:(1)通信双方都使用同样钥匙,安全性得不到保证,存在密钥安全交换问题。(2)每对用户每次使用对称加密算法时,都需要使用其他人不知道的惟一钥匙,这会使得发收信双方所拥有的钥匙数量成几何级数增长,密钥管理成为用户的负担。,对称加密算法分类,(1)序列密码(流密码)(stream cipher)一次只对明文中的单个位(有时对字节)运算的算法称为序列算法或序列密码。(2)分组密码(block cipher)对明文的一组位进行运算,这些位组称为分组,相应的算法称为分组算法或分组密码。,3.2 序列密码(流密码)(Stream Cipher),序列密码是由一种专业的密码,V

3、ernam 密码(也称为一次性密码本(one-time pad),发展而来的。具有实现简单、便于硬件实施、加解密处理速度快、没有或只有有限的错误传播等特点。,序列密码主要原理,通过有限状态机产生性能优良的伪随机序列,使用该序列加密信息流,(逐比特加密)得到密文序列。,加密与解密,加密:解密:,密钥流生成器,构造密钥流生成器是流密码最核心的内容。密钥流生成器的目的是由一个短的随机密钥(也称实际密钥或种子密钥)k 生成一个长的密钥流,用这个长的密钥流对明文加密或对密文解密,从而使一个短的密钥可用来加密更长的明文或解密更长的密文的目的。,由于大部分密码是基于世界上公开的数学难题,所以造成大多数密钥流

4、生成器的不安全性。目前应用最广泛的流密码是同步流密码。一个同步流密码是否具有很高的密码强度主要取决于密钥流生成器的设计。,序列密码典型算法,RC4算法RC4加密算法是大名鼎鼎的RSA三人组中的头号人物Ron Rivest在1987年设计的密钥长度可变的流加密算法簇。之所以称其为簇,是由于其核心部分的S-box长度可为任意,但一般为256字节。该算法的速度可以达到DES加密的10倍左右。A5算法欧洲GSM标准中规定的加密算法,用于数字蜂窝移动电话的加密,加密从用户设备到基站之间的链路。A5算法包括很多种,主要为A5/1和A5/2。其中,A5/1为强加密算法,适用于欧洲地区;A5/2为弱加密算法,

5、适用于欧洲以外的地区。,Seal算法IBM提出的、适合于软件实现的160位流密码算法,世界公认的高安全加密算法。加解密速度快,比 128bit AES 快 8 倍左右。PKZIP广泛应用于数据压缩的算法,是一种按字节加密的流密码。,流密码的重点研究方向,自同步流密码的研究;有记忆前馈网络密码系统的研究;多输出密码函数的研究;高速密码芯片的开发;同步序列密码在失步后如何重新同步的问题;,3.3 分组密码,3.3.1 分组密码工作方式3.3.2 分组密码的设计原则 3.3.3 典型分组密码算法,3.3.1 分组密码工作方式,分组密码的工作方式:将明文分成固定长度的组(块),如64比特一组,用同一密

6、钥和算法对每一块加密,输出也是固定长度的密文。,其中,明文为分组长度为m比特的序列,密文为分组长度为n的序列,加密与解密过程由x比特密钥控制。,分组密码的优缺点,分组密码主要有两个优点:易于标准化易于实现同步一些局限性。比如:分组密码不便于隐藏明文的数据模式,对于重放、插入、删除等攻击方式的抵御能力不强。但是通过采用流密码的设计思想,在加密过程中采用合理的记忆组件,能够消除这些局限性。如果在构造分组密码系统的时候直接采用分组密码算法,则称这种工作模式为电码本(ECB)模式。分组密码的上述缺陷导致了这种工作模式也具有相应的缺陷。因此,实际采用的分组密码工作模式是对电码本(ECB)模式的改进。,3

7、.3.2 分组密码的设计原则,为保证密码的安全性,Shannon提出了混乱原则和扩散原则:混乱原则指的是:为了避免密码分析者利用明文和密文之间的依赖关系进行破译,密码的设计因该保证这种依赖关系足够复杂。扩散原则指的是:为避免密码分析者对密钥逐段破译,密码的设计因该保证密钥的每位数字能够影响密文中的多位数字 在设计分组密码时,必须结合预定的实现方法进行考虑,3.3.3 典型分组密码算法,DESIDEARC5SAFERBlowfish Skipjack,3.4 DES数据加密标准,DES算法描述 DES安全分析 三重DES,3.4.1 DES算法描述,DES算法加密时把明文以64bit为单位分成块

8、,而后用密钥把每一块明文转化成同样64bit的密文块。DES可提供72,000,000,000,000,000个密钥,用每微秒可进行一次DES加密的机器来破译密码需两千年。,1、DES历史,历史:IBM在60年代启动了LUCIFER项目,当时的算法采用128位密钥改进算法,降低为56位密钥,IBM提交给NBS(NIST),于是产生DES 1977年由美国的标准化局(NBS,现为NIST采纳)选为数据加密标准。该标准每5年重新审查和评估一次,至今继续64位分组、56位密钥,2、DES算法步骤,DES算法大致可以分成四个部分:(1)初始置换(2)迭代过程(3)逆初始置换(4)子密钥生成,DES算法

9、基本逻辑结构,结构说明,16轮迭代:Round1 Round16每轮采用不同的密钥:K1 K16每轮的密钥都是从上一轮密钥产生而来,迭代过程,DES每一轮:Li=Ri-1 Ri=Li-1F(Ri-1,Ki),DES:Function F,Expansion:32 48S-box:6 4 Permutation,32bits,DES:32位到48位的扩展表E-table,32|01 02 03 04|0504|05 06 07 08|0908|09 10 11 12|1312|13 14 15 16|1716|17 18 19 20|2120|21 22 23 24|2524|25 26 27

10、28|2928|29 30 31 32|01,比特位序号,第30个位值,DES:S-box,把Si的输入b1,b2,b3,b4,b5,b6分成中b1b6和b2,b3,b4,b5,计算出x=b1*2+b6,y=b5+b4*2+b3*4+b2*8。然后从Si表中查出x 行,y 列的值Sxy。将Sxy化为二进制,即得Si盒的输出。,Si表,DES:Permutation,(1)58表示:结果中位于第1个位置的值,等于原文中第58个位置的值(2)图中的一格代表1bit,共有64bit,即8字节,DES:Initial Permutation,待加密的64比特明文串m,经过IP置换后,得到的比特串的下标

11、列表如下:,34,DES:Inverse Initial Permutation,3、密钥生成,64位初始密钥k8位是奇偶校验位56位密钥。56位密钥的密钥生成16个48比特的子密钥。其生成过程如右图。,PC-1置换,64bits密钥变换为56bits密钥,经置换后的56bits密钥分为各28bits的C0和D0。,循环左移运算,初始密钥k经过PC-1置换后分为C0和D0,其它的Ci和Di循环左移得到:式中i=1,2,16,LS是循环左移位变换,其中LS1、LS2、LS9、LS16是循环左移一位,其余的LSi是循环左移两位。第i次密钥,PC-2置换,首先将Ci和Di组合成56位,然后按下面表进

12、行置换。,4、解密算法,解密是加密的逆变换解密算法和加密算法相同,但是它使用的子密钥顺序是相反的:第一次是用K16,第2次迭代用K15,最后一次用K1。,5、DES加密的一个例子,取16进制明文X:0123456789ABCDEF密钥K为:133457799BBCDFF1去掉奇偶校验位以二进制形式表示的密钥是:00010010011010010101101111001001101101111011011111111000应用IP,我们得到:L0=11001100000000001100110011111111L1=R0=11110000101010101111000010101010然后进行1

13、6轮加密。最后对L16,R16使用IP-1得到密文:85E813540F0AB405,6、DES的四种工作方式,第一种:电子密码本方式(ECB)这种模式是最早采用和最简单的模式,它将加密的数据分成若干组,每组的大小跟加密密钥长度相同,然后每组都用相同的密钥进行加密。DES算法中,采用该模式加密时,就是将要加密的数据分成每组64位的数据,如果最后一组不够64位,那么就补齐为64位,然后每组数据都采用DES算法的64位密钥进行加密。,ECB加密模型,第二种:密文分组链接方式(CBC),在CBC方式下,每个明文组xi在加密前与先一组密文按位模二加后,再送到DES加密,CBC方式克服了ECB方式报内组

14、重的缺点,但由于明文组加密与前一组密文有关,因此前一组密文的错误会传播到下一组。,CBC加密模型,CBC加密步骤,1)首先将数据按照8个字节一组进行分组得到D1D2Dn(若数据不是8的整数倍,用指定的PADDING数据补位)2)第一组数据D1与初始化向量I异或后的结果进行DES加密得到第一组密文C1(初始化向量I为全零)3)第二组数据D2与第一组的加密结果C1异或以后的结果进行DES加密,得到第二组密文C24)之后的数据以此类推,得到Cn5)按顺序连为C1C2C3Cn即为加密结果。,CBC解密过程,1)首先将数据按照8个字节一组进行分组得到C1C2C3Cn2)将第一组数据进行解密后与初始化向量

15、I进行异或得到第一组明文D1(注意:一定是先解密再异或)3)将第二组数据C2进行解密后与第一组密文数据进行异或得到第二组数据D24)之后依此类推,得到Dn5)按顺序连为D1D2D3Dn即为解密结果。,第三种:密文反馈方式(CFB),将少量递增的纯文本加密成密码文本,而不是一次处理整个块。该模式使用在长度上为一个块且被分为几部分的移位寄存器。例如,如果块大小为 8 个字节,并且每次处理一个字节,则移位寄存器被分为 8 个部分。如果密码文本中有一个位出错,则一个纯文本位出错,并且移位寄存器损坏。这将导致接下来若干次递增的纯文本出错,直到出错位从移位寄存器中移出为止。,CFB加密模型,CFB解密模型

16、,第四种:输出反馈方式(OFB),将少量递增的纯文本处理成密码文本,而不是一次处理整个块。此模式与 CFB 相似。与CFB唯一不同的是OFB是直接取DES输出的t个比特,而不是取密文的t个比特,其余都与CFB相同。但它取的是DES的输出,所以它克服了CFB的密文错误传播的缺点。,3.4.2 DES安全分析,DES的安全性取决于密钥的保密,与算法无关。主要表现在:密钥的互补性、弱密钥与半弱密钥、密文明文相关性、密文密钥相关性、S盒的设计、密钥搜索等。对DES的攻击方法:(1)穷举攻击(2)差分密码分析(3)线性密码分析,不同条件下DES攻击时间的预测,3.4.3 三重DES,DES的唯一密码学缺

17、点就是密钥长度较短。解决密钥长度的问题的办法之一是采用三重DES。三重DES由Tuchman 于1979年提出,使用了168 bits密钥。1985年成为金融应用标准,1999年并入美国国家标准与技术研究局的数据加密标准。三重DES方法需要执行三次常规的DES加密步骤。其算法步骤:用密钥进行DES加密;用步骤的结果使用密钥进行DES解密用步骤的结果使用密钥进行DES加密,三重DES示意图,三重DES,加密:设K1、K2、K3是三个长度为56的密钥,给定明文m,则密文为:解密:给定密文c,则明文为:,56,三重DES说明,三重DES的加密次序:考虑兼容性;当K1=K2=K3,三重DES退化为单重

18、 DES;当K1=K3,密钥长度为112bits。,3.5 IDEA算法,IDEAInternation Data Encryption Algorithm可用于加密和解密,一个非常成功的分组密码,并广泛的应用在安全电子邮件PGP中。主要有三种运算:异或、模加、模乘,容易用软件和硬件来实现,58,1、IDEA算法历史,由中国学者来学嘉博士和著名的密码专家JamesL.Massey于1990年联合提出的,91年修订,92公布细节128位密钥,64位分组设计目标可从两个方面考虑加密强度易实现性,2、IDEA算法框架,IDEA总共进行8轮迭代操作,每轮需要6个子密钥,另外还需要4个额外子密钥,所以总

19、共需要52个子密钥,这52个子密钥都是从128位密钥中扩展出来的。,异或运算()整数模216加(+)整数模216+1乘()(IDEA的S盒)扩散由称为MA结构的算法基本构件提供。,3、IDEA运算,MA盒子,4、IDEA每一轮,64,IDEA的各轮都相同的结构,但所用的子密钥和轮输入不同。从结构图可见,IDEA不是传统的Feistel密码结构。每轮开始时有一个变换,该变换的输入是4个子段和4个子密钥,变换中的运算是两个乘法和两个加法,输出的4个子段经过异或运算形成了两个16比特的子段作为MA结构的输入。MA结构也有两个输入的子密钥,输出是两个16比特的子段。,5、IDEA的轮结构,65,加密过

20、程由连续的8轮迭代和一个输出变换组成,算法将64比特的明文分组分成4个16比特的子段,每轮迭代以4个16比特的子段作为输入,输出也为4个16比特的子段。最后的输出变换也产生4个16比特的子段,链接起来后形成64比特的密文分组。每轮迭代还需使用6个16比特的子密钥,最后的输出变换需使用4个16比特的子密钥,所以子密钥总数为52。,6.IDEA加密过程,66,算法框架的右半部分表示由初始的128比特密钥产生52个子密钥的子密钥产生器。最后,变换的4个输出子段和MA结构的两个输出子段经过异或运算产生这一轮的4个输出子段。注意,由X2产生的输出子段和由X3产生的输出子段交换位置后形成Wi2和Wi3,目

21、的在于进一步增加混淆效果,使得算法更易抵抗差分密码分析。,IDEA加密过程(续),67,在每一轮中,执行的顺序如下:1.X1和第一个子密钥相乘。2.X2和第二个子密钥相加。3.X3和第三个子密钥相加。4.X4和第四个子密钥相乘。5.将第1步和第3步的结果相异或。6.将第2步和第4步的结果相异或。,7、IDEA每一轮的加密顺序,68,7.将第5步的结果与第五个子密钥相乘。8.将第6步和第7步的结果相加。9.将第8步的结果与第六个子密钥相乘。10.将第7步和第9步的结果相加。11.将第1步和第9步的结果相异或。12.将第3步和第9步的结果相异或。13.将第2步和第10步的结果相异或。14.将第4步

22、和第10步的结果相异或。,IDEA每一轮的加密顺序(续1),69,算法的第9步是一个输出变换。它的结构和每一轮开始的变换结构一样,不同之处在于输出变换的第2个和第3个输入首先交换了位置,目的在于撤销第8轮输出中两个子段的交换。还需注意,第9步仅需4个子密钥,而前面8轮中每轮需要6个子密钥。,IDEA每一轮的加密顺序(续2),8、IDEA输出变换阶段,9、IDEA的安全性,穷举法攻击 IDEA的密匙空间(密匙长度)是128位,用十进制表示所有可能的密匙个数将是一个天文数字:340,282,366,920,938,463,463,374,607,431,768,211,456.为了试探出一个特定的

23、密匙,平均要试探一半上面的可能性。即使你用了十亿台每秒钟能够试探十亿个密匙的计算机,所需的时间也比目前所知的宇宙的年龄要长,而即使是在当代制造每秒试探十亿个密匙的计算机还是不可能的。差分密码分析 已证明IDEA算法在其8轮迭代的第4圈之后便不受差分密码分析的影响了线性分析弱密钥,3.6 RC5算法,Ron.Rivest于1994年设计的一种新的分组算法,1995年正式公开。它的前身RC2、RC4分别是可变密钥长度的分组和流加密算法。RC5是可变密文长度、可变轮数、可变密钥长度的分组加密算法。,1、算法特点,RC5加密算法的特点有:基本运算是微处理器上常见的初等运算 字的位数作为RC5的参数 安

24、全性依赖于旋转运算和不同运算的混合 存储要求低,适合在智能卡上实现 轮数和密钥长度可以变化 RC5算法由密钥扩展算法、加密算法、解密算法组成。,2、RC5的参数,RC5实际上是由三个参数决定的一族加密算法。一个特定的RC5表示为 RC5-w/r/b,data=2w,2、RC5的参数(续),Rivest建议使用的标注RC5为 RC5-32/12/16明文分组32位的字,长度64位加密轮数12密钥长度128 bits,3、三个基本运算,三个基本运算字的加法 模2w+按位异或 左循环移位,4、RC5密钥扩展,RC5采用t=2r+2个子密钥字,每个密钥的长度为一个字长(w bits)。子密钥存储在数组

25、Si,i=0.t-1中 s0,s1,st-1 它为wt矩阵对给定的密钥K来说,经过一些复合运算可产生总数为t的字密钥,使得每一轮都分配一对密钥。除此之外的非轮运算部分也要分配一对密钥。,初始化,混合,转换,s0,S1,St-1,L0,L1,Lc-1,K0,K1,Kb-1,S0,S1,St-1,r,w,Bytes,words,words,步骤,说明1,将参数r,w输入,左面标出的t-字阵列是一些伪随机bit,按r,w的规格选入的。然后把b-bytes长的密钥K0,b-1转换成c-字阵列L0,c-1(字的bit数为w,这里c=b8/w;注意:密钥长度为b个字节)。如果b不是w的整数倍,那么L右端的

26、空位用0填入。下面描述密钥生成的细节:,对于给定的参数r和w,开始初始化运算 Pw=Odd(e-2)2w)Qw=Odd(-1)2w)这里 e=2.718281828459(自然对数的底)=1.618033988749(黄金分割比率)并且Oddx表示最接近x且可左可右的奇整数。例:Odde=3,Odd=1用上述两个常数,按下述方式得到初始化的阵列S:S0=Pw For i=1 to t-1 do Si=Si-1+Qw其中的加法是模2w的加法运算。,说明2,得到初始化阵列S,然后与最后产生的密钥阵列L做混合,最终得到子密钥阵列。注1*.为了增强复杂性,可对阵列S,L做多次处理:i=j=x=y=0

27、do 3max(t,c)times:Si=(Si+X+Y)3;X=Si;i=(i+1)(mod t);Lj=(Lj+X+Y)(X+Y);Y=Lj;j=(j+1)(mod c);2*.Rivest 声称,这个扩张函数具有单向性。,说明3,5、加解密运算图,6、加密算法,加密:将明文分组为左右A,B;用变量LEi,REi参与运算程序为:LE0=A+S0 RE0=B+S1 for i=1 to r do LEi=(LEi-1REi-1)REi-1)+S2i;REi=(REi-1 LEi)LEi)+S2i+1;,每一轮相当 DES 的两轮,移位是算法中唯一的非线性部分,7、解密算法,对两个1-字变量L

28、Dr和RDr。用变量LDi和RDi从r到1做:for i=r down to 1 do RDi-1=(RDi-S2*i+1LDi)LDi);LDi-1=(LDi-S2*iRDi-1)RDi-1);B=RD0-S1;A=LD0-S0.,8、RC5运行模式,RFC2040 定义了 RC5 的4种运行模式 RC5 Block Cipher,is ECB modeRC5-CBC,is CBC modeRC5-CBC-PAD,is CBC with padding by bytes with value being the number of padding bytesRC5-CTS,a variant

29、 of CBC which is the same size as the original message,uses ciphertext stealing to keep size same as original,9、RC5的安全性,RC5的安全主要依赖循环移位操作和不同运算的混合使用。逐位异或操作与mod2w加法操作存在漏洞。5轮迭代后的统计特性相当好。56位密钥的RC5算法已被攻破。,思考题,1、分组密码设计原则应考虑哪些问题?2、试述DES算法的加密过程。3、在DES数据加密标准中,设主密钥K(64位)为:K=0000 0001*0010 0011*0100 0101*0110 0

30、111*1000 1001*1010 1011*1100 1101*1110 1111*其中带*号为奇偶校验位,分别求出:(1)经过PC-1选定后的C0、D0(56位)结果;(2)经循环左移LS1=1位后的C1、D1结果;(3)由C1、D1再经PC-2选择后的K1(48位)结果。4、DES算法中,密钥的生成主要分几步?5、试分析DES的安全性。,6、简述DES的四种加密方式。7、简述三重DES的加密过程。8、简述分组密码设计的两个原则及其目的。9、典型的流密码算法有哪些?10、典型的分组密码算法有哪些?11、试简述攻击DES的方法。,结束,Claude Elwood Shannon 克劳德艾尔

31、伍德香农(1916-2001):,an American electronic engineer and mathematician,is“the father of information theory”。,http:/zh.wikipedia.org/wiki/Claude_Shannon,穷举攻击,穷举攻击穷举各种可能性的攻击。穷举攻击可用于任何分组密码,攻击的复杂性只依赖于分组长度和密钥长度。,差分密码分析,差分分析是以色列密码学家Biham和Shamir于1991年提出的一种分析方法。其基本思想是:通过分析明文对的差值对密文对的差值的影响来恢复某些密钥比特。差分密码分析最初是针对DE

32、S提出的一种攻击方法,虽然差分密码分析方法未能破译16-轮的DES,但是用它破译轮数低的DES是很成功的。差分密码分析有许多的推广方法,如截段差分密码分析、高阶差分密码分析、不可能差分密码分析等。,Biham Eli,Shamir Adi;Differential Cryptanalysit of Feal and N-hash M;Lecture Notes in Computer Science;1991年,线性密码分析,线形分析是Matsui和Yamagishi于1992年提出的一种攻击方法。基本思想:通过寻找一个给定密码算法的有效的线性近似表达式来破译密码系统。本质是一种已知明文攻击方法。这种方法可用于243个已知明文破译8轮DES。,Mitsuru Matsui,Atsuhiro Yamagishi:A New Method for Known Plaintext Attack of FEAL Cipher.EUROCRYPT 1992:8191,弱密钥,弱密钥(Weak key)是指因为它的独特数 学特性能够被很容易破坏的密码密钥。DES只有四个弱密钥和12个次弱密钥,而IDEA中的弱密钥数相当可观,有2的 51次方个。,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号