1 設計實現html
程序完成課程設計全部必作與選作的要求,包含的函數以下:dom
// S 盒置換函數
BlockType SBox_Encode(BlockType x);測試
// S 盒逆變換加密
BlockType SBox_Decode(BlockType x);url
// P 盒置換.net
BlockType PBox_Encode(BlockType x);設計
// P 盒逆變換code
BlockType PBox_Decode(BlockType x);htm
// 輸出顯示一個 16 位二進制數
void OutPut_Bin(BlockType p);
// 輸出顯示一個密鑰
void OutPut_Key(KeyType key);
// 分組加密函數
void BlockEncryption(BlockType PlainText, BlockType
&CipherText, KeyType Key);
// 分組解密函數
void BlockDecryption(BlockType &PlainText, BlockType
CipherText, KeyType Key);
// 生成指定密鑰
void Key_Engine();
// 隨機生成密鑰
void Key_Random();
// 文件加密
int FileEncryption(char *PlainFile,char *CipherFile,KeyType Key);
// 文件解密
int FileDecryption(char *PlainFile,char *CipherFile,KeyType Key);
// 加密函數的運行速度
unsigned long EncryptionTime(unsigned long Times);
// 線性密碼分析
BlockType LinearCryptanalysis(unsigned long T,BlockType Text[][2]);
// 差分密碼分析
BlockType DiffCryptanalysis(unsigned long T,BlockType Text[][4]);
// 測試分組加密與解密
void TestBlockEncrypt();
// 測試文件加密與解密
void TestFileEncrypt();
// 測試運行速度
void TestEncryptionTime();
// 測試線性密碼分析
void TestLinearCryptanalysis();
// 測試差分密碼分析
void TestDiffCryptanalysis();
// 測試線性分析函數成功時明密文對數
void TestLinearSucceedTimes();
// 測試差分分析函數成功時明密文對數
void TestDiffSucceedTimes();
// 暫停,按回車鍵繼續
void Wait();
測試程序只需打開生成的可執行文件,按提示操做便可。
運行截圖以下:
任意輸入一個小於 65536
參考文檔和完整的文檔和源碼下載地址: