|
Console Library 8.0.0
A header-only library that makes C++ simple
|
AES加密算法的内部实现细节。 More...
Functions | |
| void | sub_bytes (uint8_t *state) |
| 字节替换操作,使用S盒替换状态矩阵中的每个字节。 | |
| void | inv_sub_bytes (uint8_t *state) |
| 逆字节替换操作,使用逆S盒替换状态矩阵中的每个字节。 | |
| void | shift_rows (uint8_t *state) |
| 行移位操作,将状态矩阵的各行循环左移不同偏移量。 | |
| void | inv_shift_rows (uint8_t *state) |
| 逆行移位操作,将状态矩阵的各行循环右移不同偏移量。 | |
| uint8_t | gmul (uint8_t a, uint8_t b) |
| 在GF(2^8)有限域中执行乘法运算。 | |
| void | mix_columns (uint8_t *state) |
| 列混合操作,对状态矩阵的每一列进行线性变换。 | |
| void | inv_mix_columns (uint8_t *state) |
| 逆列混合操作,对状态矩阵的每一列进行逆线性变换。 | |
| void | add_round_key (uint8_t *state, const uint8_t *key) |
| 轮密钥加操作,将状态矩阵与轮密钥进行异或。 | |
| void | key_expansion (const uint8_t *key, uint8_t *round_keys) |
| AES密钥扩展算法,将原始密钥扩展为11轮使用的轮密钥。 | |
| void | aes_encrypt_block (const uint8_t *input, uint8_t *output, const uint8_t *round_keys) |
| AES加密单个块(128位)。 | |
| void | aes_decrypt_block (const uint8_t *input, uint8_t *output, const uint8_t *round_keys) |
| AES解密单个块(128位)。 | |
| std::string | pad_key (const std::string &key) |
| 将密钥填充到16字节(AES-128要求的密钥长度)。 | |
| std::string | random_bytes () |
| 生成随机字节序列。 | |
Variables | |
| static constexpr uint8_t | Sbox [256] |
| AES算法的S盒,用于字节替换。 | |
| static constexpr uint8_t | InvSbox [256] |
| AES算法的逆S盒,用于解密时的字节替换。 | |
AES加密算法的内部实现细节。
实现了AES-128算法,使用CTR模式进行加密。
|
inline |
轮密钥加操作,将状态矩阵与轮密钥进行异或。
| state | 16字节的状态矩阵。 |
| key | 16字节的轮密钥。 |
|
inline |
AES解密单个块(128位)。
| input | 输入的16字节密文块。 |
| output | 输出的16字节明文块。 |
| round_keys | 扩展后的轮密钥。 |
|
inline |
AES加密单个块(128位)。
| input | 输入的16字节明文块。 |
| output | 输出的16字节密文块。 |
| round_keys | 扩展后的轮密钥。 |
|
inline |
在GF(2^8)有限域中执行乘法运算。
| a | 乘数。 |
| b | 乘数。 |
|
inline |
逆列混合操作,对状态矩阵的每一列进行逆线性变换。
| state | 16字节的状态矩阵。 |
|
inline |
逆行移位操作,将状态矩阵的各行循环右移不同偏移量。
| state | 16字节的状态矩阵。 |
|
inline |
逆字节替换操作,使用逆S盒替换状态矩阵中的每个字节。
| state | 16字节的状态矩阵。 |
|
inline |
AES密钥扩展算法,将原始密钥扩展为11轮使用的轮密钥。
| key | 原始密钥,长度为16字节。 |
| round_keys | 输出缓冲区,用于存储扩展后的轮密钥,需要至少176字节。 |
|
inline |
列混合操作,对状态矩阵的每一列进行线性变换。
| state | 16字节的状态矩阵。 |
|
inline |
将密钥填充到16字节(AES-128要求的密钥长度)。
| key | 原始密钥字符串。 |
|
inline |
生成随机字节序列。
|
inline |
行移位操作,将状态矩阵的各行循环左移不同偏移量。
| state | 16字节的状态矩阵。 |
|
inline |
字节替换操作,使用S盒替换状态矩阵中的每个字节。
| state | 16字节的状态矩阵。 |
|
staticconstexpr |
AES算法的逆S盒,用于解密时的字节替换。
|
staticconstexpr |
AES算法的S盒,用于字节替换。