• 大小: 278KB
    文件类型: .zip
    金币: 2
    下载: 0 次
    发布日期: 2024-01-19
  • 语言: C/C++
  • 标签:

资源简介

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个文件信息

评论

共有 条评论