1、第3章 对称密码算法分组密码:DES,3-DES,IDEA,AES序列密码:RC4对称密码体制学习要点了解对称密码体制的基本概念了解分组密码原理了解分组密码操作模式了解DES和AES两种典型的对称密码算法分组密码分组密码对分组密码算法的要求 分组长度足够大分组长度足够大密钥量足够大密钥量足够大 密码变换足够复杂密码变换足够复杂 分组密码中两个基本变换S变换(代替)和P变换(换位)SP网络网络-就是由多重S变换(代替)和P变换(换位)组合成的变换网络.分组密码原理分组密码原理 扩散和混乱是分组密码的最本质的操作扩散就是将每一位明文的影响尽可能迅速地作用到较多的输出密文位中去,以便隐藏明文的统计特
2、性-依赖P变换(换位)。 混乱是指密文和明文之间的统计特性关系尽可能地复杂化-以来S变换(替代)。 乘积密码乘积密码-指依次使用两个或两个以上的基本密码,所得结果的密码强度将强于所有单个密码的强度.乘积密码有助于实现扩散和混乱乘积密码是扩散和混乱这两种基本密码操作的组合变换.这样产生的密码系统比各自单独使用更强大.这种迭代方法在现代密码中叫Feistel结构.Feistel结构1(1,2, )iiLRin11(,)(1,2, )iiiiRLF RKinFeistel结构:数据分组的一半被用来修改数据分组的另一半,然后交换这两部分,每轮迭代结构相同,但每轮子密钥不同.S变换变换(代替)在数据的右
3、半部分左右数据交换实现P变换变换(换位)Feistel结构的实现依赖于参数: 分组长度:分组越长,安全性越高,但效率 降低,一般64或128密钥长度:密钥越长,安全性越高,目前一般是128迭代轮数:多轮加密可取得很高安全性.子密钥生成算法:子密钥生成越复杂,安全性越高.轮函数:轮函数越复杂,抗攻击就越强.数据加密标准数据加密标准DES (Data Encryption Standard )20世纪60年代末,IBM研发了一个密码算法lucifer,其分组长度为64bit,密钥128bit。DES的历史1973年,美国标准局NBS征求国家密码标准方案IBM提交该算法并被选中,经过修改1977被颁
4、布作为加密标准算法DES。 DES是应用最广泛的数据加密算法,也是密码史上第一个公开的加密算法。它的核心思想是让所有的秘密寓于密钥中。 NIST预言DES使用的寿命将在90年代末期结束,但作为加密标准一直超期服役到2000年高级加密标准AES的出现,并在民用方面仍在使用. DES算法的基本特点DES加 密DES加 密DES加 密64bit明 文密 文64bitkkkDES的加密处理略图明文处理的经过了明文处理的经过了3 3个阶段个阶段: 阶段1:64bit的明文经过初始置换IP进行比特重排,不使用密钥。 阶段2:16次的与密钥相关的密运算,置换,替代,也叫乘积变换。 阶段3:最后一次循环的结果
5、64bit经过逆初始置换IP-1,这一变换过程也不使用密钥。 K1 K2 . .56bit密钥置换选择1Co28bitDo28bit循环左移1位循环左移1位C1D1置换选择2左移1位左移1位C2C2置换选择2第一轮变换第16轮变换。初始置换IP64bit明文逆初始置换IP-164bit密文二 DES算法的主要结构 明文 二进制的转换a b c d e f g h97 98 990110 0001在算法中对比特位进行编号。1 2 3 4加密时将其打乱重排。 01100001 明文的处理 1 初始置换IP,进行比特重排每个64bit明文分组按比特位每位编号 1 2 3 4 5 6 7 8 9 10
6、 11 12 13 14 15 16 17 。 24 。 。 。 。 。 。 57 。 64 一 初始置换IP明文原58位换到第1位,原第50位换到第2位 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 。 24 。 。 。 。 。 。 57 。 641逆初始置换为什么要置换? 置换是分组密码设计的一种扩散法 (diffusion)是基于如何挫败统计分析的密码破译问题,即怎样让明文统计特性消失 多个明文bit 1 影响 。 一个密文比特 n 分组密码设计的另一种方法是 (confusion),在DES中用S盒子实现。扰乱16次乘积变换乘积变换是DES的核心,
7、一共进行16次 每次乘积变换的过程f 扩展置换 左32bit 右32bit 左32bit 右32bit 进入下次循环a替代S盒子XOR扩展置换E置换P1iiRL),(11iiiiKRFLR扩展变换E复用16位为什么要扩展置换?1 ) 3248 以便与Ki进行异或2) 安全性 扩散法 diffusion 多个明文bit影响一个密文bit a 明文统计特征消失一部分 b 扩展了输出时输入的依赖性 比如:输入有一位差异输出的密文产生相当大的差异,从而设置了密码分析的障碍即“雪崩效应”b S盒子替代 替代由8个代替盒 32 (substitution box) 扩展 s盒子完成 48Ki 每个s盒子6
8、位输入 6*8=48 S盒子 4位输出 4*8=32 32位 每个S盒子不同XOR Ki48bit 48bit分成8组,每组6位 。 32bit 每个Si盒子都是已经定义好的替代函数 (选择)S1S2S8XORS1盒的定义S11441312151183106125907015741421311061211953841148136211151297310501512824917511314100613实例1,设输入为101100 输入的第一位和最后一位对应替代函数矩阵行的指示数。 输入的中间位对应列的指示数。 1 0 1 1 0 0 1 0 列数 6行数 2 0 1 2 3 4 5 7 8 9
9、101112131415 0 144 131 2 15118 3 106 125 9 0 71 0 157 4 142 131 106 12119 5 3 8 4 1 148 136 2 1115129 7 3 105 03 15128 2 4 9 1 7 5 113 14100 6 13 转接成2进制 0010 S1的输出 其他的S盒子见参考书,(S盒子的设计愿望并未公开DES受到怀疑的原因之一,可能含有陷门)替代函数S162P置换矩阵 将S盒代替后的32进行置换:32-32密钥的生成密钥表计算产生 1 2 3 4 5 6 7 8 加密和解密所需 9 10 11 12 13 14 15 16
10、要的16个子密钥 17 。 23 24K1,K2。 25 。 31 3216的过程,64位 33 。 38 39密钥从1到64编号 41 。 47 48起作用的有56位 49 。 55 56 57 。 63 64 为奇偶校验位密码表的计算框图 设C1=c1c2。c28 D1=d1d2。d28 循环左移一位 c2c3。c28c1 d2d3。d28d1 64位密文置换选择1Co28bit循环左移D1 28bitC1 28bit循环左移循环左移Do28bit循环左移C16 28bitD16 28bit置换选择2K1 48bit置换选择2K16 48bit置换选择1:将56bit密钥分成两个28bit
11、 64bit 密钥(56bit有效)57 49 41 33 25 17 9 63 55 47 39 31 23 15Do 28bit1 58 50 42 34 26 18Co 28bit 10 2 59 51 43 35 2719 11 3 60 52 44 3621 13 5 28 20 12 414 6 61 53 45 37 297 62 54 46 38 30 22置换选择2 相当于从56bit中选出48(6*8)bit做为子密钥 28bit 28bit 48bitCiDi14 17 11 24 1 5 3 28 15 6 21 10 46 42 50 36 29 32 23 19 1
12、2 4 26 8 16 7 27 20 13 2 44 49 39 56 34 53 41 52 31 37 47 55 30 40 51 45 33 48循环左移位 轮序12345678910111213141516移位数1122222212222221DES的解密DES的解密使用与加密相同的算法,但子密钥的使用次序相反. 存在争议的地方 密钥的问题 算法的性质1,关于密钥 56bit的密钥太短 密钥空间为7.2E6 若1微妙完成1次DES加密 约1000年。 若100万个加密设备的并行机 约10小时。三:DES 的强度破译时间 1997年,用Internet网连上7万个终端,采用举式程序,
13、每台机分配一个DES密钥空间,经过96天找出了正确的密钥,这时搜索了1/4的密钥空间,尽管如此,一般来说,出了极端敏感的场合,DES仍可安全用于商业应用场合。 2,S盒子的设计标准并未公开,仅仅只透露了几条设计准则,不过,至今无人证明S盒子存在致命的缺陷。半弱密钥(semiweak key) K1。K16 不是各不相同,即16个子密钥有部分相同弱密钥(weak key) K1=K2=。=K16 (56)bit密钥 单C,D全为0或1时 置换选择1 16个子密钥完全相同 C D思考题1 DES算法的基本特征是什么(类型,分组长度,密钥长度等)2 DES的算法结构是怎样的?3 DES的每次乘积变换
14、的过程是怎样的?4 DES的密钥生成的过程是怎样的?5 请将DES编程是实现.6 什么是分组密码的Feistel结构?7 DES加密和解密完全一样吗?8 在DES算法中S1盒的输入为101011,求输出b1b6=(11)2=3 行 b2b3b4=(0101)2=5列3行5列对应9,输出为1001分组密码的操作模式分组密码的操作模式 分组密码存在多种操作方式,用于不同的场合,任何一种对称分组密码可以用这些操作模式.电子密码本(ECB)模式密码分组链接(CBC)模式计数器(CRT)模式输出反馈(OFB)模式密码反馈(CFB)模式电子密码本(electronic code book)ECB 这是最简
15、单的方式: 以分组64bit为例:明文接受64bit的分组,每个明文分组都用同一个密钥加密,每个64bit的明文分组就有一个唯一的密文.特点:同一个64bit明文分组多次出现,产生的密文就总是一样的,它可用于少量的数据加密,比如加密一个密钥,对于大报文用ECB方式就不安全.ECB模式ECBECB模式的优缺点 模式操作简单明文中的重复内容将在密文中表现出来,特别对于图像数据和明文变化较少的数据适于短报文的加密传递 密码分组链接方式CBC (cipher block chaining) 目的:同一个明文分组重复出现时产生不同的密文分组 原理: Pn 加密算法的输入 是当前的明文分组 Cn-1 和前
16、一密文分组 的异或 K 第一个明文分 组和一个初始向量 Cn 进行异或XORDES 加密初始向量 时刻t1 t2 tn IV P1 P2 PnK K K C1 C2 Cn-1 CnORDESXORXORDESDESCBC模式CBC模式的特点同一个明文分组重复出现时产生不同的密文分组加密函数的输入是当前的明文分组和前一个密文分组的异或;对每个分组使用相同的密钥。将明文分组序列的处理连接起来了。每个明文分组的加密函数的输入与明文分组之间不再有固定的关系有助于将CBC模式用于加密长消息 计数器CTR模式CTR模式的特点使用与明文分组规模相同的计数器长度 处理效率高(并行处理)预处理可以极大地提高吞吐
17、量可以随机地对任意一个密文分组进行解密处理,对该密文分组的处理与其它密文无关实现的简单性适于对实时性和速度要求较高的场合输出反馈OFB模式密码反馈CFB模式影响密码操作模式选择的因素 安全性高效性所能实现的功能 思考题:1)两个用户要在网络中安全地传输数据,根据目前所学设计一个安全方案。2)比较对称密码体制和公钥密码体制。3)如何各取所长?4)请课后查阅资料,什么是数字信封(Digital Envelop)?对称密码学扼要重述对称密码算法部分需要记住的重点:1)在对称密码学当中,同一个密钥既用于加密也用于解密。2)对称加密速度快。3)对称密码系统中密钥的个数大约是以参与者数目的平方的速度增长,
18、因此很难将它的使用扩展到大范围的人群中。4)对称密码系统需要复杂的密钥管理。5)对称密码技术不适用于数字签名和不可否认性。 关于上次课后习题:明文为data security 当k=5时采用加法密码的密文:明文序列:3 0 19 0 18 4 2 20 17 8 19 24 c=(m+5)mod 26密文序列:8,5,24,5,23,9,7,25,22,13,24,3 ifyf xjhzwnyd上题用乘法密码(明文序列同上,k=5): c=m*5mod 26密文:15 0 17 0 12 20 10 22 7 14 17 16Para mukwhorqHILL密码古典密码中单表替代密码和多表替
19、代密码单表替代密码中一个明文字母对应的密文字母是一一对应的。 如:加密、乘法密码多表替代密码:明文中的每一个字母都有多种可能的代替。如Vigenere密码、Hill密码、playfair等什么是分组密码?分组密码(Block Cipher)将明文划分成固定比特的数据组,然后以组为单位,在密钥的控制下进行一系列的变换而得到密文。也就是说分组密码一次加密一个明文块(如DES一次加密64bit),按块进行加密。而序列密码一次加密一个字符或一个位。最著名的序列密码也许就是RC4了,RC4非常快,比所有的分组密码都快。分组密码和序列密码在计算机系统中都有广泛应用。什么是对称密码?对称密码算法,为什么对称密码算法被称为对称的呢?这是因为同一个密钥用于加密也用于解密,其典型代表是美国的数据加密标准DES(Data Encryption Standard)。
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。