对称加密算法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

对称密码基本加密实验

【实验内容】

通过运算器工具实现DES、3DES、IDEA、AES-128/192/256、SMS4等算法的加解密计算

通过流程演示工具完成DES算法加解密运算的逐步演示和实例演示

通过轮密钥查看工具查看3DES和AES的轮密钥生成过程

查看AES算法逐步计算的动画演示

对DES、3DES、IDEA、AES-128/192/256、SMS4等算法的加解密进行扩展实验

对DES、3DES、IDEA、AES-128/192/256、SMS4等算法的加解密进行算法跟踪

对称密码基本加密实验

【实验原理】

对称密码体制使用相同的加密密钥和解密密钥,其安全性主要依赖于密钥的保密性。分组密码是对称密码体制的重要组成部分,其基本原理为:将明文消息编码后的序列m0,m1,m2,…,m i划分为长度为L(通常为64或128)位的组m=(m0,m1,m2,…,m L-1),每组分别在密钥k=(k0,k1,k2,…,k t-1)(密钥长度为t)的控制下变换成等长的一组密文输出序列c=(c0,c1,c2,…,c L-1)。分组密码的模型如图1.1.4-1所示。

012t-1012t-1

图1.1.4-1

分组密码实际上是在密钥的控制下,从一个足够大和足够好的置换子集中简单而迅速地选出一个置换,用来对当前输入的明文分组进行加密变换。现在所使用的对称分组加密算法大多数都是基于Feistel分组密码结构的,遵从的基本指导原则是Shannon提出的扩散和混乱,扩散和混乱是分组密码的最本质操作。

分组密码与流密码的对比:分组密码以一定大小的分组作为每次处理的基本单元,而流密码则以一个元素(如一个字母或一个比特)作为基本的处理单元;流密码使用一个随时间变化的加密变换,具有转换速度快、低错误传播的优点,软硬件实现简单,缺点是低扩散、插入及修改不敏感;分组密码使用的是一个不对时间变化的固定变换,具有扩散性好、插入敏感等优点,缺点是加解密处理速度慢、存在错误传播。

一、DES算法

数据加密标准(Data Encryption Standard,DES)中的算法是第一个也是最重要的现代对称加密算法,其分组长度为64比特,使用的密钥长度为56比特(实际上函数要求一个64位的密钥作为输入,但其中用到的有效长度只有56位,剩余8位可作为奇偶校验位或完全随意设置),DES加解密过程类似,加解密使用同样的算法,唯一不同的是解密时子密钥的使用

次序要反过来。DES的整个体制是公开的,系统安全性完全依靠密钥的保密。

DES的运算可分为如下三步:

(1)对输入分组进行固定的“初始置换”IP,可写为(L0,R0)=IP(输入分组),其中L0和R0

称为“(左,右)半分组”,都是32比特的分组,IP是公开的固定的函数,无明显的密码意义。

(2)将下面的运算迭代16轮(i=1,2,…,16):Li=Ri-1 ,Ri-1=Li-1f(Ri-1,ki);这里ki称为轮

密钥,是56比特输入密钥的一个48比特字串,f称为S盒函数(S表示交换),是一个代换密码,目的是获得很大程度的信息扩散。

(3)将十六轮迭代后得到的结果(L16,R16)输入到IP的逆置换来消除初始置换的影响,这

一步的输出就是DES算法的输出,即输出分组=IP-1(R16,L16),此处在输入IP-1之前,

16轮迭代输出的两个半分组又进行了一次交换。

DES的加密与解密算法都是用上述三个步骤,不同的是如果在加密算法中使用的轮密钥为k1,k2,…,k16,则解密算法中的轮密钥就应当是k16,k15,…,k1,可记为(k1`,k2`,…,k16`)=(k16,k15,…,k1)。

DES算法的一轮迭代处理过程如图1.1.4-2所示。

图1.1.4-2

DES的计算过程如图1.1.4-3所示。

图1.1.4-3

在加密密钥k 下,将明文消息m 加密为密文c ,使用DES 将c 在k 下解密为明文,解密过程如下:(L 0`,R 0`)=IP(c)=IP(IP -1(R 16,L 16)),即(L 0`,R 0`)=(R 16,L 16);在第一轮中,L 1`=R 0`=L 16=R 15,R 1`=L 0`f(R 0`,k 1`)=R 16f(L 16,k 1`)=[L 16f(R 15,k 16)]

f(R 15,k 16)=L 15,即(L 1`,R 1`)=(R 15,L 15);同样的,

在接下来的15轮迭代中,可以得到(L 2`,R 2`)=(R 14,L 14),……,(L 16`,R 16`)=(R 0,L 0);最后一轮结束后,交换L 16`和R 16`,即(R 16`,L 16`)=(L 0,R 0),IP -1(L 0,R 0)=IP -1(IP(m))=m ,解密成功。

二、 3DES 算法

DES 的一个主要缺点是密钥长度较短,同时也被认为是DES 仅有的最严重的弱点,容易遭受穷举密钥搜索攻击。克服密钥较短缺陷的一个解决方法是使用不同的密钥,多次运行DES 算法,3DES 应运而生。3DES 具有四种使用模式,其中的一种为加密-解密-加密的3DES 方案,加解密过程可表示为:

,其中

三、 IDEA 算法

1990年,瑞士联邦理工学院的中国青年学者来学嘉(Xuejia Lai )和著名密码专家James

1

2

i

16

L. Massey在EUROCRYPT 1990国际会议上提出了一个名叫PES(Proposed Encryption Standard)分组密码算法,稍后经过改进成IPES(Improved PES),并于1992年被最终定名为国际数据加密标准(International Data Encryption Algorithm,IDEA)。国际上普遍认为IDEA是继DES 之后的,又一个成功的分组密码,已经应用于Email系统的PGP(Pretty Good Privacy)、OpenPGP的标准算法以及其他加密系统中。

IDEA是一个分组密码,也是一个对合运算,明文和密文的分组长度为64比特,密钥长度为128比特。IDEA易于实现,软硬件实现都很方便,而且加解密速度很快。

(一)加密运算

IDEA中的三个运算为:

l 6位子分组的相异或;

16位整数的模216加,即;

16位整数的模216+1乘,即。

IDEA的整体结构如图1.1.4-4所示,由8轮迭代和一个输出变换组成。64位的明文分为4个子块,每块16位,分别记为。64位的密文也分为4个子块,每块16位,分别记为。128位的密钥经过子密钥生成算法产生出52个16位的子密钥,每一轮加密迭代使用6个子密钥,输出变换使用4个子密钥。记为第r轮迭代使用的第i个子密钥,。记为输出变换使用的第i个子密钥,。

每一轮的运算步骤如下:

(1)。

(2)。

(3)。

(4)。

(5)将第(1)步和第(3)步的结果异或。

(6)将第(2)步和第(4)步的结果异或。

(7)将第(5)步的结果乘以。

(8)将第(6)步和第(7)步的结果相加。

(9)将第(8)步的结果乘以。

(10)将第(7)步和第(9)步的结果相加。

(11)将第(1)步和第(9)步的结果异或。

(12)将第(3)步和第(9)步的结果异或。

(13)将第(2)步和第(10)步的结果异或。

相关文档
最新文档