密码学实验报告.docx
《密码学实验报告.docx》由会员分享,可在线阅读,更多相关《密码学实验报告.docx(36页珍藏版)》请在冰豆网上搜索。
![密码学实验报告.docx](https://file1.bdocx.com/fileroot1/2023-1/29/cbfeb86d-3a1d-49f8-8b47-e5d52d0dd6ac/cbfeb86d-3a1d-49f8-8b47-e5d52d0dd6ac1.gif)
密码学实验报告
《密码学与信息安全》实验报告
专业信息对抗
班级130609
姓名徐昕宇
学号*********
2015年6月8
实验一古典密码实验
1实验目的
理解替代密码学和置换密码学的加密过程
2实验内容
3实验过程
实验步骤:
一:
凯撒密码
(一)手动完成Caesar密码
Caesar置换表
a
b
c
d
e
f
g
h
i
j
k
l
m
A
B
C
D
E
F
G
H
I
J
K
L
M
n
o
p
q
r
s
t
u
v
w
x
y
z
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
密钥k=3时Caesar置换表
a
b
c
d
e
f
g
h
i
j
k
l
m
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
A
B
C
n
o
p
q
r
s
t
u
v
w
x
y
z
(1)当密钥k=3时,对应明文:
datasecurityhasevolvedrapidly的密文:
GDWDVHFXULWBKDVHYROYHGUDSLGDB
(2)进入实验平台,单击工具栏中的“密码工具”按钮,启动密码工具,在向导区点击“Caesar密码”,在明文区输入明文datasecurityhasevolvedrapidly,将密钥k调到3,查看相应的密文,并与手动的密文进行比较。
(二)Caesar密码
(1)进入“加密解密/Caesar密码”试图,在明文输入区输入明文(明文应为英文),单击“加密”按钮进行加密。
明文记录:
ilovemycountry
(2)调节密钥k的微调按钮或者对照表的移位按钮,选择合适的k值,并记下改密钥k用于同组主机的解密。
加密工作完成后,单击“导出”将密文默认导出到Caesar共享文件夹。
(3)通知同组主机接收密文,并将密钥k通告给同组主机
(4)单击“导入”按钮,进入同组主机,打开“Caesar密文.txt”
(5)调节密钥k,将k设为同组主机加密时的密钥k值,这时解密成功。
请将明文写出:
ilovemycountry
(三)Caesar密码分析
(1)本机进入”密码工具/加密解密”,在明文输入区输入明文。
请将明文记录在这里:
ilovemycountry
(2)请将密钥k的微调按钮或者对照表的移位按钮,选择合适的k值,并记下改密钥k用于同组主机的解密。
加密工作完成后,单击“导出”将密文默认导出到Caesar共享文件夹。
K=3对应密文为LORYGPBFRXQWUB
(3)通知同组主机(不要通告密钥k)密文已经放在共享文件中,让同组主机获得密文。
(4)单击“导入”按钮将同组主机Caesar密文导入。
(5)调节密钥k的微调按钮或者对照表的移位按钮来调节密钥,从而进行密码分析(平均13次,最坏26次破解)。
请将破解的明文和密钥记录在这里。
密钥k=3
明文:
ilovemycountry
二:
单表置换密码
(一)单表置换密码
(1)单击“密码工具”按钮,进入“加密解密/单表置换/加密/解密”试图,与同组主机协商好一个密钥词组ILOVEMYCOUNTRY
(2)根据”单表置换“实验原理计算出置换表
a
b
c
d
e
f
g
h
i
j
k
l
m
I
L
O
V
E
M
Y
C
U
N
T
R
A
n
o
p
q
r
s
t
u
v
w
x
y
z
B
D
F
G
H
J
K
P
Q
S
W
X
Z
(3)计算完成置换表以后,在明文输入明文,单击”加密“按钮,用置换表的对应关系对明文进行加密,加密完成后,单击”导出“按钮,将密文导出到SingleTable共享目录中,并通知同组主机获取密文。
请将明文记录在这里:
datasecurityhasevolvedrapidly
(4)单击“导入”按钮将同组主机单表置换密文进行解密。
(5)本机将解密后的明文与同组主机记录的明文对照,如果双方的明文一致,则说明实验成功,否则说明本机械同组主机的置换表计算错误
(二)单表置换密码分析
(1)由统计表得出英文字母相对频率
英文字母E出现的频率最高,而J和Z出现的频率最低,这样,就可以通过英文字母出现的频率大致上判定出单表置换密码的置换表,从而得到明文。
(2)本机进入”密码工具/加密解密/单表置换/密码分析”页面,单击“导入”按钮,将密文“单表置换密码分析密文.txt”导入,单击“统计”按钮,统计每个字母出现的频率,回答下列问题:
在密文中出现频率最高的字母是:
H
与上表比较,它可能是由字母E置换的
(3)置换表组框中点击“解密”按钮,这时得到一个明文。
然而此时的明文并不是最终要得到的,可以通过明文的特征和各个字母的比例来调节置换表中的对应关系,从而得到正确的明文。
依次类推便可得到明文。
4实验感想:
通过本次实验操作,深入了解Caesar密码和单表置换密码的原理,并在机器上进行了模拟的加解密,收获很大,希望在以后可以多实践。
实验二分组密码实验
1实验目的
理解对称加密算法的原理和特点
理解DES算法的加密原理
理解AES算法的加密原理
2实验内容
3实验过程
本练习主机A、B为一组,C、D为一组,E、F为一组。
首先使用“快照X”恢复Windows系统环境。
一.DES加密解密
(1)本机进入“密码工具”|“加密解密”|“DES加密算法”|“加密/解密”页签,在明文输入区输入明文:
(2)在密钥窗口输入8(64位)个字符的密钥k,密钥k=。
单击“加密”按钮,将密文导出到DES文件夹(D:
\Work\Encryption\DES\)中,通告同组主机获取密文,并将密钥k告诉同组主机。
(3)单击“导入”按钮,从同组主机的的DES共享文件夹中将密文导入,然后在密钥窗口输入被同组主机通告的密钥k,点击“解密”按钮进行DES解密。
(4)将破解后的明文与同组主机记录的明文比较。
二.DES算法
本机进入“密码工具”|“加密解密”|“DES加密算法”|“演示”页签,向64位明文中输入8个字符(8*8bit=64),向64位密钥中输入8个字符(8*8bit=64)。
点击“加密”按钮。
完成加密操作,分别点击“初始置换”、“密钥生成演示”、“十六轮加密变换”和“终结置换”按钮,查看初始置换、密钥生成演示、十六轮加密变换和终结置换的详细加密操作流程。
一.AES加密解密
(1)本机进入“密码工具”|“加密解密”|“AES加密算法”|“加密/解密”页签,在明文输入区输入明文:
。
(2)在密钥窗口输入16(128位)个字符的密钥k,要记住这个密钥以用于解密,密钥k=。
单击“加密”按钮,将密文导出到AES文件夹(D:
\Work\Encryption\AES\)中,通告同组主机获取密文,并将密钥k告诉同组主机。
(3)单击“导入”按钮,从同组主机的AES共享文件夹中将密文导入,然后在密钥窗口输入被同组主机通告的密钥k,点击“解密”按钮进行AES解密。
(4)将破解后的明文与同组主机记录的明文比较。
二.AES算法
进入“密码工具”|“加密解密”|“AES加密算法”|“演示”页签。
输入128位明文与密钥,执行加密操作,查看各演示模块。
根据实验原理中对AES加密算法的SubBytes变换和ShiftRows变换的介绍,对于以下给出的状态矩阵:
请计算它的SubBytes变换,以及经过SubBytes变换之后,再经过ShiftRows变换的结果。
C95982f0ShiftRowsC95982f0
C0ab67a4ab67a4c0
76c5c5f2c5f276c5
77ed591b1b77ed59
4实验感想:
通过这次的实验,对AES和DES的算法有了一定的了解,并会应用工具实现其算法,在以后的学习中,要灵活的应用,能解决实际的问题。
实验三公钥密码实验
1实验目的
理解ELGamal函数的计算原理和特点
理解RSA算法原理
2实验内容
3实验过程
一.ELGamal生成公钥及加密解密过程演示
(1)本机进入“密码工具”|“加密解密”|“ELGamal加密算法”|“公钥”页签,输入素数p,这里要求p不能小于127,记录你输入的素数p=131。
单击“本原元素g”下拉按钮,选择本原元素g=115。
输入私钥X,X在区间[0,p)上,记录下私钥用于解密,x=25。
点击“生成公钥”按钮生成公钥,记录下公钥y=19
(2)在公钥生成演示区中输入素数p=131,本原元素g=115,私钥x=25。
单击“开始演示”按钮查看ELGamal算法生成公钥过程,记录下公钥y=19。
(3)在加密演示区中输入明文m=23,素数p=131,本原元素g=115,公钥y=19,和随机数x=25。
单击“开始演示”按钮,查看ELGamal加密过程,记录密文C1=19,C2=15。
(4)在解密演示区中输入刚刚得到的密文C1和C2,输入素数p=131,私钥x=25。
单击“开始演示”按钮,查看ELGamal解密过程,记录得到的明文m=23。
根据实验原理中对ELGamal加密算法的介绍,当素数P=311,本原元素g=136,私钥X=3时,写出ElGamal公钥的生成过程。
利用生成的公钥,写出对明文m=40,随机数x=2的加密过程:
利用私钥X=3,对生成的密文进行解密,请写出解密过程:
二.ELGamal加密解密
(1)本机进入“密码工具”|“加密解密”|“ELGamal加密算法”|“公钥”页签,输入素数p,这里要求p不能小于127,记录你输入的素数p=131。
单击“本原元素g”下拉按钮,选择本原元素g=115。
输入私钥X,X在区间[0,p)上,记录下私钥用于解密,私钥X=25。
单击“生成公钥”按钮生成公钥,记录下公钥Y=19。
将自己的公钥通告给同组主机。
(2)进入“加密”页面,将同组主机的系统素数、本原元素和公钥输入,再选择一个随机数x输入(0在明文输入区输入明文:
78。
加密后将密文导出到ELGamal共享文件夹(D:
\Work\Encryption\ELGamal\)中,通告同组主机获取密文
(3)本机进入“解密”页签,单击“导入”按钮,从同组主机的ELGamal共享文件夹中将密文导入,输入自己的“系统素数P”和“私钥X”,点击“解密”按钮进行ELGamal解密。
(4)将破解后的明文与同组主机记录的明文比较。
一.RSA生成公私钥及加密解密过程演示
(1)本机进入“密码工具”|“加密解密”|“RSA加密算法”|“公私钥”页签,在生成公私钥区输入素数p和素数q,这里要求p和q不能相等(因为很容易开平方求出p与q的值)并且p与q的乘积也不能小于127(因为小于127不能包括所有的ASCII码,导致加密失败),你选用的素数p与q分别是:
p=13;q=17
(2)单击“随机选取正整数e”下拉按钮,随机选取e,e=143
(3)单击“生成公私钥”按钮生成公私钥,记录下公钥(143,221),私钥(47,221)
(4)在公私钥生成演示区中输入素数p=13和素数q=17,还有正整数e=143
(5)在加/解密演示区中输入明文m=123,公钥n=247(m单击“加密演示”按钮,查看RSA加密过程,然后记录得到的密文c=24。
(6)在密文c编辑框输入刚刚得到的密文,分别输入私钥n=247,私钥d=167,点击“解密演示”按钮,查看RSA解密过程,然后记录得到的明文m=123。
(7)比较解密后的明文与原来的明文是否一致。
根据实验原理中对RSA加密算法的介绍,当素数p=13,素数q=17,正整数e=143时,写出RSA私钥的生成过程:
当公钥e=143时,写出对明文m=40的加密过程(加密过程计算量比较大,请使用密码工具的RSA工具进行计算):
利用生成的私钥d,对生成的密文进行解密:
二.RSA加密解密
(1)本机在生成公私钥区输入素数p和素数q,这里要求p和q不能相等,并且p与q的乘积也不能小于127,记录你输入的素数,p=13,q=19
(2)点击“随机选取正整数e:
”下拉按钮,选择正整数e,e=119
(3)点击“生成公私钥”按钮生成公私钥,记录下公钥e=119,n=247;私钥d=167,n=247。
将自己的公钥通告给同组主机。
(4)本机进入“加密/解密”页签,在“公钥e部分”和“公钥n部分”输入同组主机的公钥,在明文输入区输入明文:
。
单击“加密”按钮对明文进行加密,单击“导出”按钮将密文导出到RSA共享文件夹(D:
\Work\Encryption\RSA\)中,通告同组主机获取密文。
(5)进入“加密/解密”页签,单击“导入”按钮,从同组主机的RSA共享文件夹中将密文导入,点击“解密”按钮,切换到解密模式,在“私钥d部分”和“私钥n部分”输入自己的私钥,再次点击“解密”按钮进行RSA解密。
(6)将破解后的明文与同组主机记录的明文比较。
4.实验感想
通过这次试验,对公钥密码体制有了一定的了解,希望在以后的学习中能灵活地运用这方面的知识,解决实际中的问题。
实验四Hash函数实验
1实验目的
1.理解SHA1函数的计算原理和特点
2.理解SHA1算法原理
2实验内容
3实验过程
一.SHA1生成文件摘要
(1)本机进入“密码工具”|“加密解密”|“SHA1哈希函数”|“生成摘要”页面,在明文框中编辑文本内容:
单击“生成摘要”按钮,生成文本摘要:
单击“导出”按钮,将摘要导出到SHA1共享文件夹(D:
\Work\Encryption\SHA1\)中,并通告同组主机获取摘要
(2)单击“导入”按钮,从同组主机的SHA1共享文件夹中将摘要导入,在文本框中输入同组主机编辑过的文本内容,单击“生成摘要”按钮,将新生成的摘要与导入的摘要进行比较,验证相同文本会产生相同的摘要
(3)对同组主机编辑过的文本内容做很小的改动,再次生成摘要,与导入的摘要进行对比,验证SHA1算法的抗修改性。
二.SHA1算法
本机进入“密码工具”|“加密解密”|“SHA1哈希函数”|“演示”页签,在明文输入区输入文本(文本不能超过48个字符),单击“开始演示”,查看各模块数据及算法流程。
根据实验原理中对SHA1算法的介绍,如果链接变量的值分别为(其中,M[1]=E7CBEB94):
A:
39669B34B:
61E7F48CC:
C04BD57BD:
8279FF1EE:
4E85FC91
请写出第21步的运算过程以及经过运算后的链接变量
4实验感想
对哈希算法有了一定的了解,希望在以后的实验中能灵活地应用这些算法的本质去解决实际性的问题,简单明了,再接再厉。
实验五数字签名实验
1实验目的
了解pgp以及文件传输的概念和原理
2实验内容
3实验过程
本练习主机A、B为一组,C、D为一组,E、F为一组。
首先使用“快照X”恢复Windows系统环境。
一.PGP安全通信
说明:
实验应用PGP工具实现信息的安全通信,其实现流程为:
本机首先生成公私钥对,并导出公钥给同组主机;在收到同组主机的公钥后将其导入到本机中,并利用其对文件进行加密;将加密后的密文传回给同组主机,本机利用自己的私钥对来自同组主机的密文进行解密。
要求:
应用PGP工具过程中所使用的用户名均为userGX格式,其中G为组编号(1-32),X为主机编号(A-F),如第2组主机D,其使用的用户名应为user2D。
1.生成公私密钥
(1)本机单击实验平台“GnuPG”工具按钮,进入工作目录,键入命令:
gpg--gen-key开始生成公私钥对。
期间gpg会依次询问如下信息:
欲产生密钥种类(默认选择1)
密钥大小(默认大小2048字节)
密钥有效期限(默认选择0—永不过期)
确定上述输入后进入步骤
(2)操作。
(2)生成用户标识,期间gpg会依次询问如下信息:
Realname(用户名,请按本机的组编号和主机编号确定你的用户名)
Emailaddress(Email地址,如*********************)
Common(注释信息,建议与用户名相同)
确定上述输入后,gpg会提示你将要生成的USER-ID,形如:
user2D(user2D)(*********************)
键入“O”确定以上信息后,gpg需要一个密码来保护即将生成的用户私钥,为了方便记忆,我们选择密码与用户名相同。
(3)接下来gpg会根据以上信息生成公私密钥对,并将它们存放在C:
\DocumentsandSettings\Administrator\ApplicationData\gnupg目录下,名字分别为:
pubring.gpg和secring.gpg。
「说明」默认情况下ApplicationData目录是隐藏的,通过“资源浏览器”|“工具”菜单|“文件夹选项”|“查看”选项卡,选中“显示所有文件和文件夹”项,即可显示隐藏的目录和文件。
2.导出公钥
本机在gpg工作目录键入命令:
gpg-a-oD:
\Work\PGP\userGXpubkey.asc--exportuserGX(userGX)(*********************),gpg会将公钥导入到D:
\Work\PGP\这个指定目录的userGXpubkey.asc文件中。
将userGXpubkey.asc文件发送到同组主机PGP共享目录中。
3.导入同组主机公钥
本机从同组主机发送来的userGYpubkey.asc文件中,将对方公钥导入至本机gpg库,其命令如下:
gpg--importD:
\Work\PGP\userGYpubkey.asc。
4.利用对方公钥进行加密
(1)在“D:
\Work\PGP\”目录中新建一文本文件“userGX.txt”,内容是:
。
(2)利用对方公钥对userGX.txt加密,并对其进行签名
在gpg工作目录键入如下命令:
gpg-sea-r*********************加密文件绝对路径,其中*********************为USER-ID。
加密完成后,gpg还要对其进行签名表明这个密文文件是“我”发出的,而不是“其它人”,在提示处输入前面设置的用于保护本机私钥的密码即可。
最后在原文件所在目录下,生成一个名为“userGX.txt.asc”的文件,将该文件发送到同组主机PGP目录中。
5.解密密文
(1)在gpg工作目录下键入命令:
gpg-d加密文件绝对路径>解密后文件路径,此时gpg要求输入前面设置的用于保护本机私钥的密码,输入密码,解开私钥。
在存放加密文件的目录下就生了一个解密后的文件,打开解密文件,浏览正文,与同组主机确定其正确性。
本练习主机A、B为一组,C、D为一组,E、F为一组。
首先使用“快照X”恢复Windows系统环境。
一.手动实现信息的安全传输
说明:
实验应采用对称加密算法、非对称加密算法和哈希算法相结合的方式,通过使用密码工具实现信息的安全传输。
以终端A为发送方,终端B为接收方为例,实现流程大致应如下。
终端A操作
与终端B预先协商好通信过程中所使用到的对称加密算法、非对称加密算法和哈希函数;
采用对称加密算法(密钥称之为会话密钥)对传输信息进行加密得到密文,确保传输信息的保密性;
使用终端B的公钥对会话密钥进行加密,确保传输信息的保密性以及信息接收方的不可否认性;
采用哈希函数(生成文件摘要)确保传输信息的完整性,并使用自己的私钥对文件摘要进行签名(得到数字签名),确保信息发送方的不可否认性;
将密文、加密后的会话密钥和数字签名打包封装(放到一起)后,通过网络传输给终端B。
终端B操作:
与终端A预先已协商好通信过程中所使用到的对称加密算法、非对称加密算法和哈希函数;
使用自己的私钥对终端A加密的会话密钥进行解密,得到准会话密钥;
使用准会话密钥对得到的密文进行解密,得到准明文;
使用终端A的公钥对得到的数字签名进行签名验证,得到准明文摘要;
使用哈希函数计算得到准明文摘要;
将计算得到的摘要与准明文摘要进行比较,若相同则表明文件安全传输成功。
要求:
实验同组主机根据实验流程自行设计实验操作步骤,最终实现文件安全传输。
二.实验操作步骤设计
请详细描述你所设计的实验步骤。
终端A操作
(1)与终端B预先协商好通信过程中所使用到的对称加密算法、非对称加密算法和哈希函数;对称加密算法:
DES
非对称加密:
RSA
哈希函数:
SHA1
(2)采用对称加密算法(密钥称之为会话密钥)对传输信息进行加密得到密文,确保传输信息的保密性;
(3)使用终端B的公钥对会话密钥进行加密,确保传输信息的保密性以及信息接收方的不可否认性;
(4)采用哈希函数(生成文件摘要)确保传输信息的完整性,并使用自己的私钥对文件摘要进行签名(得到数字签名),确保信息发送方的不可否认性;
(5)将密文、加密后的会话密钥和数字签名打包封装(放到一起)后,通过网络传输给终端B。
密文:
FC5D0043B5C83431
会话密钥:
171
数字签名:
(171,107)
终端B操作:
(1)与终端A预先已协商好通信过程中所使用到的对称加密算法、非对称加密算法和哈希函数;
对称加密算法:
DES
非对称加密:
RSA
哈希函数:
SHA1
(2)使用自己的私钥对终端A加密的会话密钥进行解密,得到准会话密钥
(3)使用准会话密钥对得到的密文进行解密,得到准明文;
(4)使用终端A的公钥对得到的数字签名进行签名验证,得到准明文摘要;
使用哈希函数计算得到准明文摘要;
(5)将计算得到的摘要与准明文摘要进行比较,若相同则表明文件安全传输成功。
4实验感想:
通过本次实验,对密码学又有了一定的了解,希望在以后的生活中能灵活地应用这些知识解决实际的问题。