#include <tomcrypt.h>#include <tommath.h>#include "stdio.h"#include "string.h"#include "utils.h"Functions | |
| int | aesEncrypt (int mode, int keySize, char *keyString, char *plaintextString, char *initialVectorString, char *ciphertextString) |
| AES加密 | |
| int | aesDecrypt (int mode, int keySize, char *keyString, char *ciphertextString, char *initialVectorString, char *plaintextString) |
| AES解密 | |
| void | aesEcbMCTEncrypt (int keySize, char *plaintextString, char *keyString) |
| AES ECB模式的Monte Carlo Test (加密) | |
| void | aesEcbMCTDecrypt (int keySize, char *ciphertextString, char *keyString) |
| AES ECB模式的Monte Carlo Test (解密) | |
| void | aesCbcMCTEncrypt (int keySize, char *plaintextString, char *keyString, char *initailVectorString) |
| AES CBC模式的Monte Carlo Test (加密) | |
| void | aesCbcMCTDecrypt (int keySize, char *ciphertextString, char *keyString, char *initailVectorString) |
| AES CBC模式的Monte Carlo Test (解密) | |
| void | aesCfb128MCTEncrypt (int keySize, char *plaintextString, char *keyString, char *initailVectorString) |
| AES CFB128模式的Monte Carlo Test (加密) | |
| void | aesCfb128MCTDecrypt (int keySize, char *ciphertextString, char *keyString, char *initailVectorString) |
| AES CFB128模式的Monte Carlo Test (解密) | |
| void | aesCfb8MCTEncrypt (int keySize, char *plaintextString, char *keyString, char *initailVectorString) |
| AES CFB8模式的Monte Carlo Test (加密) | |
| void | aesCfb8MCTDecrypt (int keySize, char *ciphertextString, char *keyString, char *initailVectorString) |
| AES CFB8模式的Monte Carlo Test (解密) | |
| void | aesCtrMCTEncrypt (int keySize, char *plaintextString, char *keyString, char *initailVectorString) |
| AES CTR模式的Monte Carlo Test (加密) | |
| void | aesCtrMCTDecrypt (int keySize, char *ciphertextString, char *keyString, char *initailVectorString) |
| AES CTR模式的Monte Carlo Test (解密) | |
Variables | |
| const int | AES_MODE_ECB = 1 |
| const int | AES_MODE_CBC = 2 |
| const int | AES_MODE_CFB8 = 3 |
| const int | AES_MODE_CFB128 = 4 |
| const int | AES_MODE_CTR = 5 |
| const int | AES_KEY_SIZE_128 = 16 |
| const int | AES_KEY_SIZE_192 = 24 |
| const int | AES_KEY_SIZE_256 = 32 |
| void aesCbcMCTDecrypt | ( | int | keySize, |
| char * | ciphertextString, | ||
| char * | keyString, | ||
| char * | initailVectorString ) |
AES CBC模式的Monte Carlo Test (解密)
AES CBC模式的Monte Carlo Test (解密)
AES-CBC之蒙地卡羅測試函數,是依照以下這份文件中,6.4.2 節所描述的Monte Carlo Test – CBC (MCT-CBC) 演算法完成
此函式的輸入為key大小、密文、密鑰及初始向量
此函式輸出為MCT測試中,100個狀態(state)下的,明密文及密鑰
使用範例:
| keySize | AES_KEY_SIZE_128, AES_KEY_SIZE_192, AES_KEY_SIZE_256 |
| ciphertextString | 密文的hex string |
| keyString | key的hex string |
| initailVectorString | 初始向量的hex string |
| void aesCbcMCTEncrypt | ( | int | keySize, |
| char * | plaintextString, | ||
| char * | keyString, | ||
| char * | initailVectorString ) |
AES CBC模式的Monte Carlo Test (加密)
AES CBC模式的Monte Carlo Test (加密)
AES-CBC之蒙地卡羅測試函數,是依照以下這份文件中,6.4.2 節所描述的Monte Carlo Test – CBC (MCT-CBC) 演算法完成
此函式的輸入為key大小、明文、密鑰及初始向量
此函式輸出為MCT測試中,100個狀態(state)下的,明密文及密鑰
使用範例:
| keySize | AES_KEY_SIZE_128, AES_KEY_SIZE_192, AES_KEY_SIZE_256 |
| plaintextString | 明文的hex string |
| keyString | key的hex string |
| initailVectorString | 初始向量的hex string |
| void aesCfb128MCTDecrypt | ( | int | keySize, |
| char * | ciphertextString, | ||
| char * | keyString, | ||
| char * | initailVectorString ) |
AES CFB128模式的Monte Carlo Test (解密)
AES CFB128模式的Monte Carlo Test (解密)
AES-CFB128之蒙地卡羅測試函數,是依照以下這份文件中,6.4.6 節所描述的Monte Carlo Test – CFB128 (MCT-CFB128) 演算法完成
此函式的輸入為key大小、密文、密鑰及初始向量
此函式輸出為MCT測試中,100個狀態(state)下的,明密文及密鑰
使用範例:
| keySize | AES_KEY_SIZE_128, AES_KEY_SIZE_192, AES_KEY_SIZE_256 |
| ciphertextString | 密文的hex string |
| keyString | key的hex string |
| initailVectorString | 初始向量的hex string |
| void aesCfb128MCTEncrypt | ( | int | keySize, |
| char * | plaintextString, | ||
| char * | keyString, | ||
| char * | initailVectorString ) |
AES CFB128模式的Monte Carlo Test (加密)
AES CFB128模式的Monte Carlo Test (加密)
AES-CFB128之蒙地卡羅測試函數,是依照以下這份文件中,6.4.6 節所描述的Monte Carlo Test – CFB128 (MCT-CFB128) 演算法完成
此函式的輸入為key大小、明文、密鑰及初始向量
此函式輸出為MCT測試中,100個狀態(state)下的,明密文及密鑰
使用範例:
| keySize | AES_KEY_SIZE_128, AES_KEY_SIZE_192, AES_KEY_SIZE_256 |
| plaintextString | 明文的hex string |
| keyString | key的hex string |
| initailVectorString | 初始向量的hex string |
| void aesCfb8MCTDecrypt | ( | int | keySize, |
| char * | ciphertextString, | ||
| char * | keyString, | ||
| char * | initailVectorString ) |
AES CFB8模式的Monte Carlo Test (解密)
AES CFB8模式的Monte Carlo Test (解密)
AES-CFB8之蒙地卡羅測試函數,是依照以下這份文件中,6.4.5 節所描述的Monte Carlo Test – CFB8 (MCT-CFB8) 演算法完成
此函式的輸入為key大小、密文、密鑰及初始向量
此函式輸出為MCT測試中,100個狀態(state)下的,明密文及密鑰
使用範例:
| keySize | AES_KEY_SIZE_128, AES_KEY_SIZE_192, AES_KEY_SIZE_256 |
| ciphertextString | 密文的hex string |
| keyString | key的hex string |
| initailVectorString | 初始向量的hex string |
| void aesCfb8MCTEncrypt | ( | int | keySize, |
| char * | plaintextString, | ||
| char * | keyString, | ||
| char * | initailVectorString ) |
AES CFB8模式的Monte Carlo Test (加密)
AES CFB8模式的Monte Carlo Test (加密)
AES-CFB8之蒙地卡羅測試函數,是依照以下這份文件中,6.4.5 節所描述的Monte Carlo Test – CFB8 (MCT-CFB8) 演算法完成
此函式的輸入為key大小、明文、密鑰及初始向量
此函式輸出為MCT測試中,100個狀態(state)下的,明密文及密鑰
使用範例:
| keySize | AES_KEY_SIZE_128, AES_KEY_SIZE_192, AES_KEY_SIZE_256 |
| plaintextString | 明文的hex string |
| keyString | key的hex string |
| initailVectorString | 初始向量的hex string |
| void aesCtrMCTDecrypt | ( | int | keySize, |
| char * | ciphertextString, | ||
| char * | keyString, | ||
| char * | initailVectorString ) |
AES CTR模式的Monte Carlo Test (解密)
AES CTR模式的Monte Carlo Test (解密)
AES-CTR之蒙地卡羅測試函數,是依照以下這份文件中,6.4.1 節所描述的Monte Carlo Test – CBC (MCT-CBC) 演算法完成
用CBC模式的MCT演算法,是因為文件中沒有提到CTR模式的MCT演算法,所以用CBC模式的MCT演算法來代替
此函式的輸入為key大小、密文、密鑰及初始向量
此函式輸出為MCT測試中,100個狀態(state)下的,明密文及密鑰
使用範例:
| keySize | AES_KEY_SIZE_128, AES_KEY_SIZE_192, AES_KEY_SIZE_256 |
| ciphertextString | 密文的hex string |
| keyString | key的hex string |
| initailVectorString | 初始向量的hex string |
| void aesCtrMCTEncrypt | ( | int | keySize, |
| char * | plaintextString, | ||
| char * | keyString, | ||
| char * | initailVectorString ) |
AES CTR模式的Monte Carlo Test (加密)
AES CTR模式的Monte Carlo Test (加密)
AES-CTR之蒙地卡羅測試函數,是依照以下這份文件中,6.4.1 節所描述的Monte Carlo Test – CBC (MCT-CBC) 演算法完成
用CBC模式的MCT演算法,是因為文件中沒有提到CTR模式的MCT演算法,所以用CBC模式的MCT演算法來代替
此函式的輸入為key大小、明文、密鑰及初始向量
此函式輸出為MCT測試中,100個狀態(state)下的,明密文及密鑰
使用範例:
| keySize | AES_KEY_SIZE_128, AES_KEY_SIZE_192, AES_KEY_SIZE_256 |
| plaintextString | 明文的hex string |
| keyString | key的hex string |
| initailVectorString | 初始向量的hex string |
| int aesDecrypt | ( | int | mode, |
| int | keySize, | ||
| char * | keyString, | ||
| char * | ciphertextString, | ||
| char * | initialVectorString, | ||
| char * | plaintextString ) |
AES解密
AES的解密,可以選擇不同的模式、不同的key size
此函式的輸入為: AES模式選擇、KEY長度、密鑰、密文字串、初始向量字串
此函式的輸出為: 明文字串(修改最後一個參數指標指向的空間)、錯誤碼
使用範例:
| mode | AES_MODE_ECB, AES_MODE_CBC, AES_MODE_CFB8, AES_MODE_CFB128, AES_MODE_CTR |
| keySize | AES_KEY_SIZE_128, AES_KEY_SIZE_192, AES_KEY_SIZE_256 |
| keyString | key的hex string |
| ciphertextString | 密文的hex string |
| initialVectorString | 初始向量的hex string |
| plaintextString | 輸出的明文的hex string |
| void aesEcbMCTDecrypt | ( | int | keySize, |
| char * | ciphertextString, | ||
| char * | keyString ) |
AES ECB模式的Monte Carlo Test (解密)
AES ECB模式的Monte Carlo Test (解密)
AES-ECB之蒙地卡羅測試函數,是依照以下這份文件中,6.4.1 節所描述的Monte Carlo Test – ECB (MCT-ECB) 演算法完成
此函式的輸入為key大小、密文、及密鑰
此函式輸出為MCT測試中,100個狀態(state)下的,明密文及密鑰
使用範例:
| keySize | AES_KEY_SIZE_128, AES_KEY_SIZE_192, AES_KEY_SIZE_256 |
| ciphertextString | 密文的hex string |
| keyString | key的hex string |
| void aesEcbMCTEncrypt | ( | int | keySize, |
| char * | plaintextString, | ||
| char * | keyString ) |
AES ECB模式的Monte Carlo Test (加密)
AES ECB模式的Monte Carlo Test (加密)
AES-ECB之蒙地卡羅測試函數,是依照以下這份文件中,6.4.1 節所描述的Monte Carlo Test – ECB (MCT-ECB) 演算法完成
此函式的輸入為key大小、明文、及密鑰
此函式輸出為MCT測試中,100個狀態(state)下的,明密文及密鑰
使用範例:
| keySize | AES_KEY_SIZE_128, AES_KEY_SIZE_192, AES_KEY_SIZE_256 |
| plaintextString | 明文的hex string |
| keyString | key的hex string |
| int aesEncrypt | ( | int | mode, |
| int | keySize, | ||
| char * | keyString, | ||
| char * | plaintextString, | ||
| char * | initialVectorString, | ||
| char * | ciphertextString ) |
AES加密
AES的加密,可以選擇不同的模式、不同的key size
此函式的輸入為: AES模式選擇、KEY長度、密鑰、明文字串、初始向量字串
此函式的輸出為: 密文字串(修改最後一個參數指標指向的空間)、錯誤碼
使用範例:
| mode | AES_MODE_ECB, AES_MODE_CBC, AES_MODE_CFB8, AES_MODE_CFB128, AES_MODE_CTR |
| keySize | AES_KEY_SIZE_128, AES_KEY_SIZE_192, AES_KEY_SIZE_256 |
| keyString | key的hex string |
| plaintextString | 明文的hex string |
| initialVectorString | 初始向量的hex string |
| ciphertextString | 輸出的密文的hex string |
| const int AES_KEY_SIZE_128 = 16 |
| const int AES_KEY_SIZE_192 = 24 |
| const int AES_KEY_SIZE_256 = 32 |
| const int AES_MODE_CBC = 2 |
| const int AES_MODE_CFB128 = 4 |
| const int AES_MODE_CFB8 = 3 |
| const int AES_MODE_CTR = 5 |
| const int AES_MODE_ECB = 1 |