试验二对称密码基本加密课案
西北师范大学计算机科学与工程学院学生实验报告 学号: 201371060113 系别计算机专业 2016 年3月13日 物联网(1) 班 专业课 课程类型 班级姓名金东海 学时数 2013 级物 联网 课程名称 实验名称 物联网信息安全实验 对称密码基本加密 实验内容:实验内容: 通过运算器工具实现 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,…,mi 划分为长度为 L(通常为 64 或 128)位的组 m=(m0,m1,m2,…,mL-1),每组分别在密钥 k=(k0,k1,k2,…,kt-1)(密钥长度为 t)的控制下变换成等长的一组密文输出序列 c=(c0,c1,c2,…,cL-1)。分 组密码的模型如图 1.1.4-1 所示。 图 1.1.4-1 分组密码实际上是在密钥的控制下,从一个足够大和足够好的置换子集中简单而迅速地选 出一个置换,用来对当前输入的明文分组进行加密变换。现在所使用的对称分组加密算法大多 数都是基于 Feistel 分组密码结构的,遵从的基本指导原则是 Shannon 提出的扩散和混乱,扩散 和混乱是分组密码的最本质操作。 分组密码与流密码的对比:分组密码以一定大小的分组作为每次处理的基本单元,而流密 码则以一个元素(如一个字母或一个比特)作为基本的处理单元; 流密码使用一个随时间变化的加 密变换,具有转换速度快、低错误传播的优点,软硬件实现简单,缺点是低扩散、插入及修改 不敏感;分组密码使用的是一个不对时间变化的固定变换,具有扩散性好、插入敏感等优点, 缺点是加解密处理速度慢、存在错误传播。 一、一、DESDES 算法算法 数据加密标准(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 下解密为明文,解密过 程如下:(L0`,R0`)=IP(c)=IP(IP-1(R16,L16)),即(L0`,R0`)=(R16,L16);在第一轮中,L1`=R0`=L16=R15, R1`=L0`f(R0`,k1`)=R16f(L16,k1`)=[L16f(R15,k16)]f(R15,k16)=L15,即(L1`,R1`)=(R15,L15);同样 的,在接下来的15 轮迭代中,可以得到(L2`,R2`)=(R14,L14),……,(L16`,R16`)=(R0,L0);最后一轮 结束后,交换 L16`和 R16`,即(R16`,L16`)=(L0,R0),IP-1(L0,R0)=IP-1(IP(m))=m,解密成功。 二、二、3DES3DES 算法算法 DES 的一个主要缺点是密钥长度较短,同时也被认为是DES 仅有的最严重的弱点,容易遭 受穷举密钥搜索攻击。克服密钥较短缺陷的一个解决方法是使用不同的密钥,多次运行DES 算 法,3DES 应运而生。3DES 具有四种使用模式,其中的一种为加密-解密-加密的 3DES 方案,加 解 密 过 程 可 表 示 为 : 。 三、三、IDEAIDEA 算法算法 , 其 中 1990 年,瑞士联邦理工学院的中国青年学者来学嘉(Xuejia Lai)和著名密码专家 James 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 位的子密钥, 每一 为第 r 轮迭代使用的第 i 个子密