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

正文內(nèi)容

des算法的可視化程序的實(shí)現(xiàn)—畢業(yè)設(shè)計(jì)論文(編輯修改稿)

2024-10-11 11:24 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 的設(shè)計(jì)可能隱藏著某種陷門,它可以使了解陷門的人能夠成功的進(jìn)行密碼分析。經(jīng)過(guò)多年來(lái)的研究,人們的確發(fā)現(xiàn)了 S 盒的很多規(guī)律,但至今還沒(méi)有發(fā)現(xiàn) S 盒的致命缺陷。 算法流程 DES 算法把 64 位的明文輸入塊變?yōu)?64 位的密文輸出塊,它所使用的密鑰也是 64 位,整個(gè)算法的主流程圖如下: 其功能是把輸入的 64位數(shù)據(jù)塊按位重新組合,并把輸出分為 L0、 R0兩部分,每部分各長(zhǎng) 32 位,其置換規(guī)則見下表: 58,50,12,34,26,18,10,2,60,52,44,36,28,20,12,4, 62,54,46,38,30,22,14,6,64,56,48,40,32,24,16,8, 57,49,41,33,25,17, 9,1,59,51,43,35,27,19,11,3, 61,53,45,37,29,21,13,5,63,55,47,39,31,23,15,7, 即將輸入的第 58位換到第一位,第 50位換到第 2 位, ...,依此類推,最后一位是原來(lái)的第 7位。 L0、 R0則是換位輸出后的兩部分, L0 是輸出的左 32位,R0 是右 32位,例:設(shè)置換前的輸入值為 D1D2D3......D64,則經(jīng)過(guò)初始置換后的結(jié)果為: L0=D58D50...D8; R0=D57D49...D7。 經(jīng)過(guò) 26次迭代運(yùn)算后。得到 L1R16,將此作為輸入,進(jìn)行逆置換,即得到密文輸出。逆置換正好是初始置的逆運(yùn)算, 例如,第 1 位經(jīng)過(guò)初始置換后,處于第 40位,而通過(guò)逆置換,又將第 40位換回到第 1 位,其逆置換規(guī)則如下表所示: 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, 放大換位表: 第 8 頁(yè) 共 23 頁(yè) 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, 單純換位表: 16,7,20,21,29,12,28,17, 1,15,23,26, 5,18,31,10, 2, 8,24,14,32,27, 3, 9,19,13,30, 6,22,11, 4,25, 在 f(Ri,Ki)算法描述圖中, S1,S2...S8 為選擇函數(shù),其功能是把 6bit 數(shù)據(jù)變?yōu)?4bit 數(shù)據(jù)。下面給出選擇函數(shù) Si(i=1,2......8)的功能表: 選擇函數(shù) Si 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, S2: 15,1,8,14,6,11,3,4,9,7,2,13,12,0,5,10, 3,13,4,7,15,2,8,14,12,0,1,10,6,9,11,5, 0,14,7,11,10,4,13,1,5,8,12,6,9,3,2,15, 13,8,10,1,3,15,4,2,11,6,7,12,0,5,14,9, S3: 10,0,9,14,6,3,15,5,1,13,12,7,11,4,2,8, 13,7,0,9,3,4,6,10,2,8,5,14,12,11,15,1, 13,6,4,9,8,15,3,0,11,1,2,12,5,10,14,7, 1,10,13,0,6,9,8,7,4,15,14,3,11,5,2,12, S4: 7,13,14,3,0,6,9,10,1,2,8,5,11,12,4,15, 13,8,11,5,6,15,0,3,4,7,2,12,1,10,14,9, 10,6,9,0,12,11,7,13,15,1,3,14,5,2,8,4, 3,15,0,6,10,1,13,8,9,4,5,11,12,7,2,14, S5: 2,12,4,1,7,10,11,6,8,5,3,15,13,0,14,9, 14,11,2,12,4,7,13,1,5,0,15,10,3,9,8,6, 4,2,1,11,10,13,7,8,15,9,12,5,6,3,0,14, 11,8,12,7,1,14,2,13,6,15,0,9,10,4,5,3, S6: 第 9 頁(yè) 共 23 頁(yè) 12,1,10,15,9,2,6,8,0,13,3,4,14,7,5,11, 10,15,4,2,7,12,9,5,6,1,13,14,0,11,3,8, 9,14,15,5,2,8,12,3,7,0,4,10,1,13,11,6, 4,3,2,12,9,5,15,10,11,14,1,7,6,0,8,13, S7: 4,11,2,14,15,0,8,13,3,12,9,7,5,10,6,1, 13,0,11,7,4,9,1,10,14,3,5,12,2,15,8,6, 1,4,11,13,12,3,7,14,10,15,6,8,0,5,9,2, 6,11,13,8,1,4,10,7,9,5,0,15,14,2,3,12, S8: 13,2,8,4,6,15,11,1,10,9,3,14,5,0,12,7, 1,15,13,8,10,3,7,4,12,5,6,11,0,14,9,2, 7,11,4,1,9,12,14,2,0,6,10,13,15,3,5,8, 2,1,14,7,4,10,8,13,15,12,9,0,3,5,6,11, 在此以 S1 為例說(shuō)明其功能,我們可以看到:在 S1 中,共有 4行數(shù)據(jù),命名為 0, 3行;每行有 16列,命名為 0、 3, ......, 1 15列。 現(xiàn)設(shè)輸入為: D= D1D2D3D4D5D6 令:列= D2D3D4D5 行= D1D6 然后在 S1 表中查得對(duì)應(yīng)的數(shù),以 4位二進(jìn)制表示,此即為選擇函數(shù) S1 的輸出。下面給出子密鑰 Ki(48bit)的生成算法 。從子密鑰 Ki 的生成算法描述圖中我們可以看到:初始 Key 值為 64 位,但 DES算法規(guī)定,其中第 1 ......64 位是奇偶校驗(yàn)位,不參與 DES 運(yùn)算。故 Key 實(shí)際可用位數(shù)便只有 56 位。即:經(jīng)過(guò)縮小選擇換位表 1 的變換后, Key 的位數(shù)由 64 位變成了 56位,此 56 位分為 C0、 D0 兩部分,各 28 位,然后分別進(jìn)行第 1次循環(huán)左移,得到 C D1,將 C1( 28 位)、 D1( 28位)合并得到 56 位,再經(jīng)過(guò)縮小選擇換位 2,從而便得到了密鑰 K0( 48位)。依此類推,便可得到 K K ......、K15,不 過(guò)需要注意的是, 16 次循環(huán)左移對(duì)應(yīng)的左移位數(shù)要依據(jù)下述規(guī)則進(jìn)行:循環(huán)左移位數(shù) 1,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1以上介紹了 DES算法的加密過(guò)程。 DES 算法的解密過(guò)程是一樣的,區(qū)別僅僅在于第一次迭代時(shí)用子密鑰 K15,第二次 K1 ......,最后一次用 K0,算法本身并沒(méi)有任何變化。 第 10 頁(yè) 共 23 頁(yè) 3 算法實(shí)現(xiàn)及應(yīng)用 應(yīng)用程序結(jié)構(gòu) 程序總體功能有加密演示 ,保密通信 ,對(duì)文本文件進(jìn)行加密三個(gè)部分 ,同時(shí)提供對(duì)密匙的簡(jiǎn)單管理 ,用戶可根據(jù)需要 自行修改密匙設(shè)置 .程序上各個(gè)功能模塊的執(zhí)行依賴于界面事件 ,程序采用 JAVA 實(shí)現(xiàn) ,充分利用了 JAVA 的事件模型 .事件驅(qū)動(dòng)的原理是 注冊(cè)監(jiān)視器 ,為對(duì)象添加監(jiān)視器 ,捕獲事件 ,分析事件原因以及類型 ,根據(jù)事件的不同 ,執(zhí)行不同的功能代碼 .本程序 根據(jù)用戶執(zhí)行的操作 ,程序 捕獲 界面上發(fā)生的 事件 ,再 根據(jù)事件的類型 ,執(zhí)行不同的功能函數(shù) 。 圖 21 算法流程圖 第 11 頁(yè) 共 23 頁(yè) 應(yīng)用程序底層加密接口 在封裝的 DES 類中 ,提供了兩個(gè)對(duì)外的接口 ,這兩個(gè)接口非常重要 ,是本設(shè)計(jì)的核心 ,它獨(dú)立的實(shí)現(xiàn)了對(duì)任意長(zhǎng)字符串的加密 ,支持中英文的字符輸入方式 ,其實(shí)現(xiàn)如下部分代碼所示 : 加密接口: public String Encrypt(String In) { String ret=。 if(!IsDencrypted(In)) { int count=0。 char Buffer[]=new char[(()/4+1)*5]。 In=()。 int x=()。 for(int i=1。i=(x/4+1)。i++) { if(i==(x/4+1)) { String si=(4*(i1),x)。char a[]=PreEncrypt(si).toCharArray()。 for(int t=0。t4。t++) { Buffer[count++]=a[t]。 } Buffer[count++]=39。39。 } else { String si=(4*(i1),4*i)。char a[]=PreEncrypt(si).toCharArray()。 for(int t=0。t4。t++) { Buffer[count++]=a[t]。 } Buffer[count++]=39。39。 } } ret=new String(Buffer)。} else { StringTokenizer analysis=new StringTokenizer(In,)。 int count=0。 char Buffer[]=new char[()]。 while(()) { String str=()。char a[]=PreEncrypt(str).toCharArray()。 for(int i=0。i4。i++) { Buffer[count++]=a[i]。 } } ret=new String(Buffer)。 } return ret。} 解密接口: public String Dencrypt(String In) { String ret=。 if(IsEncrypted(In)) { StringTokenizer analysis=new StringTokenizer(In,)。 int count=0。 char Buffer[]=new char[()]。 while(()) 第 12 頁(yè) 共 23 頁(yè) { String str=()。char a[]=PreDencrypt(str).toCharArray()。 for(int i=0。i4。i++) {Buffer[count++]=a[i]。 } }ret=new String(Buffer)。 } else {int count=0。char Buffer[]=new char[(()/4+1)*5]。 In=()。int x=()。 for(int i=1。i=(x/4+1)。i++) { if(i==(x/4+1)) { String si=(4*(i1),x)。 char a[]=PreDencrypt(si).toCharArray()。 for(int t=0。t4。t++) {Buffer[count++]=a[t]。 }Buffer[count++]=39。39。 } else { String si=(4*(i1),4*i)。 char a[]=PreDencrypt(si).toCharArray()。 for(int t=0。t4。t++) { Buffer[count++]=a[t]。 } Buffer[count++]=39。39。 }}ret=new String(Buffer)。 }return ret。} 功能模塊定義 本模塊是應(yīng)用程序的默認(rèn)選項(xiàng) ,在應(yīng)用程序初始化的時(shí)候 ,本模塊被初始化 .該模塊實(shí)現(xiàn)對(duì)用戶透明的保密通信 .采用 C/S結(jié)構(gòu) ,服務(wù)器端顯示信息窗口和客戶端顯示信息窗口集成在同一個(gè)顯示面板上 .單擊啟動(dòng)服務(wù)器按鈕 ,將創(chuàng)建一個(gè)服務(wù)器端 SOCKET,并在端口 2020 上監(jiān)聽 .單擊啟動(dòng)客戶端 ,經(jīng)過(guò) TCP/IP 三次握手以后將建立一個(gè)與服務(wù)器端的連接 ,在這之間 ,服務(wù)器端和客戶端便有了一條數(shù)據(jù)通信通道 ,服務(wù)器和
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1