《物联网技术与应用:ch3 分组密码与数据加密标准》由会员分享,可在线阅读,更多相关《物联网技术与应用:ch3 分组密码与数据加密标准(37页珍藏版)》请在金锄头文库上搜索。
1、Chapter 3 分组密码与数据加密标准分组密码与数据加密标准 23.1 分组密码原理分组密码原理n流密码与分组密码的比较流密码与分组密码的比较4分组密码分组密码p将一个明文组作为将一个明文组作为整体加密整体加密且通常得到的是与且通常得到的是与之等长的之等长的密文组密文组。p典型分组大小:典型分组大小:64位或位或128位。位。p分组密码的应用范围比流密码要广泛。分组密码的应用范围比流密码要广泛。p绝大部分基于网络的对称密码应用使用的是分绝大部分基于网络的对称密码应用使用的是分组密码。组密码。分组密码分组密码5n分组密码的一般设计原理:分组密码的一般设计原理: 分分组组密密码码是是将将明明文
2、文消消息息编编码码表表示示后后的的数数字字(简简称称明明文文数数字字)序序列列,划划分分成成长长度度为为n的的组组(可可看看成成长长度度为为n的的矢矢量量),每每组组分分别别在在密密钥钥的的控控制制下下变变换成等长的输出数字(简称密文数字)序列。换成等长的输出数字(简称密文数字)序列。解密算法解密算法加密算法加密算法密钥密钥k=(k0, k1, kt-1 )密钥密钥k=(k0, k1, kt-1 )明文明文x=(x0, x1, xn-1)明文明文x=(x0, x1, xn-1)密文密文y=(y0, y1, ym-1)2024/7/30CryptographyandNetworkSecurity
3、-26/36Feistel密码结构的设计动机nFeistel密码结构的设计动机q分组密码对n比特的明文分组进行操作,产生一个n比特的密文分组,共有2n个不同的明文分组,每一种都必须产生一个唯一的密文分组,这种变换称为可逆的或非奇异的。可逆映射不可逆映射00110011011001101000100111011101Feistel密码结构的设计动机n理想分组密码2024/7/30西安电子科技大学计算机学院7缺点:n太小的话,就是单表代换n太大的话,密钥长度太长。n对策:Feistel指出我们所需要的是对应较大n的理想分组密码体制的一种近似体制而已,它可以在容易实现部件的基础上逐步建立起来。n具体
4、方法:利用乘积密码的概念来逼近简单代换密码。所得结果的密码强度将强于所有单个密码的强度。2024/7/30西安电子科技大学计算机学院9Feistel密码结构的设计动机乘积密码n乘积密码:密码长为k比特,分组为n比特,采用2k个变换,而不是理想分组密码的(2n)!个可用变化。n特别地,Feistel建议交替地使用代换和置换。这是Shannon提出的交替使用混淆混淆和扩散扩散乘积密码的实际应用。2024/7/30西安电子科技大学计算机学院102024/7/30西安电子科技大学计算机学院11q扩散(扩散(diffusion):明文的统计特征消散在密文:明文的统计特征消散在密文中,让每个明文数字尽可能
5、多地影响多个密文数中,让每个明文数字尽可能多地影响多个密文数字,使得字,使得明文和密文明文和密文之间的统计关系尽量复杂。之间的统计关系尽量复杂。q混淆(混淆(confusion):使得:使得密文密文的统计特性的统计特性与密与密钥钥的取值之间的关系尽量复杂,以阻止攻击者发的取值之间的关系尽量复杂,以阻止攻击者发现密钥。现密钥。2024/7/30CryptographyandNetworkSecurity-212/363.1.3Feistel密码结构n1973年,HorstFeistel提出了基于可逆乘积加密器概念的FeistelCipher:q将输入分组分成左右两部分,实施Shannons的su
6、bstitution-permutationnetwork概念q对左半部数据实施多回合的替代操作(substitution)q对右半部数据和子密钥应用轮函数F,其输出与左一半做异或q将这两部分进行互换(permutationswapping)2024/7/30西安电子科技大学计算机学院13Feistel 密码结构密码结构第i轮的输出:LEi=REi-1REi=LEi-1F(REi-1, ki)2024/7/30CryptographyandNetworkSecurity-214/36n分组长度:分组越长则安全性越高,但加/解密速度越低,分组长度为64位是一个合理的折衷n密钥长度:密钥越长越安全
7、,但加/解密速度越低,64位长的密钥已被证明是不安全的,128位是常用的长度n迭代次数:迭代越多越安全,通常为16次迭代n子密钥产生算法:越复杂则密码分析越困难n轮循环函数:越复杂则抗密码分析的能力越强n快速的软件加密/解密:算法的执行速度很重要n简化分析难度:算法简洁清楚,易于分析弱点,发现问题nFeistel解密算法:以密文作为算法的输入,以相反的次序使用密钥Ki,Kn、Kn1、.、K0.Feistel加密器设计原则Feistel 密码结构密码结构2024/7/30西安电子科技大学计算机学院15Feistel结构的具体实现依赖于一下安全参数:结构的具体实现依赖于一下安全参数:q分组长度分组
8、长度 q密钥长度密钥长度 q迭代迭代轮数轮数 q子密钥生成算法子密钥生成算法q轮函数轮函数Feistel密码还有两个其他方面的考虑:密码还有两个其他方面的考虑: q快速软件加解密快速软件加解密q易于分析:易于分析:DES不符合不符合Feistel 密码结构密码结构:解密:解密n规则:将密文作为算法的输入,但逆序使用子密钥kiRi-1 = Li Li-1 = Ri F(Ri-1,Ki) = Ri F(Li,Ki)2024/7/30西安电子科技大学计算机学院162024/7/30西安电子科技大学计算机学院173.3 数据加密标准数据加密标准(DES)n20世纪世纪60年代,年代,IBM公司成立了由
9、公司成立了由Horst Feistel负责的负责的计算机密码学研究项目。计算机密码学研究项目。n1971年设计出了算法年设计出了算法LUCIFER,后来给出了修订版:,后来给出了修订版:Tuchman-Meyer。n1973年,美国国家标准局年,美国国家标准局NBS征求国家密码标准方案,征求国家密码标准方案, IBM提交了该算法。提交了该算法。n1977 年正式颁布为数据加密标准(年正式颁布为数据加密标准(DES - Data Encryption Standard)。)。n1979 年,美国银行协会批准使用年,美国银行协会批准使用 DES。DES的发展历程的发展历程 n1980 年,年,DE
10、S 成为美国标准化协会成为美国标准化协会 (ANSI) 标准。标准。n1984 年,年,ISO 开始在开始在 DES 基础上制定数据加密的基础上制定数据加密的国际标准。国际标准。n美国国家安全局美国国家安全局NSA每隔年对该算法进行评估每隔年对该算法进行评估 ,1994年,决定年,决定1998年年12月之后不再使用月之后不再使用DES 。n现已经确定了选用现已经确定了选用Rijndael算法作为高级加密算法算法作为高级加密算法AES。 2024/7/30西安电子科技大学计算机学院182024/7/30西安电子科技大学计算机学院19nDES加密加密3.2 数据加密标准数据加密标准(DES)202
11、4/7/30202024/7/30212024/7/3022注意:分别对C0,D0左移位2024/7/30232024/7/3024选择扩展运算选择扩展运算E E:将输入的:将输入的32 bit Ri-1扩展成扩展成48 bit的输出,令的输出,令s表示表示E原输入数据比特的原输入数据比特的原下标,则原下标,则E的输出是将原下标的输出是将原下标s 0或或1(mod 4)的各比特重复一次得到的,即对原第的各比特重复一次得到的,即对原第32, 1, 4, 5, 8, 9, 12, 13, 16, 17, 20, 21, 24, 25, 28, 29各位都重复一次各位都重复一次,实现数据扩展。将表中
12、数实现数据扩展。将表中数据按行读出得到据按行读出得到48 bit输出。输出。2024/7/30西安电子科技大学计算机学院25S盒中不能超过152024/7/30西安电子科技大学计算机学院260101112024/7/30西安电子科技大学计算机学院272024/7/30西安电子科技大学计算机学院283.3.2 DES解密与加密算法相同,子密钥倒序。与加密算法相同,子密钥倒序。293.2.3 雪崩效应明文或密钥的微小改变将对密文生成很大的影响。这是任何加密算法需要的一个好的性质。2024/7/30西安电子科技大学计算机学院30n56密钥的使用q256=7.2x1016q1998年出现了“DES破译
13、机”n计时攻击:利用加密算法或解密算法对于不同的输入所花的时间的细微的差异。3.4 DES的强度2024/7/30西安电子科技大学计算机学院31nDES的设计准则q主要针对S盒及P函数的设计。nFeistel密码的密码强度来自于三个方面q迭代轮数n迭代轮数的选择标准是使密码分析的难度大于简单穷举攻击的难度。n16轮时,255.1255q函数F的设计n非线性度要高n较好的雪崩效应(严格雪崩效应)n独立准则3.6 分组密码的设计原理3.6 分组密码的设计原理nS盒的设计q本质上,我们希望输入向量的任何变化导致S盒的输出近乎随机的变化。qMister和Adams提出一系列S盒的设计标准:应该满足严格
14、的雪崩效应和独立准则。q【Heys95】提出S盒的一个相关设计标准:严格雪崩准则。qNyberg提出了下列方法:随机方法,随机加预测方法,人工构造方法,数学构造方法。2024/7/30西安电子科技大学计算机学院32严格雪崩准则严格雪崩准则(Strict Avalanche Criterion,SAC)是雪崩效应的形式化。它指出,当任何一个输入位被反转时,输出中的每一位均有50%的概率发生变化。严格雪崩准则建立于密码学的完全性概念上,由Webster和Tavares在1985年提出。3.6 分组密码的设计原理密钥扩展算法q没有受到向S盒那样的关注。q一般来说,子密钥的选择应该加大推导子密钥及密钥
15、的难度。qHall指出该算法至少应保证密钥和明文符合严格雪崩准则和位独立准则。2024/7/30西安电子科技大学计算机学院33位独立准则位独立准则(Bit Independence Criterion,BIC)指出,对于任意输入位i和输出位j、k,当输入位i被反转时,输出位j和k应当互不影响地独立变化。n求出用求出用DES的的8个个S盒将盒将48比特串比特串70a990f5fc36压缩置换输出的压缩置换输出的32比特串(用比特串(用16进制写出每个进制写出每个S盒的输出)。盒的输出)。n比特串比特串70a990f5fc36用二进制表示为用二进制表示为011100 001010 100110 0
16、10000 111101 011111 110000 110110,每,每6比特一组共比特一组共8组,分别用组,分别用8个个S盒变换盒变换2024/7/30西安电子科技大学计算机学院342024/7/30西安电子科技大学计算机学院35使用DES加密,明文M=(0123456789ABCDEF)16=(0000000100100011010001010110011110001001101010111100110111101111)2,密钥K=(133457799BBCDFF1)16=(0001001100110100010101110111100110011011101111001101111111110001)22024/7/30西安电子科技大学计算机学院36小结q分组密码与流密码blockvsstreamciphersqFeistel密码设计与结构design&structuren轮数,函数F,密钥扩展qDESn算法细节n密码强度q差分和线性密码分析2024/7/30西安电子科技大学计算机学院37第三章作业第三章作业n思考题:第思考题:第5,7,8题题n上机编程设计上机编程设计DES算法算法