1 設計實現
程式完成課程設計所有必做與選做的要求,包含的函式如下:
// s 盒置換
blocktype sbox_encode(blocktype x);
// s 盒逆變換
blocktype sbox_decode(blocktype x);
// p 盒置換
blocktype pbox_encode(blocktype x);
// p 盒逆變換
blocktype pbox_decode(blocktype x);
// 輸出顯示乙個 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();
測試程式只需開啟生成的可執行檔案,按提示操作即可。
執行截圖如下:
原始碼和文件分享 基於C 的分組密碼加解密實現
程式完成課程設計所有必做與選做的要求,包含的函式如下 s 盒置換blocktype sbox encode blocktype x s 盒逆變換blocktype sbox decode blocktype x p 盒置換blocktype pbox encode blocktype x p 盒逆變...
原始碼和文件分享 基於C 的教室管理系統
1 需求分析 核心需求 實現教室管理系統,完成對學校教室的維護 查詢 預約 統計功能。程式擁有許可權控制,分為管理員和普通使用者 管理員需求 檢視某棟樓教室的概要資訊 每個教室的詳細資訊 包括教室基本資訊 預約情況 上課情況 修改某教室基本資訊 增加教室 刪除教室 增加某教室上課情況 統計某類教室的...
原始碼和文件分享 基於swift的詞法分析程式
計算正則式 讀入正規表示式 對正規表示式處理 建圖 生成 nfa 將 nfa 去除空節點 轉化為 nfa 將 nfa 轉化為 dfa 對 dfa 圖進行遍歷每個節點,獲取到每個節點通過某個字元到達哪下乙個狀態,並找到終態 構造 dfa 表 輸出顯示 驗證字串 在成功通過正規表示式構建 dfa 圖的基...