信息安全实验报告摹本

时间:2024.5.2

一、           密码实验系统指导书

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个字符的十六进制码(0~9,a~f,A~F);

4.  点击“比特流”按钮,将输入的密钥转化为64位比特流;

5.  点击“置换选择I”按钮,完成置换选择I运算,得到56bit有效密钥位,并分为左右两部分,各28bit;

6.  点击C0下的“循环左移”按钮,对C0进行循环左移运算;

7.  点击D0下的“循环左移”按钮,对D0进行循环左移运算;

8.  点击“选择置换II”按钮,得到扩展子密钥K1;

9.  进入第二部分——加密,选择加密输入为ASCII码或十六进制码模式,输入明文;若为ASCII码模式,则输入8个字符的ASCII码;若为十六进制码模式,则输入16个字符的十六进制码(0~9,a~f,A~F);

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盒变换的作用是什么?


2.DES算法实验

【实验目的】

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个字符的十六进制码(0~9,a~f,A~F),不足部分将由系统以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个字符的十六进制码(0~9,a~f,A~F),不足部分将由系统以0x00补足;

9.  点击“加密”按钮,进行加密操作,密钥扩展的结果将显示在列表框中,密文将显示在密文编辑框中;

10.            点击“解密”按钮,密文将被解密,显示在明文编辑框中,填充的字符将被自动除去;也可以修改密钥,再点击“解密”按钮,观察解密是否会正确;

11.            点击“清空”按钮即可进行下次实验。

图3-1  3DES算法实验

【实验思考题】

将下面的两个密钥中的有效比特列出来

k1:12345678

k2:23456789


4、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个字符的十六进制码(0~9,a~f,A~F),不足部分将由系统以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.        点击“计算第一个填充块的W[0]—W[79]”,编辑框可以得到第一个填充块的W[0]—W[15],以及计算W[16]所需要的W[0]、 W[2] 、W[8] 、W[13] 的16进制以及二进制显示;

5.        点击“求W[16]”,其下的编辑框显示W[16]的16进制,以及W[16]计算过程的二进制表示;

6.        在“第一次循环运算”组合框中,点击“<<5”,右方编辑框得到a左移5位的16进制表示,b编辑框显示a的传递值;

7.        点击“<<30”,c编辑框显示b左移30位的16进制表示;

8.        点击“f[0](b,c,d)”按钮即可在后面显示f[0]的计算结果,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个字符的十六进制码(0~9,a~f,A~F);

21.点击“比特流”按钮,将输入的密钥转化为64位比特流;

22.点击“置换选择I”按钮,完成置换选择I运算,得到56bit有效密钥位,并分为左右两部分,各28bit;

23.点击C0下的“循环左移”按钮,对C0进行循环左移运算;

24.点击D0下的“循环左移”按钮,对D0进行循环左移运算;

25.点击“选择置换II”按钮,得到扩展子密钥K1;

26.进入第二部分——加密,选择加密输入为ASCII码或十六进制码模式,输入明文;若为ASCII码模式,则输入8个字符的ASCII码;若为十六进制码模式,则输入16个字符的十六进制码(0~9,a~f,A~F);

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,K14…K1。

    

图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个字符的十六进制码(0~9,a~f,A~F),不足部分将由系统以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) 0      xE0 E0 E0 E0 F1 F1 F1 F1

(4) 0xFE FE FE FE FE FE FE FE

12个半弱密钥:

(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 F1


3、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个字符的十六进制码(0~9,a~f,A~F),不足部分将由系统以0x00补足;

20.            点击“加密”按钮,进行加密操作,密钥扩展的结果将显示在列表框中,密文将显示在密文编辑框中;

21.            点击“解密”按钮,密文将被解密,显示在明文编辑框中,填充的字符将被自动除去;也可以修改密钥,再点击“解密”按钮,观察解密是否会正确;

22.            点击“清空”按钮即可进行下次实验。

图3-1  3DES算法实验

【实验思考题答案】

1. 将下面的两个密钥中的有效比特列出来

k112345678

k223456789

因为DES中的有效比特为56个比特,而给出的8个ASCII字符中,有8bit是无效的,在DES密钥扩展中会被自动清除。也就是说第8,16,24,32,40,48,56,64个比特无效。

因此

1.   k1:12345678

0011000 0011001 0011001 0011010 0011010 0011011 0011011 0011100

2.   k2:23456789

0011001 0011001 0011010 0011010 0011011 0011011 0011100 0011100


3、AES算法实验

【实验名称】    AES算法实验  

姓名:        学号:             班级:             日期:            

【实验预习答案】

1.    AES中有限域上的数学运算

AES 所用的加法和乘法是基于数学的域论,尤其是 AES 基于有限域GF(2^8)。

GF(2^8)由一组从 0x00 到 0xff 的256个值组成,加上加法和乘法,因此是(2^8)。GF代表伽罗瓦域,以发明这一理论的数学家的名字命名。GF(2^8) 的一个特性是一个加法或乘法的操作的结果必须是在{0x00 ... 0xff}这组数中。虽然域论是相当深奥的,但GF(2^8)加法的最终结果却很简单。GF(2^8) 加法就是异或(XOR)操作。

然而,GF (2^8)的乘法有点繁难。正如你稍后将在 C# 实现中所看到的,AES的加密和解密例程需要知道怎样只用七个常量 0x01、0x02、0x03、0x09、0x0b、0x0d 和 0x0e 来相乘。所以我不全面介绍GF(2^8)的乘法,而只是针对这七种特殊情况进行说明。

在GF(2^8)中用0x01的乘法是特殊的;它相当于普通算术中用1做乘法并且结果也同样—任何值乘0x01等于其自身。

现在让我们看看用0x02做乘法。和加法的情况相同,理论是深奥的,但最终结果十分简单。只要被乘的值小于0x80,这时乘法的结果就是该值左移1比特位。如果被乘的值大于或等于0x80,这时乘法的结果就是用值0x1b异或后的值再左移1比特位。它防止了“域溢出”并保持乘法的乘积在范围以内。

一旦你在GF(2^8)中用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(2^8)中,加法是异或操作。其乘法将分解成加法和用0x02做的乘法,而用0x02做的乘法是一个有条件的左移1比特位。AES规范中包括大量 有关GF(2^8)操作的附加信息。

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个字符的十六进制码(0~9,a~f,A~F),不足部分将由系统以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=0x01234567

    B=0x89abcdef

    C=0xfedcba98

    D=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)=(X∧Y)∨((「X)∧Z)

    G(X,Y,Z)=(X∧Z)∨(Y∧(「z))

    H(X,Y,Z)=X㈩Y㈩Z

    I(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,点击“计算MD5值”按钮,计算结果显示在对应的编辑框中

13.  点击“异或比较”按钮,两个报文MD5值的异或值将显示出来

14.  选择“文件”,点击报文1后的“浏览”按钮,选择文件,点击“计算MD5”值按钮,计算结果显示在对应的编辑框中

15.  点击报文2后的“浏览”按钮,选择对比文件,点击“计算MD5”值按钮,计算结果显示在对应的编辑框中

16.  点击“异或比较”按钮,两个文件的MD5值的异或值将显示出来,若为全0则表示文件内容相同

                                                        图4-1  MD5算法实验

【实验思考题答案】

改变报文中的一个比特值最多可能影响MD5值中的多少比特?

理想的HASH函数应该具有的特性是:改变原报文中的一个比特,HASH值改变一半的比特位,但MD5的表现告诉我们,大多数情况下约三分之一的比特位会改变。


5、SHA-1算法实验

【实验名称】    SHA-1算法实验  

姓名:        学号:             班级:             日期:            

【实验预习答案】

1.        散列函数SHA-1的作用

SHA诞生于1993年,全称是安全散列算法(Secure Hash Algorithm),由美国国家安全局(NSA)设计,之后被美国标准与技术研究院(NIST)收录到美国的联邦信息处理标准(FIPS)中,成为美国国家标准, SHA-1生成长度为160bit的摘要信息串。任何一个文件,也不管它体积多大,都有且只有一个独一无二的SHA-1信息值,并且如果这个文件被修改过,它的SHA-1值也将随之改变。因此,我们可以通过对比同一文件的SHA-1值,来校验这个文件是否被“篡改”过。SHA-1还常被用来与公钥技术结合来创建数字签名。

2.        SHA-1算法的原理过程

       首先将消息填充为512的整数倍,与MD5填充方法完全一样:先添加一个1,然后再填充尽量多的0使长度刚好为512的倍数减去64位。SHA-1产生一个160位的HASH值,是5个32位的块,连接起来构成160位。这两步使消息长度恰好是512的倍数,同时保证不同消息在填充后仍不相同。

      初始化5个32位变量:

A=0x67452301

    B=0xefcdab89

    C=0x98badcfe

    D=0x10325476

    E=0xc3d2e1f0

    然后,开始算法的主循环。这个循环对消息中所有的块都执行一次。将4个变量复制到不同的变量:a值为A,b值为B,c值为C,d值为D,e值为E。

    主循环有4圈,都很相似。每圈使用一个不同的操作,重复20次。每个操作完成一个a,b,c和d中三个变量的非线性函数。然后,将结果与第四个变量、文本的一个子块和一个常数相加。然后,将结果混换左移一个可变值的位数,再将结果与a,b,c和d之一相加。最后用结果来代替a,b,c和d之一。

    共有4个非线性函数,每次操作使用一个,每圈都不相同。

    f [t] (X,Y,Z)=(X∧Y)∨((「X)∧Z),对于t从0至19

     f [t] (X,Y,Z)= X?Y?Z,对于t从20至39

     f [t] (X,Y,Z)= (X∧Z)∨(X∧Z) ∨(Y∧Z) ,对于t从40至59

    f [t] (X,Y,Z)= X?Y?Z,对于t从60至79

    ?为异或,∧为与,∨为或,「为非

该算法同样用了4个常数:

       K[t]=0x5a827999,对于t从0至19

       K[t]=0x6ed9eba1,对于t从20至39

K[t]=0x8fabbcdc,对于t从40至59

K[t]=0xca62c1d6,对于t从60至79

用下面的算法将消息分组从16个32位字(M[0]至M[15])变成80个32位字(W[0]至W[79]):

       W[t]=M[t],对于t从0至15;

       W[s] = ( M[t-3]?M[t-8]?M[t-14]?W[t-16] ) <<1,对于t从0至15;

    设t是操作序号(丛0至79),M[t]表示扩展后消息的第t个子分组,<<s表示循环左移s位,主循环如下所示:

    Temp=(a<<5)+f [t] (b,c,d ) + e + W[t]+K[t]

    e = d

    d = c

    c = b<<30

    b = a

    a = Temp

    在这之后,a,b,c,d和e分别加上A,B,C,D和E,然后用下一分组继续运行算法,最后的输出由A,B,C,D和E级联而成。

    【实验参考答案】

依次点击“单向散列函数”中的“SHA-1”、“SHA-1实例”,进入SHA-1实例,如图6-1;

1.        点击消息编辑框,输入要填充的消息;

2.        点击“填充”,获得消息填充值;

3.        点击“计算第一个填充块的W[0]—W[79]”,获得W[0]—W[15]及W[0]、 W[2] 、W[8] 、W[13] 的16进制以及二进制显示;

4.        点击“求W[16]”,获得W[16]及计算中间结果;

5.        在“第一次循环运算”组合框中,点击“<<5”获得a左移5位结果;

6.        点击“<<30”,获得b左移30位的结果;

7.        点击“f[0](b,c,d)”获得f[0];

8.        点击“Temp”,获得Temp;

9.        点击“再经过79次运算”获得80次运算后的结果;

10.    点击“摘要”,获得第一填充块的摘要及总摘要;

11.    若消息长度大于56字节,则有两个填充块,可以点击“第二填充块80次循环的计算结果”得到第二个填充快的计算结果;

12.    实验结束,可以进行下一次实验。

                                          图5-1  SHA-1算法实验

【实验思考题答案】

1.比较SHA-1算法与MD5算法的异同点?

MD5和SHA-1都属于散列(Hash)算法,其作用是可以将不定长的信息(原文)经过处理后得到一个定长的摘要信息串,对同样的原文用同样的散列算法进行处理,每次得到的信息摘要串相同。Hash算法是单向的,一旦数据被转换,就无法再以确定的方法获得其原始值。散列算法的这种不可逆特征使其很适合被用来确认原文(例如公文)的完整性,因而被广泛用于数字签名的场合。

MD5和SHA-1是当前应用最为广泛的两种散列算法。MD5(RFC1321)生成128bit的摘要信息串。SHA全称是安全散列算法(Secure Hash Algorithm),SHA-1生成长度为160bit的摘要信息串。

MD5和SHA-1还常被用来与公钥技术结合来创建数字签名。当前几乎所有主要的信息安全协议中都使用了SHA-1或MD5,包括SSL(HTTPS就是SSL的一种应用)、TLS、PGP、SSH、S/MIME和IPSec,因此可以说SHA-1和MD5是当前信息安全的重要基础之一。

下面来比较这两种算法:

(1)     抗穷举攻击能力:对MD5用穷举攻击方法产生具有给定摘要的消息,代价为2128数量级,而对SHA-1,代价为2160数量级,所以SHA-1抗穷举攻击能力要强得多。

(2)     抗密码分析的能力:MD5抗移植密码分析攻击能力较弱,而SHA-1似乎并不弱,但是SHA-1世纪原则尚未公开,很难评价其强度。

(3)     速度:SHA-1的执行速度要比MD5慢得多。

(4)     简单和简洁性:两个算法都易于描述和实现。

(5)     低位结构和高位结构:MD5使用低位在前方式将消息映射为32位字的序列,而SHA-1使用高位在前的方式,这两种结构本质上没有差异。


6、RSA算法实验

【实验名称】    RSA算法实验  

姓名:        学号:             班级:             日期:            

【实验预习答案】

1.    RSA密码系统所基于的数学难题是什么?

RSA密码系统所基于的数学难题是大整数分解。目前尚没有针对大整数因数分解的快速算法,使得在有限的资源下,无法得到RSA系统模数n的因数,因此,无法从公开的公钥中得到用户的私钥。

2.    RSA密码系统可以取代DES3DES等对称密码系统吗?

不可以。从计算效率和系统开销等方面看,RSA远远比如DES、3DES等对称密码系统的性能表现。因此RSA密码系统目前主要应用的领域在于密钥管理和数字签名。

【实验参考答案】

13.            熟悉RSA运算原理;

14.            打开“非对称加密算法”中“加密”选项下的“RSA”,选择“RSA实例”,如图7-1;

15.            选择密钥长度为128、256、 512或者1024比特;

16.            点击“GetPQ”按钮,得到两个大素数;

17.            点击“GetN”按钮,得到一个由两个大素数的积构成的大整数;

18.            点击“GetDE”按钮,得到公钥和私钥;

19.            在明文对话框中输入需要加密的明文字符串;

20.            点击“获得明文ASCII”按钮可得到明文的ASCII码;

21.            输入分块长度,或者通过点击“推荐值”按钮直接获得;

22.点击“加密”按钮可获得加密后的密文,点击“解密”按钮可获得解密后的明文;

23.              反复使用RSA实例,通过输入不同大小的分片,了解密文长度的变化;

24.              反复使用RSA实例,通过输入不同安全参数,了解RSA密码系统的性能与参数关系。

图6-1   RSA算法实验

【实验思考题答案】

1.    对于128bitAES算法,需要多少安全参数为多少的RSA系统与之相匹配?

按照NIST的推荐,128bit的AES算法,需要安全参数至少为1024bit的RSA系统与之相匹配。

2.  RSA系统的安全参数是什么意思?安全参数为1024bitRSA系统,其模数n大约为多少bit

RSA系统的安全参数代表大素数p和q的比特长度,如果安全参数为1024bit,那么就意味着系统需要生成两个长度为1024bit的大素数,而n=pq,所以,n大约为2048bit


7、DSA数字签名实验

【实验名称】    DSA数字签名实验   

姓名:        学号:             班级:             日期:            

【实验预习答案】

1. 掌握数字签名算法的基本原理及其过程

       公钥加密还可以用在其它方面。假定Bob想要向Alice发送消息,虽然消息的保密性不是很重要,但是他希望Alice能够确定消息的确来自他。这种情况下,Bob使用自己的私钥加密消息。当Alice收到密文时,她发现她能够使用Bob的公钥解密消息,因此就能证明这条消息是来自于Bob。因为其它人都没有Bob的私钥,所以他们也不能创建能使用Bob的公钥解密的消息。因此整个加密的消息都用来提供数字签名服务了。此外,没有获得Bob 的私钥就不能更改消息。因此还保证了数据完整性。

   上述方案加密了整个消息,尽管认证了消息的源和内容,但是需要大量的存储。出于实用目的,每个文档必须以明文的形式保存。副本也必须保存在密文中,这样就可以验证源和内容,以防止争论。获得相同的效果还有一个更有效的方法,就是加密一个很小的数据块(这个数据块应当是文档的函数)。称这样的数据是鉴别码(anthenticator),它必须有这样的性质:在不改变鉴别码的情况下,是不能改变文档的。如果使用发送者的私钥加密鉴别码的话,那就使用鉴别码作为数字签名来验证源、内容和顺序。安全hash代码如MD5可以用于此功能。

 2.掌握简单RSA的计算

 (1)选择两个素数:p=17和q=19;

(2)计算n = pq = 17*19 = 323;

(3)计算Φ(n)=(p-1)(q-1)= 288;

(4)选择与Φ(n)互素,并小于Φ(n)的e,我们选择e = 17;

(5)确定d满足de mod 288 = 1并且d < 323,正确值为17。

【实验参考答案】

1.      点击“DSA数字签名理论学习”,学习DSA原理;

2.      点击“DSA数字签名实例”,开始数字签名实验,如图8-1;

3.      选择“字符串”,或者“报文”。选择“字符串”时,在“报文”输入框中输入字符串,选择“报文”时,点击浏览,选择需要计算MD5值的文件;

4.      点击“计算MD5值”,系统在相应的编辑框中显示用户输入的字符串或者选择的报文的MD5值;

5.      选择并计算签名所需要的各个参数。包括p,q和n等。点击“检验”,检查用户输入的正确性;

6.      计算并输入MD5值RSA算法签名的前8位,MD5值的分块大小默认为8 bit,即2位16进制数。计算过程中,取计算出的签名值前八位输入。点击“检验并生成签名”,系统检验用户输入的签名值的正确性;

7.      点击“签名并验证”框中的“验证”,系统显示签名验证值。

图7-1   DSA算法实验

【实验思考题答案】

2.            DSA算法的安全性建立在什么基础上?

DSA算法建立在求离散对数的困难性基础上。

实验报告模板

实 验 报 告

姓名:           学号:             班级:            日期:          

1  LINUX使用(填写实验名称)

一、实验环境

1.硬件配置:……..

2.使用软件:

(1)     操作系统:(标明版本号)………

(2)     软件工具:(标明版本号)………

二、实验内容(提示:无需增添或修改)

1.安装LINUX系统

2.熟悉Linux基本操作命令:帮助命令、文件系统命令、帐户管理命令、权限管理命令。

说明:每种分类各选择两条进行详细阐述

3.使用Linux基本命令,实现一下要求:

新建用户user1、user2、user3 和用户组groupA、groupB,使user1

属于groupA,user2属于groupB,user3既属于groupA又属于groupB,并为新建的用户设置密码口令。

       编写以学号为文件名的文件,内容自定,放置在/usr/local/experiment目录下,设定文件属性为:

并检验以上各项操作的有效性。

4.熟悉LINUX软件安装方法,下载MySQL 5.0.41版本源代码,并安装

说明:若在安装Linux系统时已选择安装MySQL软件,请删除后,重新安装MySQL 5.0.41版本,为“入侵检测实验”做准备。

三、实验涉及的相关概念或基本原理

1.LINUX系统与Windows系统的不同之处

2.LINUX系统基本操作方法

四、实验步骤(提示:简单说明,体现实验完成过程思路即可)

1. 

五、实验过程(提示:重点内容,详细描述,配以适当图示或命令)

1.LINUX系统安装

2.Linux基本操作命令(各种命令参数作用及效果)

帮助命令:

输入命令:…..

结果如下:……

输入命令:…..

结果如下:……

       文件系统命令:

       ……

3.使用Linux基本命令,实现题设要求,并检验操作的有效性(写出详细的操作步骤及结果)

4.安装MySQL

六、实验总结分析(提示:重点内容,详细描述。如实验过程中遇到的问题、怎么解决;实验结果如与预期有别,分析原因;实验最终达到的效果或自己的收获)

1. 

七、实验思考题(按要求回答)

1.LINUX如何在图形化界面和文本界面之间进行切换。请分别说明由图形界面进入文本界面、文本界面进入图形界面的方式,以及如何设置启动时进入的界面方式。

2.简述LINUX系统与Windows系统的不同之处

八、参考资料

[1]       作者,书名,出版社,出版年月,第几版

[2]       作者,论文名,出版社,出版年月,第几期,页码范围

[3]       http://

更多相关推荐:
信息安全实验报告

中国地质大学江城学院信息安全实验报告姓名专业班级学号指导教师1目录实验1RAR文件密码破解3实验2用C语言编程实现凯撒密码加密4实验3扫描器XScan的使用5实验4宏病毒分析及清除实验6实验5实验6实验7实验1...

网络与信息安全实验报告

中国海洋大学课程名称:网络与信息安全任课教师:学生姓名:学生学号:专业班级:计算机信息保密2010级学院名称:信息科学与工程学院20XX年12月20日实验一(报文监听)一、实验目的1.安装、配置、使用、卸载报文…

信息安全实验报告

南昌航空大学实验报告课程名称信息安全实验名称共五次实验班级姓名同组人指导教师评定签名实验一木马攻击与防范一实验目的通过对木马的练习使读者理解和掌握木马传播和运行的机制通过手动删除木马掌握检查木马和删除木马的技巧...

信息安全实验报告--2

南昌航空大学实验报告20xx-09-27课程名称:信息安全实验名称:实验二网络端口扫描班级:080611学生姓名:谈家平学号:08061123指导教师评定:签名:一、实验目的通过练习使用网络端口扫描器,可以了解…

信息安全实验报告

武汉理工大学学生实验报告书实验课程名称信息安全开课学院计算机科学与技术学院指导老师姓名学生姓名学生专业班级20xx20xx学年第二学期实验课程名称信息安全实验课程名称信息安全实验课程名称信息安全

信息安全实验报告

实验一信息安全工程需求分析一实验目的掌握信息安全工程常用软件Visio20xx的使用掌握信息安全工程需求分析的一般步骤及信息安全需求分析说明书的编写二实验原理以教材中信息安全工程需求分析的理论为指导参考信息安全...

网络与信息安全-------实验指导书(8次)

网络与信息安全实验指导书目录实验1office口令破解工具aoxppr的使用实验2Word宏病毒实验实验3用C语言编程实现古典替代密码凯撒密码实验4ARP地址欺骗实验5TCP与UDP端口扫描实验6RealSpy...

《信息安全》实验报告5 木马攻击

信息安全实验报告5木马攻击于泳海20xx123实验名称指导教师完成日期信息管理与信息系统班级11级信本班姓名专业贾文丽

网络与信息安全第一次试验报告

南京工程学院实验报告课程名称网络应用与开发实验名称文件安全传输院系部中心计算机工程学院专业网络工程班级网络工程121姓名学号20xx20xx5起止日期150319150325指导教师毛云贵实验一文件安全传输一实...

信息安全实验

贵州大学实验报告学院计信学院专业网络工程班级网络091注各学院可根据教学需要对以上栏木进行增减表格内容可根据内容扩充

信息安全实习报告

信息安全技术实验报告创建信息加解密系统一实验内容用AES算法实现对文件的加解密创建一个简单的文件加解密系统二实验要求写出基本的实验步骤如何实现主要代码以及实验结果要求结构清晰步骤完整思路明确掌握AES算法的基本...

信息安全工程与测评实践报告六

信息安全工程与测评实践报告六实验名称姓名班级学号完成日期nmap的使用陈天宝120xx211120xx21420xx年5月15日实验目的nmap是一个网络连接端扫描软件用来扫描网上电脑开放的网络连接端确定哪些服...

信息安全实验报告(20篇)