資源簡介
AES算法的C語言版本,支持ECB和CBC模式,速度和體積都經過本人精心優化,適合于C51、ARM和PC,內有Keil、ADS和VC6 三個工程和測試代碼,并附有算法原理和演示動畫資料。

代碼片段和文件信息
///////////////////////////////////////////////////////////////////////////////
//?文?件?名:AES.c
//?描????述:AES加密算法
//?創?建?人:Liangbofu
//?創建日期:2009-07-17
///////////////////////////////////////////////////////////////////////////////
#include?“AES.h“
#include?
//?為了能針對C51進行優化,并且又使代碼可用于ARM和PC等環境,
//?在非C51環境(沒有定義__C51__)下需要把C51特定的關鍵字定義為空
#ifndef?__C51__
#define?code
#define?data
#define?idata
#define?xdata
#define?pdata
typedef?unsigned?char?BOOL;
#else
typedef?bit?BOOL;
#endif
#define?Nk (AES_KEY_LENGTH?/?32) //?以“字”(4字節)為單位的密鑰長度
#define?Nb 4 //?以“字”(4字節)為單位的加解密數據塊大小,固定為4
//?Nr:加密的輪數
#if???AES_KEY_LENGTH?==?128
#define?Nr 10
#elif?AES_KEY_LENGTH?==?192
#define?Nr 12
#elif?AES_KEY_LENGTH?==?256
#define?Nr 14
#else
#error?AES_KEY_LENGTH?must?be?128?192?or?256?BOOLs!
#endif
//?GF(28)?多項式
#define?BPOLY?0x1B?//?Lower?8?BOOLs?of?(x^8?+?x^4?+?x^3?+?x?+?1)?ie.?(x^4?+?x^3?+?x?+?1).
//?AES子密鑰表,當密鑰長度為128位時,占用176字節空間
static?xdata?unsigned?char?g_roundKeyTable[4*Nb*(Nr+1)];
//?加密用的SBox
static?code?const?unsigned?char?SBox[256]?=?
{
0x63?0x7c?0x77?0x7b?0xf2?0x6b?0x6f?0xc5?0x30?0x01?0x67?0x2b?0xfe?0xd7?0xab?0x76
0xca?0x82?0xc9?0x7d?0xfa?0x59?0x47?0xf0?0xad?0xd4?0xa2?0xaf?0x9c?0xa4?0x72?0xc0
0xb7?0xfd?0x93?0x26?0x36?0x3f?0xf7?0xcc?0x34?0xa5?0xe5?0xf1?0x71?0xd8?0x31?0x15
0x04?0xc7?0x23?0xc3?0x18?0x96?0x05?0x9a?0x07?0x12?0x80?0xe2?0xeb?0x27?0xb2?0x75
0x09?0x83?0x2c?0x1a?0x1b?0x6e?0x5a?0xa0?0x52?0x3b?0xd6?0xb3?0x29?0xe3?0x2f?0x84
0x53?0xd1?0x00?0xed?0x20?0xfc?0xb1?0x5b?0x6a?0xcb?0xbe?0x39?0x4a?0x4c?0x58?0xcf
0xd0?0xef?0xaa?0xfb?0x43?0x4d?0x33?0x85?0x45?0xf9?0x02?0x7f?0x50?0x3c?0x9f?0xa8
0x51?0xa3?0x40?0x8f?0x92?0x9d?0x38?0xf5?0xbc?0xb6?0xda?0x21?0x10?0xff?0xf3?0xd2
0xcd?0x0c?0x13?0xec?0x5f?0x97?0x44?0x17?0xc4?0xa7?0x7e?0x3d?0x64?0x5d?0x19?0x73
0x60?0x81?0x4f?0xdc?0x22?0x2a?0x90?0x88?0x46?0xee?0xb8?0x14?0xde?0x5e?0x0b?0xdb
0xe0?0x32?0x3a?0x0a?0x49?0x06?0x24?0x5c?0xc2?0xd3?0xac?0x62?0x91?0x95?0xe4?0x79
0xe7?0xc8?0x37?0x6d?0x8d?0xd5?0x4e?0xa9?0x6c?0x56?0xf4?0xea?0x65?0x7a?0xae?0x08
0xba?0x78?0x25?0x2e?0x1c?0xa6?0xb4?0xc6?0xe8?0xdd?0x74?0x1f?0x4b?0xbd?0x8b?0x8a
0x70?0x3e?0xb5?0x66?0x48?0x03?0xf6?0x0e?0x61?0x35?0x57?0xb9?0x86?0xc1?0x1d?0x9e
0xe1?0xf8?0x98?0x11?0x69?0xd9?0x8e?0x94?0x9b?0x1e?0x87?0xe9?0xce?0x55?0x28?0xdf
0x8c?0xa1?0x89?0x0d?0xbf?0xe6?0x42?0x68?0x41?0x99?0x2d?0x0f?0xb0?0x54?0xbb?0x16?
};
//?解密用的SBox
static?code?const?unsigned?char?InvSBox[256]?=?
{
0x52?0x09?0x6a?0xd5?0x30?0x36?0xa5?0x38?0xbf?0x40?0xa3?0x9e?0x81?0xf3?0xd7?0xfb
0x7c?0xe3?0x39?0x82?0x9b?0x2f?0xff?0x87?0x34?0x8e?0x43?0x44?0xc4?0xde?0xe9?0xcb
0x54?0x7b?0x94?0x32?0xa6?0xc2?0x23?0x3d?0x
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????14566??2011-07-30?09:02??AES\AES.c
?????文件???????3493??2018-04-17?21:06??AES\AES.dsp
?????文件????????531??2009-07-20?10:08??AES\AES.dsw
?????文件???????2294??2011-07-30?09:40??AES\AES.h
?????文件?????191620??2010-03-22?12:21??AES\AES.mcp
?????文件??????50176??2018-06-01?17:54??AES\AES.ncb
?????文件??????53760??2018-06-01?17:54??AES\AES.opt
?????文件???????1590??2018-04-20?18:36??AES\AES.plg
?????文件???????2240??2010-03-22?12:21??AES\AES.Uv2
?????文件??????50176??2018-04-20?18:36??AES\Debug\AES.bsc
?????文件?????155722??2018-04-20?18:36??AES\Debug\AES.exe
?????文件?????183020??2018-04-20?18:36??AES\Debug\AES.ilk
?????文件??????11403??2018-04-17?20:18??AES\Debug\AES.obj
?????文件?????164700??2018-04-19?21:35??AES\Debug\AES.pch
?????文件?????402432??2018-04-20?18:36??AES\Debug\AES.pdb
?????文件??????????0??2018-04-17?20:18??AES\Debug\AES.sbr
?????文件???????4098??2018-04-20?18:35??AES\Debug\main.obj
?????文件??????????0??2018-04-20?18:36??AES\Debug\main.sbr
?????文件??????33792??2018-04-20?18:36??AES\Debug\vc60.idb
?????文件??????45056??2018-04-20?18:35??AES\Debug\vc60.pdb
?????文件???????1565??2018-04-20?18:35??AES\main.c
?????文件??????????0??2018-06-01?17:50??AES\新建文本文檔.txt
?????文件?????141391??2009-07-23?13:09??AES\資料\AES加密算法演示.swf
?????文件???????1093??2009-07-23?13:09??AES\資料\AES對稱加密算法原理.files\1_guo2777.jpg
?????文件???????1904??2009-07-23?13:09??AES\資料\AES對稱加密算法原理.files\b3.js
?????文件??????23167??2009-07-23?13:09??AES\資料\AES對稱加密算法原理.files\Cogitation_1.css
?????文件????????609??2009-07-23?13:09??AES\資料\AES對稱加密算法原理.files\count.htm
?????文件???????4630??2009-07-23?13:09??AES\資料\AES對稱加密算法原理.files\counter.js
?????文件????????880??2009-07-23?13:09??AES\資料\AES對稱加密算法原理.files\csdn_favbykimi.css
?????文件??????23511??2009-07-23?13:09??AES\資料\AES對稱加密算法原理.files\encryptitimg01.gif
............此處省略45個文件信息
- 上一篇:C++實現HTTP處理類
- 下一篇:C++ 用戶管理模塊
評論
共有 條評論