




已閱讀5頁,還剩41頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
一、 密碼實驗系統(tǒng)指導書1、DES單步加密實驗2、DES算法實驗3、3DES算法實驗4、AES算法實驗5、MD5算法實驗6、SHA-1算法實驗7、RSA算法實驗8、DSA數字簽名實驗1、DES單步加密實驗【實驗目的】1. 掌握DES算法的基本原理2. 了解DES算法的詳細步驟【實驗環(huán)境】1. 本試驗需要密碼教學實驗系統(tǒng)的支持2. 操作系統(tǒng)為Windows 2000或者Windows XP【實驗預備知識點】什么是DES算法?【實驗內容】1. 掌握DES算法的原理及過程2. 完成DES密鑰擴展運算3. 完成DES數據加密運算【實驗步驟】1. 打開“DES理論學習”,掌握DES算法的加解密原理;2. 打開“DES算法流程”,開始DES單步加密實驗,如圖1-1;3. 選擇密鑰輸入為ASCII碼或十六進制碼模式,輸入密鑰;若為ASCII碼模式,則輸入8個字符的ASCII碼;若為十六進制碼模式,則輸入16個字符的十六進制碼(09,af,AF);4. 點擊“比特流”按鈕,將輸入的密鑰轉化為64位比特流;5. 點擊“置換選擇I”按鈕,完成置換選擇I運算,得到56bit有效密鑰位,并分為左右兩部分,各28bit;6. 點擊C0下的“循環(huán)左移”按鈕,對C0進行循環(huán)左移運算;7. 點擊D0下的“循環(huán)左移”按鈕,對D0進行循環(huán)左移運算;8. 點擊“選擇置換II”按鈕,得到擴展子密鑰K1;9. 進入第二部分加密,選擇加密輸入為ASCII碼或十六進制碼模式,輸入明文;若為ASCII碼模式,則輸入8個字符的ASCII碼;若為十六進制碼模式,則輸入16個字符的十六進制碼(09,af,AF);10. 點擊“比特流”按鈕,將輸入明文轉化為64位比特流;11. 點擊“初始IP置換”按鈕,將64bit明文進行IP置換運算,得到左右兩部分,各32bit;12. 點擊“選擇運算E”按鈕,將右32bit擴展為48bit;13. 點擊“異或運算”按鈕,將擴展的48bit與子密鑰K1進行按位異或;14. 依次點擊“S1”、“S2”、“S3”、“S4”、“S5”、“S6”、“S7”、“S8”按鈕,對中間結果分組后進行S盒運算;15. 點擊“置換運算P”按鈕,對S盒運算結果進行P置換運算;16. 點擊“異或運算”按鈕,將P置換運算結果與L0進行按位異或,得到R1;17. 點擊“逆初始置換IP_1”按鈕,得到最終的加密結果。圖1-1 DES單步加密實驗界面【實驗思考題】a) DES算法中大量的置換運算的作用是什么?b) DES算法中S盒變換的作用是什么?2DES算法實驗【實驗目的】1. 掌握DES運算的基本原理2. 了解DES運算的實現方法【實驗環(huán)境】1. 本試驗需要密碼教學實驗系統(tǒng)的支持2. 操作系統(tǒng)為Windows 2000或者Windows XP【實驗預備知識點】1. DES算法有什么特點?2. DES算法的加解密過程?3. DES有哪些工作模式?各有什么特點?【實驗內容】1. 掌握DES算法的原理及過程2. 完成字符串數據的DES加密運算3. 完成字符串數據的DES解密運算【實驗步驟】1. 打開“DES理論學習”,掌握DES算法的加解密原理;2. 打開“DES實例”,進行字符串的加解密操作,如圖2-1;3. 選擇“工作模式”為“ECB”或“CBC”或“CFB”或“OFB”;4. 選擇“填充模式”為“ISO_1”或“ISO_2”或“PAK_7”;5. 輸入明文前選擇ASCII碼或十六進制碼輸入模式,然后在明文編輯框內輸入待加密的字符串;6. 輸入密鑰前選擇ASCII碼或十六進制碼輸入模式,然后在密鑰編輯框內輸入密鑰;若為ASCII碼模式,則輸入不超過8個字符的ASCII碼,不足部分將由系統(tǒng)以0x00補足;若為十六進制碼模式,則輸入不超過16個字符的十六進制碼(09,af,AF),不足部分將由系統(tǒng)以0x00補足;7. 點擊“加密”按鈕,進行加密操作,密鑰擴展的結果將顯示在列表框中,密文將顯示在密文編輯框中;8. 點擊“解密”按鈕,密文將被解密,顯示在明文編輯框中,填充的字符將被自動除去;也可以修改密鑰,再點擊“解密”按鈕,觀察解密是否會正確;9. 點擊“清空”按鈕即可進行下次實驗。圖2-1 DES算法實驗界面【實驗思考題】在DES算法中有哪些是弱密鑰?哪些是半弱密鑰?3、3DES算法實驗【實驗目的】1. 了解3DES算法的基本原理2. 掌握3DES算法的實現方法【實驗環(huán)境】1. 本試驗需要密碼教學系統(tǒng)的支持2. 操作系統(tǒng)為Windows 2000或者Windows XP【實驗預備知識點】1.DES之后,為什么要有3DES? 2.就密鑰的長度而言,3DES的有幾種加密方式?【實驗內容】1. 完成單塊的數據的3DES 3密鑰加密運算2. 完成單塊的數據的3DES 2密鑰加密運算【實驗步驟】1 熟悉3DES運算原理;2 掌握不同密鑰數量的情況下,3DES的數學公式表示;3 在密碼教學系統(tǒng)中,打開“3DES實例”,如圖3-1;4 選擇“工作模式”為“ECB”或“CBC”或“CFB”或“OFB”;5 選擇“填充模式”為“ISO_1”或“ISO_2”或“PAK_7”;6 輸入明文前選擇ASCII碼或十六進制碼輸入模式,然后在明文編輯框內輸入待加密的字符串;7 選擇密鑰長度為16字節(jié)或者24字節(jié),分別代表雙密鑰或三密鑰;8 輸入密鑰前選擇ASCII碼或十六進制碼輸入模式,然后在密鑰編輯框內輸入密鑰;若為ASCII碼模式,則輸入16個或24個字符的ASCII碼,不足部分將由系統(tǒng)以0x00補足;若為十六進制碼模式,則輸入不超過32個或48個字符的十六進制碼(09,af,AF),不足部分將由系統(tǒng)以0x00補足;9 點擊“加密”按鈕,進行加密操作,密鑰擴展的結果將顯示在列表框中,密文將顯示在密文編輯框中;10 點擊“解密”按鈕,密文將被解密,顯示在明文編輯框中,填充的字符將被自動除去;也可以修改密鑰,再點擊“解密”按鈕,觀察解密是否會正確;11 點擊“清空”按鈕即可進行下次實驗。圖3-1 3DES算法實驗【實驗思考題】將下面的兩個密鑰中的有效比特列出來k1:12345678k2:234567894、AES算法實驗【實驗目的】1. 了解AES算法的基本原理2. 掌握AES算法的實現方法【實驗環(huán)境】1. 本試驗需要密碼技術應用實驗系統(tǒng)的支持2. 操作系統(tǒng)為Windows 2000或者Windows XP【實驗預備知識點】1.AES中有限域上的數學運算2.AES算法的特點【實驗內容】1. 掌握AES算法的原理及過程2. 完成字符串數據的AES加密運算3. 完成字符串數據的AES解密運算【實驗步驟】1. 打開“AES理論學習”,掌握AES加密標準的原理;2. 打開“AES實例”,如圖4-1,進行字符串的加解密操作;3. 選擇“工作模式”為“ECB”或“CBC”或“CFB”或“OFB”;4. 選擇“填充模式”為“ISO_1”或“ISO_2”或“PAK_7”;5. 輸入明文前選擇ASCII碼或十六進制碼輸入模式,然后在明文編輯框內輸入待加密的字符串;6. 輸入密鑰前選擇ASCII碼或十六進制碼輸入模式,然后在密鑰編輯框內輸入密鑰;若為ASCII碼模式,則輸入不超過16個字符的ASCII碼,不足部分將由系統(tǒng)以0x00補足;若為十六進制碼模式,則輸入不超過32個字符的十六進制碼(09,af,AF),不足部分將由系統(tǒng)以0x00補足;7. 點擊“加密”按鈕,進行加密操作,密鑰擴展的結果將顯示在列表框中,密文將顯示在密文編輯框中;8. 點擊“解密”按鈕,密文將被解密,顯示在明文編輯框中,填充的字符將被自動除去;也可以修改密鑰,再點擊“解密”按鈕,觀察解密是否會正確;9. 點擊“清空”按鈕即可進行下次實驗。圖4-1 AES算法實驗【實驗思考題】對于長度不足16字節(jié)整數倍的明文加密,除了填充這個辦法,還有沒有其他的方法?5、MD5算法實驗【實驗目的】1. 了解MD5算法的基本原理2. 掌握MD5算法的實現方法【實驗環(huán)境】1. 本試驗需要密碼應用技術實驗系統(tǒng)的支持2. 操作系統(tǒng)為Windows 2000及Windows XP【實驗預備知識點】1.散列函數MD5的作用2.MD5算法的原理過程【實驗內容】1. 掌握MD5算法的原理及過程2. 完成字符串數據的MD5運算以及完整性檢驗3. 完成文件數據的MD5運算以及完整性檢驗【實驗步驟】1. 點擊“MD5理論學習”,掌握MD5算法的基本原理;2. 點擊“MD5實例”,開始實驗,如圖5-1;3. 選擇“字符串”,在報文1編輯框中輸入字符串,例如:abcdefghijklmnopqrstuvwxyz,點擊“計算MD5值”按鈕,計算結果顯示在對應的編輯框中4. 在報文2編輯框中輸入對比字符串,例如:aacdefghijklmnopqrstuvwxyz,點擊“計算MD5值”按鈕,計算結果顯示在對應的編輯框中5. 點擊“異或比較”按鈕,兩個報文MD5值的異或值將顯示出來6. 選擇“文件”,點擊報文1后的“瀏覽”按鈕,選擇文件,點擊“計算MD5”值按鈕,計算結果顯示在對應的編輯框中7. 點擊報文2后的“瀏覽”按鈕,選擇對比文件,點擊“計算MD5”值按鈕,計算結果顯示在對應的編輯框中8. 點擊“異或比較”按鈕,兩個文件的MD5值的異或值將顯示出來,若為全0則表示文件內容相同圖5-1 MD5算法實驗【實驗思考題】改變報文中的一個比特值最多可能影響MD5值中的多少比特?6、SHA-1算法實驗【實驗目的】1. 了解SHA-1算法的基本原理2. 掌握SHA-1算法的實現方法【實驗環(huán)境】1. 本試驗需要密碼應用技術實驗系統(tǒng)的支持2. 操作系統(tǒng)為Windows 2000及Windows XP【實驗預備知識點】1.散列函數SHA-1的作用2.SHA-1算法的原理過程【實驗內容】1. 掌握SHA-1算法的原理及過程2. 完成字符串數據的SHA-1運算以及算法流程【實驗步驟】1. 點擊“SHA-1實例”,開始實驗,如圖6-1;2. 點擊消息編輯框,輸入要填充的消息,例如:“abcdefghijklmnopqrstuvwxyzSHA-1實驗”;3. 點擊“填充”按鈕,計算結果顯示在對應的編輯框中以16進制顯示;4. 點擊“計算第一個填充塊的W0W79”,編輯框可以得到第一個填充塊的W0W15,以及計算W16所需要的W0、 W2 、W8 、W13 的16進制以及二進制顯示;5. 點擊“求W16”,其下的編輯框顯示W16的16進制,以及W16計算過程的二進制表示;6. 在“第一次循環(huán)運算”組合框中,點擊“5”,右方編輯框得到a左移5位的16進制表示,b編輯框顯示a的傳遞值;7. 點擊“30”,c編輯框顯示b左移30位的16進制表示;8. 點擊“f0(b,c,d)”按鈕即可在后面顯示f0的計算結果,d,e編輯框分別顯示c,d的傳遞值;9. 點擊“Temp”,Temp編輯框顯示Temp的計算結果,并在a編輯框中同時顯示;10. 點擊“再經過79次運算”,按鈕下的編輯框中顯示80次運算后的十六進制值;11. 點擊“摘要”,系統(tǒng)在其右的編輯框顯示第一個填充塊的摘要的十六進制值,頁面底部的“摘要”編輯框中顯示總的摘要;12. 若消息長度大于56字節(jié),則有兩個填充塊,點擊“第二填充塊80次循環(huán)的計算結果”,其下的編輯框顯示第二填充塊80次循環(huán)計算的十六進制結果;13. 實驗結束,可以進行下一次實驗。圖 6-1 SHA-1算法實驗【實驗思考題】比較SHA-1算法與MD5算法的異同點?7、RSA算法實驗【實驗目的】1. 了解RSA算法的基本原理2. 掌握RSA算法的實現方法【實驗環(huán)境】1. 本試驗需要密碼教學演示系統(tǒng)的支持2. 操作系統(tǒng)為Windows 2000及Windows XP【實驗預備知識點】1.RSA密碼系統(tǒng)所基于的數學難題是什么? 2.RSA密碼系統(tǒng)可以取代DES、3DES等公鑰密碼系統(tǒng)嗎?【實驗內容】u 自行以2位小素數為p,q,3為公鑰e,構造一個小的RSA系統(tǒng),對“1、2、3、4”這4個字母的ASCII碼進行加密,解密u 在密碼教學系統(tǒng)中實現RSA運算的大素數、公鑰、私鑰的生成、明文加解密、分塊大小的選擇u 了解在不同分塊大小的情況下,RSA系統(tǒng)的密文長度也會有所變化u 了解在不同參數的情況下,RSA系統(tǒng)的性能變化【實驗步驟】1 熟悉RSA運算原理;2 打開“非對稱加密算法”中的“加密”選項下的“RSA”,選擇“RSA實例”,如圖7-1;3 選擇密鑰長度為128、256、 512或者1024比特;4 點擊“GetPQ”按鈕,得到兩個大素數;5 點擊“GetN”按鈕,得到一個由兩個大素數的積構成的大整數;6 點擊“GetDE”按鈕,得到公鑰和私鑰;7 在明文對話框中輸入需要加密的明文字符串;8 點擊“獲得明文ASCII”按鈕可得到明文的ASCII碼;9 輸入分塊長度,或者通過點擊“推薦值”按鈕直接獲得;10 點擊“加密”按鈕可獲得加密后的密文,點擊“解密”按鈕可獲得解密后的明文;11 反復使用RSA實例,通過輸入不同大小的分片,了解密文長度的變化;12 反復使用RSA實例,通過輸入不同安全參數,了解RSA密碼系統(tǒng)的性能與參數關系。圖7-1 RSA算法實驗【實驗思考題】1.對于128bit的AES算法,需要多少安全參數為多少的RSA系統(tǒng)與之相匹配?2. RSA系統(tǒng)的安全參數是什么意思?安全參數為1024bit的RSA系統(tǒng),其模數n大約為多少bit?8、DSA數字簽名實驗【實驗目的】1. 了解數字簽名的基本原理2. 掌握數字簽名算法DSA的實現方法【實驗環(huán)境】1. 本試驗需要密碼應用技術實驗系統(tǒng)的支持2. 操作系統(tǒng)為Windows 2000及Windows XP【實驗預備知識點】1.散列函數MD5的作用2.MD5算法的原理過程3. RSA算法的原理過程4. 數字簽名算法的基本原理【實驗內容】1. 掌握MD5算法以及RSA算法的原理及過程2. 完成字符串數據的MD5運算以及完整性檢驗3. 掌握數字簽名算法的基本原理及其過程4. 完成對字符串數據及文件的數字簽名過程5. 會計算RSA算法中各個參數值【實驗步驟】1. 點擊“DSA數字簽名理論學習”,學習DSA原理;2. 點擊“DSA數字簽名實例”,開始數字簽名實驗,如圖8-1;3. 選擇“字符串”,或者“報文”。選擇“字符串”時,在“報文”輸入框中輸入字符串,選擇“報文”時,點擊瀏覽,選擇需要計算MD5值的文件;4. 點擊“計算MD5值”,系統(tǒng)在相應的編輯框中顯示用戶輸入的字符串或者選擇的報文的MD5值;5. 選擇并計算簽名所需要的各個參數。包括p,q和n等。點擊“檢驗”,檢查用戶輸入的正確性;6. 點擊“數據清空”,以清空上次實驗值;7. 計算并輸入MD5值RSA算法簽名的前8位,MD5值的分塊大小默認為8 bit,即2位16進制數。計算過程中,取計算出的簽名值前八位輸入。點擊“檢驗并生成簽名”,系統(tǒng)檢驗用戶輸入的簽名值的正確性;8. 點擊“簽名并驗證”框中的“驗證”,系統(tǒng)顯示簽名驗證值。圖 8-1 DSA實驗【實驗思考題】1. DSA算法的安全性建立在什么基礎上?一、 密碼實驗系統(tǒng)參考答案1、DES單步加密實驗2、DES算法實驗3、3DES算法實驗4、AES算法實驗5、MD5算法實驗6、SHA-1算法實驗7、RSA算法實驗8、DSA數字簽名實驗1、 DES單步加密實驗【實驗名稱】 DES單步加密實驗 姓名: 學號: 班級: 日期: 【實驗預習答案】1什么是DES算法?為了適應社會對計算機數據安全保密越來越高的要求,美國國家標準局于1973年向社會公開征集一種用于政府機構和商業(yè)部門對非機密的敏感信息進行加密的加密算法,經過測評,最后選中了IBM公司提交的一種加密算法。美國政府于1977年1月5日頒布了數據加密標準(Data Encryption Standard),簡稱DES?!緦嶒瀰⒖即鸢浮?8. 打開“DES理論學習”,掌握DES算法的加解密原理;19. 打開“DES算法流程”,開始DES單步加密實驗,如圖1-1;20. 選擇密鑰輸入為ASCII碼或十六進制碼模式,輸入密鑰;若為ASCII碼模式,則輸入8個字符的ASCII碼;若為十六進制碼模式,則輸入16個字符的十六進制碼(09,af,AF);21. 點擊“比特流”按鈕,將輸入的密鑰轉化為64位比特流;22. 點擊“置換選擇I”按鈕,完成置換選擇I運算,得到56bit有效密鑰位,并分為左右兩部分,各28bit;23. 點擊C0下的“循環(huán)左移”按鈕,對C0進行循環(huán)左移運算;24. 點擊D0下的“循環(huán)左移”按鈕,對D0進行循環(huán)左移運算;25. 點擊“選擇置換II”按鈕,得到擴展子密鑰K1;26. 進入第二部分加密,選擇加密輸入為ASCII碼或十六進制碼模式,輸入明文;若為ASCII碼模式,則輸入8個字符的ASCII碼;若為十六進制碼模式,則輸入16個字符的十六進制碼(09,af,AF);27. 點擊“比特流”按鈕,將輸入明文轉化為64位比特流;28. 點擊“初始IP置換”按鈕,將64bit明文進行IP置換運算,得到左右兩部分,各32bit;29. 點擊“選擇運算E”按鈕,將右32bit擴展為48bit;30. 點擊“異或運算”按鈕,將擴展的48bit與子密鑰K1進行按位異或;31. 依次點擊“S1”、“S2”、“S3”、“S4”、“S5”、“S6”、“S6”、“S8”按鈕,對中間結果分組后進行S盒運算;32. 點擊“置換運算P”按鈕,對S盒運算結果進行P置換運算;33. 點擊“異或運算”按鈕,將P置換運算結果與L0進行按位異或,得到R1;34. 點擊“逆初始置換IP_1”按鈕,得到最終的加密結果。圖1-1 DES單步加密實驗界面【實驗思考題答案】1. DES算法中大量的置換運算的作用是什么?通過置換運算,可以打亂原文已有的一些統(tǒng)計特性,使得統(tǒng)計分析密文變得更加困難。2. DES算法中S盒變換的作用是什么?S盒變換是唯一的非線性變換,能夠抗差分攻擊和抗線性攻擊。2、 DES算法實驗【實驗名稱】 DES算法實驗 姓名: 學號: 班級: 日期: 【實驗預習答案】1. DES算法有什么特點?DES是一種分組密碼體制,它將明文按64位一組分成若干組,密鑰長為56位;其基本思想是采用變換的組合與迭代,將明文中的各組變?yōu)槊芪慕M;DES的保密性僅僅取決于對密鑰的保密,算法公開;由于“雪崩效應”,無法分而破之,一位的變化將引起若干位同時變化。2. DES算法的加解密過程DES對64(bit)位的明文分組M進行操作,M經過一個初始置換IP置換成m0,將m0明文分成左半部分和右半部分m0=(L0,R0),各32位長。然后進行16輪完全相同的運算,這些運算被稱為函數f,在運算過程中數據與密鑰結合。經過16輪后,左,右半部分合在一起經過一個末置換,這樣就完成了12。在每一輪中,密鑰位移位,然后再從密鑰的56位中選出48位。通過一個擴展置換將數據的右半部分擴展成48位,并通過一個異或操作替代成新的32位數據,在將其置換一次。這四步運算構成了函數f。然后,通過另一個異或運算,函數f的輸出與左半部分結合,其結果成為新的右半部分,原來的右半部分成為新的左半部分。將該操作重復16次,就實現了。具體圖2-1所示。DES加密和解密唯一的不同是密鑰的次序相反。如果各輪加密密鑰分別是K1,K2,K3.K16那么解密密鑰就是K16,K15,K14K1。 圖2-1 DES算法框圖3. DES有哪些工作模式?各有什么特點?第一種電子密本方式(ECB) 將明文分成n個64比特分組,如果明文長度不是64比特的倍數,則在明文末尾填充適當數目的規(guī)定符號。對明文組用給定的密鑰分別進行加密,行密文C=(C0,C1,Cn-1)其中Ci=DES(K,xi),i=0,1,.,n-1。第二種密文分組鏈接方式(CBC) 在CBC方式下,每個明文組xi在加密前與先一組密文按位模2加后,再送到DES加密,CBC方式克服了ECB方式報內組重的缺點,但由于明文組加密前與一組密文有關,因此前一組密文的錯誤會傳播到下一組。第三種密文反饋方式(CFB),可用于序列密碼 明文X(x0,x1,xn-1),其中xi由t個比特組成0第四種輸出反饋方式(OFB),可用于序列密碼 與CFB唯一不同的是OFB是直接取DES輸出的t個比特,而不是取密文的t個比特,其余都與CFB相同。但它取的是DES的輸出,所以它克服了CFB的密文錯誤傳播的缺點?!緦嶒瀰⒖即鸢浮?0. 打開“DES理論學習”,掌握DES算法的加解密原理;11. 打開“DES實例”,進行字符串的加解密操作,如圖2-2;12. 選擇“工作模式”為“ECB”或“CBC”或“CFB”或“OFB”;13. 選擇“填充模式”為“ISO_1”或“ISO_2”或“PAK_7”;14. 輸入明文前選擇ASCII碼或十六進制碼輸入模式,然后在明文編輯框內輸入待加密的字符串;15. 輸入密鑰前選擇ASCII碼或十六進制碼輸入模式,然后在密鑰編輯框內輸入密鑰;若為ASCII碼模式,則輸入不超過8個字符的ASCII碼,不足部分將由系統(tǒng)以0x00補足;若為十六進制碼模式,則輸入不超過16個字符的十六進制碼(09,af,AF),不足部分將由系統(tǒng)以0x00補足;16. 點擊“加密”按鈕,進行加密操作,密鑰擴展的結果將顯示在列表框中,密文將顯示在密文編輯框中;17. 點擊“解密”按鈕,密文將被解密,顯示在明文編輯框中,填充的字符將被自動除去;也可以修改密鑰,再點擊“解密”按鈕,觀察解密是否會正確;18. 點擊“清空”按鈕即可進行下次實驗。圖2-2 DES算法實驗界面【實驗思考題答案】在DES算法中有哪些是弱密鑰?哪些是半弱密鑰?DES中存在4個弱密鑰和12個半弱密鑰。4個弱密鑰:(1) 0x01 01 01 01 01 01 01 01(2) 0x1F 1F 1F 1F 0E 0E 0E 0E(3) 0xE0 E0 E0 E0 F1 F1 F1 F1(4) 0xFE FE FE FE FE FE FE FE12個半弱密鑰:(1)0x01 FE 01 FE 01 FE 01 FE(2)0xFE 01 FE 01 FE 01 FE 01(3)0x1F E0 1F E0 1F E0 1F E0(4)0xE0 1F E0 1F E0 1F E0 1F(5)0x01 E0 01 E0 01 E0 01 E0(6)0xE0 01 E0 01 E0 01 E0 01(7)0x1F FE 1F FE 0E FE 0E FE(8)0xFE 1F FE 1F 01 0E 01 0E(9)0x01 1F 01 1F 01 0E 01 0E(10)0x1F 01 1F 01 0E 01 0E 01(11)0xE0 FE E0 FE F1 FE F1 FE(12)0xFE E0 FE E0 FE F1 FE F13、3DES算法實驗【實驗名稱】 3DES算法實驗 姓名: 學號: 班級: 日期: 【實驗預習答案】1.DES之后,為什么要有3DES? 由于DES可能易于受到窮舉式攻擊,人們就需要找到一種替代加密算法。理論表明,如果DES被使用兩次,每次用不同的密鑰,那么產生的映射不是單次應用DES定義的一種映射。但是雙重DES很容易受到中途攻擊,因此,3DES是一個比較理想的替代加密算法。2.就密鑰的長度而言,3DES的有幾種加密方式?就密鑰長度而言,3DES有兩種加密方式,一種兩密鑰的3DES加密方式,一種是三密鑰的3DES加密方式。其中在兩個密鑰的3DES加密方式中,第一個密鑰被用于第一次和第三次的加密運算,第二個密鑰被用于第二次的解密運算。在三個密鑰的3DES加密方式中,第一個密鑰被用于第一次的加密運算,第二個密鑰被用于第二次的解密運算,第三個密鑰被用于第三次的加密運算?!緦嶒瀰⒖即鸢浮?2 熟悉3DES運算原理;13 掌握不同密鑰數量的情況下,3DES的數學公式表示;14 在密碼教學系統(tǒng)中,打開“3DES實例”,如圖3-1;15 選擇“工作模式”為“ECB”或“CBC”或“CFB”或“OFB”;16 選擇“填充模式”為“ISO_1”或“ISO_2”或“PAK_7”;17 輸入明文前選擇ASCII碼或十六進制碼輸入模式,然后在明文編輯框內輸入待加密的字符串;18 選擇密鑰長度為16字節(jié)或者24字節(jié),分別代表雙密鑰或三密鑰;19 輸入密鑰前選擇ASCII碼或十六進制碼輸入模式,然后在密鑰編輯框內輸入密鑰;若為ASCII碼模式,則輸入不超過16個或24個字符的ASCII碼,不足部分將由系統(tǒng)以0x00補足;若為十六進制碼模式,則輸入不超過32個或48個字符的十六進制碼(09,af,AF),不足部分將由系統(tǒng)以0x00補足;20 點擊“加密”按鈕,進行加密操作,密鑰擴展的結果將顯示在列表框中,密文將顯示在密文編輯框中;21 點擊“解密”按鈕,密文將被解密,顯示在明文編輯框中,填充的字符將被自動除去;也可以修改密鑰,再點擊“解密”按鈕,觀察解密是否會正確;22 點擊“清空”按鈕即可進行下次實驗。圖3-1 3DES算法實驗【實驗思考題答案】1. 將下面的兩個密鑰中的有效比特列出來k1:12345678k2:23456789因為DES中的有效比特為56個比特,而給出的8個ASCII字符中,有8bit是無效的,在DES密鑰擴展中會被自動清除。也就是說第8,16,24,32,40,48,56,64個比特無效。因此1.k1:123456780011000 0011001 0011001 0011010 0011010 0011011 0011011 00111002.k2:234567890011001 0011001 0011010 0011010 0011011 0011011 0011100 00111003、 AES算法實驗【實驗名稱】 AES算法實驗 姓名: 學號: 班級: 日期: 【實驗預習答案】1.AES中有限域上的數學運算AES 所用的加法和乘法是基于數學的域論,尤其是 AES 基于有限域GF(28)。GF(28)由一組從 0x00 到 0xff 的256個值組成,加上加法和乘法,因此是(28)。GF代表伽羅瓦域,以發(fā)明這一理論的數學家的名字命名。GF(28) 的一個特性是一個加法或乘法的操作的結果必須是在0x00 . 0xff這組數中。雖然域論是相當深奧的,但GF(28)加法的最終結果卻很簡單。GF(28) 加法就是異或(XOR)操作。然而,GF (28)的乘法有點繁難。正如你稍后將在 C# 實現中所看到的,AES的加密和解密例程需要知道怎樣只用七個常量 0x01、0x02、0x03、0x09、0x0b、0x0d 和 0x0e 來相乘。所以我不全面介紹GF(28)的乘法,而只是針對這七種特殊情況進行說明。在GF(28)中用0x01的乘法是特殊的;它相當于普通算術中用1做乘法并且結果也同樣任何值乘0x01等于其自身?,F在讓我們看看用0x02做乘法。和加法的情況相同,理論是深奧的,但最終結果十分簡單。只要被乘的值小于0x80,這時乘法的結果就是該值左移1比特位。如果被乘的值大于或等于0x80,這時乘法的結果就是用值0x1b異或后的值再左移1比特位。它防止了“域溢出”并保持乘法的乘積在范圍以內。一旦你在GF(28)中用0x02建立了加法和乘法,你就可以用任何常量去定義乘法。用0x03做乘法時,你可以將 0x03 分解為2的冪之和。為了用 0x03 乘以任意字節(jié)b, 因為 0x03 = 0x02 + 0x01,因此:b * 0x03 = b * (0x02 + 0x01) = (b * 0x02) + (b * 0x01) 這是可以行得通的,因為你知道如何用 0x02 和 0x01 相乘和相加,同哩,用0x0d去乘以任意字節(jié)b可以這樣做:b * 0x0d = b * (0x08 + 0x04 + 0x01) = (b * 0x08) + (b * 0x04) + (b * 0x01) = (b * 0x02 * 0x02 * 0x02) + (b * 0x02 * 0x02) + (b * 0x01) 在加解密算法中,AES MixColumns 過程的其它乘法遵循大體相同的模式,如下所示:b * 0x09 = b * (0x08 + 0x01) = (b * 0x02 * 0x02 * 0x02) + (b * 0x01) b * 0x0b = b * (0x08 + 0x02 + 0x01) = (b * 0x02 * 0x02 * 0x02) + (b * 0x02) + (b * 0x01) b * 0x0e = b * (0x08 + 0x04 + 0x02) = (b * 0x02 * 0x02 * 0x02) + (b * 0x02 * 0x02) + (b * 0x02) 總之,在GF(28)中,加法是異或操作。其乘法將分解成加法和用0x02做的乘法,而用0x02做的乘法是一個有條件的左移1比特位。AES規(guī)范中包括大量 有關GF(28)操作的附加信息。2.AES算法的特點分組密碼:明文長度、密文長度、密鑰長度可變(128/192/256等),一般均取為128 ;面向二進制的密碼算法:能夠加解密任何形式的計算機數據;不是對合運算:加、解密使用不同的算法;綜合運用置換、代替、代數等多種密碼技術整體結構:基本輪函數加迭代。圈數可變,10?!緦嶒瀰⒖即鸢浮?0. 打開“AES理論學習”,掌握AES加密標準的原理;11. 打開“AES實例”,進行字符串的加解密操作,如圖4-1;12. 選擇“工作模式”為“ECB”或“CBC”或“CFB”或“OFB”;13. 選擇“填充模式”為“ISO_1”或“ISO_2”或“PAK_7”;14. 輸入明文前選擇ASCII碼或十六進制碼輸入模式,然后在明文編輯框內輸入待加密的字符串;15. 輸入密鑰前選擇ASCII碼或十六進制碼輸入模式,然后在密鑰編輯框內輸入密鑰;若為ASCII碼模式,則輸入不超過16個字符的ASCII碼,不足部分將由系統(tǒng)以0x00補足;若為十六進制碼模式,則輸入不超過32個字符的十六進制碼(09,af,AF),不足部分將由系統(tǒng)以0x00補足;16. 點擊“加密”按鈕,進行加密操作,密鑰擴展的結果將顯示在列表框中,密文將顯示在密文編輯框中;17. 點擊“解密”按鈕,密文將被解密,顯示在明文編輯框中,填充的字符將被自動除去;也可以修改密鑰,再點擊“解密”按鈕,觀察解密是否會正確;18. 點擊“清空”按鈕即可進行下次實驗。圖3-1 AES算法實驗【實驗思考題答案】對于長度不足16字節(jié)整數倍的明文加密,除了填充這個辦法,還有沒有其他的方法?短塊的處理除了填充之外還可以采用“短塊二次加密”的方法,具體辦法為去最后一塊完整的16字節(jié)的密文的一部分結合短塊一起構成一個16字節(jié)塊,一起加密后替換最后的16字節(jié),但要注意解密時需要將最后的16字節(jié)先解密。4、 MD5算法實驗【實驗名稱】 MD5算法實驗 姓名: 學號: 班級: 日期: 【實驗預習答案】1.散列函數MD5的作用MD5是message-digest algorithm 5(信息-摘要算法)的縮寫,被廣泛用于加密和解密技術上,它可以說是文件的“數字指紋”。任何一個文件,無論是可執(zhí)行程序、圖像文件、臨時文件或者其他任何類型的文件,也不管它體積多大,都有且只有一個獨一無二的MD5信息值,并且如果這個文件被修改過,它的MD5值也將隨之改變。因此,我們可以通過對比同一文件的MD5值,來校驗這個文件是否被“篡改”過。2.MD5算法的原理過程MD5產生一個128位的HASH值,在經過一寫初始樹立后,將明文分成了512位的塊,再將每一塊分成16個32位的子塊。算法的輸出是4個32位的塊,連接起來構成128位的HASH值。 首先,將消息填充到比512的倍數少64位,填充時先向消息末尾填一個1,然后再填滿0,然后后面再加上一個64位的消息長度的表示(不包括填充位)。這兩步使消息長度恰好是512的倍數,同時保證不同消息在填充后仍不相同。 初始化4個32位變量:A=0x01234567B=0x89abcdefC=0xfedcba98D=0x76543210這些變量成為鏈變量。然后,開始算法的主循環(huán)。這個循環(huán)對消息中所有的塊都執(zhí)行一次。將4個變量復制到不同的變量:a值為A,b值為B,c值為C,d值為D。主循環(huán)有4圈,都很相似。每圈使用一個不同的操作,重復16次。每個操作完成一個a,b,c和d中三個變量的非線性函數。然后,將結果與第四個變量、文本的一個子塊和一個常數相加。然后,將結果混換左移一個可變值的位數,再將結果與a,b,c和d之一相加。最后用結果來代替a,b,c和d之一。共有4個非線性函數,每次操作使用一個,每圈都不相同。F(X,Y,Z)=(XY)(X)Z)G(X,Y,Z)=(XZ)(Y(z)H(X,Y,Z)=XYZI(X,Y,Z)=Y(X(z)為異或,為與,為或,為非如果Mi代表消息的第i個子塊(0到15),而s代表循環(huán)左移s位,則4個操作為:FF(a,b,c,d,Mj,s,ti)代表=a=b(a+F(b,c,d)+Mj+ti)s)GG(a,b,c,d,Mj,s,ti)代表=a=b(a+G(b,c,d)+Mj+ti)s)HH(a,b,c,d,Mj,s,ti)代表=a=b(a+H(b,c,d)+Mj+ti)s)II(a,b,c,d,Mj,s,ti)代表=a=b(a+I(b,c,d)+Mj+ti)s)MD5的4圈(64步)為:第一圈:FF(d,a,b,c,M1,12,0xe8c7b756)FF(c,d,a,b,M2,17,0x242070db)FF(b,c,d,a,M3,22,0xclbdceee)FF(a,b,c,d,M4,7,0xf57c0faf)FF(d,a,b,c,M5,12,0x4787c62a)FF(c,d,a,b,M6,17,0xa8304613)FF(b,c,d,a,M7,22,0xfd469501)FF(a,b,c,d,M8,7,0x698098d8)FF(d,a,b,c,M9,12,0x8b44f7af)FF(c,d,a,b,M10,17,0xffff5bb1)FF(B,C,D,A,m11,22,0X895cd7be)FF(a,b,c,d,M12,7,0xf6b901122)FF(d,a,b,c,M13,12,0xfd987193)FF(c,d,a,b,M14,17,0xa6794383)FF(b,c,d,a,M15,22,0x49b40821)第二圈:GG(a,b,c,d,M1,5,0xf61e2562)GG(d,a,b,c,M6,9,0xc040b340)GG(c,d,a,b,M11,14,0x2b5e5a51)GG(b,c,d,a,M0,20,0xe9b6c7aa)GG(a,b,c,d,M5,5,0xd62f105d)GG(d,a,b,c,M10,9,0x02441453)GG(c,d,a,b,M15,14,0xd8ale681)GG(b,c,d,a,M4,20,0xe7d3fbc8)GG(a,b,c,d,M9,5,0x21elcde6)GG(d,a,b,c,M14,9.0xc33707d6)GG(c,d,a,b,M3,14,0xf4d50d87)GG(b,c,d,a,M8,20,0x45al4ed)GG(a,b,c,d,M13,5,0xa9e3e905)GG(d,a,b,c,M2,9,0xfcefaef8)GG(c,d,a,b,M7,14,0x676f02d9)GG(b,c,d,a,M12,20,0x8d2a4c8a)第三圈:HH(a,b,c,d,M5,4,0xfffa3942)HH(d,a,b,c,M8,11,0x8771f681)HH(c,d,a,b,M11,16,0x6d9d6122)HH(b,c,d,a,M14,23,0xfde5380c)HH(a,b,c,d,M1,4,0xa4beea44)HH(d,a,b,c,M4,11,0x4bdecfa9)HH(c,d,a,b,M7,16,0xf6bb4b60)HH(b,c,d,a,M10,23,0xbebfbc70)HH(a,b,c,d,M13,4,0x28967ec6)HH(c,d,a,b,M3,16,0xd4ef3085)HH(b,c,d,a,M6,23,0x04881d05)HH(d,a,b,c,M12,11,0xe6db99e5)HH(c,d,a,b,M15,16,0xlfa27cf8)HH(b,c,d,a,M2,23,0xc4ac5665)第四圈 II(a,b,c,d,M0,6,0xf4292244) II(d,a,b,c,M7,10,0x432aff97) II(c,d,a,b,M14,15,0xab9423a7) II(b,c,d,a,M5,21,0xfc93a039) II(a,b,c,d,M12,6,0x655b59c3) II(d,a,b,c,M3,10,0x8f0ccc92) II(c,d,a,b,M10,15,0xffeff47d) II(b,c,d,a,M1,21,0x85845dd1) II(a,b,c,d,M8,6,0x6fa87e4f) II(d,a,b,c,M15,10,0xfe2ce6e0) II(c,d,a,b,M6,15,0xa3014314) II(b,c,d,a,M13,21,0x4e0811a1) II(a,b,c,d,M4,6,0xf7537e82) II(d,a,b,c,M11,10,0xbd3af235) II(c,d,a,b,M2,15,0x2ad7d2bb) II(b,c,d,a,M9,21,0xeb86d391) 這些常數ti步,ti為2的32次方乘abs(sin(i)的整數部分,其中i為弧度。完成這些之后,a,b,c,d與A,B,C,D相加,算法開始處理下一塊。最后的輸出結果為A,B,C,D相連接。對MD5的密碼分析表明,MD5還是比較安全的?!緦嶒瀰⒖即鸢浮?. 點擊“MD5理論學習”,掌握MD5算法的基本原理;10. 點擊“MD5實例”,開始實驗,如圖5-1;11. 選擇“字符串”,在報文1編輯框中輸入字符串,例如:abcdefghijklmnopqrstuvwxyz,點擊“計算MD5值”按鈕,計算結果顯示在對應的編輯框中12. 在報文2編輯框中輸入對比字符串,例如:aacdefghijklmnopqrstuvwxyz,點擊“
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 開學第一天記事話題作文(8篇)
- 個人委托服務協議
- ××中學項目評估規(guī)定
- 第一次登臺表演:記事作文10篇
- 證券投資分析實戰(zhàn)模擬題及答案
- 讀魯濱遜漂流記心得體會讀后感類型(8篇)
- 2025年安徽省公務員錄用考試公安專業(yè)科目考點精講試卷
- 2025年報檢員資格考試試卷:進出口商品檢驗檢疫流程
- 2025年會計職稱考試《初級會計實務》章節(jié)重難點突破高分突破試題
- 2025年大學英語四級考試模擬試卷及翻譯解析
- 內陸?zhàn)B殖與水生植物種植
- 集體協商培訓課件
- Unit 3 What would you like A Let's learn(教學設計)人教PEP版英語五年級上冊
- 物業(yè)社區(qū)團購方案
- 實驗室規(guī)劃裝修設計
- 2023年麻城市社區(qū)工作者招聘考試真題
- 校本課程匯報材料
- 2023年10月上海市奉賢區(qū)教育系統(tǒng)下半年招聘事業(yè)單位編外用工筆試歷年高頻考點(難、易錯點薈萃)附帶答案詳解
- 學校(幼兒園)每周食品安全排查治理報告(整學期16篇)
- 維修改造工程施工組織設計
- 2022-2023學年廣東肇慶市數學高二第二學期期末聯考模擬試題含解析
評論
0/150
提交評論