现代密码学实验报告.docxVIP

  • 27
  • 0
  • 约9.79千字
  • 约 14页
  • 2021-12-10 发布于河北
  • 举报
CENTRAL SOUTH UNIVERSITY 现代密码学 实验报告 学生姓名 学 号 专业班级 计算机科学与技术 指导教师 段桂华 学 院 信息科学与工程学院 完成时间 2016年4月 实验一 密码算法实验 [ 实验目的 ] .掌握密码学中经典的对称密码算法 AES RC4的算法原理。 .掌握AES RC4的算法流程和实现方法。 [ 实验预备 ] .AES算法的基本原理和特点。 .流密码RC4的密钥流生成以及S盒初始化过程。 [ 实验内容 ] 分析AES RC4的实现过程。 用程序设计语言将算法过程编程实现。 完成字符串数据的加密运算和解密运算 输入十六进制明文: 11223344556677889900AABBCCDDEEFF 输入十六进制密钥: 13579BDF02468ACE1234567890ABCDEF [ 实验步骤 ] 预习AES RC4算法。 写出算法流程,用程序设计语言将算法过程编程实现。 输入指定的明文、密钥进行实验,验证结果。 自己选择不同的输入,记录输出结果。 写出所编写程序的流程图和运行界面、运行结果。 一、AES#法 1、AE脚法简介 AES是一种可用来保护电子数据的新型加密算法。 特别是,AES是可以使用 128、 192 和 256 位密钥的迭代式对称密钥块密码, 并且可以对 128 位( 16 个 字节) 的数据块进行加密和解密。 与使用密钥对的公钥密码不同的是, 对称密钥 密码使用同一个密钥来对数据进行加密和解密。 由块密码返回的加密数据与输入 数据具有相同的位数。 迭代式密码使用循环结构来针对输入数据反复执行排列和 置换运算。 2、算法实现及流程 以加密函数为例,如下所示,首先对密钥进行预处理密钥扩展,然后明文 进行 Nr ( Nr 与密钥长度有关)次迭代运算,包括字节替换 SubBytes、 移位行 运算ShiftRows、混合列运算 MixColumns、以及轮秘钥加密 AddRoundKey void Cipher() { int i,j,round=0; // 把明文赋值到状态数组中 for(i=0;i4;i++) for(j=0;j4;j++) state[j][i] = in[i*4 + j]; // 先与初始轮密钥相加 AddRoundKey(0); // 第一轮至( Nr-1 )轮的迭代运算,第 Nr 轮不用进行列混合运算 for(round=1;roundNr;round++) { SubBytes(); // 字节代换 ShiftRows(); // 行移位 MixColumns(); // 列混合 AddRoundKey(round); // 密钥加 } SubBytes(); ShiftRows(); AddRoundKey(Nr); // 加密结束,将机密结果填入数组 out 中以便输出 for(i=0;i4;i++) for(j=0;j4;j++) out[i*4+j]=state[j][i]; } 解密函数的流程和加密函数是一致的,只是对于行变换、列变换、以及相 关 s 盒子为加密的逆过程。 字节替换 SubBytes 是非线形置换,独立地对状态的每个字节进行。 移位行运算 ShiftRows 是将状态阵列的各行进行循环移位,不同状态行的 位移量不同。第 0 行不移动,第 1 行循环左移 C1 个字节,第 2 行循环左移 C2 个字节,第3行循环左移C3个字节。位移量C1、C2、C3的取值与Nb有关。 混合列运算MixColumns是将状态阵列的每个列视为多项式, 再与一个固定 的多项式 c(x) 进行模 x4+1 乘法。 Rijndael 的设计者给出的 c(x) 为(系数用十 六进制数表示) : c(x)= ‘03’ x3+ ‘01’ x2+ ‘01’ x+ ‘02’ 。 轮秘钥加密AddRoundKeyl1将轮密钥简单地与状态进行逐比特异或。轮密 钥由种子密钥通过密钥编排算法得到,轮密钥长度等于分组长度 Nbo 程序流程图 AESM程图 3、运行结果 首先,输入指定密钥 13579BDF02468ACE1234567890ABCDEF ,输入指定明文 11223344556677889900AABBCCDDEEFF行实验,结果如图所 示。 ■ @I 口Eh ■ @I 口Eh』aa^!Eb”| . *Edin hUfi:/7MLi Ktl2 Cdpl 二I豆▼ 由各F 2 H J AESlEPP 选择不同的输入,输入秘钥11223344556677889900AABBCCDDEEFF,明文 13579BDF02468ACE1234567890ABCD E输出结果如图所示。 *|| imi memDen ?|| * main Alih + TAE 号

文档评论(0)

1亿VIP精品文档

相关文档