资源简介
AES(高级加密标准,Advanced Encryption Standard),在密码学中又称 Rijndael 加密法,是美国联邦政府采用的一种分组加密标准。这个标准用来替代原先的 DES,目前已经广为全世界所使用,成为对称密钥算法中最流行的算法之一。
在 AES 出现之前,最常用的对称密钥算法是 DES 加密算法,它在 1977 年被公布成为美国政府的商用加密标准。DES 的主要问题是密钥长度较短,渐渐不适合于分布式开放网络对数据加密安全性的要求。因此,1998年美国政府决定不再继续延用 DES 作为联邦加密标准,并发起了征集 AES 候选算法的活动。征集活动对 AES 的基本要求是: 比三重DES快、至少与三重DES一样安全、数据分组长度为128比特、密钥长度为128/192/256比特。
代码片段和文件信息
/*************************************************************************
> File Name: Aes.cpp
> Author: SongLee
> E-mail: lisong.shine@qq.com
> Created Time: 2014年12月12日 星期五 20时15分50秒
> Personal Blog: http://songlee24.github.com
************************************************************************/
#include
#include
#include
#include
using namespace std;
typedef bitset<8> byte;
typedef bitset<32> word;
const int Nr = 10; // AES-128需要 10 轮加密
const int Nk = 4; // Nk 表示输入密钥的 word 个数
byte S_Box[16][16] = {
{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}
};
byte Inv_S_Box[16][16] = {
{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 0xEE 0x4C 0x95 0x0B 0x42 0xFA 0xC3 0x4E}
{0x08 0x2E 0xA1 0x66 0x28 0xD9 0x24 0xB2 0x76 0x5B 0xA2 0x49 0x6D 0x8B 0xD1 0x25}
{0x72 0xF8 0xF6 0x64 0x86 0x68 0x98 0x16 0xD4 0xA4 0x5C 0xCC 0x5D 0x65 0xB6 0x92}
{0x6C 0x70 0x48 0x50 0xFD 0xED 0xB9 0xDA 0x5E 0x15 0x46 0x57 0xA7 0x8D 0x9D 0x84}
{0x90 0xD8 0xAB 0x00 0x8C 0xBC 0xD3 0x0A 0xF7 0xE4 0x58 0x05 0xB8 0xB3 0x45 0x06}
{0xD0 0x2C 0x1E 0x8F 0xCA 0x3F 0x0F 0x02 0xC1 0
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2015-07-02 13:37 AES-DES-master\
目录 0 2015-07-02 13:37 AES-DES-master\Aes\
文件 19768 2015-07-02 13:37 AES-DES-master\Aes\Aes.cpp
文件 20335 2015-07-02 13:37 AES-DES-master\Aes\AesForFile.cpp
目录 0 2015-07-02 13:37 AES-DES-master\Des\
文件 9413 2015-07-02 13:37 AES-DES-master\Des\Des.cpp
文件 8880 2015-07-02 13:37 AES-DES-master\Des\DesForFile.cpp
目录 0 2015-07-02 13:37 AES-DES-master\MFC_Demo_Aes\
目录 0 2015-07-02 13:37 AES-DES-master\MFC_Demo_Aes\AES\
文件 876 2015-07-02 13:37 AES-DES-master\MFC_Demo_Aes\AES\AES.sln
文件 47104 2015-07-02 13:37 AES-DES-master\MFC_Demo_Aes\AES\AES.v11.suo
目录 0 2015-07-02 13:37 AES-DES-master\MFC_Demo_Aes\AES\AES\
文件 399096 2015-07-02 13:37 AES-DES-master\MFC_Demo_Aes\AES\AES\AES.APS
文件 23448 2015-07-02 13:37 AES-DES-master\MFC_Demo_Aes\AES\AES\AES.rc
文件 6668 2015-07-02 13:37 AES-DES-master\MFC_Demo_Aes\AES\AES\AES.vcxproj
文件 3192 2015-07-02 13:37 AES-DES-master\MFC_Demo_Aes\AES\AES\AES.vcxproj.filters
文件 18502 2015-07-02 13:37 AES-DES-master\MFC_Demo_Aes\AES\AES\Aes.cpp
文件 1507 2015-07-02 13:37 AES-DES-master\MFC_Demo_Aes\AES\AES\Aes.h
文件 2158 2015-07-02 13:37 AES-DES-master\MFC_Demo_Aes\AES\AES\AesAboutDlg.cpp
文件 694 2015-07-02 13:37 AES-DES-master\MFC_Demo_Aes\AES\AES\AesAboutDlg.h
文件 5196 2015-07-02 13:37 AES-DES-master\MFC_Demo_Aes\AES\AES\AesFileDecryptDlg.cpp
文件 874 2015-07-02 13:37 AES-DES-master\MFC_Demo_Aes\AES\AES\AesFileDecryptDlg.h
文件 5233 2015-07-02 13:37 AES-DES-master\MFC_Demo_Aes\AES\AES\AesFileEncryptDlg.cpp
文件 878 2015-07-02 13:37 AES-DES-master\MFC_Demo_Aes\AES\AES\AesFileEncryptDlg.h
文件 5579 2015-07-02 13:37 AES-DES-master\MFC_Demo_Aes\AES\AES\AesGroupDecryptDlg.cpp
文件 814 2015-07-02 13:37 AES-DES-master\MFC_Demo_Aes\AES\AES\AesGroupDecryptDlg.h
文件 5508 2015-07-02 13:37 AES-DES-master\MFC_Demo_Aes\AES\AES\AesGroupEncryptDlg.cpp
文件 811 2015-07-02 13:37 AES-DES-master\MFC_Demo_Aes\AES\AES\AesGroupEncryptDlg.h
文件 2341 2015-07-02 13:37 AES-DES-master\MFC_Demo_Aes\AES\AES\Main.cpp
文件 428 2015-07-02 13:37 AES-DES-master\MFC_Demo_Aes\AES\AES\Main.h
文件 5336 2015-07-02 13:37 AES-DES-master\MFC_Demo_Aes\AES\AES\MainDlg.cpp
............此处省略11个文件信息
- 上一篇:基于C语言绘制学校校徽
- 下一篇:MFC深入浅出带目录完整版
评论
共有 条评论