1、什么是对称密码体制,分析DES算法及其应用模式主讲人:黄鑫小组成员:孔黎明 李东旭 黄鑫目录1235DES算法对称密码体制应用模式DES问题讨论问题讨论4 DES的变形的变形1对称密码体制密码体制是指实现加密和解密的密码方案,从使用密码策略上,可分为对称密码体制(Symmetric Key Cryptosystem)和非对称密码体制(Asymmetric Key Cryptosystem)。在对称密码体制中,使用的密钥必须完全保密,且要求加密密钥和解密密钥相同,或由其中的一个可以很容易地推出另一个。对称密码体制根据对明文的加密方式的不同而分为分组密码和流密码。分组密码先按一定长度(如64字节、
2、128字节等)对明文进行分组,以组为单位加/解密流密码则不进行分组,而是按位加密。 对称密码体制对称密码体制加密算法加密算法信道信道解密算法解密算法明文明文密文密文明文明文密钥密钥加密密钥加密密钥解密密钥解密密钥相同或者可以互相推出相同或者可以互相推出优点:加密或解密运算速度快,加密强度高,并且算法公开优点:加密或解密运算速度快,加密强度高,并且算法公开缺点:密钥分发困难,更新周期长,不便于管理缺点:密钥分发困难,更新周期长,不便于管理常见算法:常见算法:DESDES、IDEAIDEA、AESAES等等22DES算法(Data Encryption Standard) DES是分组长度为64比
3、特的分组密码算法,密钥长度也是64比特,其中每8比特有一位奇偶校验位,因此有效密钥长度为56比特。DES算法是公开的,其安全性依赖于密钥的保密程度。DES结构框图如图2.1。图图2.1 DES2.1 DES加密算法框图加密算法框图输入输入6464比特明文数据比特明文数据初始置换初始置换IPIP在密钥控制下在密钥控制下1616轮迭代轮迭代交换左右交换左右3232比特比特 初始逆置换初始逆置换IP-1IP-1输出输出6464比特密文数据比特密文数据左图为左图为DES加密算法执行过程,加密算法执行过程,解解密使用与加密同样的算法密使用与加密同样的算法 ,只是子,只是子密钥的使用次序相反。密钥的使用次
4、序相反。其中其中迭代变迭代变换是换是DES算法的核心部分且较为复算法的核心部分且较为复杂,在此单独做出介绍。杂,在此单独做出介绍。在每轮开始将输入的在每轮开始将输入的64比特数据分比特数据分成左、右长度相等的两半,将成左、右长度相等的两半,将右半右半部分部分原封不动地作为本轮输出的原封不动地作为本轮输出的64比特数据的比特数据的左半部分左半部分,同时对,同时对右半右半部分进行一系列的变换部分进行一系列的变换,即用轮函,即用轮函数作用右半部分,然后将所得结果数作用右半部分,然后将所得结果(32比特数据)与输入数据的左半比特数据)与输入数据的左半部分进行逐位异或,将所得数据作部分进行逐位异或,将所
5、得数据作为本轮输出的为本轮输出的64比特数据的右半部比特数据的右半部分。分。图图2.2 DES2.2 DES的一轮迭代的一轮迭代Ri-1(32比比特)特)选择扩展运算选择扩展运算E48比特寄存比特寄存器器48比特寄存比特寄存器器选择压缩运算选择压缩运算S32比特寄存比特寄存器器置换运算置换运算PLi-1(32比特)比特)子密钥子密钥Ki(48比特)比特)Ri(32比比特)特)Li(32比特)比特)Li=Ri-1Ri=Li-1 F(Ri-1,Ki)轮函数轮函数F k1 ( 5 6 位 ) (4 8 位 ) ki ( 5 6 位 ) ( 4 8 位 ) 6 4 位 密 钥置 换 选 择1 C0(
6、2 8 位 ) D0( 2 8 位 ) 循 环 左 移循 环 左 移 C1( 2 8 位 ) D1( 2 8 位 ) 循 环 左 移循 环 左 移 Ci( 2 8 位 ) Di( 2 8 位 )置 换 选 择2置 换 选 择2密 钥 表 的 计 算 逻 辑循 环 左 移 :1 1 9 12 1 1 0 23 2 11 24 2 1 2 25 2 1 3 26 2 1 4 27 2 1 5 28 2 1 6 1DES中的子密钥的生成中的子密钥的生成DES加解密过程令i表示迭代次数,表示异或,f为加密函数。DES的加密和解密过程表示如下。加密过程:解密过程:)(6416,2, 1),(16,2,
7、1)64(1616111100LRIPbitikRfLRiRLbitIPRLiiiiii密文输入码)(641 ,15,16),(1 ,15,16)64(0011161611LRIPbitikRfRLiLRbitIPLRiiiiii明文密文3DES问题讨论问题讨论其他性质2 2)完全效应)完全效应 指密文中的每个比特都由明文的许多比特决定。指密文中的每个比特都由明文的许多比特决定。由由DESDES中的扩展和中的扩展和S S盒产生的扩散和混淆作用表明了强烈盒产生的扩散和混淆作用表明了强烈的完全效应。的完全效应。1)雪崩效应)雪崩效应 明文中的一个小变动将会引起密文的显著变化。明文中的一个小变动将会
8、引起密文的显著变化。已经证明,已经证明,DES具有强烈的雪崩效应。具有强烈的雪崩效应。 例:对两个只有一个比特的不同明文分组进行加例:对两个只有一个比特的不同明文分组进行加密(用同样的密钥),观察每轮加密后比特数的不同。密(用同样的密钥),观察每轮加密后比特数的不同。明文:明文:0000000000000000 密钥:密钥:22234512987ABB23密文:密文:4789FD476E82A5F1 明文:明文:0000000000000001 密钥:密钥: 22234512987ABB23密文:密文:0A4ED5C15A63FEA3设计标准2 2、设计标准、设计标准(1 1)S S盒的设计盒
9、的设计 每一行的元素都是从每一行的元素都是从0-150-15的置换。的置换。 S S盒是非线性的。盒是非线性的。 如果改变输入的一个比特,输出中的两个或更多比特会改变。如果改变输入的一个比特,输出中的两个或更多比特会改变。 如果一个如果一个S S盒的两个输入只有中间两个比特不同(第盒的两个输入只有中间两个比特不同(第3 3和第和第4 4个比特),输出中至少有两个比特个比特),输出中至少有两个比特不同。不同。 如果一个如果一个S S盒的两个输入开头的两个比特不同(第盒的两个输入开头的两个比特不同(第1 1和第和第2 2比特),且最后两个比特相同(第比特),且最后两个比特相同(第5 5和和第第6
10、6),则输出一定不同。),则输出一定不同。 最后三个输出比特得到的方式与第一个比特相同,都是补充一些它的输入比特。最后三个输出比特得到的方式与第一个比特相同,都是补充一些它的输入比特。 在两个特定的对在两个特定的对S盒排列的输入可以构造出相同的输出。盒排列的输入可以构造出相同的输出。 只改变相邻的只改变相邻的S盒的比特在单轮加密中可能出现箱体的输出。盒的比特在单轮加密中可能出现箱体的输出。(2 2)初始置换和扩展置换初始置换和扩展置换 不清楚为什么不清楚为什么DES的设计者采用初始和最终置换,这没有安全益处。的设计者采用初始和最终置换,这没有安全益处。 在扩展置换中,每在扩展置换中,每4个比特
11、序列的第一个和第四个会重复。个比特序列的第一个和第四个会重复。3 3、其他、其他(1 1)密钥中的长度缺陷)密钥中的长度缺陷 关于DES算法的另一个最有争议的问题就是担心实际56比特的密钥长度不足以抵御穷举式攻击,因为密钥量只有2561017个。用现有的技术,一秒钟可以检查一百万各密钥。如果能够制造出一台拥有一百万各芯片的电脑,我们可以在约20小时内测试完成整个密钥域。 1998年7月电子前沿基金会(EFF)使用一台25万美元的电脑在56小时内破译了56比特密钥的DES。 1999年1月RSA数据安全会议期间,电子前沿基金会用22小时15分钟就宣告破解了一个DES的密钥。 一个带有一个带有56
12、56个比特密钥密码的个比特密钥密码的DESDES还不是足够安全的。还不是足够安全的。(2 2)S S盒的安全问题盒的安全问题 有人认为有人认为s s盒可能存在陷门,但至今没有迹象表明盒可能存在陷门,但至今没有迹象表明s s盒中存在陷门。盒中存在陷门。由于由于DESDES算法完全公开,其安全性完全依赖于对密钥的保护,必须有可靠算法完全公开,其安全性完全依赖于对密钥的保护,必须有可靠的信道来分发密钥。如采用信使递送密钥等。因此,它不适合在网络环的信道来分发密钥。如采用信使递送密钥等。因此,它不适合在网络环境下单独使用。境下单独使用。1.两重两重DES DES的变形的变形双重DES密钥长度为112b
13、it,密码强度似乎增强了一倍,但问题并非如此。双重DES易受中途攻击C=EK2(EK1(P)P=DK1(DK2(C)42.三重三重DES(以被广泛采用)(以被广泛采用)优点:优点:能对付中途攻击能对付中途攻击。密钥长度为。密钥长度为168bit 即用两个56位的密钥K1、K2,发送方用K1加密,K2解密,再使用K1加密。接收方则使用K1解密,K2加密,再使用K1解密,其效果相当于将密钥长度加倍。5应用模式电子密码本电子密码本 ECB (electronic codebook ECB (electronic codebook mode)mode)密码分组链接密码分组链接 CBC (cipher
14、block chaining)CBC (cipher block chaining)密码反馈密码反馈 CFB (cipher feedback)CFB (cipher feedback)输出反馈输出反馈 OFB (output feedback)OFB (output feedback)这四种工作模式适用于不同的应用需求这四种工作模式适用于不同的应用需求 5.1电码本模式(电码本模式(ECB) ECB (Electronic Codebook)模式是最简单的运行模式,它一次对一个模式是最简单的运行模式,它一次对一个64比特长的比特长的明文分组加密,而且每次的加密密钥都相同,如图所示明文分组加密
15、,而且每次的加密密钥都相同,如图所示 。当密钥取定时,对每一个。当密钥取定时,对每一个明文组,都有一个惟一的密文组与之对应。明文组,都有一个惟一的密文组与之对应。Ci = EK(Pi) Pi = DK(Ci)ECB的特点的特点ECBECB用于短数据(如加密密钥)是非常理想,长消息不够安全用于短数据(如加密密钥)是非常理想,长消息不够安全u简单、有效简单、有效u可以并行实现可以并行实现u不能隐藏明文的模式信息不能隐藏明文的模式信息u相同明文相同明文生成生成相同密文,相同密文,同样信息多次出现造成泄漏同样信息多次出现造成泄漏u对明文的主动攻击是可能的对明文的主动攻击是可能的u信息块可被替换、重排、
16、删除、重放信息块可被替换、重排、删除、重放u误差传递:密文块损坏误差传递:密文块损坏仅仅对应明文块损坏对应明文块损坏u适合于传输短信息适合于传输短信息 典型应用:典型应用:(1)用于随机数的加密保护;)用于随机数的加密保护; (2)用于单分组明文的加密。)用于单分组明文的加密。优点优点:(1) 实现简单实现简单; (2) 不同明文分组的加密可并行实施不同明文分组的加密可并行实施,尤其是硬件实现时速度尤其是硬件实现时速度很快很快.缺点:缺点:不同的明文分组之间的加密独立进行不同的明文分组之间的加密独立进行,故保留了单表故保留了单表代替缺点代替缺点,造成相同明文分组对应相同密文分组造成相同明文分组
17、对应相同密文分组,因而不能隐蔽明文因而不能隐蔽明文分组的统计规律和结构规律分组的统计规律和结构规律,不能抵抗替换攻击不能抵抗替换攻击. 敌手敌手C通过截收从通过截收从A到到B的加密消息,只要将第的加密消息,只要将第5至第至第12分组替换为自己分组替换为自己的姓名和帐号相对应的密文,即可将别人的存款存入自己的帐号。的姓名和帐号相对应的密文,即可将别人的存款存入自己的帐号。例例: 假设银行假设银行A和银行和银行B之间的资金转帐系统所使用报文模式如下:之间的资金转帐系统所使用报文模式如下:例:假定伊夫每月工资非常低,她知道公司对每一个雇员都使用几个信息分组,这里第七个分组就是存入该雇员帐户的钱数。伊
18、夫可以在月底拦截送往银行的密文,然后复制一个全职雇员的工资信息分组,并用这个分组替换她自己的工资信息分组,这样伊夫每月都可以得到比应得报酬多的钱。 为了克服为了克服ECB的安全性缺陷,我们希望设计一个工作模式的安全性缺陷,我们希望设计一个工作模式,可以使得可以使得当同一个明文分组重复出现时产生不同的密文分组。一个简单的方当同一个明文分组重复出现时产生不同的密文分组。一个简单的方法是密码分组链接,从而使输出不仅与当前输入有关,而且与以前法是密码分组链接,从而使输出不仅与当前输入有关,而且与以前输入和输出有关。输入和输出有关。 5.2 密码分组链接模式(密码分组链接模式(CBC) 为了克服为了克服
19、ECB的缺陷,希望设计一种方案使同一明文分组重复出的缺陷,希望设计一种方案使同一明文分组重复出现时产生的密文分组不同。一种简单的方案就是密码分组链接现时产生的密文分组不同。一种简单的方案就是密码分组链接(Cipher Block Chaining)模式。模式。每次加密使用同一密钥,加密算法的输入是当每次加密使用同一密钥,加密算法的输入是当前明文与前一次密文组的异或。前明文与前一次密文组的异或。因此加密算法的输入与明文分组之间因此加密算法的输入与明文分组之间不再有固定的关系,所以重复的明文分组不会在密文中暴露。不再有固定的关系,所以重复的明文分组不会在密文中暴露。图图4.15 CBC模式(加密)
20、模式(加密)加密加密P1VIKC1n比特比特n比特比特加密加密P2KC2n比特比特n比特比特加密加密PNCN-1KCNn比特比特n比特比特1. 明文块的统计特性得到了隐蔽。明文块的统计特性得到了隐蔽。 由于在密文由于在密文CBCCBC模式中,各密文块不仅与当前明文块有关,而且还模式中,各密文块不仅与当前明文块有关,而且还与以前的明文块及初始化向量有关,从而使明文的统计规律在密文中得与以前的明文块及初始化向量有关,从而使明文的统计规律在密文中得到了较好的隐蔽。到了较好的隐蔽。2. 具有有限的具有有限的(两步两步)错误传播特性。错误传播特性。 一个密文块的错误将导致两个密文块不能正确脱密一个密文块
21、的错误将导致两个密文块不能正确脱密.3. 具有自同步功能具有自同步功能 密文出现丢块和错块不影响后续密文块的脱密密文出现丢块和错块不影响后续密文块的脱密.若从第若从第t块起密文块块起密文块正确正确,则第则第t+1个明文块就能正确求出个明文块就能正确求出.q安全问题安全问题相同明文:相同明文:在相同密钥和在相同密钥和VI 下,加密相同的明文会得到相同密文分组。下,加密相同的明文会得到相同密文分组。链接依赖性:链接依赖性:链接机制致使密文链接机制致使密文Ci依赖于依赖于Pi以及所有前面的明文分组,重排密文的顺序会影响以及所有前面的明文分组,重排密文的顺序会影响到解密。到解密。错误传播:错误传播:解
22、密时,密文分组解密时,密文分组Ci中一个单比特错误会影响到其他分组;加密时,修改一个明文中一个单比特错误会影响到其他分组;加密时,修改一个明文分组会改变以后所有密文分组。分组会改变以后所有密文分组。 当密文分组当密文分组Ci中一个单比特错误时,解密结果受影响的分组是哪些?中一个单比特错误时,解密结果受影响的分组是哪些? 密文分组密文分组Ci中一个单比特错误会影响到明文分组中一个单比特错误会影响到明文分组Pi中大部分比特的错误,只对明文分组中大部分比特的错误,只对明文分组Pi+1中的一个比特(相同位置)起作用。单个错误对从中的一个比特(相同位置)起作用。单个错误对从Pi+2到明文到明文PN的明文
23、分组没有影响。的明文分组没有影响。 典型应用: (1) 数据加密; (2) 完整性认证和身份认证; 例:例: 电脑彩票的防伪技术电脑彩票的防伪技术 -彩票中心检查兑奖的电脑彩票是否是自己发行的彩票中心检查兑奖的电脑彩票是否是自己发行的 方法:方法: (1)选择一个分组密码算法和一个认证密钥,将他们存于售票机内;)选择一个分组密码算法和一个认证密钥,将他们存于售票机内; (2)将电脑彩票上的重要信息,如彩票期号、彩票号码、彩票股量、售票单位代号等重要信息按某个约定的规)将电脑彩票上的重要信息,如彩票期号、彩票号码、彩票股量、售票单位代号等重要信息按某个约定的规则作为彩票资料明文;则作为彩票资料明
24、文; (3)对彩票资料明文扩展一个校验码分组后,利用认证密钥和分组密码算法对之加密,并将得到的最后一个分)对彩票资料明文扩展一个校验码分组后,利用认证密钥和分组密码算法对之加密,并将得到的最后一个分组密文作为认证码打印于彩票上面;组密文作为认证码打印于彩票上面; 认证过程:认证过程: 执行(执行(3),并将计算出的认证码与彩票上的认证码比较,二者一致时判定该彩票是真彩票,否则判定该彩票是假并将计算出的认证码与彩票上的认证码比较,二者一致时判定该彩票是真彩票,否则判定该彩票是假彩票。彩票。5.3 密码反馈模式密码反馈模式(CFB) 若待加密的消息必须按字符(如电传电报)处理时,可以采用若待加密的
25、消息必须按字符(如电传电报)处理时,可以采用CFB (Cipher Feedback)模式或模式或OFB (Output Feedback)模式,这样做事实上将模式,这样做事实上将DES转换成为流密码。流密码不需要对消息填充,而且运行是实时的。转换成为流密码。流密码不需要对消息填充,而且运行是实时的。因此如果传送字母流,可使用流密码对每个字母直接加密并传送。因此如果传送字母流,可使用流密码对每个字母直接加密并传送。6464比特比特6464-j -j比特比特6464比特比特加密加密j j比特比特j j比特比特左移左移j j比特比特 6464-j -j比特比特( (丢弃)丢弃) Ci1K.6464
26、比特移位寄存器比特移位寄存器6464-j -j比特比特j j比特比特6464比特比特加密加密j j比特比特6464-j -j比特比特( (丢弃)丢弃)Ci左移左移j j比特比特Ci-1K.Pi+1Pi6464比特比特加密加密j j比特比特6464-j -j比特比特( (丢弃)丢弃).K:ViC1:图图4.164.16密码反馈模式加密过程密码反馈模式加密过程P16464比特比特6464-j -j比特比特6464比特比特加密加密j j比特比特j j比特比特左移左移j j比特比特 6464-j -j比特比特( (丢弃)丢弃) 6464比特移位寄存器比特移位寄存器6464-j -j比特比特j j比特比
27、特6464比特比特加密加密j j比特比特6464-j -j比特比特( (丢弃)丢弃)Ci左移左移j j比特比特Ci-1K.Pi6464比特比特加密加密j j比特比特6464-j -j比特比特( (丢弃)丢弃).K:ViC1.Ci+1Pi+1P1图图4.17 CFB4.17 CFB模式模式解密过程解密过程:Kq安全问题安全问题相同明文相同明文: :同同CBCCBC。链接依赖:链接依赖:密文分组的正确性依赖于其前面所有明文分组的正确性,密文密文分组的正确性依赖于其前面所有明文分组的正确性,密文分组正确解密要求之前分组正确解密要求之前n/rn/r个密文组也正确。个密文组也正确。错误传播:错误传播:传
28、输过程中密文分组传输过程中密文分组CiCi的一个单比特错误就可以在明文分组的一个单比特错误就可以在明文分组PiPi中产生一个单笔特错误(相同位置上)。只要中产生一个单笔特错误(相同位置上)。只要CiCi中的一些比特还在移位寄中的一些比特还在移位寄存器中,接下来的明文分组中的大多数比特都是错误的(存器中,接下来的明文分组中的大多数比特都是错误的(50%50%的概率)。的概率)。错误恢复错误恢复: :自同步,需要自同步,需要n/rn/r个分组才能恢复个分组才能恢复吞吐量:吞吐量:降低了加密速度。降低了加密速度。5.4 输出反馈模式(输出反馈模式(OFB) OFB (Output Feedback)
29、 模式在结构上类似于模式在结构上类似于CFB ,如图所示,如图所示 。不同之处是。不同之处是OFB模式将加密算法的输出反馈到移位寄存器,而模式将加密算法的输出反馈到移位寄存器,而CFB模式是将密文单元反馈到移位寄存器。模式是将密文单元反馈到移位寄存器。 64-j比特比特(丢弃)丢弃)Pi164比特比特64-j比特比特64比特比特加密加密j比特比特j比特比特左移左移j比特比特 64-j比特比特(丢弃)丢弃) K.64比特移位寄存器比特移位寄存器64-j比特比特j比特比特64比特比特加密加密j比特比特64-j比特比特(丢弃)丢弃)Pi左移左移j比特比特K.Ci+1Ci64比特比特加密加密j比特比特
30、.K:VIP1(b) 加密加密C1图图4.18 OFB4.18 OFB模式模式64比特比特64-j比特比特64比特比特加密加密j比特比特j比特比特左移左移j比特比特 64-j比特比特(丢弃)丢弃) K.64比特移位寄存器比特移位寄存器64-j比特比特j比特比特64比特比特加密加密j比特比特64-j比特比特(丢弃)丢弃)Ci左移左移j比特比特Ci-1K.Pi+1Pi64比特比特加密加密j比特比特64-j比特比特(丢弃)丢弃).K:VIC1(b) 解密解密P1Ci1图图4.18 OFB4.18 OFB模式模式特点:特点: 与与 CFB模式相比,模式相比,OFB模式的优点是传输过程中的比特错误不会模
31、式的优点是传输过程中的比特错误不会被传播。被传播。例如例如C1中出现一比特错误,在解密结果中只有中出现一比特错误,在解密结果中只有P1受影响,以受影响,以后各明文单元则不受影响后各明文单元则不受影响 。 OFB模式的缺点是难于检测密文是否被篡改。模式的缺点是难于检测密文是否被篡改。如在密文中取如在密文中取 1比比特的补特的补 ,那么在恢复的明文中相应位置的比特也为原比特的补。因此,那么在恢复的明文中相应位置的比特也为原比特的补。因此敌手有可能通过对数据部分和校验部分同时进行篡改,导致纠错码无敌手有可能通过对数据部分和校验部分同时进行篡改,导致纠错码无法检测。法检测。 总总 评:评: (1)EC
32、B模式简单、高速,但最弱,易受重发和替换攻击,一般模式简单、高速,但最弱,易受重发和替换攻击,一般不采用。不采用。 (2)CBC,CFC,OFB模式的选用取决于实际的特殊需求。模式的选用取决于实际的特殊需求。 (3)明文不易丢信号,对明文的格式没有特殊要求的环境可选用)明文不易丢信号,对明文的格式没有特殊要求的环境可选用CBC模式。需要完整性认证功能时也可选用该模式。模式。需要完整性认证功能时也可选用该模式。 (4)容易丢信号的环境,或对明文格式有特殊要求的环境,可选)容易丢信号的环境,或对明文格式有特殊要求的环境,可选用用CFB模式。模式。 (5)不易丢信号,但信号特别容易错,但明文冗余特别多,可选)不易丢信号,但信号特别容易错,但明文冗余特别多,可选用用OFB模式。模式。谢谢观看