3.6 实验
3.6.1 使用GPG4win进行数字签名
1.实验目的
通过实验,让学生掌握使用RSA算法实施数字签名的过程,加深对数字签名原理的理解。
2.实验内容与要求
(1)在Windows 环境下安装GPG4win,保持默认设置即可。
(2)打开Kleopatra,生成一对RSA公钥和私钥(点击File→New Key Pair)。密钥对生成好之后,有3个选项,1是备份自己的密钥,2是通过Email把密钥发送给自己的联系人,3是把自己的公钥上传到目录服务器,方便别人查询下载。
(3)生成密钥对列表会显示在软件界面中,可以点击Sign/Encrypt 对文件进行签名或加密。在弹出的对话框中,可以选择一个文件进行签名或加密,例如test.txt,可以事先编辑一下文本。注意,签名要用自己的私钥进行加密,加密则使用对方的公钥。签名完成后,生成带签名的文件。
(4)使用签名人的公钥验证签名(点击Decrypt/Verify进行签名验证)。
(5)扩展实验内容:除了签名,还对文件进行加密,查看加密内容后,并进行解密。
(6)将相关输入和结果截图写入实验报告。
3.实验环境
(1)平台:Windows 7以上。
(2)签名文件可由教师提供,也可由学生自己创建(包含学生的姓名和学号等信息)。
(3)GPG4win软件下载地址http://www.gpg4win.org/,或使用教师提供的安装软件。
3.6.2 OpenSSL软件的安装与使用
1.实验目的
通过实验,让学生了解OpenSSL软件功能,掌握用OpenSSL产生密钥、生成散列值、加解密、数字签名等方法,加深对消息认证、数字签名原理的理解。
2.实验内容与要求
(1)安装OpenSSL。
(2)使用OpenSSL产生密钥。
(3)利用OpenSSL提供的命令对指定文件分别生成散列值、加解密、数字签名。
(4)利用OpenSSL提供的命令分别进行完整性检验、解密、验证签名。
3.实验环境
(1)实验室环境:计算机一台,操作系统为Linux。
(2)签名文件可由教师指定(一般包含学生的姓名和学号等信息)。
(3)OpenSSL软件下载地址https://www.openssl.org/source/,或使用教师提供的安装软件。
[1]数据结构中的“散列表(Hash Table)”使用的函数也称为“散列函数”,但这种散列函数与安全领域的散列函数的差别较大,产生的碰撞较多,通常不满足表3-1中所列的大部分安全性需求。为示区别,有些文献将安全领域的散列函数称为“安全的散列函数”或“密码学散列函数”。
[2]这种攻击源于所谓的生日问题。在一个教室中最少应该有多少学生才使得至少有两个学生的生日在同一天(不考虑年份,只考虑出生月、日)的概率不小于1/2?我们假定:不计闰年,一年365天,那么n个人中任何两人生日都不相同的概率为:1–[(365/365)* (364/365)* (363/365)* ......* [(365-n+1)/365]。当n=23时,概率为50.7%;当n=36时,概率高达83.2%,当n达到60左右时,概率几乎达到100%。因此,这个问题的答案为23。当然,这并不意味着当一个班级有23个人时,有人和你同一天生日的可能性会达到50%。具体到某一个人时,其生日已固定,其余22人与他的生日相同的概率为:1 -(364/364)22≈6%。
[3]与身份认证中的“认证”密切相关的一个概念是“授权”。授权是指确定了身份(即经过了“认证”)的用户能够以何种方式访问何种资源的过程,是实现访问控制的一种重要实现方式。注意这两个概念的英文的差别,认证是authentication,授权是authorization。
[4]Kerberos的名字源于古希腊神话故事。Greek Kerberos是希腊神话故事中一种长有3个头的狗,负责守卫地狱之门。Kerberos协议意指提供“认证(Authentication)”、“授权(Authorization)”、“审计(Audit)”等3种功能的Kerberos是由3个部分(客户、服务器、KDC,相当于3个“头”)组成的网络之门的守卫者。