freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

畢業(yè)設計-基于netc的文檔加密器的實現—論文(編輯修改稿)

2025-01-08 19:41 本頁面
 

【文章內容簡介】 , L0, R0則是換位輸出后的兩部分, L0 是輸出的左 32 位,R0是右 32位。例:設置換前 的輸入值為 D1D2D3?D64 ,則經過初始置換后的結果為: L0=D58D50?D8 ; R0=D57D49?7 。 ( 2) 逆置換 經過 16次迭代運算后,得到 L16, R16,將此作為輸入進行逆置換,即得到密文輸出。 逆置換正好是初始置換的逆運算。例如,第 1位經過初始置換后,處于第 40 位,而通過逆置 換,又將第 40 位換回到第 1 位,其逆置換的規(guī)則如表 2 所示。 表 2逆置換 40, 8, 48, 16, 56, 24, 64, 32, 39, 7, 47, 15, 55, 23, 63, 31 38, 6, 46, 14, 54, 22, 62, 30, 37, 5, 45, 13, 53, 21, 61, 29 36, 4, 44, 12, 52, 20, 60, 28, 35, 3, 43, 11, 51, 19, 59, 27 34, 2, 42, 10, 50, 18, 58, 26, 33, 1, 41, 9, 49, 17, 57, 25 ( 1) 函數 f(Ri, Ki)的計算 其算法描述如圖 1 所示。 圖 1 算法描述 在圖 1中, “ 擴展置換 ” 是將 32 位放大成 48 位, “P 盒置換 ” 是 32 位到32位換位,其換位 規(guī)則分別 如表 表 4所示。 表 3擴展置換表 32, 1, 2, 3, 4 , 5 , 4 , 5 , 6 , 7 , 8 , 9 8, 9, 10, 11, 12, 13, 12, 13, 14, 15, 16, 17 16, 17, 18, 19, 20, 21, 20, 21, 22, 23, 24, 25 24, 25, 26, 27, 28, 29, 28, 29, 30, 31, 32, 1 表 4 P盒置換表 16, 7, 20, 21, 29, 12, 28, 17, 1, 15, 23, 16, 23, 26, 5, 18, 31, 10, 2, 8, 24, 14, 32, 27, 3, 9, 19, 13 , 30, 6, 22, 11, 4, 25 在( Ri, Ki) 算法描述圖中, S1, S2, ? , S8 為選擇函數,其功能是把 6 b數 據變?yōu)?4 b 數據。下面以選擇函數 S1 為例說明其功能。其選擇函數 S1 的功能表如表 5所 示。 表 5選擇函數 S1的功能表 14, 4, 13, 1, 2, 15, 11, 8, 3, 10, 6, 12, 5, 9, 0, 7 0, 15, 7, 4, 14, 2, 13, 1, 10, 6, 12, 11, 9, 5, 3, 8 4, 1, 14, 8, 13, 6, 2, 11, 15, 12, 9, 7, 3, 10, 5, 0 15, 12, 8, 2, 4, 9, 1, 7, 5, 11, 3, 14, 10, 0, 6, 13 通過表 5 可以看到,在 S1中共有 4行數據,分別命名為 0, 1, 2, 3行,每行有 16 列,分 別命名為 0, 1, 2, 3, ? , 14, 15 列。 現設輸入為: D=D1D2D3D4D5D6 令:列 =D2D3D4D5,行 =D1D6 然后在 S1 表中查得對應的數,以 4位二進制表示,此即為選擇函數 S1 的輸出 。 (4)子密鑰 Ki(48 b)的生成算法 開始,由于不考慮每個字節(jié)的第 8位, DES 的密鑰從 64 位變?yōu)?48 位,如表6 所示,首先 56 位 密鑰被分成兩個部分,每部分 28 位,然后根據輪數,兩部分分別循環(huán)左移 l 或 2 位。 表 6 密鑰置換 57, 49, 41, 32, 25, 17, 9, 1, 58, 50, 42, 34, 26, 18, 10, 2, 59, 51, 43, 35, 27, 19, 11, 3, 60, 52, 44, 36, 63, 55, 47, 39, 31, 23, 15, 7, 62, 54, 46, 38, 30, 22, 14, 6, 61, 53, 45, 37, 29, 21, 13, 5, 28, 20, 12, 4 DES 算法規(guī)定,其中第 8, 16, ? , 64 位是奇偶校驗位,不參與 DES運算。故 Key 實際可用 位數只有 56位。即:經過密鑰置換表的變換后, Key 的位數由64位變成了 56 位,此 56位分為 C 0, D0 兩部分,各 28 位,然后分別進行第一次循環(huán)左移,得到 C1, D1,將 C1(28 位 ), D1(28 位 )合并得到 56 位,再經過壓縮置換,從而便得到了密鑰 K0(48 位 )。依次類推,便可得到 K1, K 2, ? , K15。需要注意的是, 16 次循環(huán)左移對應的左移位數要依據表 7所示的規(guī)則進行。 以上介紹了 DES 算法的加密過程。 DES 算法的解密過程是一樣的,區(qū)別僅在于第一次迭代 時用子密鑰 K15,第二次是 K14, ? ,最后一次用 K0,算法本 身并沒有任何變化。 表 7循環(huán)左移位數 輪 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 位數 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2 , 2, 2, 1 (一) int des(char *data, char *key, int readlen) 參數 : (長度為 readlen, 可能經過填充 。 (8 字節(jié)的倍數 ) 功能 : 生成加密密鑰 , 把待加密的明文數據分割成 64 位的塊 , 逐塊完成 16次迭代加密 ,密文存放 data 所指向的內存中 。 (二) int Ddes(char *data, char *key, int readlen) 參數 : (長度為 readlen, 可能經過填充 。 ( 8 字節(jié)的倍數 ) 功能 : 生成解密密鑰 , 把待解密文分割成 64 位的塊 , 逐塊完成 16次迭代解密 , 解密后的明文存放在 data 所指向的內存中 。 (三) int des3(char *data, char *key, int n , int readlen) 參數 : (長度為 readlen, 可能經過填充 。 (8 字節(jié)的倍數 ) 功能 : 生成加密密鑰 , 把待加密的明文分割成 64 位的塊 , 把第 i1 層加密后的密文作為第 i層 的明文輸入 , 根據用戶指定的加密層數進行 n 層加密 , 最終生成的密文存放在 data 所指向 內存中 。 說明 : 用戶僅僅輸入一條密鑰 , 所有的加密密鑰都是由這條密鑰生成 . (四) int Ddes3(char *data, char*key, int n , int readlen) 參數 : (長度為 readlen, 可能經過填充 。 (8字節(jié)的倍數 ) 功能 : 生成解密密鑰 , 把待解密文分割成 64 位的塊 , 把第 i1 層解密后的 明文 作為第 i 層解密 密文輸入 , 根據用戶指定的解密層數進行 n 層解密 , 最終生成的明文存放在 data 所指向 內存中 。 說明 : 用戶僅僅輸入一條密鑰 , 所有的解密密鑰都是由這條密鑰生成 . (五) int desN(char*data, char*key, int n_key, int readlen) 參數 : (長度為 readlen, 可能經過填充 。 (8 字節(jié)的倍數 ) 功能 : 生成加密密鑰 , 把待加密的明文分割成 64 位的塊 , 把第 i1 層加密后的密文作為第 i層加密的明文輸入 , 根據用戶指定的加密層數進行 n層加密 , 最終生成的密文存放在 data 所指向的內存中 。 說明 : 這里用戶通過輸入的密鑰條數決 定加密的層數 , 每輪 16 次迭代加密所使用的加密密鑰是由用戶自定的對應密鑰生成 。 (六) int DdesN(char *data, char *key, int n_key, int readlen) 參數 : (長度為 readlen, 可能經過填充 。 (8字節(jié)的倍數 ) 功能 : 生成解密密鑰 , 把待解密文分割成 64 位的塊 , 把第 i1 層解密后的”明文”作為第 i 層解 的密文輸入 , 根據用戶指定的解密層數進行 n 層解密 , 最終生成 的明文存放在 data 所指向的內存中 。 說明 : 這里用戶通過輸入的密鑰條數決定解密的層數 , 每輪 16 次迭代加密所使用的解密密鑰是由用戶自定的對應 。 DES算法的應用誤區(qū)及避開方法 DES 算法具有極高的安全性,到目前為止,除了用窮舉搜索法對 DES算法進行攻擊外,還沒有發(fā)現更有效的辦法。而 56 位長的密鑰的窮舉空間為 256,這意味著如果一臺計算機的速度 是每秒檢測一百萬個密鑰,則他搜索完全部密鑰就需要將近 2 285 年的時間,可見這是難以實現的。當然,隨著科學技術的發(fā)展,當出現超高速計算機后,可以考慮把 DES 密 鑰的長度再增長一些,以此來達到更高的保密程度。 由上述 DES 算法介紹可以看到, DES 算法中只用到 64 位密鑰中的其中 56位,而第 8, 16, 24, ? , 64位 8個位并未參與 DES運算,這一點,提出了一個應用上的要求,即 DES 的安全性是基于除了 8, 16, 24, ? , 64位外的其余 56位的組合變化才得以保證的。因此 ,在實際應用中,應避開使用第 8, 16, 24, ? ,64位作為 DES 密鑰的有效數據位,才能保 證 DES算法安全可靠。對運用 DES來達到保密作用的系統(tǒng)產生數據被破譯的危險,這正是 DES 算法在應用上的誤區(qū)。 避開 DES 算法應用誤區(qū)的具體操作:在 DES 密鑰 Key 的使用、管理及密鑰更換的過程中,應 絕 對避開 DES 算法的應用誤區(qū),即絕對不能把 Key的第 8, 16,24, ? , 64位作為有效數據位 來對 Key進行管理,這一點,對應用 DES 加密的用戶來說要高度重視。有些網絡, 利用定期更換 DES 密鑰 Key 的辦法來進一步提高系統(tǒng)的安全性和可靠性,如果忽略了上述應用 誤區(qū),那么,更換新密鑰將是徒勞的,對網絡的安全運行將十分危險,所以更換密鑰一 定要保證新 Key 與舊 Key 真正的不同,即除了第 8, 16, 24, ? , 64 位以外其他位 數據發(fā)生 了變化,這一點是非常重要的。 目前 加密算法 已被廣泛的應用,隨著信息化和數字化社會的發(fā)展,隨著計算機 Inter 的普及,密碼學必將在國家安全、經濟交流、網絡安全及人民生活等方面發(fā)揮更大作用 。 3 軟件設計與實現 本軟件設計和實現的功能主要有兩個方面,一是對文件的加密,二是對加密的文件的解密工作。還附帶了用戶自己設定文件密碼,密碼驗證和各個操作的正確性的提示。所以將加密器分為 2 個子模塊: 1 文件加密, 2 文件解密。 加密功能待完成網絡方面數據流加密 節(jié)點加密和節(jié)點解密。對數據打包封裝在網絡上進行密文傳 輸。局部文本加密替換功能也是一個研究的方面。密鑰的分配和更改需要通過必要的渠道進行傳輸,密鑰的管理也關系到整個加密文件的安全因數。 程序結構圖 圖 2 程序結構圖 為 加密控件 按鈕添加事件處理程序,這段程序的功能是將選定的文件加密 , 獲得待加密文件名 、 獲得保存文件名 、 創(chuàng)建文件流分別指向輸入和輸出文件 , 根據密碼算出密鑰并保存到選定的文件中去,代碼如下 : private void encode_Click(object sender, EventArgs e) {//獲得待加密文件名 string inName = 。 //獲得保存文件名 string outName = 。 byte[] desIV = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }。 byte[] desKey ={ }。 //根據密碼算出密鑰 string keyString = 。 if ( = 8) { desKey = new byte[]{(byte)keyString[0] ,(byte)keyString[1], (byte)keyString[2], (byte)keyString[3] , (byt
點擊復制文檔內容
公司管理相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1