AES加密算法实验报告.docx
《AES加密算法实验报告.docx》由会员分享,可在线阅读,更多相关《AES加密算法实验报告.docx(15页珍藏版)》请在课桌文档上搜索。
1、实 验 报 告 _专业: _第 10 周课程名称密码学与网络安全实验课时实验项目AES加密算法实验时间实验目的完成AES加密算法,实现图片加密与解密,并将加密后的结果以图片格式保存.实验环境PC机,Windows7操作系统,Visual C+ 6.0实验内容算法、程序、步骤和方法一、 简介美国国家标准技术研究所在2001年发布了高级加密标准AES.AES是一个对称加密算法,旨在取代DES成为广泛使用的标准.AES中的所有运算都是在8为的字节上运行的.特别饿,加减乘除算术都是在有限域GF上运行的.二、 程序特点本次试验中要求对图片进行加密与解密,并将加密结果以图片格式进行保存.因此为了实现对图片
2、的调度与保存,使用头文件atlimage.h进行对图片的操作,实现对图片的像素读取,图片的保存.在程序运行读取需要加密的图片时,需要进行图片的选取,本次实验中使用在弹窗中选取文件的方式,使用头文件mdlg.h来实现在文件夹中选择需要的文件的选取.三、 加密算法流程AES加密算法流程如下字节代替:用一个S盒完成分组的字节到字节的代替;行移位:进行一次行上的置换;列混合:利用有限域GF上的运算特性的一个代替;轮密钥加:当前分组和扩展密钥的一部分进行按位异或.四、 代码实现cryptograph.h#include#includeclassplaintextpublic:plaintext;stat
3、icvoid createplaintext;staticvoid SubBytes;staticvoid inSubBytes;staticvoid ShiftRows;staticvoid inShiftRows;staticvoid MatrixToByte;staticvoid inMatrixToByte;staticunsignedchar FFmul;staticvoid KeyAdding;staticvoid KeyExpansion;plaintext;private:;cryptograph.cpp#includecryptography.husingnamespace
4、std;staticunsignedchar sBox = ;/定义加密S盒/unsignedchar insBox256 =;/定义解密S盒plaintext:plaintextvoidplaintext:createplaintext/创建明文int i = 0;unsignedint p16;for int j = 0; jif break;for ; ipi = ai;ai = ai + 16;voidplaintext:SubBytes/字节变换函数unsignedchar b16;for int i = 0; ibi = sBoxpi;voidplaintext:inSubByte
5、s/逆字节变换函数unsignedchar b16;for int i = 0; ibi = insBoxpi;voidplaintext:ShiftRows/行移位变换函数unsignedchar t4;for int i = 1; ifor int x = 0; xtx = ex + i * 4;for int y = 0; ye % 4 + i * 4 = ty;voidplaintext:inShiftRows/逆行移位变换函数unsignedchar t4;for int i = 1; ifor int x = 0; xtx = ex + i * 4;for int y = 0; y
6、e % 4 + i * 4 = ty;voidplaintext:MatrixToByte/列混合变换函数unsignedchar t4;int r, c;for c = 0; cfor r = 0; rtr = er * 4 + c;for r = 0; rer * 4 + c = FFmul FFmul0x03, t % 4 FFmul0x01, t % 4 FFmul0x01, t % 4;voidplaintext:inMatrixToByte/逆列混合变换函数unsignedchar t4;int r, c;for c = 0; cfor r = 0; rtr = er * 4 +
7、c;for r = 0; rer * 4 + c = FFmul FFmul0x0b, t % 4 FFmul0x0d, t % 4 FFmul0x09, t % 4;unsignedcharplaintext:FFmulunsignedchar bw4;unsignedchar res = 0;int i;bw0 = b;for i = 1; ibwi = bwi - 1 1;if bwi = 0x1b;for i = 0; iif i & 0x01res = bwi;return res;voidplaintext:KeyAdding/轮密钥加int r, c;for c = 0; cfo
8、r r = 0; rstater + c * 4 = krc;voidplaintext:KeyExpansion/密钥扩展int i, j, r, c;unsignedchar rc = 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36 ;for r = 0; rfor c = 0; cw0rc = keyr + c * 4;for i = 1; i for j = 0; junsignedchar t4;for r = 0; rtr = j ? wirj - 1 : wi - 1r3;if unsignedchar tem
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- AES 加密算法 实验 报告

链接地址:https://www.desk33.com/p-19864.html