Loading... # 分组密码(二) ## 分组密码的操作方式 分组密码如何应用于大数据文件加密? ### 电码本模式(ECB,Electronic Code Book) 将每块明文加密成相应得密码块,若最后一块不足64bit,则用一些任意二进制序列填充。 ![image-20220324201847177.png](http://xherlock.top/usr/uploads/2022/04/1193609943.png) **特点**(本质相当于一个“大的单字母替换”) * 一种最简易的工作方式 * 相同密钥作用下,密文块和明文块一一对应,**易于暴露明文固有格式** * 各密文块间**缺乏相关性**,信息块易于受到块替换攻击 ### 密码块链接模式(CBC,Cipher Block Chain) 加入**反馈机制**,当前明文块加密前要与前面的密文块进行异或(每一块的加密都依赖于所有前面的分组),因此需要接收完整数据才能加解密 **加密** ![image-20220324202604768.png](http://xherlock.top/usr/uploads/2022/04/4200698293.png) **解密** ![image-20220324202644213.png](http://xherlock.top/usr/uploads/2022/04/896979421.png) **特点** * 同一明文块产生不同的密文块(隐蔽明文数据模式,意思是明文块内容相同,但与之异或的IV或密文块不同,产生结果不同) * 有误码扩散,同时又有自同步特性(比如上图:C1传输错误,解密时M1、M2也错误,但之后的解密都不包含C1,所以会自动正确恢复) * 当所有比特块到达后才能开始编解码 ### 密码反馈模式(CFB,Cipher FeedBack) 克服CBC方式的第3个问题:采用比分组小的多的单位进行加密 特点:将分组密码转换为流密码,实现即时加密 ### 输出反馈模式(OFB,Output FeedBack) 与CFB模式相似,但是在块内部进行反馈,反馈机制**既不依赖明文也不依赖密文流**,因此又被称为内部反馈模式 特点: * 没有误码扩散,适用于传输信息长度变化较大的数据,如语音、图像等 * 比CFB更易受对消息流的篡改 * 密文与前面的明文无关 * 应用时要求一次一密(OTP,One-Time Pad) ### 计数器模式(CTR,Counter Model) ![image-20220410203945956.png](http://xherlock.top/usr/uploads/2022/04/3731691023.png) ![image-20220410203950421.png](http://xherlock.top/usr/uploads/2022/04/2614840803.png) 特点: * 具有随机访问特性:可随机解密任何密文分组(不用考虑其他密文分组) * 处理效率高:可并行处理 * 同一明文块产生不同密文块 * 可提前预处理 * 实现简单:加解密阶段都只涉及加密函数 ***ECB、CBC、CFB、OFB是美国标准与技术协会(NIST)针对DES定义的四种操作模式*** ## 其他分组密码 ### 三重DES DES密钥长度64位,实际56位,抗穷举攻击能力弱,采用多重加密来间接增加密钥长度 首先是二重DES:很难抵挡**中间相遇攻击法** $X=E_{k1}(M)=D_{k2}(C)$,如果已知明密文对,可利用中间相遇攻击方法找出正确密钥k1、k2 接着便是带有双密钥的三重DES ![image-20220410205508743.png](http://xherlock.top/usr/uploads/2022/04/2209280545.png) ![image-20220410205516965.png](http://xherlock.top/usr/uploads/2022/04/2871720311.png) ### 国际数据加密算法(IDEA,International Data Encryption Algorithm) **64bit大小的数据块和128位的密钥** **三种基本运算**实现密码算法的扩散和混淆特性: * 16bit异或 * 模$2^{16}$的16bit加法 * 模$2^{16}+1$的16bit乘法(IDEA的S盒):先进行16bit×16bit=32bit的运算,再用$2^{16}+1$取模求余 ![image-20220410210114875.png](http://xherlock.top/usr/uploads/2022/04/4110137550.png) 三种基本运算特点:任一两个运算都不满足分配律和结合律 | | IDEA | DES | | -------- | -------------------------- | ------------------------- | | 共同点 | 分组密码,分组长度64bit | 分组密码,分组长度64bit | | 不同点 | 密钥长128bit | 密钥长64bit | | | 加解密子密钥不完全相同 | 加解密密钥完全相同 | | | 可用软硬件实现,偏向软件 | | | | 非Feistel结构 | Feistel结构 | ### RC5加密算法 **对称加密算法**,特点: * 使用与软件或硬件实现 * 运算速度快 * 能适应不同字长的处理器 * 加密轮数可变 * 密钥长度可变 * RC5结构形式简单(非Feistel结构) * 对存储空间要求不高 **三个参数决定的一组加密算法**:分组64bit,加密轮数12,密钥长128bit | 参数 | **定义** | **允许值** | | ------- | ----------------------------------------------------------------- | ---------------- | | **w** | 基本字块的bit数大小。RC5加密的基本单位(分组长度)为2个基本字块 | **16, 32, 64** | | **r** | 轮数 | **1, …,255** | | **b** | 算法密钥的字节长度 | **1, …,255** | 最后修改:2022 年 04 月 10 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 0 如果觉得我的文章对你有用,请随意赞赏