實驗9 分組加密算法_第1頁
實驗9 分組加密算法_第2頁
實驗9 分組加密算法_第3頁
實驗9 分組加密算法_第4頁
實驗9 分組加密算法_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

課程名稱:《計算機網(wǎng)絡安全》PAGE1《計算機網(wǎng)絡安全》講稿授課教師:許玉龍適用于信息技術(shù)學院實驗9:分組加密算法相關(guān)主要內(nèi)容一、熟悉理解分組加密算法二、練習實現(xiàn)分組加密算法程序重點分組加密算法:明文和密文為64位分組長度對稱算法:加密和解密除密鑰編排不同外,使用同一算法密鑰長度:有效密鑰56位,但每個第8位為奇偶校驗位,可忽略密鑰可為任意的56位數(shù),但存在弱密鑰,容易避開采用混亂和擴散的組合,每個組合先替代后置換,共16輪只使用了標準的算術(shù)和邏輯運算,易于實現(xiàn)輸入輸入64比特明文數(shù)據(jù)初始置換IP在密鑰控制下16輪迭代初始逆置換IP-1輸出64比特密文數(shù)據(jù)DES加密過程一、理解分組加密算法主講內(nèi)容:DES(DataEncryptionStandard)算法,于1977年得到美國政府的正式許可,是一種用56位密鑰來加密64位數(shù)據(jù)的方法。DES算法以被應用于許多需要安全加密的場合。(如:UNIX的密碼算法就是以DES算法為基礎(chǔ)的)。下面是關(guān)于如何實現(xiàn)DES算法的語言性描述,如果您要其源代碼,可以到Http//A下載,后者您有任何問題也可以寫信給我(Assassin@)。1-1、變換密鑰取得64位的密鑰,每個第8位作為奇偶校驗位。1-2、變換密鑰。1-2-1、舍棄64位密鑰中的奇偶校驗位,根據(jù)下表(PC-1)進行密鑰變換得到56位的密鑰,在變換中,奇偶校驗位以被舍棄。PermutedChoice1(PC-1)574941332517915850423426181025951433527191136052443663554739312315762544638302214661534537292113528201241-2-2、將變換后的密鑰分為兩個部分,開始的28位稱為C[0],最后的28位稱為D[0]。1-2-3、生成16個子密鑰,初始I=1。1-2-3-1、同時將C[I]、D[I]左移1位或2位,根據(jù)I值決定左移的位數(shù)。見下表I:12345678910111213141516左移位數(shù):11222222122222211-2-3-2、將C[I]D[I]作為一個整體按下表(PC-2)變換,得到48位的K[I]PermutedChoice2(PC-2)14171124153281562110231912426816727201324152313747553040514533484449395634534642503629321-2-3-3、從1-2-3-1處循環(huán)執(zhí)行,直到K[16]被計算完成。2、處理64位的數(shù)據(jù)2-1、取得64位的數(shù)據(jù),如果數(shù)據(jù)長度不足64位,應該將其擴展為64位(例如補零)2-2、將64位數(shù)據(jù)按下表變換(IP)InitialPermutation(IP)585042342618102605244362820124625446383022146645648403224168574941332517915951433527191136153453729211356355473931231572-3、將變換后的數(shù)據(jù)分為兩部分,開始的32位稱為L[0],最后的32位稱為R[0]。2-4、用16個子密鑰加密數(shù)據(jù),初始I=1。2-4-1、將32位的R[I-1]按下表(E)擴展為48位的E[I-1]Expansion(E)32123454567898910111213121314151617161718192021202122232425242526272829282930313212-4-2、異或E[I-1]和K[I],即E[I-1]XORK[I]2-4-3、將異或后的結(jié)果分為8個6位長的部分,第1位到第6位稱為B[1],第7位到第12位稱為B[2],依此類推,第43位到第48位稱為B[8]。2-4-4、按S表變換所有的B[J],初始J=1。所有在S表的值都被當作4位長度處理。2-4-4-1、將B[J]的第1位和第6位組合為一個2位長度的變量M,M作為在S[J]中的行號。2-4-4-2、將B[J]的第2位到第5位組合,作為一個4位長度的變量N,N作為在S[J]中的列號。2-4-4-3、用S[J][M][N]來取代B[J]。SubstitutionBox1(S[1])1441312151183106125907015741421311061211953841148136211151297310501512824917511314100613S[2]1518146113497213120510313471528141201106911501471110413158126932151381013154211671205149S[3]1009146315511312711428137093461028514121115113649815301112125101471101306987415143115212S[4]7131430691012851112415138115615034721211014910690121171315131452843150610113894511127214S[5]2124171011685315130149141121247131501510398642111101378159125630141181271142136150910453S[6]1211015926801334147511101542712956113140113891415528123704101131164321295151011141760813S[7]4112141508133129751061130117491101435122158614111312371410156805926111381410795015142312S[8]13284615111109314501271151381037412561101492711419121420610131535821147410813151290356112-4-4-4、從2-4-4-1處循環(huán)執(zhí)行,直到B[8]被替代完成。2-4-4-5、將B[1]到B[8]組合,按下表(P)變換,得到P。PermutationP16720212912281711523265183110282414322739191330622114252-4-6、異或P和L[I-1]結(jié)果放在R[I],即R[I]=PXORL[I-1]。2-4-7、L[I]=R[I-1]2-4-8、從2-4-1處開始循環(huán)執(zhí)行,直到K[16]被變換完成。2-4-5、組合變換后的R[16]L[16](注意:R作為開始的32位),按下表(IP-1)變換得到最后的結(jié)果。FinalPermutation(IP**-1)40848165624643239747155523633138646145422623037545135321612936444125220602835343115119592734242105018582633141949175725以上就是DES算法的描述。四、練習十進制和二進制數(shù)之間的轉(zhuǎn)換//////十進制轉(zhuǎn)二進制inti,n=0,b[16]; scanf("%d",&i); for(;i;i>>=1) b[n++]=i&1; for(;n;) printf("%d",b[--n]);五.練習異或程序3.1/*刪除指定字符常規(guī)的解法intmain(){ charMystr1[]="sheisourteacher!"; charMystr2[]="shr";intktt=0; intlen1=strlen(Mystr1)+1;intlen2=strlen(Mystr2)+1; char*final=newchar[len1]; memset(final,0,len1); for(intindex2=0;index2<len2;index2++) { for(intindex1=0;index1<len1;index1++)if(Mystr2[index2]==Mystr1[index1]) Mystr1[index1]=0; } for(intindex1=0;index1<len1;index1++) if(0!=Mystr1[index1]) final[ktt++]=Mystr1[index1];printf("%s",final); return0;}3.2/*利用字符存儲性質(zhì),高效率刪除指定字符*/intmain(){ charstr1[]="sheisourteacher!"; charstr2[]="shr";inti,j,k=0; intlen1=strlen(str1);intlen2=strlen(str2); char*final=newchar[len1]; memset(final,0,len1); chartemp[256]; for(i=0;i<len2;i++) temp[str2[i]]

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論