1、1 第三章第三章 对称密码体制对称密码体制3.1 3.1 分组密码原理分组密码原理3.2 3.2 数据加密标准(数据加密标准(DESDES)3.3 3.3 高级加密标准高级加密标准(AES)(AES)3.4 3.4 分组密码的工作模式分组密码的工作模式23.1 3.1 分组密码原理分组密码原理对称密码体制根据对明文加密方式的不同分为对称密码体制根据对明文加密方式的不同分为分组密码分组密码和和流密码流密码。分组密码:分组密码:按一定长度(如按一定长度(如64bit64bit,128bit128bit)对)对明文进行分组,然后以组为单位采用同样的密明文进行分组,然后以组为单位采用同样的密钥进行加钥
2、进行加/解密;解密;流密码:流密码:不进行分组,而是按位进行加不进行分组,而是按位进行加/解密解密无记忆元件无记忆元件内部记忆元件kkx1xmymy1y1x1分组密码流密码3 分组密码对不同的组采用同样的密钥k进行加/解密。设密文组为y=y1y2ym,则对明文组x=x1x2 xm用密钥k加密可得到y=ek(x1)ek(x2)ek(xm)。流密码的基本思想是利用密钥k产生一个密钥流z=z0z1,并使用如下规则加密明文串x=x0 x1 x2 ,y=y0y1y2=ez0(x0)ez1(x1)ez2(x2)。密钥流由密钥流发生器f产生。分组密码与流密码的区别就在于记忆性。43.1.1 3.1.1 分组
3、密码设计原理分组密码设计原理 分组密码是将明文消息分组密码是将明文消息编码表示后的数字编码表示后的数字(简(简称明文数字)序列称明文数字)序列x0,x1,划分成长度为,划分成长度为n的组的组x=(x0,x1,xn-1),每组分别在密钥,每组分别在密钥 k=(k0,k1,km-1)的控制下变换成等长的输出数字(简称密文数字)的控制下变换成等长的输出数字(简称密文数字)序列序列y=(y0,y1,yn-1)。5 分组密码的算法应满足如下安全性和软分组密码的算法应满足如下安全性和软/硬件实现的硬件实现的要求:要求:(1)分组长度足够大,防止明文被穷举攻击。如)分组长度足够大,防止明文被穷举攻击。如n=
4、64bit (DES),新的标准,新的标准n=128bit (AES)(2)密钥空间足够大,从而防止穷举密钥攻击。同时,)密钥空间足够大,从而防止穷举密钥攻击。同时,密钥又不能太长,以利于密钥管理,密钥又不能太长,以利于密钥管理,DES采用采用56bit有效密钥,现在不够长,今后采用有效密钥,现在不够长,今后采用128bit是足够安是足够安全的。全的。(3)由密钥确定的算法要足够复杂,充分实现明文与)由密钥确定的算法要足够复杂,充分实现明文与密文的扩散和混淆,没有简单的关系可循。密文的扩散和混淆,没有简单的关系可循。(4)软件实现的要求:尽量使用适合编程的子块和简)软件实现的要求:尽量使用适合
5、编程的子块和简单的运算单的运算(5)硬件实现的要求:加密和解密应具有相似性。)硬件实现的要求:加密和解密应具有相似性。6两个基本设计方法ShannonShannon(香浓,现代信息理论的鼻祖(香浓,现代信息理论的鼻祖)称之为理想密码系统,)称之为理想密码系统,密文的所有统计特性都与所使用的密钥独立。密文的所有统计特性都与所使用的密钥独立。扩散(扩散(Diffusion):Diffusion):明文的统计结构被扩散消失到密文的统计明文的统计结构被扩散消失到密文的统计特性中特性中,使得明文和密文之间的统计关系尽量复杂。使得明文的使得明文和密文之间的统计关系尽量复杂。使得明文的每个比特影响到密文许多
6、比特的取值,即每个密文比特被许多每个比特影响到密文许多比特的取值,即每个密文比特被许多明文比特影响。明文比特影响。混乱混乱(confusion)(confusion):使得密文的统计特性与密钥的取值之间的:使得密文的统计特性与密钥的取值之间的关系尽量复杂。关系尽量复杂。扩散和混淆的目的都是为了挫败推出密钥的尝试,从而扩散和混淆的目的都是为了挫败推出密钥的尝试,从而抗统计抗统计分析分析。香农既精通通信又精通数学,将数理知识和工程很好的融香农既精通通信又精通数学,将数理知识和工程很好的融合在一起。他把深奥和抽象的数学思想和概括而又很具体合在一起。他把深奥和抽象的数学思想和概括而又很具体的对关键技术
7、问题的理解结合起来。他被认为是最近几十的对关键技术问题的理解结合起来。他被认为是最近几十年最伟大的工程师之一,同时也被认为是最伟大的数学家年最伟大的工程师之一,同时也被认为是最伟大的数学家之一。之一。”73.1.2 3.1.2 分组密码的一般结构分组密码的一般结构分组密码的一般结构可以分为两种:分组密码的一般结构可以分为两种:FeistelFeistel网络网络结构和结构和SPSP网络结构。网络结构。1.1.FeistelFeistel网络结构网络结构FeistelFeistel网络结构如图所示:网络结构如图所示:DESDES采用的是采用的是FeistelFeistel网络网络结构结构加密:L
8、i=Ri-1;Ri=Li-1F(Ri-1,Ki)解密:Ri-1=Li,Li-1=RiF(Ri-1,Ki)=RiF(Li,Ki)82.SP2.SP网络结构是分组密码的另一种重要结构,网络结构是分组密码的另一种重要结构,AESAES等重要算法采用的是此结构。等重要算法采用的是此结构。9DESDES(Data Encryption StandardData Encryption Standard)是迄今为止使用最为广泛的加)是迄今为止使用最为广泛的加密算法。密算法。DESDES的产生的产生-i-i 1973 1973年年5 5月月1313日日,NBS(,NBS(美国国家标准局美国国家标准局)开始公开
9、征集标准加密算开始公开征集标准加密算法法,并公布了它的设计要求并公布了它的设计要求:(1)(1)算法必须提供高度的安全性;算法必须提供高度的安全性;(2)(2)算法必须有详细的说明算法必须有详细的说明,并易于理解;并易于理解;(3)(3)算法的安全性取决于密钥算法的安全性取决于密钥,不依赖于算法;不依赖于算法;(4)(4)算法适用于所有用户;算法适用于所有用户;(5)(5)算法适用于不同应用场合;算法适用于不同应用场合;(6)(6)算法必须高效、经济;算法必须高效、经济;(7)(7)算法必须能被证实有效;算法必须能被证实有效;(8)(8)算法必须是可出口的;算法必须是可出口的;3.2 3.2
10、数据加密标准(数据加密标准(DESDES)10DESDES的产生的产生-ii-ii 19741974年年8 8月月2727日日,NBS,NBS开始第二次征集开始第二次征集,IBM,IBM提交了算法提交了算法LUCIFERLUCIFER,该算法由该算法由IBMIBM的工程师的工程师(IBM(IBM公司公司 W.Tuchman W.Tuchman 和和 C.MeyerC.Meyer)在在1971-19721971-1972年研制年研制 1975 1975年年3 3月月1717日日,NBS,NBS公开了全部细节公开了全部细节 1976 1976年年,NBS,NBS指派了两个小组进行评价指派了两个小组
11、进行评价 1976 1976年年1111月月2323日,采纳为联邦标准,批准用于非军事场合的各日,采纳为联邦标准,批准用于非军事场合的各种政府机构种政府机构 1977 1977年年1 1月月1515日日,被正式批准为美国联邦信息处理标准,即被正式批准为美国联邦信息处理标准,即FIPS PUB 46FIPS PUB 46,同年,同年7 7月月1515日开始生效。日开始生效。美国国家安全局(美国国家安全局(NSA,National Security Agency)参与了美国国参与了美国国家标准局制定数据加密标准的过程。家标准局制定数据加密标准的过程。NBS接受了接受了NSA的某些建的某些建议,对算
12、法做了修改,并将密钥长度从议,对算法做了修改,并将密钥长度从LUCIFER方案中的方案中的128位压缩到位压缩到56位位11DES的应用 1979 1979年,美国银行协会批准使用年,美国银行协会批准使用 1980 1980年,美国国家标准局赞同年,美国国家标准局赞同DESDES作为私人使用的标作为私人使用的标准准,称之为称之为DEADEA(ANSI X.392ANSI X.392)19831983年,国际化标准组织年,国际化标准组织ISOISO赞同赞同DESDES作为国际标准,作为国际标准,称之为称之为DEA-1DEA-1 该标准规定每五年审查一次,计划十年后采用新标准该标准规定每五年审查一
13、次,计划十年后采用新标准 最近的一次评估是在最近的一次评估是在19941994年年1 1月,已决定月,已决定19981998年年1212月月以后,以后,DESDES将不再作为联邦加密标准。将不再作为联邦加密标准。新的美国联邦加密标准称为高级加密标准新的美国联邦加密标准称为高级加密标准AES(Advanced Encryption Standard)AES(Advanced Encryption Standard)123.2.1 DES描述描述DES是采用将明文按是采用将明文按64bit分组,密钥长度为分组,密钥长度为64bit,其中每其中每8位有一位奇偶校验位,实际密钥的有效长位有一位奇偶校验
14、位,实际密钥的有效长度为度为56bit,DES算法是公开的,其安全性依赖于密算法是公开的,其安全性依赖于密钥的保密程度。钥的保密程度。DES结构框图如图:结构框图如图:13141.1.初始置换初始置换IPIP和初始逆置换和初始逆置换IPIP1 1152.迭代变换迭代变换16 迭代变换是迭代变换是DESDES算法的核心部分,每算法的核心部分,每轮开始时将输入的轮开始时将输入的64bit64bit数据分成左、右数据分成左、右长度相等的两部分,右半部分原封不动地长度相等的两部分,右半部分原封不动地作为本轮输出的作为本轮输出的64bit64bit数据的左半部分,数据的左半部分,同时对右半部分进行一系列
15、的变换,即用同时对右半部分进行一系列的变换,即用轮函数轮函数F F作用右半部分,然后将所得结果作用右半部分,然后将所得结果与输入数据的左半部分进行逐位异或,最与输入数据的左半部分进行逐位异或,最后将所得数据作为本轮输出的后将所得数据作为本轮输出的64bit64bit数据数据的右半部分。的右半部分。轮函数轮函数F F由选择扩展运算由选择扩展运算E E、与子密钥、与子密钥的异或运算、选择压缩运算的异或运算、选择压缩运算S S和置换和置换P P组成。组成。1718(1)(1)选择扩展运算选择扩展运算将输入的将输入的32bit数据扩展为数据扩展为48bit的输出数据,变换表如的输出数据,变换表如下:下
16、:可以看出可以看出1、4、5、8、9、12、13、16、17、20、21、24、25、28、29、32这这16个位置上的数据被读了两次。个位置上的数据被读了两次。19(2 2)与子密钥的异或运算)与子密钥的异或运算与子密钥的异或运算:将选择扩展运算的与子密钥的异或运算:将选择扩展运算的48 48 bitbit数据与子密钥数据与子密钥Ki(48 bit)Ki(48 bit)进行异或运算。进行异或运算。(后面详述)(后面详述)20(3)选择压缩运算)选择压缩运算将输入的将输入的48bit数据从左至右分成数据从左至右分成8组,每组组,每组6bit。然后输入。然后输入8个个S盒,每个盒,每个S盒为一非
17、线性代换,有盒为一非线性代换,有4bit输出,如图所示:输出,如图所示:212223S-Box 对每个盒,对每个盒,6 6比特输入中的第比特输入中的第1 1和第和第6 6比特组成比特组成的二进制数确定为行,中间的二进制数确定为行,中间4 4位二进制数用来位二进制数用来确定为列。相应行、列位置的十进制数用确定为列。相应行、列位置的十进制数用4 4位位二进制数表示作为输出。例如二进制数表示作为输出。例如S2S2盒输入为盒输入为101001101001,则行数和列数的二进制表示分别是,则行数和列数的二进制表示分别是1111和和01000100,即表中,即表中3 3行和表中行和表中4 4列,表中列,表
18、中3 3行和表行和表中中4 4列的十进制数为列的十进制数为3 3,用,用4 4位二进制数表示为位二进制数表示为00110011,所以输出为,所以输出为00110011。24(4)置换)置换P25 k1 (56 位)(48 位)ki (56 位)(48 位)64 位密钥置换选择 1 C0(28 位)D0(28 位)循环左移循环左移 C1(28 位)D1(28 位)循环左移循环左移 Ci(28 位)Di(28 位)置换选择 2置换选择 2密钥表的计算逻辑循环左移:1 1 9 12 1 10 23 2 11 24 2 12 25 2 13 26 2 14 27 2 15 28 2 16 1DES中的
19、子密钥的生成中的子密钥的生成2627DES加密算法执行过程加密算法执行过程283.2.2 DES问题讨论1.S盒的安全问题有人认为有人认为s s盒可能存在陷门,但至今没有迹象表明盒可能存在陷门,但至今没有迹象表明s s盒盒中存在陷门。中存在陷门。2.密钥长度 关于关于DES算法的另一个最有争议的问题就是担心实际算法的另一个最有争议的问题就是担心实际56比特的密钥长度不足以抵御穷举式攻击,因为密钥量比特的密钥长度不足以抵御穷举式攻击,因为密钥量只有只有2 2565610101717个。个。早在早在1977年,年,Diffie和和Hellman已建议制造一个每秒能已建议制造一个每秒能测试测试100
20、万个密钥的万个密钥的VLSI芯片。每秒测试芯片。每秒测试100万个密钥万个密钥的机器大约需要一天就可以搜索整个密钥空间。他们估的机器大约需要一天就可以搜索整个密钥空间。他们估计制造这样的机器大约需要计制造这样的机器大约需要2000万美元。万美元。29 在CRYPTO93上,Session和Wiener给出了一个非常详细的密钥搜索机器的设计方案,这个机器基于并行运算的密钥搜索芯片,16次加密能同时完成。此芯片每秒能测试5000万个密钥,用5760个芯片组成的系统需要花费10万美元,它平均用1.5天左右就可找到DES密钥。1997年1月28日,美国的RSA数据安全公司在RSA安全年会上公布了一项“
21、秘密密钥挑战”竞赛,其中包括悬赏1万美元破译密钥长度为56比特的DES。美国克罗拉多洲的程序员Verser从1997年2月18日起,用了96天时间,在Internet上数万名志愿者的协同工作下,成功地找到了DES的密钥,赢得了悬赏的1万美元。30 1998年7月电子前沿基金会(EFF)使用一台25万美元的电脑在56小时内破译了56比特密钥的DES。1999年1月RSA数据安全会议期间,电子前沿基金会用22小时15分钟就宣告破解了一个DES的密钥。311.两重两重DES3.2.3 DES的变形的变形双重DES密钥长度为112bit,密码强度似乎增强了一倍,但问题并非如此。双重DES易受中途攻击C
22、=EK2(EK1(P)P=DK1(DK2(C)32中途攻击:中途攻击算法基于以下观察,如果有C=EK2(EK1(P),则X=EK1(P)=DK2(C)。给定一个已知明、密文对(P,C),攻击方法如下:首先用所有256个可能的密钥加密P,得到256个可能的值,把这些值从小到大存在一个表中;然后再用256个可能的密钥对密文C进行解密,每次做完解密都将所得的值与表中值进行比较,如果发现与表中的一个值相等,则它们对应的密钥可能分别是K1和K2。现在用一个新的明、密文对检测所得到的两个密钥,如果满足X=EK1(P)=DK2(C),则把它们接受为正确的密钥。332.三重三重DES(以被广泛采用)(以被广泛
23、采用)优点:优点:能对付中途攻击能对付中途攻击。密钥长度为。密钥长度为168bit 34AES背景-i 1997年4月15日,(美国)国家标准技术研究所(NIST)发起征集高级加密标准(Advanced Encryption Standard)AES的活动,活动目的是确定一个非保密的、可以公开技术细节的、全球免费使用的分组密码算法,作为新的数据加密标准。1997年9月12日,美国联邦登记处公布了正式征集AES候选算法的通告。作为进入AES候选过程的一个条件,开发者承诺放弃被选中算法的知识产权。对AES的基本要求是:比三重DES快、至少与三重DES一样安全、数据分组长度为128比特、密钥长度为1
24、28/192/256比特。3.3 高级加密标准高级加密标准AES35AES背景-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。36Rijndael简介 不属于Feistel结构 加密、解密相似但不对称 支持128/32=Nb数据
25、块大小 支持128/192/256(/32=Nk)密钥长度 有较好的数学理论作为基础 结构简单、速度快37 轮数轮数r与与Nb和和Nk r Nb=4 Nb=6Nb=8 Nk=4 10 12 14 Nk=6 12 12 14 Nk=8 14 14 14AES参数参数38SP网络结构在这种密码的每一轮中,轮输入首先被一个由子密钥控制的可逆函数S作用,然后再对所得结果用置换(或可逆线性变换)P作用。S和P分别被称为混乱层和扩散层,主要起混乱和扩散作用。39AES算法结构-i AES算法的轮变换中没有Feistel结构,轮变换是由三个不同的可逆一致变换组成,称之为层,线性混合层:确保多轮之上的高度扩散
26、。非线性层:具有最优最差-情形非线性性的S-盒的并行应用。密钥加层:轮密钥简单地异或到中间状态上。40AES算法结构-ii4142电子密码本电子密码本 ECB(electronic codebook mode)ECB(electronic codebook mode)密码分组链接密码分组链接 CBC(cipher block chaining)CBC(cipher block chaining)密码反馈密码反馈 CFB(cipher feedback)CFB(cipher feedback)输出反馈输出反馈 OFB(output feedback)OFB(output feedback)这四种
27、工作模式适用于不同的应用需求这四种工作模式适用于不同的应用需求3.4 3.4 分组密码的工作模式分组密码的工作模式分组密码在加密时明文的长度是固定的。而实用中待加密消息分组密码在加密时明文的长度是固定的。而实用中待加密消息的数据量是不定的,数据格式也可能是多种多样的,为了能在的数据量是不定的,数据格式也可能是多种多样的,为了能在各种应用场合安全地使用分组密码,通常对不同的使用目的运各种应用场合安全地使用分组密码,通常对不同的使用目的运用不同的工作模式。用不同的工作模式。分组密码的分组密码的“工作模式工作模式”是指以某个分组密码算法为基础是指以某个分组密码算法为基础,解决解决对任意长度的明文的加
28、密问题的方法对任意长度的明文的加密问题的方法。43iKiiKiC=E(P)P=D(C)电子密码本电子密码本ECB3.4.1 电码本模式(电码本模式(ECB)44ECB的特点的特点ECBECB用于短数据(如加密密钥)是非常理想,长消息不够安全用于短数据(如加密密钥)是非常理想,长消息不够安全u简单、有效简单、有效u可以并行实现可以并行实现u不能隐藏明文的模式信息不能隐藏明文的模式信息u相同明文相同明文生成生成相同密文,相同密文,同样信息多次出现造成泄漏同样信息多次出现造成泄漏u对明文的主动攻击是可能的对明文的主动攻击是可能的u信息块可被替换、重排、删除、重放信息块可被替换、重排、删除、重放u误差
29、传递:密文块损坏误差传递:密文块损坏仅仅对应明文块损坏对应明文块损坏u适合于传输短信息适合于传输短信息45 典型应用:典型应用:(1)用于随机数的加密保护;)用于随机数的加密保护;(2)用于单分组明文的加密。)用于单分组明文的加密。优点优点:(1)实现简单实现简单;(2)不同明文分组的加密可并行实施不同明文分组的加密可并行实施,尤其是尤其是硬件实现时速度很快硬件实现时速度很快.缺点:缺点:不同的明文分组之间的加密独立进行不同的明文分组之间的加密独立进行,故保故保留了单表代替缺点留了单表代替缺点,造成造成相同明文分组对应相同密相同明文分组对应相同密文分组文分组,因而不能隐蔽明文分组的统计规律和结
30、构因而不能隐蔽明文分组的统计规律和结构规律规律,不能抵抗替换攻击不能抵抗替换攻击.46 敌手敌手C通过截收从通过截收从A到到B的加密消息,只要将第的加密消息,只要将第5至至第第12分组替换为自己的姓名和帐号相对应的密文,即可分组替换为自己的姓名和帐号相对应的密文,即可将别人的存款存入自己的帐号。将别人的存款存入自己的帐号。例例:假设银行假设银行A和银行和银行B之间的资金转帐系统所使用报之间的资金转帐系统所使用报文模式如下:文模式如下:47 为了克服为了克服ECB的安全性缺陷,我们希望的安全性缺陷,我们希望设计一个工作模式设计一个工作模式,可以使得当同一个明可以使得当同一个明文分组重复出现时产生
31、不同的密文分组。文分组重复出现时产生不同的密文分组。一个简单的方法是密码分组链接,从而一个简单的方法是密码分组链接,从而使输出不仅与当前输入有关,而且与以使输出不仅与当前输入有关,而且与以前输入和输出有关。前输入和输出有关。483.4.2 密码分组链接模式(密码分组链接模式(CBC)在在CBC模式下,加密算法的输入是当前明文组与模式下,加密算法的输入是当前明文组与前一密文组的异或。前一密文组的异或。记记初始初始化向量化向量IV为为c0,则加密过程可表示为则加密过程可表示为CBCCBC模式加密框图模式加密框图1(),1,2,3,ikiicE mci3m)(xEk4m4c)(xEk1m1c)(xE
32、k3c)(xEk2m2c1nm1ncIV)(xEk49CBCCBC模式脱密框图模式脱密框图 11(),1,2,3,ikiimEcci1E1E1E IVkkk1m2m3m1c2c3c501.明文块的统计特性得到了隐蔽。明文块的统计特性得到了隐蔽。由于在密文由于在密文CBCCBC模式中,各密文块不仅与当前明文模式中,各密文块不仅与当前明文块有关,而且还与以前的明文块及初始化向量有关,块有关,而且还与以前的明文块及初始化向量有关,从而从而使使明文的统计规律在密文中得到了较好的隐蔽。明文的统计规律在密文中得到了较好的隐蔽。2.具有有限的具有有限的(两步两步)错误传播特性。错误传播特性。一个密文块的错误
33、将导致两个密文块不能正确脱一个密文块的错误将导致两个密文块不能正确脱密密.3.具有自同步功能具有自同步功能 密文出现丢块和错块不影响后续密文块的脱密密文出现丢块和错块不影响后续密文块的脱密.若若从第从第t块起块起密文块正确密文块正确,则第则第t+1个明文块就能正确求出个明文块就能正确求出.51 典型应用典型应用:(1)数据加密数据加密;(2)完整性认证和身份认证完整性认证和身份认证;完整性认证的含义完整性认证的含义 完整性认证是一个完整性认证是一个“用户用户”检验它收到的文件是检验它收到的文件是否遭到第三方有意或无意的篡改。否遭到第三方有意或无意的篡改。因此,完整性认证:因此,完整性认证:不需
34、检验文件的制造者是否造假;不需检验文件的制造者是否造假;文件的制造者和检验者利益一致,不需互相欺骗和文件的制造者和检验者利益一致,不需互相欺骗和抵赖。抵赖。52 利用利用CBC模式可实现报文的完整性认证模式可实现报文的完整性认证 目的目的:检查文件在检查文件在(直接或加密直接或加密)传输和存储中是否传输和存储中是否遭到有意或无意的篡改遭到有意或无意的篡改.关键技术关键技术:(1)文件的制造者和检验者共享一个密钥文件的制造者和检验者共享一个密钥 (2)文件的明文必须具有检验者预先知道的冗余度文件的明文必须具有检验者预先知道的冗余度 (3)文件的制造者用共享密钥对具有约定冗余度的文件的制造者用共享
35、密钥对具有约定冗余度的明文用明文用CBC模式加密模式加密 (4)文件的检验者用共享密钥对密文脱密文件的检验者用共享密钥对密文脱密,并检验约并检验约定冗余度是否正确定冗余度是否正确.53报文完整性认证的具体实现技术报文完整性认证的具体实现技术 (1)文件的制造者和检验者共享一个密钥;文件的制造者和检验者共享一个密钥;(2)文件的明文文件的明文m产生一个奇偶校验码产生一个奇偶校验码r的分组;的分组;(3)采用分组密码的采用分组密码的CBC模式,对附带校验码的模式,对附带校验码的已扩充的明文已扩充的明文(m,r)进行加密,得到的最后一个密文进行加密,得到的最后一个密文分组就是认证码;分组就是认证码;
36、54n分组分组明文明文 ,校验码为校验码为1(,)nmmm11nnrmmmCn+1为认证码。(1)仅需对明文认证仅需对明文认证,而不需加密时而不需加密时,传送明文传送明文m和认证码和认证码Cn+1,此时也可仅保留此时也可仅保留Cn+1的的 t 个比特作为认证码;个比特作为认证码;(2)既需对明文认证既需对明文认证,又需要加密时又需要加密时,传送密文传送密文C和认证码和认证码Cn+11nmr)(xEk)(xEk)(xEk)(xEk)(xEk4c1c3c2c4m1m3m2m1nc)(xEknmnc55()kE x4m4c()kE x1m1c()kE x3m3c()kE x2m2c()kE x1nm
37、1nc (1)仅需对明文认证而不需加密时)仅需对明文认证而不需加密时,此时验证者仅收到此时验证者仅收到明文明文m和认证码和认证码Cn+1,他需要:,他需要:Step2 利用共享密钥使用利用共享密钥使用CBC模式对模式对(m,r)加密,将得到加密,将得到的最后一个密文分组与接受到的认证码的最后一个密文分组与接受到的认证码Cn+1比较,二者一比较,二者一致时判定接收的明文无错;二者不一致时判定明文出错。致时判定接收的明文无错;二者不一致时判定明文出错。11nnrmmm Step1 产生明文产生明文m的校验码的校验码56 例:例:电脑彩票的防伪技术电脑彩票的防伪技术 -彩票中心检查兑奖的电脑彩票是否
38、是自己发行的彩票中心检查兑奖的电脑彩票是否是自己发行的 方法:方法:(1)选择一个分组密码算法和一个认证密钥,将他们存于售)选择一个分组密码算法和一个认证密钥,将他们存于售票机内;票机内;(2)将电脑彩票上的重要信息,如彩票期号、彩票号码、彩)将电脑彩票上的重要信息,如彩票期号、彩票号码、彩票股量、售票单位代号等重要信息按某个约定的规则作为彩票资票股量、售票单位代号等重要信息按某个约定的规则作为彩票资料明文;料明文;(3)对彩票资料明文扩展一个校验码分组后,利用认证密钥)对彩票资料明文扩展一个校验码分组后,利用认证密钥和分组密码算法对之加密,并将得到的最后一个分组密文作为认和分组密码算法对之加
39、密,并将得到的最后一个分组密文作为认证码打印于彩票上面;证码打印于彩票上面;认证过程:认证过程:执行(执行(3),并将计算出的认证码与彩票上的认证码比较,二者并将计算出的认证码与彩票上的认证码比较,二者一致时判定该彩票是真彩票,否则判定该彩票是假彩票。一致时判定该彩票是真彩票,否则判定该彩票是假彩票。573.4.3 密码反馈模式(密码反馈模式(CFB)若待加密消息需按字符、字节或比特处理时,若待加密消息需按字符、字节或比特处理时,可采用可采用CFB或或OFB模式。实际上将模式。实际上将DES转换为流密转换为流密码。流密码不需要对消息进行填充,而且运行是实码。流密码不需要对消息进行填充,而且运行
40、是实时的。并称待加密消息按时的。并称待加密消息按 j 比特处理的比特处理的CFB模式为模式为 j 比特比特CFB模式。模式。适用范围适用范围:适用于每次处理适用于每次处理 j比特明文块的特定需求的加比特明文块的特定需求的加密情形密情形,能灵活适应数据各格式的需要能灵活适应数据各格式的需要.例如例如,数据库加密要求加密时不能改变明文的字数据库加密要求加密时不能改变明文的字节长度节长度,这时就要以明文字节为单位进行加密这时就要以明文字节为单位进行加密.58密码反馈密码反馈CFB 假定:假定:Si Si 为移位寄存器为移位寄存器,传输单位为传输单位为jbitbit 加密加密:C Ci i=P=Pi
41、i(E EK K(S(Si i)的高的高j j位位)解密解密:P:Pi i=C=Ci i(E EK K(S(Si i)的高的高j j位位)S Si+1i+1=(S=(Si ij)|Cj)|Ci i3.4.3 密码反馈模式(密码反馈模式(CFB)59密码反馈密码反馈CFB加密加密Ci=Pi(EK(Si)的高的高j位位);60密码反馈密码反馈CFB解密解密Pi=Ci(EK(Si)的高的高j位位);Si+1=(Sij)|Ci 61CFB的特点的特点u分组密码分组密码流密码流密码u没有已知的并行实现算法没有已知的并行实现算法u隐藏了明文模式隐藏了明文模式u需要共同的移位寄存器初始值需要共同的移位寄存器
42、初始值IVIVu对于不同的消息,对于不同的消息,IVIV必须唯一必须唯一u误差传递:一个单元损坏影响多个单元误差传递:一个单元损坏影响多个单元优点优点:(1)适用于每次处理适用于每次处理 j比特明文块的特定需求的加密情形比特明文块的特定需求的加密情形;(2)具有有限步的错误传播,可用于认证具有有限步的错误传播,可用于认证;(3)可实现自同步功能可实现自同步功能:该工作模式本质上是将分组密码当作序列密码使用的一种方该工作模式本质上是将分组密码当作序列密码使用的一种方式式,但乱数与明文和密文有关!但乱数与明文和密文有关!该模式适应于数据库加密、无线通信加密等对数据格式有特该模式适应于数据库加密、无
43、线通信加密等对数据格式有特殊要求或密文信号容易丢失或出错的应用环境。殊要求或密文信号容易丢失或出错的应用环境。缺点:加密效率低。缺点:加密效率低。62OFB:OFB:分组密码分组密码流密码流密码假定:假定:Si Si 为移位寄存器为移位寄存器,传输单位为传输单位为jbitbit 加密加密:C Ci i=P=Pi i(E EK K(S(Si i)的高的高j j位位)S Si+1i+1=(S=(Si ij)|j)|(E EK K(S(Si i)的高的高j j位位)解密解密:P:Pi i=C=Ci i(E EK K(S(Si i)的高的高j j位位)S Si+1i+1=(S=(Si ij)|j)|(
44、E EK K(S(Si i)的高的高j j位位)3.4.4 输出反馈模式(输出反馈模式(OFB)63输出反馈输出反馈OFB加密加密Ci=Pi(EK(Si)的高的高j位位);Si+1=(Sij)|(EK(Si)的的高高j位位)64输出反馈输出反馈OFB解密解密Pi=Ci(EK(Si)的高的高j位位);Si+1=(Sij)|(EK(Si)的高的高j位位)650FB的特点的特点u分组密码分组密码流密码流密码u没有已知的并行实现算法没有已知的并行实现算法u隐藏了明文模式隐藏了明文模式u需要共同的移位寄存器初始值需要共同的移位寄存器初始值IVIVu对于不同的消息,对于不同的消息,IVIV必须唯一必须唯一
45、u误差传递:一个单元损坏只影响对应单元误差传递:一个单元损坏只影响对应单元u对明文的主动攻击是可能的对明文的主动攻击是可能的 信息块可被替换、重排、删除、重放信息块可被替换、重排、删除、重放u安全性较安全性较CFBCFB差差66优点:优点:(1)这是将分组密码当作序列密码使用的一)这是将分组密码当作序列密码使用的一种方式,但乱数与明文和密文无关!种方式,但乱数与明文和密文无关!(2)不具有错误传播特性!)不具有错误传播特性!只要密文在传输过程中不丢信号,即使信道不只要密文在传输过程中不丢信号,即使信道不好,也能将明文的大部分信号正常恢复。好,也能将明文的大部分信号正常恢复。适用范围:适用范围:
46、(1)明文的冗余度特别大,信道不好但不易)明文的冗余度特别大,信道不好但不易丢信号,明文错些信号也不影响效果的情形。丢信号,明文错些信号也不影响效果的情形。如图象加密,语音加密等。如图象加密,语音加密等。缺点:缺点:(1)不能实现报文的完整性认证。)不能实现报文的完整性认证。(2)乱数序列的周期可能有短周期现象。)乱数序列的周期可能有短周期现象。67 总总 评:评:(1)ECB模式简单、高速,但最弱,易受重发模式简单、高速,但最弱,易受重发和替换攻击,一般不采用。和替换攻击,一般不采用。(2)CBC,CFC,OFB模式的选用取决于实际模式的选用取决于实际的特殊需求。的特殊需求。(3)明文不易丢信号,对明文的格式没有特殊)明文不易丢信号,对明文的格式没有特殊要求的环境可选用要求的环境可选用CBC模式。需要完整性认证功能时模式。需要完整性认证功能时也可选用该模式。也可选用该模式。(4)容易丢信号的环境,或对明文格式有特殊)容易丢信号的环境,或对明文格式有特殊要求的环境,可选用要求的环境,可选用CFB模式。模式。(2)不易丢信号,但信号特别容易错,但明文)不易丢信号,但信号特别容易错,但明文冗余特别多,可选用冗余特别多,可选用OFB模式。模式。683.5 流密码简介