




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、現(xiàn)代密碼學(xué)實驗報告學(xué)生姓名 學(xué) 號 專業(yè)班級 計算機科學(xué)與技術(shù)指導(dǎo)教師 段桂華 學(xué) 院 信息科學(xué)與工程學(xué)院 完成時間 2016年4月實驗一 密碼算法實驗實驗?zāi)康?.掌握密碼學(xué)中經(jīng)典的對稱密碼算法AES、RC4的算法原理。2.掌握AES、RC4的算法流程和實現(xiàn)方法。實驗預(yù)備1.AES算法的基本原理和特點。2.流密碼RC4的密鑰流生成以及S盒初始化過程。 實驗內(nèi)容1. 分析AES、RC4的實現(xiàn)過程。2. 用程序設(shè)計語言將算法過程編程實現(xiàn)。3. 完成字符串?dāng)?shù)據(jù)的加密運算和解密運算輸入十六進(jìn)制明文:11223344556677889900AABBCCDDEEFF 輸入十六進(jìn)制密鑰:13579BDF02
2、468ACE1234567890ABCDEF 實驗步驟1. 預(yù)習(xí)AES、RC4算法。2. 寫出算法流程,用程序設(shè)計語言將算法過程編程實現(xiàn)。3. 輸入指定的明文、密鑰進(jìn)行實驗,驗證結(jié)果。4. 自己選擇不同的輸入,記錄輸出結(jié)果。寫出所編寫程序的流程圖和運行界面、運行結(jié)果。一、AES算法1、AES算法簡介AES 是一種可用來保護(hù)電子數(shù)據(jù)的新型加密算法。特別是,AES 是可以使用 128、192 和 256 位密鑰的迭代式對稱密鑰塊密碼,并且可以對 128 位(16 個字節(jié))的數(shù)據(jù)塊進(jìn)行加密和解密。與使用密鑰對的公鑰密碼不同的是,對稱密鑰密碼使用同一個密鑰來對數(shù)據(jù)進(jìn)行加密和解密。由塊密碼返回的加密數(shù)據(jù)
3、與輸入數(shù)據(jù)具有相同的位數(shù)。迭代式密碼使用循環(huán)結(jié)構(gòu)來針對輸入數(shù)據(jù)反復(fù)執(zhí)行排列和置換運算。2、 算法實現(xiàn)及流程以加密函數(shù)為例,如下所示,首先對密鑰進(jìn)行預(yù)處理密鑰擴展,然后明文進(jìn)行Nr(Nr與密鑰長度有關(guān))次迭代運算,包括字節(jié)替換SubBytes、 移位行運算ShiftRows、混合列運算MixColumns、以及輪秘鑰加密AddRoundKey。void Cipher() int i,j,round=0; / 把明文賦值到狀態(tài)數(shù)組中 for(i=0;i<4;i+) for(j=0;j<4;j+) stateji = ini*4 + j; / 先與初始輪密鑰相加 AddRoundKey(
4、0); / 第一輪至(Nr-1)輪的迭代運算,第Nr輪不用進(jìn)行列混合運算 for(round=1;round<Nr;round+) SubBytes(); /字節(jié)代換 ShiftRows(); /行移位 MixColumns(); /列混合 AddRoundKey(round); /密鑰加 SubBytes(); ShiftRows(); AddRoundKey(Nr); / 加密結(jié)束,將機密結(jié)果填入數(shù)組out中以便輸出 for(i=0;i<4;i+) for(j=0;j<4;j+) outi*4+j=stateji; 解密函數(shù)的流程和加密函數(shù)是一致的,只是對于行變換、列變換
5、、以及相關(guān)s盒子為加密的逆過程。 字節(jié)替換SubBytes是非線形置換,獨立地對狀態(tài)的每個字節(jié)進(jìn)行。移位行運算ShiftRows是將狀態(tài)陣列的各行進(jìn)行循環(huán)移位,不同狀態(tài)行的位移量不同。第0行不移動,第1行循環(huán)左移C1個字節(jié),第2行循環(huán)左移C2個字節(jié),第3行循環(huán)左移C3個字節(jié)。位移量C1、C2、C3的取值與Nb有關(guān)。混合列運算MixColumns是將狀態(tài)陣列的每個列視為多項式,再與一個固定的多項式c(x)進(jìn)行模x4+1乘法。Rijndael的設(shè)計者給出的c(x)為(系數(shù)用十六進(jìn)制數(shù)表示):c(x)=03x3+01x2+01x+02。輪秘鑰加密AddRoundKey是將輪密鑰簡單地與狀態(tài)進(jìn)行逐比特
6、異或。輪密鑰由種子密鑰通過密鑰編排算法得到,輪密鑰長度等于分組長度Nb。 程序流程圖128位明文秘鑰初始輪秘鑰加密產(chǎn)生輪秘鑰輪函數(shù)S盒變換Nr輪迭代控制 Nr個圈秘鑰行移位與列混合 輪秘鑰加密128位密文 AES流程圖3、 運行結(jié)果 首先,輸入指定密鑰13579BDF02468ACE1234567890ABCDEF ,輸入指定明文11223344556677889900AABBCCDDEEFF,進(jìn)行實驗,結(jié)果如圖所示。 選擇不同的輸入,輸入秘鑰11223344556677889900AABBCCDDEEFF,輸入明文13579BDF02468ACE1234567890ABCDEF ,輸出結(jié)果如
7、圖所示。二、RC4算法1、RC4算法簡介 RC4加密算法是大名鼎鼎的RSA三人組中的頭號人物Ron Rivest在1987年設(shè)計的密鑰長度可變的流加密算法簇。首先,用從1到256個字節(jié)的可變長度密鑰初始化一個256個字節(jié)的狀態(tài)盒S256。然后,通過S盒子對密鑰按字節(jié)進(jìn)行變換。最后可以得到變換后的密鑰。對于加密,只要讓密鑰按字節(jié)與明文進(jìn)行異或。而解密,只要讓密鑰按字節(jié)與密文進(jìn)行異或。2、 算法實現(xiàn)開始時,S中元素的值被置為按升序從0到255,即S0=0,S1=1, ,S255=255。同時對密鑰keykey_len的進(jìn)行填充到隨機序列密鑰rc4key256中,(key_len為key的字節(jié)長度,
8、且不大于256)。循環(huán)重復(fù)用key,直到rc4key的所有字節(jié)都被賦值。然后根據(jù)密鑰re4key去對S盒進(jìn)行變換。這些預(yù)操作可概括如下: /S盒先初始化為s0=0,s1=1.s255=255 for(i = 0; i < 255; i+) Si=i; /初始化序列化密鑰 for(i = 0; i < 256; i+) j = i % key_len rc4keyi = key_dataj; /根據(jù)密鑰rc4key,填充S盒 for( j = 0, i = 0; i < 256; i+) j = (rc4keyi + Si + j) % 256; swap(&Si, &
9、amp;Sj); /交換Si和Sj的數(shù)值 矢量S一旦完成初始化,輸人密鑰就不再被使用密鑰流的生成是從s0到S255,對每個Si,根據(jù)當(dāng)前S的值,將Si與S中的另一字節(jié)置換當(dāng)S255完成置換后,操作繼續(xù)重復(fù),從S0開始。操作如下:/生成隨機序列密鑰 for(counter = 0; counter < buffer_len; counter+) i = (i + 1) % 256; j = (Si + j) % 256; swap(&Si, &Sj); t = (Si + Sj) % 256; rc4keycounter = St;這兩個過程使用同樣的函數(shù)即可,加密中,將k
10、的值與下一明文字節(jié)異或;解密中/將緩沖區(qū)數(shù)據(jù)和隨機系列密鑰進(jìn)行異或,則可進(jìn)行加密或者解密 ,將k的值與下一密文字節(jié)異或。操作如下: for(i = 0; i < buffer_len; i+) resulti = buffer_datai rc4keyi; 程序流程圖S盒的初始化:S0=0,S1=1,.,S255=255秘鑰與S盒做預(yù)算,生成序列rc4key得已知密文ciphertext得隨機秘鑰序列rc4key已知明文plaintext RC4流程圖3、 運行結(jié)果 首先,輸入指定密鑰13579BDF02468ACE1234567890ABCDEF ,輸入指定明文112233445566
11、77889900AABBCCDDEEFF,進(jìn)行實驗,結(jié)果如圖所示。4、選擇不同的輸入,輸入秘鑰11223344556677889900AABBCCDDEEFF,輸入明文13579BDF02468ACE1234567890ABCDEF ,輸出結(jié)果如圖所示。問題討論1. 改變明文或密鑰中的一個比特值可能影響AES值中的多少比特?2.在RC4的密鑰流生成中,改變初始密鑰的一個比特值可能影響輸出中的多少比特?3.分析實驗中在編輯、編譯、運行等各環(huán)節(jié)中所出現(xiàn)的問題及解決方法?;卮饐栴}1.答:明文和密鑰在S盒置換時,不同的字節(jié)會替換出不同的結(jié)果。算法過程 中一共進(jìn)行了10輪加密,所以改變一個比特值可能影響
12、AES值中的80比特(8 x 10)。2.答:初始密鑰的不同會導(dǎo)致S盒的不同,所以可能影響輸出中的256比特。3.答:在算法的實現(xiàn)過程中,對于異或等平時很難接觸到的位操作不熟悉導(dǎo)致在輪密鑰加密等過程的實現(xiàn)變得很艱難。最難處理的是字符串對的補足長度問題,這個問題在設(shè)計之初并沒有想到過導(dǎo)致最后測試時出現(xiàn)了很多問題,最后通過查閱資料等方式解決了這些問題。實驗二 SKEY協(xié)議設(shè)計實驗實驗?zāi)康?.掌握身份認(rèn)證協(xié)議的原理和基本思想。2.掌握SKEY協(xié)議的機制和實現(xiàn)方法。實驗預(yù)備1.SKEY協(xié)議的作用。2.SKEY協(xié)議的安全性分析。3.SKEY協(xié)議的實現(xiàn)過程。實驗內(nèi)容1. 分析SKEY協(xié)議的實現(xiàn)過程。2.
13、用程序設(shè)計語言將算法過程編程實現(xiàn)。3. 演示SKEY協(xié)議的身份鑒別過程。 實驗步驟1. 預(yù)習(xí)SKEY協(xié)議的機制。2. 選擇和實現(xiàn)相應(yīng)的摘要算法MD5或SHA。3. 寫出算法流程,用程序設(shè)計語言將協(xié)議過程編程實現(xiàn)。4. 驗證SKEY協(xié)議的身份鑒別過程。寫出所編寫程序的流程圖和運行界面、運行結(jié)果。1、 SKEY協(xié)議的原理及作用 SKEY是一種鑒別程序,它依賴于單向函數(shù)的安全性。 為了設(shè)置系統(tǒng),輸入隨機數(shù)R,計算機計算f(R), f(f(R), f(f(f(R)等等大約100次。調(diào)用x1 ,x2 ,x3 ,。,x100這些數(shù)。計算機打印出這些數(shù)的列表,Alice把這些數(shù)放入口袋妥善保管,計算機也順利
14、地在登錄數(shù)據(jù)庫中Alice的名字后面存儲x101的值。當(dāng)Alice第一次登錄時,她輸入她的名字和x100,計算機計算f(x100),并把它和x101比較,如果它們匹配,那么證明Alice身份是真的。然后,計算機用x101代替數(shù)據(jù)庫中的x100。Alice將從她的列表中取消x100。 Alice每次登錄時,都輸入她的列表中未取消的最后的數(shù)xI,計算機計算f(xI),并和存儲在它的數(shù)據(jù)庫中的xI+1比較。因為每個數(shù)只被用一次,并且這個函數(shù)是單向的,所以Eve不可能得到任何有用的信息。同樣的,數(shù)據(jù)庫對攻擊者也毫無用處。當(dāng)然,當(dāng)Alice用完了她的列表上面的數(shù)后,她必須重新初始化系統(tǒng)。作用:身份認(rèn)證,
15、是任何網(wǎng)絡(luò)安全方案的一個基礎(chǔ)。如在大部分情況下, 需要認(rèn)證的實體是通信的發(fā)送者,即需要確定訪問者的合法性問題。 S/KEY協(xié)議主要是用于身份認(rèn)證。2、 用MD5實現(xiàn)加密1、 算法簡介 MD5即Message-Digest Algorithm 5(信息-摘要算法 5),用于確保信息傳輸完整一致。是計算機廣泛使用的雜湊算法之一(又譯摘要算法、哈希算法),主流編程語言普遍已有MD5實現(xiàn)。將數(shù)據(jù)(如漢字)運算為另一固定長度值,是雜湊算法的基礎(chǔ)原理,MD5的前身有MD2、MD3和MD4。MD5的作用是讓大容量信息在用數(shù)字簽名軟件簽署私人密鑰前被"壓縮"成一種保密的格式(就是把一個任意
16、長度的字節(jié)串變換成一定長的十六進(jìn)制數(shù)字串)。2.原理以及流程圖 MD5以512位分組來處理輸入的信息,且每一分組又被劃分為16個32位子分組,經(jīng)過了一系列的處理后,算法的輸出由四個32位分組組成,將這四個32位分組級聯(lián)后將生成一個128位散列值。 在MD5算法中,首先需要對信息進(jìn)行填充,使其位長對512求余的結(jié)果等于448。因此,信息的位長(Bits Length)將被擴展至N*512+448,N為一個非負(fù)整數(shù),N可以是零。填充的方法如下,在信息的后面填充一個1和無數(shù)個0,直到滿足上面的條件時才停止用0對信息的填充。然后,在這個結(jié)果后面附加一個以64位二進(jìn)制表示的填充前信息長度。經(jīng)過這兩步的處
17、理,現(xiàn)在的信息的位長=N*512+448+64=(N+1)*512,即長度恰好是512的整數(shù)倍。這樣做的原因是為滿足后面處理中對信息長度的要求。MD5中有四個32位被稱作鏈接變量(Chaining Variable)的整數(shù)參數(shù),他們分別為:A=0x67452301,B=0xefcdab89,C=0x98badcfe,D=0x10325476。當(dāng)設(shè)置好這四個鏈接變量后,就開始進(jìn)入算法的四輪循環(huán)運算。循環(huán)的次數(shù)是信息中512位信息分組的數(shù)目。 將輸入消息按512-位分組,最后要填充成為512位的整數(shù)倍,且最后一組的后64位用來填充消息長度(填充前)。填充方法為附一個1在消息后,后接所要求的多個0。
18、這樣可以確保不同消息在填充后不相同。 由于留出64位用來表示消息長度,那么消息的長度最多可達(dá)264字節(jié),相當(dāng)于4G×4G字節(jié),文件的長度是不可能達(dá)到這么大,因此通常都是只采用64位中的低32位來表示消息長度,高32位填充0。 l 初始化MD變量。由于每輪輸出128位,這128位可用下面四個32位字A,B,C,D來表示。CVqYqDCBAF,T116,XiG,T1732,Xp2 iH,T3348,Xp3 iL,T4964,Xp4i+CVq+1 其初始值設(shè)為: A=0x01234567 B=0x89ABCDEF C=0xFEDCBA98 D=0x76543210 開始進(jìn)入算法主循環(huán),循環(huán)的次數(shù)是消息中512位消息分組的數(shù)目。先將上面A、B、C、D四個變量分別復(fù)制到另外四個變量a、b、c、d中去。主循環(huán)有四 輪,每輪很相似。每輪進(jìn)行16次操作,每次操作對a、b、c、d四個變量中的三個作一次非線性函數(shù)運算,然后將所得結(jié)果加上第四個變量,消息的一個子分組 和一個常數(shù)。再將所得結(jié)果向右環(huán)移一個
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 四川省遂寧蓬溪縣聯(lián)考2024-2025學(xué)年初三下學(xué)期八模考試英語試題含答案
- 遼寧省撫順市順城區(qū)重點達(dá)標(biāo)名校2024-2025學(xué)年初三中考考前指導(dǎo)卷(1)數(shù)學(xué)試題含解析
- GRC施工監(jiān)理合同52025年
- 遼寧省本溪市平山區(qū)2025屆數(shù)學(xué)三下期末學(xué)業(yè)質(zhì)量監(jiān)測試題含解析
- 浙江省紹興市越城區(qū)重點中學(xué)2025年初三中考全真模擬卷(七)物理試題含解析
- 石家莊市2025年初三下學(xué)期(線上)適應(yīng)性測試語文試題含解析
- 寧夏中學(xué)寧縣達(dá)標(biāo)名校2024-2025學(xué)年初三月考試題含答案
- 遼寧省遼陽市二中學(xué)教育協(xié)作2025年初三第二學(xué)期月考二化學(xué)試題含解析
- 公寓二房東租賃合同
- 統(tǒng)編版三年級語文下冊第四單元測試卷(A)(含答案)
- 2025內(nèi)蒙古中煤鄂爾多斯能源化工有限公司招聘98人筆試參考題庫附帶答案詳解
- 三年級西師大語文下學(xué)期期末知識點歸納復(fù)習(xí)知識點鞏固練習(xí)
- 河南省駐馬店市汝南縣2024-2025學(xué)年七年級下學(xué)期期中生物試題(含答案)
- 2025年醫(yī)保知識考試題庫:醫(yī)保定點醫(yī)療機構(gòu)管理制度要點試題
- 小學(xué)科學(xué)綜合試題及答案
- 2025屆陜西省高考適應(yīng)性檢測(三)物理試題+答案
- 2025-2030中國有源電力濾波器(APF)行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略研究報告
- 2025工廠職工安全培訓(xùn)考試試題及答案可打印
- 兒童寓言故事-烏鴉喝水
- 2025年河南工業(yè)和信息化職業(yè)學(xué)院高職單招語文2019-2024歷年真題考點試卷含答案解析
- 2025年韓語TOPIK中級考試真題卷:閱讀理解能力測試題
評論
0/150
提交評論