AES加密算法实验报告

AES加密算法实验报告

ID:38120536

大小:1.41 MB

页数:14页

时间:2019-06-06

AES加密算法实验报告_第1页
AES加密算法实验报告_第2页
AES加密算法实验报告_第3页
AES加密算法实验报告_第4页
AES加密算法实验报告_第5页
资源描述:

《AES加密算法实验报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、四川大学计算机学院、软件学院实验报告学号:姓名:专业:班级:第10周课程名称密码学与网络安全实验课时2实验项目AES加密算法实验时间2015.5.7实验目的完成AES加密算法,实现图片加密与解密,并将加密后的结果以图片格式保存。实验环境PC机,Windows7操作系统,VisualC++6.0实验内容(算法、程序、步骤和方法)一、简介美国国家标准技术研究所在2001年发布了高级加密标准(AES)。AES是一个对称加密算法,旨在取代DES成为广泛使用的标准。AES中的所有运算都是在8为的字节上运行的。特别饿,加减乘除算术都是在有限域GF(28)上

2、运行的。二、程序特点本次试验中要求对图片进行加密与解密,并将加密结果以图片格式进行保存。因此为了实现对图片的调度及保存,使用头文件atlimage.h进行对图片的操作,实现对图片的像素读取,图片的保存。在程序运行读取需要加密的图片时,需要进行图片的选取,本次实验中使用在弹窗中选取文件的方式,使用头文件commdlg.h来实现在文件夹中选择需要的文件的选取。三、加密算法流程AES加密算法流程如下字节代替:用一个S盒完成分组的字节到字节的代替;行移位:进行一次行上的置换;列混合:利用有限域GF(28)上的运算特性的一个代替;轮密钥加:当前分组和扩展

3、密钥的一部分进行按位异或。一、代码实现cryptograph.h#include#includeclassplaintext{public:plaintext();staticvoidcreateplaintext(unsignedchara[]);staticvoidSubBytes(unsignedcharp[16]);staticvoidinSubBytes(unsignedcharp[16]);staticvoidShiftRows(unsignedchare[]);staticvoidinShift

4、Rows(unsignedchare[]);staticvoidMatrixToByte(unsignedchare[]);staticvoidinMatrixToByte(unsignedchare[]);staticunsignedcharFFmul(unsignedchara,unsignedcharb);staticvoidKeyAdding(unsignedcharstate[16],unsignedchark[][4]);staticvoidKeyExpansion(unsignedchar*key,unsignedcharw[][

5、4][4]);~plaintext();private:};cryptograph.cpp#include"cryptography.h"usingnamespacestd;staticunsignedcharsBox[]={};/定义加密S盒/unsignedcharinsBox[256]={};//定义解密S盒plaintext::plaintext(){}voidplaintext::createplaintext(unsignedchara[])//创建明文{inti=0;unsignedintp[16];for(intj=0;j<20

6、0;j++){if(a[j]==0){break;}}for(;i<16;i++){p[i]=a[i];a[i]=a[i+16];}}voidplaintext::SubBytes(unsignedcharp[16])//字节变换函数{unsignedcharb[16];for(inti=0;i<16;i++){b[i]=sBox[(int)p[i]];}}voidplaintext::inSubBytes(unsignedcharp[16])//逆字节变换函数{unsignedcharb[16];for(inti=0;i<16;i++){b[

7、i]=insBox[(int)p[i]];}}voidplaintext::ShiftRows(unsignedchare[])//行移位变换函数{unsignedchart[4];for(inti=1;i<4;i++){for(intx=0;x<4;x++)t[x]=e[x+i*4];for(inty=0;y<4;y++)e[(y+4-i)%4+i*4]=t[y];}}voidplaintext::inShiftRows(unsignedchare[])//逆行移位变换函数{unsignedchart[4];for(inti=1;i<4;i+

8、+){for(intx=0;x<4;x++)t[x]=e[x+i*4];for(inty=0;y<4;y++)e[(y+i)%4+i*4]=t[y];

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。