資源描述:
《密碼學(xué)課程設(shè)計實驗報告》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、華中科技大學(xué)信息安全專業(yè)華中科技大學(xué)密碼學(xué)課程設(shè)計實驗報告院系:計算機科學(xué)與技術(shù)專業(yè):信息安全班級:0803指導(dǎo)老師:姓名:學(xué)號:u2008141392011年2月27日12華中科技大學(xué)信息安全專業(yè)目錄密碼學(xué)課程設(shè)計報告31.引論……………………………………………………………………………………………32.DES31.1原理31.2DES的實現(xiàn)91.3相關(guān)函數(shù)93.弱密鑰的檢測112.1定義112.2檢測方法112.3檢測弱密鑰實現(xiàn)112.4相關(guān)函數(shù)124.總結(jié)125.相關(guān)源碼1212華中科技大學(xué)信息安全專業(yè)一、引論當(dāng)今社會是信息化的社會。為了適應(yīng)社
2、會對計算機數(shù)據(jù)安全保密越來越高的要求,美國國家標(biāo)準(zhǔn)局(NBS)于1997年公布了一個由IBM公司研制的一種加密算法,并且確定為非機要部門使用的數(shù)據(jù)加密標(biāo)準(zhǔn),簡稱DES(DataEncryptonStandard)。自公布之日起,DES算法作為國際上商用保密通信和計算機通信的最常用算法,一直活躍在國際保密通信的舞臺上,扮演了十分突出的角色。二、DES2.1、原理2.1.1、DES算法加密過程12華中科技大學(xué)信息安全專業(yè)對DES算法加密過程圖示的說明如下:待加密的64比特明文串m,經(jīng)過IP置換后,得到的比特串的下標(biāo)列表如下:IP585042342618
3、10260524436282012462544638302214664564840322416857494133251791595143352719113615345372921135635547393123157該比特串被分為32位的L0和32位的R0兩部分。R0子密鑰K1(子密鑰的生成將在后面講)經(jīng)過變換f(R0,K1)(f變換將在下面講)輸出32位的比特串f1,f1與L0做不進位的二進制加法運算。運算規(guī)則為:f1與L0做不進位的二進制加法運算后的結(jié)果賦給R1,R0則原封不動的賦給L1。L1與R0又做與以上完全相同的運算,生成L2,R2……一共
4、經(jīng)過16次運算。最后生成R16和L16。其中R16為L15與f(R15,K16)做不進位二進制加法運算的結(jié)果,L16是R15的直接賦值。R16與L16合并成64位的比特串。值得注意的是R16一定要排在L16前面。R16與L16合并后成的比特串,經(jīng)過置換IP-1后所得比特串的下標(biāo)列表如下:IP-140848165624643239747155523633138646145422623037545135321612936444125220602835343115119592734242105018582633141949175725經(jīng)過置換IP-1后生
5、成的比特串就是密文e.。下面再講一下變換f(Ri-1,Ki)。它的功能是將32比特的輸入再轉(zhuǎn)化為32比特的輸出。其過程如圖所示:12華中科技大學(xué)信息安全專業(yè)對f變換說明如下:輸入Ri-1(32比特)經(jīng)過變換E后,膨脹為48比特。膨脹后的比特串的下標(biāo)列表如下:E:32123454567898910111213121314151617161718192021202122232425242526272829282930313231膨脹后的比特串分為8組,每組6比特。各組經(jīng)過各自的S盒后,又變?yōu)?比特(具體過程見后),合并后又成為32比特。該32比特經(jīng)過P
6、變換后,其下標(biāo)列表如下:P:1672021291228171152326518311028241432273919133062211425經(jīng)過P變換后輸出的比特串才是32比特的f(Ri-1,Ki)。下面再講一下S盒的變換過程。任取一S盒。見圖:12華中科技大學(xué)信息安全專業(yè)在其輸入b1,b2,b3,b4,b5,b6中,計算出x=b1*2+b6,y=b5+b4*2+b3*4+b2*8,再從Si表中查出x行,y列的值Sxy。將Sxy化為二進制,即得Si盒的輸出。12華中科技大學(xué)信息安全專業(yè)2.1.2、子密鑰的生成64比特的密鑰生成16個48比特的子密鑰。
7、其生成過程見圖:子密鑰生成過程具體解釋如下:64比特的密鑰K,經(jīng)過PC-1后,生成56比特的串。其下標(biāo)如表所示:PC-15749413325179158504234261810259514335271911360524436635547393123157625446383022146615345372921135282012412華中科技大學(xué)信息安全專業(yè)該比特串分為長度相等的比特串C0和D0。然后C0和D0分別循環(huán)左移1位,得到C1和D1。C1和D1合并起來生成C1D1。C1D1經(jīng)過PC-2變換后即生成48比特的K1。K1的下標(biāo)列表為:PC-214
8、1711241532815621102319124268167272013241523137475530405145334