原始碼和文件分享 基於C 的分組密碼加解密實現

2021-09-25 03:53:04 字數 1997 閱讀 3835

程式完成課程設計所有必做與選做的要求,包含的函式如下:

// 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, blocktypeciphertext, 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 

原始碼和文件分享 基於C 的分組密碼加解密實現

1 設計實現 程式完成課程設計所有必做與選做的要求,包含的函式如下 s 盒置換 blocktype sbox encode blocktype x s 盒逆變換 blocktype sbox decode blocktype x p 盒置換 blocktype pbox encode blockty...

原始碼和文件分享 基於C 的教室管理系統

1 需求分析 核心需求 實現教室管理系統,完成對學校教室的維護 查詢 預約 統計功能。程式擁有許可權控制,分為管理員和普通使用者 管理員需求 檢視某棟樓教室的概要資訊 每個教室的詳細資訊 包括教室基本資訊 預約情況 上課情況 修改某教室基本資訊 增加教室 刪除教室 增加某教室上課情況 統計某類教室的...

原始碼和文件分享 基於swift的詞法分析程式

計算正則式 讀入正規表示式 對正規表示式處理 建圖 生成 nfa 將 nfa 去除空節點 轉化為 nfa 將 nfa 轉化為 dfa 對 dfa 圖進行遍歷每個節點,獲取到每個節點通過某個字元到達哪下乙個狀態,並找到終態 構造 dfa 表 輸出顯示 驗證字串 在成功通過正規表示式構建 dfa 圖的基...