资源简介
AES的完全实现,其中代码编写过程中具有很高的技巧性,同时利用了AES加密结构的特点,实现了AES的快速实现,本人2.5G的电脑在DEV上运行最快可达1.4G/s
代码片段和文件信息
#include
#include
int main()
{
/*
字节代替变换由两个可逆变换符合而成,将每一个字节变换为有限域GF(2^8)中的乘法逆
再对其结果用GF(2)上的仿射变换(+【11000110】)。因为输入为256规模故可以制作一
个256规模的表,每次字节代替变换转换为一次查表,从而提高了加密速度。
*/
unsigned __int8 S[256]={
0x630x7c0x770x7b0xf20x6b0x6f0xc50x300x010x670x2b0xfe0xd70xab0x76
0xca0x820xc90x7d0xfa0x590x470xf00xad0xd40xa20xaf0x9c0xa40x720xc0
0xb70xfd0x930x260x360x3f0xf70xcc0x340xa50xe50xf10x710xd80x310x15
0x040xc70x230xc30x180x960x050x9a0x070x120x800xe20xeb0x270xb20x75
0x090x830x2c0x1a0x1b0x6e0x5a0xa00x520x3b0xd60xb30x290xe30x2f0x84
0x530xd10x000xed0x200xfc0xb10x5b0x6a0xcb0xbe0x390x4a0x4c0x580xcf
0xd00xef0xaa0xfb0x430x4d0x330x850x450xf90x020x7f0x500x3c0x9f0xa8
0x510xa30x400x8f0x920x9d0x380xf50xbc0xb60xda0x210x100xff0xf30xd2
0xcd0x0c0x130xec0x5f0x970x440x170xc40xa70x7e0x3d0x640x5d0x190x73
0x600x810x4f0xdc0x220x2a0x900x880x460xee0xb80x140xde0x5e0x0b0xdb
0xe00x320x3a0x0a0x490x060x240x5c0xc20xd30xac0x620x910x950xe40x79
0xe70xc80x370x6d0x8d0xd50x4e0xa90x6c0x560xf40xea0x650x7a0xae0x08
0xba0x780x250x2e0x1c0xa60xb40xc60xe80xdd0x740x1f0x4b0xbd0x8b0x8a
0x700x3e0xb50x660x480x030xf60x0e0x610x350x570xb90x860xc10x1d0x9e
0xe10xf80x980x110x690xd90x8e0x940x9b0x1e0x870xe90xce0x550x280xdf
0x8c0xa10x890x0d0xbf0xe60x420x680x410x990x2d0x0f0xb00x540xbb0x16
};
/*
\02 03 01 01\ \a\ \02*a+03*b+01*c+01*d\ \02*a\ \03*b\ \01*c\ \01*d\ \02\ \03\ \01\ \01\
\01 02 03 01\ \b\ \01*a+02*b+03*c+01*d\ \01*a\ \02*b\ \03*c\ \01*d\ \01\ \02\ \03\ \01\
\01 01 02 03\* \c\= \01*a+01*b+02*c+03*d\= \01*a\+ \01*b\+ \02*c\+ \03*d\= \01\*a+ \01\*b+ \02\*c+ \03\*d
\03 01 01 02\ \d\ \03*a+01*b+01*c+02*d\ \03*a\ \01*d\ \01*c\ \02*d\ \03\ \01\ \01\ \02\
列混合变换可以看作一个矩阵与明文块进行乘法运算,而对于每一列明文的变换可以看作abcd分别与变换矩阵的
对应的一列进行乘法运算后在相加。又因为每一个字为8bit,故可将上面每一列的乘法做成一个查询表,每个乘法
变为一次查表。因此,每一列明文的加密可以看作四次查表,从而大大提高了加密的速度。
*/
unsigned int S1[256]={0xc66363a50xf87c7c840xee7777990xf67b7b8d0xfff2f20d0xd66b6bbd0xde6f6fb10x91c5c5540x603030500x020101030xce6767a90x562b2b7d0xe7fefe190xb5d7d7620x4dababe60xec76769a0x8fcaca450x1f82829d0x89c9c9400xfa7d7d870xeffafa150xb25959eb0x8e4747c90xfbf0f00b0x41adadec0xb3d4d4670x5fa2a2fd0x45afafea0x239c9cbf0x53a4a4f70xe47272960x9bc0c05b0x75b7b7c20xe1fdfd1c0x3d9393ae0x4c26266a0x6c36365a0x7e3f3f410xf5f7f7020x83cccc4f0x6834345c0x51a5a5f40xd1e5e5340xf9f1f1080xe27171930xabd8d8730x623131530x2a15153f0x0804040c0x95c7c7520x462323650x9dc3c35e0x301818280x379696a10x0a05050f0x2f9a9ab50x0e0707090x241212360x1b80809b0xdfe2e23d0xcdebeb260x4e2727690x7fb2b2cd0xea75759f0x1209091b0x1d83839e0x582c2c740x341a1a2e0x361b1b2d0xdc6e6eb20xb45a5aee0x5ba0a0fb0xa45252f60x763b3b4d0xb7d6d6610x7db3b3ce
相关资源
- aes加解密(vc源程序)
- AES-128-CBC算法C语言源码已经修改,可
- C++实现AES、DES加密算法含MFC界面
-
C++_AES_ECB_ba
se64 - AES算法采用verilog硬件实现
- AES GCM算法源码
- AES 加密 C++源码
- stm32L系列F系列 加密库Cryptographic lib
- VC++ AES加密算法实现与范例的源代码
- MFC实现AES非对称加密解密算法
- AES加解密算法实现MFC
- 高级加密标准 AES (含AES的数学基础,
- AES加密/解密C++源代码
- AES算法加密解密C++源码及程序完整的
- AES GCM和ECB加密软件,和工程文件
- AES加密解密算法实现C、C++
- AES加密解密程序(C++)+实验报告
- aes加密算法源码
- MFC快速实现对话框等比例的放大缩小
- AES MFC
- AES加密的HLS实现与优化
- 混合加密程序 VC++包括DES加密和AES加密
- AES CBC加解密源代码
- AES 算法实现(linux) 可移植
- CMAES算法C++
- AesForC.rar
- AES加密算法C++语言实现
- AES对称加密解密文件
- AES加密可加密文件
- AES5种加密模式源码C语言
评论
共有 条评论