1 / 12
文档名称:

AES加密算法的C 实现过程.docx

格式:docx   大小:22KB   页数:12页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

AES加密算法的C 实现过程.docx

上传人:小枷 2019/5/1 文件大小:22 KB

下载得到文件列表

AES加密算法的C 实现过程.docx

文档介绍

文档介绍://#ifndef_AES_H_#define_AES_H_#include""#defineAES_KEY_ROW_NUMBER4#defineAES_KEY_COLUMN_NUMBER4#defineAES_ROUND_COUNT10classAES:publicEncryption{public: AES(void); AES(BYTE*key); virtual~AES(void); voidEncrypt(BYTE*,BYTE*,size_t); voidDecrypt(BYTE*,BYTE*,size_t);private:BYTEswapbox[11][4][4]; BYTE*Cipher(BYTE*input); BYTE*InvCipher(BYTE*input); BYTE*Cipher(void*input,size_tlength); BYTE*InvCipher(void*input,size_tlength); voidKeyExpansion(BYTE*key,BYTEw[][4][AES_KEY_COLUMN_NUMBER]); BYTEFFmul(BYTEa,BYTEb); voidSubBytes(BYTEstate[][AES_KEY_COLUMN_NUMBER]); voidShiftRows(BYTEstate[][AES_KEY_COLUMN_NUMBER]); voidMixColumns(BYTEstate[][AES_KEY_COLUMN_NUMBER]); voidAddRoundKey(BYTEstate[][AES_KEY_COLUMN_NUMBER],BYTEk[][AES_KEY_COLUMN_NUMBER]); voidInvSubBytes(BYTEstate[][AES_KEY_COLUMN_NUMBER]); voidInvShiftRows(BYTEstate[][AES_KEY_COLUMN_NUMBER]); voidInvMixColumns(BYTEstate[][AES_KEY_COLUMN_NUMBER]);};#endif//_AES_H_//#ifndef_ENCRYPTION_H_#define_ENCRYPTION_H_#include""classEncryption{public: virtualvoidEncrypt(BYTE*,BYTE*,size_t)=0; virtualvoidDecrypt(BYTE*,BYTE*,size_t)=0;};#endif//#ifndef_ENCRYPTION_FACTORY_H_#define_ENCRYPTION_FACTORY_H_#include""#include""classEncryptionFactory{public: EncryptionFactory(void); virtual~EncryptionFactory(void); staticEncryption*getEncryption(intencryptionType,BYTE*key);private: staticEncryption*encry;};#endif//#include""#include""#include<>#include<>//permuteboxstaticunsignedcharpermutebox[]= {/*0123456789abcdef*/ 0x63,0x7c,0x77,0x7b,0xf2,0x6b,0x6f,0xc5,0x30,0x01,0x67,0x2b,0xfe,0xd7,0xab,0x76,/*0*/ 0xca,0x82,0xc9,0x7d,0xfa,0x59,0x47,0xf0,0xad,0xd4,0xa2,0xaf,0x9c,0xa4,0x72,0xc0,/*1*/ 0xb7,0xfd,0x93,0x26,0x36,0x3f,0xf7,,0x34,0xa5,0xe5,0xf1,0x71,0xd8,0x31,0x15,/*2*/ 0x04,0xc7,0x23,0xc3,0x18,0x96,0x05,0x9a,0x07,0x12,0x80,0xe2,0xeb,0x27,0xb2,0x75,/*3*/ 0x09,0x83,0x2c,0x1a,0x1b,0x6e,0x5a,0xa0,0x52,0x3b,0xd6,0xb3,0x29,0xe3,0x2f,0x84,