




已阅读5页,还剩41页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一、 密码实验系统指导书1、DES单步加密实验2、DES算法实验3、3DES算法实验4、AES算法实验5、MD5算法实验6、SHA-1算法实验7、RSA算法实验8、DSA数字签名实验1、DES单步加密实验【实验目的】1. 掌握DES算法的基本原理2. 了解DES算法的详细步骤【实验环境】1. 本试验需要密码教学实验系统的支持2. 操作系统为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下的“循环左移”按钮,对C0进行循环左移运算;7. 点击D0下的“循环左移”按钮,对D0进行循环左移运算;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运算的实现方法【实验环境】1. 本试验需要密码教学实验系统的支持2. 操作系统为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码,不足部分将由系统以0x00补足;若为十六进制码模式,则输入不超过16个字符的十六进制码(09,af,AF),不足部分将由系统以0x00补足;7. 点击“加密”按钮,进行加密操作,密钥扩展的结果将显示在列表框中,密文将显示在密文编辑框中;8. 点击“解密”按钮,密文将被解密,显示在明文编辑框中,填充的字符将被自动除去;也可以修改密钥,再点击“解密”按钮,观察解密是否会正确;9. 点击“清空”按钮即可进行下次实验。图2-1 DES算法实验界面【实验思考题】在DES算法中有哪些是弱密钥?哪些是半弱密钥?3、3DES算法实验【实验目的】1. 了解3DES算法的基本原理2. 掌握3DES算法的实现方法【实验环境】1. 本试验需要密码教学系统的支持2. 操作系统为Windows 2000或者Windows XP【实验预备知识点】1.DES之后,为什么要有3DES? 2.就密钥的长度而言,3DES的有几种加密方式?【实验内容】1. 完成单块的数据的3DES 3密钥加密运算2. 完成单块的数据的3DES 2密钥加密运算【实验步骤】1 熟悉3DES运算原理;2 掌握不同密钥数量的情况下,3DES的数学公式表示;3 在密码教学系统中,打开“3DES实例”,如图3-1;4 选择“工作模式”为“ECB”或“CBC”或“CFB”或“OFB”;5 选择“填充模式”为“ISO_1”或“ISO_2”或“PAK_7”;6 输入明文前选择ASCII码或十六进制码输入模式,然后在明文编辑框内输入待加密的字符串;7 选择密钥长度为16字节或者24字节,分别代表双密钥或三密钥;8 输入密钥前选择ASCII码或十六进制码输入模式,然后在密钥编辑框内输入密钥;若为ASCII码模式,则输入16个或24个字符的ASCII码,不足部分将由系统以0x00补足;若为十六进制码模式,则输入不超过32个或48个字符的十六进制码(09,af,AF),不足部分将由系统以0x00补足;9 点击“加密”按钮,进行加密操作,密钥扩展的结果将显示在列表框中,密文将显示在密文编辑框中;10 点击“解密”按钮,密文将被解密,显示在明文编辑框中,填充的字符将被自动除去;也可以修改密钥,再点击“解密”按钮,观察解密是否会正确;11 点击“清空”按钮即可进行下次实验。图3-1 3DES算法实验【实验思考题】将下面的两个密钥中的有效比特列出来k1:12345678k2:234567894、AES算法实验【实验目的】1. 了解AES算法的基本原理2. 掌握AES算法的实现方法【实验环境】1. 本试验需要密码技术应用实验系统的支持2. 操作系统为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码,不足部分将由系统以0x00补足;若为十六进制码模式,则输入不超过32个字符的十六进制码(09,af,AF),不足部分将由系统以0x00补足;7. 点击“加密”按钮,进行加密操作,密钥扩展的结果将显示在列表框中,密文将显示在密文编辑框中;8. 点击“解密”按钮,密文将被解密,显示在明文编辑框中,填充的字符将被自动除去;也可以修改密钥,再点击“解密”按钮,观察解密是否会正确;9. 点击“清空”按钮即可进行下次实验。图4-1 AES算法实验【实验思考题】对于长度不足16字节整数倍的明文加密,除了填充这个办法,还有没有其他的方法?5、MD5算法实验【实验目的】1. 了解MD5算法的基本原理2. 掌握MD5算法的实现方法【实验环境】1. 本试验需要密码应用技术实验系统的支持2. 操作系统为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算法的实现方法【实验环境】1. 本试验需要密码应用技术实验系统的支持2. 操作系统为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. 在“第一次循环运算”组合框中,点击“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. 点击“摘要”,系统在其右的编辑框显示第一个填充块的摘要的十六进制值,页面底部的“摘要”编辑框中显示总的摘要;12. 若消息长度大于56字节,则有两个填充块,点击“第二填充块80次循环的计算结果”,其下的编辑框显示第二填充块80次循环计算的十六进制结果;13. 实验结束,可以进行下一次实验。图 6-1 SHA-1算法实验【实验思考题】比较SHA-1算法与MD5算法的异同点?7、RSA算法实验【实验目的】1. 了解RSA算法的基本原理2. 掌握RSA算法的实现方法【实验环境】1. 本试验需要密码教学演示系统的支持2. 操作系统为Windows 2000及Windows XP【实验预备知识点】1.RSA密码系统所基于的数学难题是什么? 2.RSA密码系统可以取代DES、3DES等公钥密码系统吗?【实验内容】u 自行以2位小素数为p,q,3为公钥e,构造一个小的RSA系统,对“1、2、3、4”这4个字母的ASCII码进行加密,解密u 在密码教学系统中实现RSA运算的大素数、公钥、私钥的生成、明文加解密、分块大小的选择u 了解在不同分块大小的情况下,RSA系统的密文长度也会有所变化u 了解在不同参数的情况下,RSA系统的性能变化【实验步骤】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密码系统的性能与参数关系。图7-1 RSA算法实验【实验思考题】1.对于128bit的AES算法,需要多少安全参数为多少的RSA系统与之相匹配?2. RSA系统的安全参数是什么意思?安全参数为1024bit的RSA系统,其模数n大约为多少bit?8、DSA数字签名实验【实验目的】1. 了解数字签名的基本原理2. 掌握数字签名算法DSA的实现方法【实验环境】1. 本试验需要密码应用技术实验系统的支持2. 操作系统为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值”,系统在相应的编辑框中显示用户输入的字符串或者选择的报文的MD5值;5. 选择并计算签名所需要的各个参数。包括p,q和n等。点击“检验”,检查用户输入的正确性;6. 点击“数据清空”,以清空上次实验值;7. 计算并输入MD5值RSA算法签名的前8位,MD5值的分块大小默认为8 bit,即2位16进制数。计算过程中,取计算出的签名值前八位输入。点击“检验并生成签名”,系统检验用户输入的签名值的正确性;8. 点击“签名并验证”框中的“验证”,系统显示签名验证值。图 8-1 DSA实验【实验思考题】1. DSA算法的安全性建立在什么基础上?一、 密码实验系统参考答案1、DES单步加密实验2、DES算法实验3、3DES算法实验4、AES算法实验5、MD5算法实验6、SHA-1算法实验7、RSA算法实验8、DSA数字签名实验1、 DES单步加密实验【实验名称】 DES单步加密实验 姓名: 学号: 班级: 日期: 【实验预习答案】1什么是DES算法?为了适应社会对计算机数据安全保密越来越高的要求,美国国家标准局于1973年向社会公开征集一种用于政府机构和商业部门对非机密的敏感信息进行加密的加密算法,经过测评,最后选中了IBM公司提交的一种加密算法。美国政府于1977年1月5日颁布了数据加密标准(Data Encryption Standard),简称DES。【实验参考答案】18. 打开“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下的“循环左移”按钮,对C0进行循环左移运算;24. 点击D0下的“循环左移”按钮,对D0进行循环左移运算;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算法中大量的置换运算的作用是什么?通过置换运算,可以打乱原文已有的一些统计特性,使得统计分析密文变得更加困难。2. DES算法中S盒变换的作用是什么?S盒变换是唯一的非线性变换,能够抗差分攻击和抗线性攻击。2、 DES算法实验【实验名称】 DES算法实验 姓名: 学号: 班级: 日期: 【实验预习答案】1. DES算法有什么特点?DES是一种分组密码体制,它将明文按64位一组分成若干组,密钥长为56位;其基本思想是采用变换的组合与迭代,将明文中的各组变为密文组;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比特的倍数,则在明文末尾填充适当数目的规定符号。对明文组用给定的密钥分别进行加密,行密文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的密文错误传播的缺点。【实验参考答案】10. 打开“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码,不足部分将由系统以0x00补足;若为十六进制码模式,则输入不超过16个字符的十六进制码(09,af,AF),不足部分将由系统以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加密方式中,第一个密钥被用于第一次的加密运算,第二个密钥被用于第二次的解密运算,第三个密钥被用于第三次的加密运算。【实验参考答案】12 熟悉3DES运算原理;13 掌握不同密钥数量的情况下,3DES的数学公式表示;14 在密码教学系统中,打开“3DES实例”,如图3-1;15 选择“工作模式”为“ECB”或“CBC”或“CFB”或“OFB”;16 选择“填充模式”为“ISO_1”或“ISO_2”或“PAK_7”;17 输入明文前选择ASCII码或十六进制码输入模式,然后在明文编辑框内输入待加密的字符串;18 选择密钥长度为16字节或者24字节,分别代表双密钥或三密钥;19 输入密钥前选择ASCII码或十六进制码输入模式,然后在密钥编辑框内输入密钥;若为ASCII码模式,则输入不超过16个或24个字符的ASCII码,不足部分将由系统以0x00补足;若为十六进制码模式,则输入不超过32个或48个字符的十六进制码(09,af,AF),不足部分将由系统以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代表伽罗瓦域,以发明这一理论的数学家的名字命名。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等于其自身。现在让我们看看用0x02做乘法。和加法的情况相同,理论是深奥的,但最终结果十分简单。只要被乘的值小于0x80,这时乘法的结果就是该值左移1比特位。如果被乘的值大于或等于0x80,这时乘法的结果就是用值0x1b异或后的值再左移1比特位。它防止了“域溢出”并保持乘法的乘积在范围以内。一旦你在GF(28)中用0x02建立了加法和乘法,你就可以用任何常量去定义乘法。用0x03做乘法时,你可以将 0x03 分解为2的幂之和。为了用 0x03 乘以任意字节b, 因为 0x03 = 0x02 + 0x01,因此:b * 0x03 = b * (0x02 + 0x01) = (b * 0x02) + (b * 0x01) 这是可以行得通的,因为你知道如何用 0x02 和 0x01 相乘和相加,同哩,用0x0d去乘以任意字节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规范中包括大量 有关GF(28)操作的附加信息。2.AES算法的特点分组密码:明文长度、密文长度、密钥长度可变(128/192/256等),一般均取为128 ;面向二进制的密码算法:能够加解密任何形式的计算机数据;不是对合运算:加、解密使用不同的算法;综合运用置换、代替、代数等多种密码技术整体结构:基本轮函数加迭代。圈数可变,10。【实验参考答案】10. 打开“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码,不足部分将由系统以0x00补足;若为十六进制码模式,则输入不超过32个字符的十六进制码(09,af,AF),不足部分将由系统以0x00补足;16. 点击“加密”按钮,进行加密操作,密钥扩展的结果将显示在列表框中,密文将显示在密文编辑框中;17. 点击“解密”按钮,密文将被解密,显示在明文编辑框中,填充的字符将被自动除去;也可以修改密钥,再点击“解密”按钮,观察解密是否会正确;18. 点击“清空”按钮即可进行下次实验。图3-1 AES算法实验【实验思考题答案】对于长度不足16字节整数倍的明文加密,除了填充这个办法,还有没有其他的方法?短块的处理除了填充之外还可以采用“短块二次加密”的方法,具体办法为去最后一块完整的16字节的密文的一部分结合短块一起构成一个16字节块,一起加密后替换最后的16字节,但要注意解密时需要将最后的16字节先解密。4、 MD5算法实验【实验名称】 MD5算法实验 姓名: 学号: 班级: 日期: 【实验预习答案】1.散列函数MD5的作用MD5是message-digest algorithm 5(信息-摘要算法)的缩写,被广泛用于加密和解密技术上,它可以说是文件的“数字指纹”。任何一个文件,无论是可执行程序、图像文件、临时文件或者其他任何类型的文件,也不管它体积多大,都有且只有一个独一无二的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这些变量成为链变量。然后,开始算法的主循环。这个循环对消息中所有的块都执行一次。将4个变量复制到不同的变量:a值为A,b值为B,c值为C,d值为D。主循环有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代表循环左移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还是比较安全的。【实验参考答案】9. 点击“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. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 通信网络工程中介服务费用协议
- 个人业主制企业股份交易及市场拓展及品牌管理合同
- 2025数据中心与云计算服务合同
- 2025网站开发服务合同书范本
- 太原安全生产培训班课件
- 园区车辆安全管理培训记录课件
- 企业商用车辆销售合同5篇
- 垃圾分类市场分析与发展
- 安全主任培训题库及答案解析
- 测你是否有安全感测试题及答案解析
- 仿古建筑施工常见问题及应对策略
- 辽宁省沈阳市2024-2025学年八年级上学期期末考试英语试题(含答案无听力原文及音频)
- 小班晨间活动体能大循环
- 绿化小型工程合同范例
- 涂层材料与叶轮匹配性研究-洞察分析
- 讯问笔录课件教学课件
- 《建筑工程设计文件编制深度规定》(2022年版)
- 2.3地表形态与人类活动课件湘教版(2019)高中地理选择性必修一
- 病例报告表(CRF)模板
- 辽宁省名校联盟2024-2025学年高三上学期10月联考数学试卷
- 广东省珠海市香洲区文园中学2024-2025学年七年级上学期10月月考数学试卷(无答案)
评论
0/150
提交评论