当前位置:网站首页>《现代密码学》学习笔记——第三章 分组密码

《现代密码学》学习笔记——第三章 分组密码

2022-08-11 05:19:00 Unicorn_snow

一、分组密码的设计思想

1.分组密码的定义

  一个分组密码体制(P,K,C,E,D),其中P表示明文,K表示密钥,k表示出示密钥,C表示密文,E表示加密算法,D表示解密算法。有P=C={0,1}/;K={0,1}t,/表示分组长度,t表示密钥长度。加密变换:E:P×K→C,当k∈K确定时,Ek为P→C的一 一映射。解密变换:D:C×K→P,当k∈K确定时,Dk为C→P的一 一映射。Dk·Ek=1。

2.什么是AES

  在前一个数据加密标准DES被攻破之后,美国标准技术研究所(NIST)征集的新的数据加密标准——高级数据加密标准(AES)。新算法AES的分组长度为128比特,支持可变密钥长度128、192、256比特。

3.分组密码算法设计思想

(1)迭代结构(乘积密码):
  首先将密钥K编排成若干个子密钥{K1,K2,…,Kn},现有明文P和轮函数F,首先将明文P与密钥K1放进轮函数F做计算,再将计算后的结果同K2一起放入轮函数F做计算,按照此方法一直处理至第n次处理完的结果与Kn一同进轮函数做计算,得到的结果就是密文C。若果密码操作不是幂等的,那么可能多次迭代有可能提高密码体质的安全性。采用迭代结构的优点:软、硬件实现节省了代码(硬件)资源。
(2)混淆:明文/密钥和密文之间的关系复杂;扩散:明文/密钥的每一个比特都影响密文的每一个比特。

4.DES算法概述

(1)明文和密文分组长度为64比特。
(2)算法包含迭代加解密和密钥编排两部分。
(3)Feistel结构(加解密相似):加密和解密除密钥编排不同外,完全相同。
(4)密钥长度:56比特(DES的密钥空间是256),每7比特后为一个奇偶校验位(第8位),共64位。
(5)轮函数采用混淆和扩散的组合,共16轮。

5.AES算法概述

(1)明文分组长度(128比特)和密文分组(128比特/192比特/256比特)可变长度。
(2)SPN结构:轮函数包含代换层-置换层-密钥混合层。
(3)密钥长度:128比特(密钥空间是2128)。
(4)迭代10轮。

二、DES

1.Feistel结构

  按照下述规则进行16次迭代,即1≤i≤16,
    Li=Ri-1
    Ri=Li-1 ⊕ f(Ri-1,Ki )
  这里f是一个函数,称为轮函数,16个长度为48比特的子密钥Ki(1≤i≤16) 是由密钥k经密钥编排函数计算出来的。

2.密钥编排算法

  PC-1:给定64比特密钥K,根据固定置换PC-1来处理K得到PC-1(K)=C0D0,其中C0和D0分别由最前和最后28比特组成。计算C i=LSi(Ci-1)和LSi(Di-1),且Ki=PC-2(CiDi),LSi表示循环左移两个或一个位置,具体就是说如果i=1,2,9,16就移动一个位置,否则就移动两个位置,PC-2是另一个固定的置换。

3.DES安全增强

  Triple-DES
  令E:K×M→M是一个分组密码,定义3E:K3×M→C,密钥长度=3*56=168bits(穷举攻击复杂度≈2118

原网站

版权声明
本文为[Unicorn_snow]所创,转载请带上原文链接,感谢
https://blog.csdn.net/YSL_Lsy_/article/details/125481679