信息安全概论第三章对称密码体制重点课件_第1页
信息安全概论第三章对称密码体制重点课件_第2页
信息安全概论第三章对称密码体制重点课件_第3页
信息安全概论第三章对称密码体制重点课件_第4页
信息安全概论第三章对称密码体制重点课件_第5页
已阅读5页,还剩131页未读 继续免费阅读

下载本文档

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

文档简介

第三章对称密码体制3.1分组密码原理3.2数据加密标准(DES)3.3高级加密标准(AES)3.4分组密码的工作模式1第三章对称密码体制3.1分组密码原理13.1分组密码原理对称密码体制根据对明文加密方式的不同分为分组密码和流密码。分组密码:按一定长度(如64bit,128bit)对明文进行分组,然后以组为单位采用同样的密钥进行加/解密;流密码:不进行分组,而是按位进行加/解密无记忆元件…内部记忆元件kkx1xmymy1y1x1分组密码流密码23.1分组密码原理对称密码体制根据对明文加密方式的不同分分组密码对不同的组采用同样的密钥k进行加/解密。设密文组为y=y1y2•••ym,则对明文组x=x1x2•••xm用密钥k加密可得到y=ek(x1)ek(x2)•••ek(xm)。流密码的基本思想是利用密钥k产生一个密钥流z=z0z1

•••,并使用如下规则加密明文串x=x0x1x2•••,y=y0y1y2•••=ez0(x0)ez1(x1)ez2(x2)•••。密钥流由密钥流发生器f产生。分组密码与流密码的区别就在于记忆性。3分组密码对不同的组采用同样的密钥k进行3.1.1分组密码设计原理

分组密码是将明文消息编码表示后的数字(简称明文数字)序列x0,x1,…,划分成长度为n的组x=(x0,x1,…,xn-1),每组分别在密钥k=(k0,k1,…,km-1)的控制下变换成等长的输出数字(简称密文数字)序列y=(y0,y1,…,yn-1)。

43.1.1分组密码设计原理分组密分组密码的算法应满足如下安全性和软/硬件实现的要求:(1)分组长度足够大,防止明文被穷举攻击。如n=64bit(DES),新的标准n=128bit(AES)(2)密钥空间足够大,从而防止穷举密钥攻击。同时,密钥又不能太长,以利于密钥管理,DES采用56bit有效密钥,现在不够长,今后采用128bit是足够安全的。(3)由密钥确定的算法要足够复杂,充分实现明文与密文的扩散和混淆,没有简单的关系可循。(4)软件实现的要求:尽量使用适合编程的子块和简单的运算(5)硬件实现的要求:加密和解密应具有相似性。5分组密码的算法应满足如下安全性和软/硬件实现的要求:5两个基本设计方法Shannon(香浓,现代信息理论的鼻祖

)称之为理想密码系统,密文的所有统计特性都与所使用的密钥独立。•扩散(Diffusion):明文的统计结构被扩散消失到密文的统计特性中,使得明文和密文之间的统计关系尽量复杂。使得明文的每个比特影响到密文许多比特的取值,即每个密文比特被许多明文比特影响。•混乱(confusion):使得密文的统计特性与密钥的取值之间的关系尽量复杂。扩散和混淆的目的都是为了挫败推出密钥的尝试,从而抗统计分析。香农既精通通信又精通数学,将数理知识和工程很好的融合在一起。他把深奥和抽象的数学思想和概括而又很具体的对关键技术问题的理解结合起来。他被认为是最近几十年最伟大的工程师之一,同时也被认为是最伟大的数学家之一。”6两个基本设计方法香农既精通通信又精通数学,将数理知识和工程很3.1.2分组密码的一般结构分组密码的一般结构可以分为两种:Feistel网络结构和SP网络结构。Feistel网络结构Feistel网络结构如图所示:DES采用的是Feistel网络结构加密:Li=Ri-1;Ri=Li-1⊕F(Ri-1,Ki)•解密:Ri-1=Li,Li-1=Ri⊕F(Ri-1,Ki)=Ri⊕F(Li,Ki)73.1.2分组密码的一般结构分组密码的一般结构可以分为两2.SP网络结构是分组密码的另一种重要结构,AES等重要算法采用的是此结构。82.SP网络结构是分组密码的另一种重要结构,AES等重要算DES(DataEncryptionStandard)是迄今为止使用最为广泛的加密算法。DES的产生-i•1973年5月13日,NBS(美国国家标准局)开始公开征集标准加密算法,并公布了它的设计要求:(1)算法必须提供高度的安全性;(2)算法必须有详细的说明,并易于理解;(3)算法的安全性取决于密钥,不依赖于算法;(4)算法适用于所有用户;(5)算法适用于不同应用场合;(6)算法必须高效、经济;(7)算法必须能被证实有效;(8)算法必须是可出口的;3.2数据加密标准(DES)9DES(DataEncryptionStandard)是DES的产生-ii•1974年8月27日,NBS开始第二次征集,IBM提交了算法LUCIFER,该算法由IBM的工程师(IBM公司W.Tuchman和C.Meyer

)在1971-1972年研制•1975年3月17日,NBS公开了全部细节•1976年,NBS指派了两个小组进行评价•1976年11月23日,采纳为联邦标准,批准用于非军事场合的各种政府机构•1977年1月15日,被正式批准为美国联邦信息处理标准,即FIPSPUB46,同年7月15日开始生效。美国国家安全局(NSA,NationalSecurityAgency)参与了美国国家标准局制定数据加密标准的过程。NBS接受了NSA的某些建议,对算法做了修改,并将密钥长度从LUCIFER方案中的128位压缩到56位10DES的产生-ii10DES的应用•1979年,美国银行协会批准使用•1980年,美国国家标准局赞同DES作为私人使用的标准,称之为DEA(ANSIX.392)1983年,国际化标准组织ISO赞同DES作为国际标准,称之为DEA-1•该标准规定每五年审查一次,计划十年后采用新标准•最近的一次评估是在1994年1月,已决定1998年12月以后,DES将不再作为联邦加密标准。新的美国联邦加密标准称为高级加密标准AES(AdvancedEncryptionStandard)11DES的应用113.2.1DES描述DES是采用将明文按64bit分组,密钥长度为64bit,其中每8位有一位奇偶校验位,实际密钥的有效长度为56bit,DES算法是公开的,其安全性依赖于密钥的保密程度。DES结构框图如图:123.2.1DES描述DES是采用将明文按64bit13131.初始置换IP和初始逆置换IP—1141.初始置换IP和初始逆置换IP—1142.迭代变换152.迭代变换15

迭代变换是DES算法的核心部分,每轮开始时将输入的64bit数据分成左、右长度相等的两部分,右半部分原封不动地作为本轮输出的64bit数据的左半部分,同时对右半部分进行一系列的变换,即用轮函数F作用右半部分,然后将所得结果与输入数据的左半部分进行逐位异或,最后将所得数据作为本轮输出的64bit数据的右半部分。轮函数F由选择扩展运算E、与子密钥的异或运算、选择压缩运算S和置换P组成。16迭代变换是DES算法的核心部分,1717(1)选择扩展运算将输入的32bit数据扩展为48bit的输出数据,变换表如下:可以看出1、4、5、8、9、12、13、16、17、20、21、24、25、28、29、32这16个位置上的数据被读了两次。18(1)选择扩展运算将输入的32bit数据扩展为48bit的(2)与子密钥的异或运算与子密钥的异或运算:将选择扩展运算的48bit数据与子密钥Ki(48bit)进行异或运算。(后面详述)19(2)与子密钥的异或运算与子密钥的异或运算:将选择扩展运算的(3)选择压缩运算将输入的48bit数据从左至右分成8组,每组6bit。然后输入8个S盒,每个S盒为一非线性代换,有4bit输出,如图所示:20(3)选择压缩运算将输入的48bit数据从左至右分成8组,每21212222S-Box•对每个盒,6比特输入中的第1和第6比特组成的二进制数确定为行,中间4位二进制数用来确定为列。相应行、列位置的十进制数用4位二进制数表示作为输出。例如S2盒输入为101001,则行数和列数的二进制表示分别是11和0100,即表中3行和表中4列,表中3行和表中4列的十进制数为3,用4位二进制数表示为0011,所以输出为0011。23S-Box23(4)置换P24(4)置换P24DES中的子密钥的生成25DES中的子密钥的生成252626DES加密算法执行过程27DES加密算法执行过程273.2.2DES问题讨论1.S盒的安全问题有人认为s盒可能存在陷门,但至今没有迹象表明s盒中存在陷门。2.密钥长度•关于DES算法的另一个最有争议的问题就是担心实际56比特的密钥长度不足以抵御穷举式攻击,因为密钥量只有256≈1017个。•早在1977年,Diffie和Hellman已建议制造一个每秒能测试100万个密钥的VLSI芯片。每秒测试100万个密钥的机器大约需要一天就可以搜索整个密钥空间。他们估计制造这样的机器大约需要2000万美元。283.2.2DES问题讨论28•在CRYPTO’93上,Session和Wiener给出了一个非常详细的密钥搜索机器的设计方案,这个机器基于并行运算的密钥搜索芯片,16次加密能同时完成。此芯片每秒能测试5000万个密钥,用5760个芯片组成的系统需要花费10万美元,它平均用1.5天左右就可找到DES密钥。•1997年1月28日,美国的RSA数据安全公司在RSA安全年会上公布了一项“秘密密钥挑战”竞赛,其中包括悬赏1万美元破译密钥长度为56比特的DES。美国克罗拉多洲的程序员Verser从1997年2月18日起,用了96天时间,在Internet上数万名志愿者的协同工作下,成功地找到了DES的密钥,赢得了悬赏的1万美元。29•在CRYPTO’93上,Session和Wiener给出•1998年7月电子前沿基金会(EFF)使用一台25万美元的电脑在56小时内破译了56比特密钥的DES。•1999年1月RSA数据安全会议期间,电子前沿基金会用22小时15分钟就宣告破解了一个DES的密钥。30•1998年7月电子前沿基金会(EFF)使用一台25万美元1.两重DES3.2.3DES的变形双重DES密钥长度为112bit,密码强度似乎增强了一倍,但问题并非如此。双重DES易受中途攻击C=EK2(EK1(P))P=DK1(DK2(C))311.两重DES3.2.3DES的变形双重DES密钥长度中途攻击:中途攻击算法基于以下观察,如果有C=EK2(EK1(P)),则X=EK1(P)=DK2(C)。给定一个已知明、密文对(P,C),攻击方法如下:首先用所有256个可能的密钥加密P,得到256个可能的值,把这些值从小到大存在一个表中;然后再用256个可能的密钥对密文C进行解密,每次做完解密都将所得的值与表中值进行比较,如果发现与表中的一个值相等,则它们对应的密钥可能分别是K1和K2。现在用一个新的明、密文对检测所得到的两个密钥,如果满足X=EK1(P)=DK2(C),则把它们接受为正确的密钥。32中途攻击:322.三重DES(以被广泛采用)优点:能对付中途攻击。密钥长度为168bit332.三重DES(以被广泛采用)33AES背景-i•1997年4月15日,(美国)国家标准技术研究所(NIST)发起征集高级加密标准(AdvancedEncryptionStandard)AES的活动,活动目的是确定一个非保密的、可以公开技术细节的、全球免费使用的分组密码算法,作为新的数据加密标准。•1997年9月12日,美国联邦登记处公布了正式征集AES候选算法的通告。作为进入AES候选过程的一个条件,开发者承诺放弃被选中算法的知识产权。对AES的基本要求是:比三重DES快、至少与三重DES一样安全、数据分组长度为128比特、密钥长度为128/192/256比特。3.3高级加密标准AES34AES背景-i3.3高级加密标准AES34AES背景-ii•1998年8月12日,在首届AES会议上指定了15个候选算法。•1999年3月22日第二次AES会议上,将候选名单减少为5个,这5个算法是RC6,Rijndael,SERPENT,Twofish和MARS。•2000年4月13日,第三次AES会议上,对这5个候选算法的各种分析结果进行了讨论。•2000年10月2日,NIST宣布了获胜者—Rijndael算法,2001年11月出版了最终标准FIPSPUB197。35AES背景-ii35Rijndael简介•不属于Feistel结构•加密、解密相似但不对称•支持128/32=Nb数据块大小•支持128/192/256(/32=Nk)密钥长度•有较好的数学理论作为基础•结构简单、速度快36Rijndael简介36轮数r与Nb和NkrNb=4Nb=6Nb=8Nk=4101214Nk=6121214Nk=8141414AES参数37轮数r与Nb和SP网络结构

在这种密码的每一轮中,轮输入首先被一个由子密钥控

制的可逆函数S作用,然后再对所得结果用置换(或可逆

线性变换)P作用。S和P分别被称为混乱层和扩散层,主

要起混乱和扩散作用。

38SP网络结构

在这种密码的每一轮中,轮输入首先被一个由子密钥AES算法结构-i•AES算法的轮变换中没有Feistel结构,轮变换是由三个不同的可逆一致变换组成,称之为层,–线性混合层:确保多轮之上的高度扩散。–非线性层:具有最优最差-情形非线性性的S-盒的并行应用。–密钥加层:轮密钥简单地异或到中间状态上。39AES算法结构-i39AES算法结构-ii40AES算法结构-ii404141电子密码本ECB(electroniccodebookmode)密码分组链接CBC(cipherblockchaining)密码反馈CFB(cipherfeedback)输出反馈OFB(outputfeedback)这四种工作模式适用于不同的应用需求3.4分组密码的工作模式分组密码在加密时明文的长度是固定的。而实用中待加密消息的数据量是不定的,数据格式也可能是多种多样的,为了能在各种应用场合安全地使用分组密码,通常对不同的使用目的运用不同的工作模式。分组密码的“工作模式”是指以某个分组密码算法为基础,解决对任意长度的明文的加密问题的方法。42电子密码本ECB(electroniccodebo电子密码本ECB3.4.1电码本模式(ECB)43电子密码本ECB3.4.1电码本模式(ECB)43ECB的特点ECB用于短数据(如加密密钥)是非常理想,长消息不够安全简单、有效可以并行实现不能隐藏明文的模式信息相同明文生成相同密文,同样信息多次出现造成泄漏对明文的主动攻击是可能的信息块可被替换、重排、删除、重放误差传递:密文块损坏仅对应明文块损坏适合于传输短信息44ECB的特点ECB用于短数据(如加密密钥)是非常理想,长消息

典型应用:(1)用于随机数的加密保护;(2)用于单分组明文的加密。优点:(1)实现简单;(2)不同明文分组的加密可并行实施,尤其是硬件实现时速度很快.缺点:不同的明文分组之间的加密独立进行,故保留了单表代替缺点,造成相同明文分组对应相同密文分组,因而不能隐蔽明文分组的统计规律和结构规律,不能抵抗替换攻击.ECB模式的优、缺点和应用45典型应用:(1)用于随机数的加密保护;优点:(1)

敌手C通过截收从A到B的加密消息,只要将第5至第12分组替换为自己的姓名和帐号相对应的密文,即可将别人的存款存入自己的帐号。

例:假设银行A和银行B之间的资金转帐系统所使用报文模式如下:46敌手C通过截收从A到B的加密消息,只要将第5为了克服ECB的安全性缺陷,我们希望设计一个工作模式,可以使得当同一个明文分组重复出现时产生不同的密文分组。一个简单的方法是密码分组链接,从而使输出不仅与当前输入有关,而且与以前输入和输出有关。47为了克服ECB的安全性缺陷,我们希望设计一个工作模式,可以使3.4.2密码分组链接模式(CBC)

在CBC模式下,加密算法的输入是当前明文组与前一密文组的异或。记初始化向量IV为c0,则加密过程可表示为CBC模式加密框图………)(xEk483.4.2密码分组链接模式(CBC)在CCBC模式脱密框图

CBC模式的脱密过程为ÅÅÅ49CBC模式脱密框图CBC模式的脱密过程为ÅÅÅ491.明文块的统计特性得到了隐蔽。

CBC模式的特点:

由于在密文CBC模式中,各密文块不仅与当前明文块有关,而且还与以前的明文块及初始化向量有关,从而使明文的统计规律在密文中得到了较好的隐蔽。2.具有有限的(两步)错误传播特性。一个密文块的错误将导致两个密文块不能正确脱密.3.具有自同步功能密文出现丢块和错块不影响后续密文块的脱密.若从第t块起密文块正确,则第t+1个明文块就能正确求出.501.明文块的统计特性得到了隐蔽。CBC模式的特点:由典型应用:(1)数据加密;(2)完整性认证和身份认证;完整性认证的含义

完整性认证是一个“用户”检验它收到的文件是否遭到第三方有意或无意的篡改。因此,完整性认证:

不需检验文件的制造者是否造假;文件的制造者和检验者利益一致,不需互相欺骗和抵赖。51典型应用:完整性认证的含义51

利用CBC模式可实现报文的完整性认证目的:检查文件在(直接或加密)传输和存储中是否遭到有意或无意的篡改.

关键技术:

(1)文件的制造者和检验者共享一个密钥(2)文件的明文必须具有检验者预先知道的冗余度(3)文件的制造者用共享密钥对具有约定冗余度的明文用CBC模式加密(4)文件的检验者用共享密钥对密文脱密,并检验约定冗余度是否正确.

52利用CBC模式可实现报文的完整性认证报文完整性认证的具体实现技术

(1)文件的制造者和检验者共享一个密钥;(2)文件的明文m产生一个奇偶校验码r的分组;(3)采用分组密码的CBC模式,对附带校验码的已扩充的明文(m,r)进行加密,得到的最后一个密文分组就是认证码;53报文完整性认证的具体实现技术(1)文件的制造者n分组明文

,校验码为Cn+1为认证码。(1)仅需对明文认证,而不需加密时,传送明文m和认证码Cn+1,

此时也可仅保留Cn+1的t个比特作为认证码;(2)既需对明文认证,又需要加密时,传送密文C和认证码Cn+1………)(xEk)(xEk54n分组明文………

检验方法:

(1)仅需对明文认证而不需加密时,此时验证者仅收到明文m和认证码Cn+1,他需要:

Step2利用共享密钥使用CBC模式对(m,r)加密,将得到的最后一个密文分组与接受到的认证码Cn+1比较,二者一致时判定接收的明文无错;二者不一致时判定明文出错。

Step1产生明文m的校验码55………检验方法:Step2利用共享密钥使

例:电脑彩票的防伪技术

----彩票中心检查兑奖的电脑彩票是否是自己发行的

问题:如何防止电脑彩票的伪造问题。

方法:(1)选择一个分组密码算法和一个认证密钥,将他们存于售票机内;(2)将电脑彩票上的重要信息,如彩票期号、彩票号码、彩票股量、售票单位代号等重要信息按某个约定的规则作为彩票资料明文;(3)对彩票资料明文扩展一个校验码分组后,利用认证密钥和分组密码算法对之加密,并将得到的最后一个分组密文作为认证码打印于彩票上面;

认证过程:

执行(3),并将计算出的认证码与彩票上的认证码比较,二者一致时判定该彩票是真彩票,否则判定该彩票是假彩票。56例:电脑彩票的防伪技术

----3.4.3密码反馈模式(CFB)若待加密消息需按字符、字节或比特处理时,可采用CFB或OFB模式。实际上将DES转换为流密码。流密码不需要对消息进行填充,而且运行是实时的。并称待加密消息按j比特处理的CFB模式为j比特CFB模式。适用范围:适用于每次处理j比特明文块的特定需求的加密情形,能灵活适应数据各格式的需要.例如,数据库加密要求加密时不能改变明文的字节长度,这时就要以明文字节为单位进行加密.573.4.3密码反馈模式(CFB)密码反馈CFB假定:Si为移位寄存器,传输单位为jbit

加密:Ci=Pi(EK(Si)的高j位)解密:Pi=Ci(EK(Si)的高j位)Si+1=(Si<<j)|Ci3.4.3密码反馈模式(CFB)58密码反馈CFB3.4.3密码反馈模式(CFB)58密码反馈CFB加密Ci=Pi(EK(Si)的高j位);59密码反馈CFB加密Ci=Pi(EK(Si)的高j位);密码反馈CFB解密Pi=Ci(EK(Si)的高j位);Si+1=(Si<<j)|Ci

60密码反馈CFB解密Pi=Ci(EK(Si)的高j位);CFB的特点分组密码流密码没有已知的并行实现算法隐藏了明文模式需要共同的移位寄存器初始值IV对于不同的消息,IV必须唯一误差传递:一个单元损坏影响多个单元优点:(1)适用于每次处理j比特明文块的特定需求的加密情形;(2)具有有限步的错误传播,可用于认证;(3)可实现自同步功能:该工作模式本质上是将分组密码当作序列密码使用的一种方式,但乱数与明文和密文有关!该模式适应于数据库加密、无线通信加密等对数据格式有特殊要求或密文信号容易丢失或出错的应用环境。缺点:加密效率低。61CFB的特点分组密码流密码61OFB:分组密码流密码假定:Si为移位寄存器,传输单位为jbit

加密:Ci=Pi(EK(Si)的高j位)Si+1=(Si<<j)|(EK(Si)的高j位)解密:Pi=Ci(EK(Si)的高j位)Si+1=(Si<<j)|(EK(Si)的高j位)3.4.4输出反馈模式(OFB)62OFB:分组密码流密码3.4.4输出反馈模式(OFB)输出反馈OFB加密Ci=Pi(EK(Si)的高j位);Si+1=(Si<<j)|(EK(Si)的高j位)63输出反馈OFB加密Ci=Pi(EK(Si)的高j位);S输出反馈OFB解密Pi=Ci(EK(Si)的高j位);Si+1=(Si<<j)|(EK(Si)的高j位)64输出反馈OFB解密Pi=Ci(EK(Si)的高j位);S0FB的特点分组密码流密码没有已知的并行实现算法隐藏了明文模式需要共同的移位寄存器初始值IV对于不同的消息,IV必须唯一误差传递:一个单元损坏只影响对应单元对明文的主动攻击是可能的信息块可被替换、重排、删除、重放安全性较CFB差650FB的特点分组密码流密码65优点:(1)这是将分组密码当作序列密码使用的一种方式,但乱数与明文和密文无关!(2)不具有错误传播特性!只要密文在传输过程中不丢信号,即使信道不好,也能将明文的大部分信号正常恢复。适用范围:(1)明文的冗余度特别大,信道不好但不易丢信号,明文错些信号也不影响效果的情形。如图象加密,语音加密等。缺点:(1)不能实现报文的完整性认证。(2)乱数序列的周期可能有短周期现象。66优点:66

总评:(1)ECB模式简单、高速,但最弱,易受重发和替换攻击,一般不采用。(2)CBC,CFC,OFB模式的选用取决于实际的特殊需求。(3)明文不易丢信号,对明文的格式没有特殊要求的环境可选用CBC模式。需要完整性认证功能时也可选用该模式。(4)容易丢信号的环境,或对明文格式有特殊要求的环境,可选用CFB模式。(2)不易丢信号,但信号特别容易错,但明文冗余特别多,可选用OFB模式。67总评:673.5流密码简介683.5流密码简介68

第三章对称密码体制3.1分组密码原理3.2数据加密标准(DES)3.3高级加密标准(AES)3.4分组密码的工作模式69第三章对称密码体制3.1分组密码原理13.1分组密码原理对称密码体制根据对明文加密方式的不同分为分组密码和流密码。分组密码:按一定长度(如64bit,128bit)对明文进行分组,然后以组为单位采用同样的密钥进行加/解密;流密码:不进行分组,而是按位进行加/解密无记忆元件…内部记忆元件kkx1xmymy1y1x1分组密码流密码703.1分组密码原理对称密码体制根据对明文加密方式的不同分分组密码对不同的组采用同样的密钥k进行加/解密。设密文组为y=y1y2•••ym,则对明文组x=x1x2•••xm用密钥k加密可得到y=ek(x1)ek(x2)•••ek(xm)。流密码的基本思想是利用密钥k产生一个密钥流z=z0z1

•••,并使用如下规则加密明文串x=x0x1x2•••,y=y0y1y2•••=ez0(x0)ez1(x1)ez2(x2)•••。密钥流由密钥流发生器f产生。分组密码与流密码的区别就在于记忆性。71分组密码对不同的组采用同样的密钥k进行3.1.1分组密码设计原理

分组密码是将明文消息编码表示后的数字(简称明文数字)序列x0,x1,…,划分成长度为n的组x=(x0,x1,…,xn-1),每组分别在密钥k=(k0,k1,…,km-1)的控制下变换成等长的输出数字(简称密文数字)序列y=(y0,y1,…,yn-1)。

723.1.1分组密码设计原理分组密分组密码的算法应满足如下安全性和软/硬件实现的要求:(1)分组长度足够大,防止明文被穷举攻击。如n=64bit(DES),新的标准n=128bit(AES)(2)密钥空间足够大,从而防止穷举密钥攻击。同时,密钥又不能太长,以利于密钥管理,DES采用56bit有效密钥,现在不够长,今后采用128bit是足够安全的。(3)由密钥确定的算法要足够复杂,充分实现明文与密文的扩散和混淆,没有简单的关系可循。(4)软件实现的要求:尽量使用适合编程的子块和简单的运算(5)硬件实现的要求:加密和解密应具有相似性。73分组密码的算法应满足如下安全性和软/硬件实现的要求:5两个基本设计方法Shannon(香浓,现代信息理论的鼻祖

)称之为理想密码系统,密文的所有统计特性都与所使用的密钥独立。•扩散(Diffusion):明文的统计结构被扩散消失到密文的统计特性中,使得明文和密文之间的统计关系尽量复杂。使得明文的每个比特影响到密文许多比特的取值,即每个密文比特被许多明文比特影响。•混乱(confusion):使得密文的统计特性与密钥的取值之间的关系尽量复杂。扩散和混淆的目的都是为了挫败推出密钥的尝试,从而抗统计分析。香农既精通通信又精通数学,将数理知识和工程很好的融合在一起。他把深奥和抽象的数学思想和概括而又很具体的对关键技术问题的理解结合起来。他被认为是最近几十年最伟大的工程师之一,同时也被认为是最伟大的数学家之一。”74两个基本设计方法香农既精通通信又精通数学,将数理知识和工程很3.1.2分组密码的一般结构分组密码的一般结构可以分为两种:Feistel网络结构和SP网络结构。Feistel网络结构Feistel网络结构如图所示:DES采用的是Feistel网络结构加密:Li=Ri-1;Ri=Li-1⊕F(Ri-1,Ki)•解密:Ri-1=Li,Li-1=Ri⊕F(Ri-1,Ki)=Ri⊕F(Li,Ki)753.1.2分组密码的一般结构分组密码的一般结构可以分为两2.SP网络结构是分组密码的另一种重要结构,AES等重要算法采用的是此结构。762.SP网络结构是分组密码的另一种重要结构,AES等重要算DES(DataEncryptionStandard)是迄今为止使用最为广泛的加密算法。DES的产生-i•1973年5月13日,NBS(美国国家标准局)开始公开征集标准加密算法,并公布了它的设计要求:(1)算法必须提供高度的安全性;(2)算法必须有详细的说明,并易于理解;(3)算法的安全性取决于密钥,不依赖于算法;(4)算法适用于所有用户;(5)算法适用于不同应用场合;(6)算法必须高效、经济;(7)算法必须能被证实有效;(8)算法必须是可出口的;3.2数据加密标准(DES)77DES(DataEncryptionStandard)是DES的产生-ii•1974年8月27日,NBS开始第二次征集,IBM提交了算法LUCIFER,该算法由IBM的工程师(IBM公司W.Tuchman和C.Meyer

)在1971-1972年研制•1975年3月17日,NBS公开了全部细节•1976年,NBS指派了两个小组进行评价•1976年11月23日,采纳为联邦标准,批准用于非军事场合的各种政府机构•1977年1月15日,被正式批准为美国联邦信息处理标准,即FIPSPUB46,同年7月15日开始生效。美国国家安全局(NSA,NationalSecurityAgency)参与了美国国家标准局制定数据加密标准的过程。NBS接受了NSA的某些建议,对算法做了修改,并将密钥长度从LUCIFER方案中的128位压缩到56位78DES的产生-ii10DES的应用•1979年,美国银行协会批准使用•1980年,美国国家标准局赞同DES作为私人使用的标准,称之为DEA(ANSIX.392)1983年,国际化标准组织ISO赞同DES作为国际标准,称之为DEA-1•该标准规定每五年审查一次,计划十年后采用新标准•最近的一次评估是在1994年1月,已决定1998年12月以后,DES将不再作为联邦加密标准。新的美国联邦加密标准称为高级加密标准AES(AdvancedEncryptionStandard)79DES的应用113.2.1DES描述DES是采用将明文按64bit分组,密钥长度为64bit,其中每8位有一位奇偶校验位,实际密钥的有效长度为56bit,DES算法是公开的,其安全性依赖于密钥的保密程度。DES结构框图如图:803.2.1DES描述DES是采用将明文按64bit81131.初始置换IP和初始逆置换IP—1821.初始置换IP和初始逆置换IP—1142.迭代变换832.迭代变换15

迭代变换是DES算法的核心部分,每轮开始时将输入的64bit数据分成左、右长度相等的两部分,右半部分原封不动地作为本轮输出的64bit数据的左半部分,同时对右半部分进行一系列的变换,即用轮函数F作用右半部分,然后将所得结果与输入数据的左半部分进行逐位异或,最后将所得数据作为本轮输出的64bit数据的右半部分。轮函数F由选择扩展运算E、与子密钥的异或运算、选择压缩运算S和置换P组成。84迭代变换是DES算法的核心部分,8517(1)选择扩展运算将输入的32bit数据扩展为48bit的输出数据,变换表如下:可以看出1、4、5、8、9、12、13、16、17、20、21、24、25、28、29、32这16个位置上的数据被读了两次。86(1)选择扩展运算将输入的32bit数据扩展为48bit的(2)与子密钥的异或运算与子密钥的异或运算:将选择扩展运算的48bit数据与子密钥Ki(48bit)进行异或运算。(后面详述)87(2)与子密钥的异或运算与子密钥的异或运算:将选择扩展运算的(3)选择压缩运算将输入的48bit数据从左至右分成8组,每组6bit。然后输入8个S盒,每个S盒为一非线性代换,有4bit输出,如图所示:88(3)选择压缩运算将输入的48bit数据从左至右分成8组,每89219022S-Box•对每个盒,6比特输入中的第1和第6比特组成的二进制数确定为行,中间4位二进制数用来确定为列。相应行、列位置的十进制数用4位二进制数表示作为输出。例如S2盒输入为101001,则行数和列数的二进制表示分别是11和0100,即表中3行和表中4列,表中3行和表中4列的十进制数为3,用4位二进制数表示为0011,所以输出为0011。91S-Box23(4)置换P92(4)置换P24DES中的子密钥的生成93DES中的子密钥的生成259426DES加密算法执行过程95DES加密算法执行过程273.2.2DES问题讨论1.S盒的安全问题有人认为s盒可能存在陷门,但至今没有迹象表明s盒中存在陷门。2.密钥长度•关于DES算法的另一个最有争议的问题就是担心实际56比特的密钥长度不足以抵御穷举式攻击,因为密钥量只有256≈1017个。•早在1977年,Diffie和Hellman已建议制造一个每秒能测试100万个密钥的VLSI芯片。每秒测试100万个密钥的机器大约需要一天就可以搜索整个密钥空间。他们估计制造这样的机器大约需要2000万美元。963.2.2DES问题讨论28•在CRYPTO’93上,Session和Wiener给出了一个非常详细的密钥搜索机器的设计方案,这个机器基于并行运算的密钥搜索芯片,16次加密能同时完成。此芯片每秒能测试5000万个密钥,用5760个芯片组成的系统需要花费10万美元,它平均用1.5天左右就可找到DES密钥。•1997年1月28日,美国的RSA数据安全公司在RSA安全年会上公布了一项“秘密密钥挑战”竞赛,其中包括悬赏1万美元破译密钥长度为56比特的DES。美国克罗拉多洲的程序员Verser从1997年2月18日起,用了96天时间,在Internet上数万名志愿者的协同工作下,成功地找到了DES的密钥,赢得了悬赏的1万美元。97•在CRYPTO’93上,Session和Wiener给出•1998年7月电子前沿基金会(EFF)使用一台25万美元的电脑在56小时内破译了56比特密钥的DES。•1999年1月RSA数据安全会议期间,电子前沿基金会用22小时15分钟就宣告破解了一个DES的密钥。98•1998年7月电子前沿基金会(EFF)使用一台25万美元1.两重DES3.2.3DES的变形双重DES密钥长度为112bit,密码强度似乎增强了一倍,但问题并非如此。双重DES易受中途攻击C=EK2(EK1(P))P=DK1(DK2(C))991.两重DES3.2.3DES的变形双重DES密钥长度中途攻击:中途攻击算法基于以下观察,如果有C=EK2(EK1(P)),则X=EK1(P)=DK2(C)。给定一个已知明、密文对(P,C),攻击方法如下:首先用所有256个可能的密钥加密P,得到256个可能的值,把这些值从小到大存在一个表中;然后再用256个可能的密钥对密文C进行解密,每次做完解密都将所得的值与表中值进行比较,如果发现与表中的一个值相等,则它们对应的密钥可能分别是K1和K2。现在用一个新的明、密文对检测所得到的两个密钥,如果满足X=EK1(P)=DK2(C),则把它们接受为正确的密钥。100中途攻击:322.三重DES(以被广泛采用)优点:能对付中途攻击。密钥长度为168bit1012.三重DES(以被广泛采用)33AES背景-i•1997年4月15日,(美国)国家标准技术研究所(NIST)发起征集高级加密标准(AdvancedEncryptionStandard)AES的活动,活动目的是确定一个非保密的、可以公开技术细节的、全球免费使用的分组密码算法,作为新的数据加密标准。•1997年9月12日,美国联邦登记处公布了正式征集AES候选算法的通告。作为进入AES候选过程的一个条件,开发者承诺放弃被选中算法的知识产权。对AES的基本要求是:比三重DES快、至少与三重DES一样安全、数据分组长度为128比特、密钥长度为128/192/256比特。3.3高级加密标准AES102AES背景-i3.3高级加密标准AES34AES背景-ii•1998年8月12日,在首届AES会议上指定了15个候选算法。•1999年3月22日第二次AES会议上,将候选名单减少为5个,这5个算法是RC6,Rijndael,SERPENT,Twofish和MARS。•2000年4月13日,第三次AES会议上,对这5个候选算法的各种分析结果进行了讨论。•2000年10月2日,NIST宣布了获胜者—Rijndael算法,2001年11月出版了最终标准FIPSPUB197。103AES背景-ii35Rijndael简介•不属于Feistel结构•加密、解密相似但不对称•支持128/32=Nb数据块大小•支持128/192/256(/32=Nk)密钥长度•有较好的数学理论作为基础•结构简单、速度快104Rijndael简介36轮数r与Nb和NkrNb=4Nb=6Nb=8Nk=4101214Nk=6121214Nk=8141414AES参数105轮数r与Nb和SP网络结构

在这种密码的每一轮中,轮输入首先被一个由子密钥控

制的可逆函数S作用,然后再对所得结果用置换(或可逆

线性变换)P作用。S和P分别被称为混乱层和扩散层,主

要起混乱和扩散作用。

106SP网络结构

在这种密码的每一轮中,轮输入首先被一个由子密钥AES算法结构-i•AES算法的轮变换中没有Feistel结构,轮变换是由三个不同的可逆一致变换组成,称之为层,–线性混合层:确保多轮之上的高度扩散。–非线性层:具有最优最差-情形非线性性的S-盒的并行应用。–密钥加层:轮密钥简单地异或到中间状态上。107AES算法结构-i39AES算法结构-ii108AES算法结构-ii4010941电子密码本ECB(electroniccodebookmode)密码分组链接CBC(cipherblockchaining)密码反馈CFB(cipherfeedback)输出反馈OFB(outputfeedback)这四种工作模式适用于不同的应用需求3.4分组密码的工作模式分组密码在加密时明文的长度是固定的。而实用中待加密消息的数据量是不定的,数据格式也可能是多种多样的,为了能在各种应用场合安全地使用分组密码,通常对不同的使用目的运用不同的工作模式。分组密码的“工作模式”是指以某个分组密码算法为基础,解决对任意长度的明文的加密问题的方法。110电子密码本ECB(electroniccodebo电子密码本ECB3.4.1电码本模式(ECB)111电子密码本ECB3.4.1电码本模式(ECB)43ECB的特点ECB用于短数据(如加密密钥)是非常理想,长消息不够安全简单、有效可以并行实现不能隐藏明文的模式信息相同明文生成相同密文,同样信息多次出现造成泄漏对明文的主动攻击是可能的信息块可被替换、重排、删除、重放误差传递:密文块损坏仅对应明文块损坏适合于传输短信息112ECB的特点ECB用于短数据(如加密密钥)是非常理想,长消息

典型应用:(1)用于随机数的加密保护;(2)用于单分组明文的加密。优点:(1)实现简单;(2)不同明文分组的加密可并行实施,尤其是硬件实现时速度很快.缺点:不同的明文分组之间的加密独立进行,故保留了单表代替缺点,造成相同明文分组对应相同密文分组,因而不能隐蔽明文分组的统计规律和结构规律,不能抵抗替换攻击.ECB模式的优、缺点和应用113典型应用:(1)用于随机数的加密保护;优点:(1)

敌手C通过截收从A到B的加密消息,只要将第5至第12分组替换为自己的姓名和帐号相对应的密文,即可将别人的存款存入自己的帐号。

例:假设银行A和银行B之间的资金转帐系统所使用报文模式如下:114敌手C通过截收从A到B的加密消息,只要将第5为了克服ECB的安全性缺陷,我们希望设计一个工作模式,可以使得当同一个明文分组重复出现时产生不同的密文分组。一个简单的方法是密码分组链接,从而使输出不仅与当前输入有关,而且与以前输入和输出有关。115为了克服ECB的安全性缺陷,我们希望设计一个工作模式,可以使3.4.2密码分组链接模式(CBC)

在CBC模式下,加密算法的输入是当前明文组与前一密文组的异或。记初始化向量IV为c0,则加密过程可表示为CBC模式加密框图………)(xEk1163.4.2密码分组链接模式(CBC)在CCBC模式脱密框图

CBC模式的脱密过程为ÅÅÅ117CBC模式脱密框图CBC模式的脱密过程为ÅÅÅ491.明文块的统计特性得到了隐蔽。

CBC模式的特点:

由于在密文CBC模式中,各密文块不仅与当前明文块有关,而且还与以前的明文块及初始化向量有关,从而使明文的统计规律在密文中得到了较好的隐蔽。2.具有有限的(两步)错误传播特性。一个密文块的错误将导致两个密文块不能正确脱密.3.具有自同步功能密文出现丢块和错块不影响后续密文块的脱密.若从第t块起密文块正确,则第t+1个明文块就能正确求出.1181.明文块的统计特性得到了隐蔽。CBC模式的特点:由典型应用:(1)数据加密;(2)完整性认证和身份认证;完整性认证的含义

完整性认证是一个“用户”检验它收到的文件是否遭到第三方有意或无意的篡改。因此,完整性认证:

不需检验文件的制造者是否造假;文件的制造者和检验者利益一致,不需互相欺骗和抵赖。119典型应用:完整性认证的含义51

利用CBC模式可实现报文的完整性认证目的:检查文件在(直接或加密)传输和存储中是否遭到有意或无意的篡改.

关键技术:

(1)文件的制造者和检验者共享一个密钥(2)文件的明文必须具有检验者预先知道的冗余度(3)文件的制造者用共享密钥对具有约定冗余度的明文用CBC模式加密(4)文件的检验者用共享密钥对密文脱密,并检验约定冗余度是否正确.

120利用CBC模式可实现报文的完整性认证报文完整性认证的具体实现技术

(1)文件的制造者和检验者共享一个密钥;(2)文件的明文m产生一个奇偶校验码r的分组;(3)采用分组密码的CBC模式,对附带校验码的已扩充的明文(m,r)进行加密,得到的最后一个密文分组就是认证码;121报文完整性认证的具体实现技术(1)文件的制造者n分组明文

,校验码为Cn+1为认证码。(1)仅需对明文认证,而不需加密时,传送明文m和认证码Cn+1,

此时也可仅保留Cn+1的t个比特作为认证码;(2)既需对明文认证,又需要加密时,传送密文C和认证码Cn+1………)(xEk)(xEk122n分组明文………

检验方法:

(1)仅需对明文认证而不需加密时,此时验证者仅收到明文m和认证码Cn+1,他需要:

Step2利用共享密钥使用CBC模式对(m,r)加密,将得到的最后一个密文分组与接受到的认证码Cn+1比较,二者一致时判定接收的明文无错;二者不一致时判定明文出错。

Step1产生明文m的校验码123………检验方法:Step2利用共享密钥使

例:电脑彩票的防伪技术

----彩票中心检查兑奖的电脑彩票是否是自己发行的

问题:如何防止电脑彩票的伪造问题。

方法:(1)选择一个分组密码算法和一个认证密钥,将他们存于售票机内;(2)将电脑彩票上的重要信息,如彩票期号、彩票号码、彩票股量、售票单位代号等重要信息按某个约定的规则作为彩票资料

温馨提示

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

评论

0/150

提交评论