• 大小: 935KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-09
  • 语言: 其他
  • 标签: AES  ECB  CFB  CTR  信息安全  

资源简介

AES加解密算法以及五种工作模式的实现,详细文档和源代码,自己写的,时间、精力以及能力有限,仅供参考。

资源截图

代码片段和文件信息

#include 
#include 
#include 
#include 
#include 
#include 
using namespace std;
#include “AES.h“

enum Mode {ECB = 1 CBC = 2 CFB = 3 OFB = 4 CTR = 5};

#define MAXDATALENGTH 1024   //用于测试的数据的最大字节数
#define FILELENGTH 100       //用于测试工作模式的最大文件长度(字节数)
#define AESBLOCKSIZE 128

//用于测试程序正确性的明文、密文以及密钥
unsigned char entext[MAXDATALENGTH] = {   
/******************************************************************************************\
用于测试程序正确性的明文文本,用于测试AES算法以及各种工作模式
在该程序中,这些数据的作用如下:
1. 在testAES()作为创建AES类时的输入,测试AES加密算法是否正确
2. 将被写入plaininput.dat文件中,作为testMode()的输入,即各工作模式的输入文件,被加密
如果要用不同的数据对AES算法和各工作模式进行测试,请修改 FILELEN 的值 和 entext 数组的内容
\******************************************************************************************/
0x00 0x11 0x22 0x33 0x44 0x55 0x66 0x77 0x88 0x99 0xaa 0xbb 0xcc 0xdd 0xee 0xff
0x00 0x11 0x22 0x33 0x44 0x55 0x66 0x77 0x88 0x99 0xaa 0xbb 0xcc 0xdd 0xee 0xff
0x00 0x11 0x22 0x33 0x44 0x55 0x66 0x77 0x88 0x99 0xaa 0xbb 0xcc 0xdd 0xee 0xff
0x00 0x11 0x22 0x33 0x44 0x55 0x66 0x77 0x88 0x99 0xaa 0xbb 0xcc 0xdd 0xee 0xff
0x00 0x11 0x22 0x33 0x44 0x55 0x66 0x77 0x88 0x99 0xaa 0xbb 0xcc 0xdd 0xee 0xff
0x00 0x11 0x22 0x33 0x44 0x55 0x66 0x77 0x88 0x99 0xaa 0xbb 0xcc 0xdd 0xee 0xff
0x00 0x11 0x22 0x33
};

unsigned char detext[32] = {
/******************************************************************************************\
用于测试程序正确性的密文文本,用于测试AES算法解密算法
1. 在testAES()作为创建AES类时的输入,测试AES解密算法是否正确
\******************************************************************************************/
0x69 0xc4 0xe0 0xd8 0x6a 0x7b 0x04 0x30 0xd8 0xcd 0xb7 0x80 0x70 0xb4 0xc5 0x5a
0x69 0xc4 0xe0 0xd8 0x6a 0x7b 0x04 0x30 0xd8 0xcd 0xb7 0x80 0x70 0xb4 0xc5 0x5a
};

unsigned char key[32] =  {
/******************************************************************************************\
用于测试程序正确性的密钥文本,用于测试AES算法以及各种工作模式
弱要使用不同的密钥进行测试,请修改此处
\******************************************************************************************/
0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07
0x08 0x09 0x0a 0x0b 0x0c 0x0d 0x0e 0x0f
0x10 0x11 0x12 0x13 0x14 0x15 0x16 0x17
0x18 0x19 0x1a 0x1b 0x1c 0x1d 0x1e 0x1f
};



int str2hex(char s[]); //将字符串转换作为十六进制数,求其整数值
void readVIfromStdin(unsigned char VI[] int len);//从标准输入读入长度为len的VI的数据(以< 0xff的1位或2位十六进制数读入)

  //用ECB模式进行加解密
void ecb(int len             //分组长度(与AES算法所用密钥长度相同)
 unsigned char key[] //初始密钥
 FILE *fin           //输入文件
 FILE *fout   //输出文件
 EnDe op);   //用于选择加密操作还是解密操作
void cbc(int len unsigned char key[] FILE *fin FILE *fout EnDe op //用CFB模式进行加解密
 unsigned char VI[]); //VI为初始向量
void cfb(int len unsigned char key[] FILE *fin FILE *fout EnDe op unsigned char VI[]);//用CBC模式进行加解密
void ofb(in

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        874  2009-10-28 09:27  AES算法及五种工作模式的实现\AES\AES.sln

    ..A..H.     25600  2009-10-31 02:16  AES算法及五种工作模式的实现\AES\AES.suo

     文件    1128016  2009-10-31 02:15  AES算法及五种工作模式的实现\AES\debug\AES.ilk

     文件    1674240  2009-10-31 02:15  AES算法及五种工作模式的实现\AES\debug\AES.pdb

     文件     271590  2009-10-31 02:15  AES算法及五种工作模式的实现\AES\debug\AES.map

     文件     241664  2009-10-31 02:15  AES算法及五种工作模式的实现\AES\debug\AES.exe

     文件       3219  2009-10-28 21:02  AES算法及五种工作模式的实现\AES\AES\AES.vcproj

     文件       1427  2009-10-31 02:16  AES算法及五种工作模式的实现\AES\AES\AES.vcproj.KRYSTOLLIA-NOTE.WangHua.user

     文件      15220  2009-10-30 20:31  AES算法及五种工作模式的实现\AES\AES\AES.h

     文件      23424  2009-10-31 01:21  AES算法及五种工作模式的实现\AES\AES\AES.cpp

     文件        112  2009-10-31 02:15  AES算法及五种工作模式的实现\AES\AES\cbc_cipher.dat

     文件        100  2009-10-31 02:16  AES算法及五种工作模式的实现\AES\AES\plaininput.dat

     文件        120  2009-10-31 02:15  AES算法及五种工作模式的实现\AES\AES\ecb_cipher.dat

     文件        100  2009-10-31 02:15  AES算法及五种工作模式的实现\AES\AES\ecb_plainoutput.dat

     文件        100  2009-10-31 02:15  AES算法及五种工作模式的实现\AES\AES\cbc_plainoutput.dat

     文件        100  2009-10-31 02:16  AES算法及五种工作模式的实现\AES\AES\cfb_cipher.dat

     文件        100  2009-10-31 02:16  AES算法及五种工作模式的实现\AES\AES\cfb_plainoutput.dat

     文件        100  2009-10-31 02:15  AES算法及五种工作模式的实现\AES\AES\ofb_cipher.dat

     文件        100  2009-10-31 02:15  AES算法及五种工作模式的实现\AES\AES\ofb_plainoutput.dat

     文件        100  2009-10-31 02:15  AES算法及五种工作模式的实现\AES\AES\ctr_cipher.dat

     文件        100  2009-10-31 02:15  AES算法及五种工作模式的实现\AES\AES\ctr_plainoutput.dat

     文件      21134  2009-10-31 02:15  AES算法及五种工作模式的实现\AES\AES\Debug\BuildLog.htm

     文件      84992  2009-10-31 02:15  AES算法及五种工作模式的实现\AES\AES\Debug\vc80.idb

     文件     171128  2009-10-31 02:15  AES算法及五种工作模式的实现\AES\AES\Debug\AES.obj

     文件        145  2009-10-31 02:15  AES算法及五种工作模式的实现\AES\AES\Debug\AES.exe.intermediate.manifest

     文件         69  2009-10-31 02:15  AES算法及五种工作模式的实现\AES\AES\Debug\mt.dep

     文件    1027072  2009-10-31 02:16  AES算法及五种工作模式的实现\AES\AES.ncb

     文件     101324  2009-10-31 02:32  AES算法及五种工作模式的实现\krystollia-AES的实现-实习报告.pdf

     目录          0  2009-10-31 02:14  AES算法及五种工作模式的实现\AES\AES\Debug

     目录          0  2009-10-31 02:14  AES算法及五种工作模式的实现\AES\debug

............此处省略6个文件信息

评论

共有 条评论