信息安全原理与实践-第二版03 对称密钥加密.ppt

上传人:飞****9 文档编号:128090476 上传时间:2020-04-08 格式:PPT 页数:41 大小:1.87MB
返回 下载 相关 举报
信息安全原理与实践-第二版03 对称密钥加密.ppt_第1页
第1页 / 共41页
信息安全原理与实践-第二版03 对称密钥加密.ppt_第2页
第2页 / 共41页
信息安全原理与实践-第二版03 对称密钥加密.ppt_第3页
第3页 / 共41页
信息安全原理与实践-第二版03 对称密钥加密.ppt_第4页
第4页 / 共41页
信息安全原理与实践-第二版03 对称密钥加密.ppt_第5页
第5页 / 共41页
点击查看更多>>
资源描述

《信息安全原理与实践-第二版03 对称密钥加密.ppt》由会员分享,可在线阅读,更多相关《信息安全原理与实践-第二版03 对称密钥加密.ppt(41页珍藏版)》请在金锄头文库上搜索。

1、1 信息安全原理与实践 张戈译 美 MarkStamp著 InformationSecurity PrinciplesandPractice 2ndEdition 第3章对称密钥加密 2 3 1引言 本章讨论对称密钥加密技术家族的以下两个分支 并在一定程度上熟悉其内部工作原理和用途 流密码加密仅仅利用了扰乱原则 推广了一次性密码本的思想 但牺牲了一部分的可证明安全性 代表 A5 1和RC4分组密码加密可以看成经典的电报密码本加密技术的现代传承 其中由密钥来决定电报密码本的选择 代表 DES 3 3 2流密码加密 加密原理流密码加密方案使用n位长度的密钥K 并将其延展至长长的密钥流中 然后该密钥

2、流与明文P进行异或运算 生成密文C 通过神奇的异或运算 相同的密钥流可以用来从密文C恢复出明文P 密钥流的用法与一次性密码本加密方法中的密码本完全相同 数学表达StreamCipher K S其中 K是密钥 S表示生成的结果密钥流 过程 给定密钥流S S0 S1 S2 以及明文P P0 P1 P2 通过按位的异或运算即可生成密文C C0 C1 C2 加密过程 解密过程 4 3 2 1A5 1算法 密钥K的长度为64位 用于三个线性反馈移位寄存器的初始填充 A5 1算法使用3个线性反馈移位寄存器 LFSR X Y和Z 对应的操作分别为 5 寄存器X x0 x1 x18 寄存器Y y0 y1 y2

3、1 寄存器Z z0 z1 z22 6 执行X步骤 执行Y步骤 执行Z步骤 Y Y Y 该位与明文进行异或运算 加密该位与明文进行异或运算 解密 虽然看起来这样生成单独的密钥流位是种非常复杂的方式 但是A5 1算法很容易以硬件实现 并能够以与时钟速率相匹配的效率生成密钥流位 从单一的64位的密钥能够生成的密钥流位数实际上是无限的 即使最终的密钥流将会重复 A5 1加密算法的密钥流生成器如下 7 3 2 2RC4算法 加密原理本质上就是查找表 而该表包含所有可能的256个字节的值的排列 特点由于每次生成密钥流字节后 查找表就被修改使得RC4算法非常强大 因为这种持续更新 该算法的查找表以及相应的加

4、密算法自身都为密码分析者提供了移动靶 整个RC4算法就是基于字节的 该算法的第一个阶段 用密钥初始化查找表 我们将密钥表示为key i 这里i 0 1 N 1 其中每一个key i 都是一个字节 我们将查找表表示为S i 其中每一个S i 也都是一个字节 RC4算法的密钥大小可以是从1到256字节之间的任何长度 并且 该密钥仅仅用于初始化排列S 8 RC4算法初始化每个密钥流字节依据算法逐步生成的过程 9 256字节的数组K简单地被密钥重复填充 直到将数组填满 输出结果为keystreamByte 它是单字节 可用于与明文消息进行异或运算 加密时 或者与密文消息进行异或运算 解密时 RC4VS

5、A5 1RC4算法经过优化非常适合软件实现 而A5 1算法则设计用于硬件实现 RC4算法在每一步生成密钥流字节 而A5 1算法每次只生成单独的密钥流位 应用SSL协议WEP协议 10 3 3分组密码加密 原理分组密码加密方案将明文分割成固定长度的分组 并生成固定长度的密文分组 在大部分的分组密码加密方案的设计里 密文都是通过 用函数F对明文进行若干轮的迭代计算 得到的 这个函数F 依赖于前一轮计算的输出和密钥K 通常称这个函数为轮函数 不是因为函数自身的形式 而是由于它会在实施加密的过程中被重复使用多轮 种类Feistel密码DES三重DESAESTEA 11 3 3 1Feistel密码 F

6、eistel密码的命名来自分组密码加密技术的先驱HorstFeistel 这是一条加密方案设计的通用原则 而并非特定的密码方案 12 第i轮加密 Ki是第i轮的子密钥 i 1 2 n 密文C Ln Rn Feistel密码的特点该设计并不要求函数F必须是可逆的 关于Feistel密码方案的安全性的所有问题最终都归结为轮函数的问题和密钥调度的问题 密钥调度往往不是主要的问题 因此绝大部分密码分析都会聚焦于轮函数F 13 3 3 2DES DES指的是数据加密标准 DataEncryptionStandard DES算法的S box是其最重要的安全特性之一 S box 或类似的结构 是现代分组密码

7、加密方案设计的共同特征 在DES算法中 每一个S box将6个二进制位映射到4个二进制位 该算法共使用8个不同的S box 这些S box加在一起 将48个二进制位映射到32个二进制位 DES算法中的每轮计算都使用同一组S box 而其中每一个S box都被实现为一个查找表 DES是具备如下基本特性的Feistel密码方案 共16轮计算64位分组长度56位密钥48位子密钥 14 一轮DES算法 15 DES算法的轮函数F可以表示为 F Ri 1 Ki P box S boxes Expand Ri 1 Ki 轮函数F的组成包括排列扩展 附加的子密钥 S box和P box排列扩展将其输入从32

8、位扩展到48位 再用子密钥与该结果进行异或运算 然后 S box压缩48位为32位 再将结果传递给P box 将P box的输出与旧的左半部分进行异或运算 得到新的右半部分 16 DES算法中排列扩展的48位输出结果包含如下二进制位依照我们的约定 32位的输入罗列为 DES算法的8个S box中的每一个都将6个二进制位映射为4个二进制位 因此每个S box都可被视作4行16列的数组 可以半字节 4位二进制值 存储于各自的64个位置 DES算法中的第一个S box为 17 DES算法中的置换盒 也就是P box P box的置换如下密钥分配算法 生成子密钥 18 LK RK LP RP 定义 D

9、ES密钥分配算法 生成48位子密钥 19 特别说明在第一轮运算之前 DES算法对明文执行了初始的排列置换 最后一轮运算结束之后再执行其逆置换 在加密时 最后一轮运算之后对左右两部分进行互换 因此实际的密文是 R16 L16 而不是 L16 R16 DES安全性DES算法的S box中引入了非线性计算 使破解难度加大密钥长度太短 20 3 3 3三重DES 三重DES简写为3DES 是DES方案的一种变体 约定 P是明文分组 K是密钥 而C是对应的密文分组 对于DES方案 C和P都是64位 而K是56位加密C E P K 解密P D C K 对于同一密钥 加密和解密是逆运算 即 P D E P

10、K K C E D C K K 通常当K1 K2时 P D E P K1 K2 C E D C K1 K2 21 针对双重DES的中间人攻击假设Trudy选定特定的明文P并得到了相应的密文C 对于双重DES就是C E E P K1 K2 Trudy的目标是找到密钥K1和K2 Trudy首先预计算大小为256行的表 表中包含成组的值E P K 和K 其中K涵盖各种可能的密钥值 然后将这个表按值E P K 进行排序 现在用她的这个表以及密文C Trudy就可以用密钥解密C 直到她在这个表中找到值X D C 于是 基于这个表的建立方式就有某个K使得X E P K 那么Trudy现在就有如下等式D C

11、 E P K 和K都是已知的 这样 Trudy就已经发现可以通过用密钥加密等式两端来找到112位的密钥 C E E P K 由此可以得到K1 K和K2 22 双重DES算法并不比单一DES算法更加安全 三重DES定义 C E D E P K1 K2 K1 三重DES仅仅使用了两个密钥 采取 加密 解密 加密 的方式 即EDE模式 取代了 加密 加密 加密 的模式 即EEE模式 仅使用两个密钥的原因是112位密钥已经足够了 而且三个密钥并不能大幅提高安全性 如果三重DES使用的密钥K1 K2 K 那么它将蜕变为单一DES 因为 C E D E P K K K E P K 23 3 3 4AES

12、跟DES算法一样 AES算法也是一种迭代式分组加密方案 但不同的是 AES算法没有采用Feistel密码结构设计 AES基本信息 分组大小为128位 有三种密钥长度可供选择 分别是128 192 及256位 依密钥的长度不同 运算的轮次从10轮至14轮不等 每轮包含4个函数 分为3个层次 如下列出了这4个函数和相应的层次 Bytesub 非线性层 ShiftRow 线性混合层 MixColumn 非线性层 AddRoundkey 密钥添加层 24 AES算法将128位的分组看成4 4的字节数组字节替换操作应用到每个字节aij 也就是说 bij ByteSub aij 输出的bij数组如下所示

13、字节替换在AES中的地位近似于DES中的S box 可以视它为两个数学函数的非线性且可逆的组合 25 行移位操作是对4 4字节数组中每一行的字节进行循环移位接下来对4 4字节数组的每列执行列混合操作轮密钥合并操作 26 分别用于字节替换 行移位 列混合以及轮密钥合并的4个函数都是可逆的 其结果是 整个完整的算法是可逆的 于是 AES就可以用于加密和解密了 3 3 5另外三个分组密码加密算法 国际数据加密算法 IDEA theInternationalDataEncryptionAlgorithm 出自JamesL Massey之手 他是现代最伟大的密码学技术专家之一 IDEA算法最重要的创新特

14、性是对混合模运算的使用 这个算法结合了模2加法 也就是所谓的异或运算 和模216加法以及Lai Massey乘法结构 该结构几乎就相当于模216乘法 这些操作共同产生了非常必要的非线性 结果就是这里不再需要显式的S box了 BlowfishBruceSchneier最中意的加密算法之一Blowfish算法有意思的地方在于使用了与密钥相关的S box 而并非采用固定的S box 也就是说 该算法基于密钥生成其S box 实际情况表明典型的Blowfish算法的S box强度很高 RC6归功于RonRivestRC6算法的非同寻常之处在于使用了基于数据的循环移位算法 该加密算法的核心运算操作依赖

15、于数据 这是前所未有的创举 27 3 3 6TEA算法 TEA算法使用64位长度的分组和128位长度的密钥 该算法设定基于32位单词的计算结构 其中所有的操作都是内在地模232的 任何第32位之后的二进制位都会被自动地截除 计算的轮数是可变的 但是必须足够大 通常明智的做法是选择32轮以确保安全 分组密码加密算法设计在每轮运算的复杂性和需要执行的轮数之间 始终要进行一种内在的权衡 TEA加密算法的伪码如下 28 由于TEA算法不是Feistel密码结构 所以需要分别独立地加密和解密例程 TEA解密算法的伪码如下 29 3 3 7分组密码加密模式 ECB模式假设我们有多个明文分组 比如 P0 P

16、1 P2 对于固定的密钥K 分组密码加密算法就是电报密码本 因为它在明文分组和密文分组之间创建了固定的映射 按照这种电报密码本的思想 显而易见的可行方案就是以所谓的电子密码本模式 electroniccodebookmode 应用分组密码加密算法 或简称为ECB模式 加密 Ci E Pi K 其中i 0 1 2 解密 Pi D Ci K 其中i 0 1 2 30 存在严重的安全问题 31 Alice的图像 经过ECB模式加密之后的结果 新唯密文攻击 CBC模式即分组密码的链加密模式 cipherblockchainingmode 在CBC模式中 分组的密文将在下一个明文分组被加密之前用于混淆明文信息 加密Ci E PiCi 1 K 其中i 0 1 2 解密Pi D Ci K Ci 1 其中i 0 1 2 因为没有密文分组C 1 初始化向量 initializationvector 或简称为IV被用来实现相当于密文分组C 1的作用 由于密文不需要保密 因此IV扮演了类似密文分组的角色 就没必要保密 但是 IV应该是随机选择的 CBC加密模式的第一个分组如下加密 C0 E P0IV K 第

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 电子/通信 > 综合/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号