第3章
认证与数字签名
3.1 使用Gpg4win进行数字签名
3.1.1 实验内容
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.1.2 Gpg4win简介
Gpg4win(GNU Privacy Guard for Windows)是一个用于加密文件和电子邮件的开源加密软件,支持用户对数据进行加密和签名。
PGP(Pretty Good Privacy,优良隐私保护)是由美国人菲利普·齐默尔曼(Philip R.Zimmermann)于1991年开发出来的。1997年7月,PGP Inc.与齐默尔曼同意由IETF制定一项公开的互联网安全电子邮件标准,称作OpenPGP,任何支持这一标准的软件也被允许称作OpenPGP,许多电子邮件系统提供了兼容OpenPGP的安全性。由于PGP属于商业软件(早期免费,从8.1版本开始收费),于是自由软件基金会(Open Software Foundation, OSF)开发了一个符合OpenPGP标准的软件,称为“GnuPG”(简称为“GPG”),并有多个图形用户界面版本的软件实现,Gpg4win是其中的一种基于Windows的实现,包含多个功能组件,如GnuPG(后端运行的实现加密功能的组件)、Kleopatra(OpenPGP和X.509证书管理、加密对话框)、GpgOL(支持Outlook组件),其官网介绍如图3-1所示。
图3-1 Gpg4win官网介绍
3.1.3 实验示例
1. Gpg4win安装
从官方网站(http://www.gpg4win.org/)下载软件(或使用教师提供的安装软件),之后运行安装程序,保持默认设置即可。中文版和英文版均可(下面的示例中分别给出了部分中文版和英文版界面截图)。
2. 生成RSA公钥和私钥对
打开Kleopatra,执行菜单命令File→New Key Pair(如图3-2所示),弹出如图3-3所示的对话框。
图3-2 执行菜单命令
图3-3 密钥对产生对话框
选择图3-3所示的对话框中的第一个选项Create a personal OpenPGP key pair(生成个人OpenPGP密钥对)即可,弹出“密钥创建向导”(英文版为“Key Pair Creation Wizard”)对话框,如图3-4所示。之后软件会提示输入用户密码(Passphrase),如图3-5所示。注意,这并不是会话密钥(Session Key)、公钥(Public Key)、私钥(Private Key),这只是方便用户记忆的密码,为了保护用户能安全地从私钥环中提取自己的私钥。
图3-4 “密钥创建向导”对话框
图3-5 输入用户密码
输入用户密码后,单击OK按钮,弹出如图3-6所示的对话框。注意,生成密钥对需要一点时间。
图3-6 “生成密钥对”对话框
密钥对生成好之后,有3个选项,“生成您的密钥对的副本”(备份自己的密钥),“通过电子邮件发送公钥”(通过Email把密钥发送给自己的联系人),“将公钥上传到目录服务”(把自己的公钥上传到目录服务器,方便别人查询下载),如图3-7所示。
图3-7 密钥对生成完成
生成的密钥对列表会显示在界面中,如图3-8所示。
图3-8 生成的密钥对列表
可以单击图3-8中的“签名/加密”(Sign/Encrypt)按钮对文件进行加密,在弹出的对话框(如图3-9所示)中,可以选择一个文件进行签名和加密,例如test.txt,可以事先编辑一下文本(如图3-10所示)。注意,签名要用自己的私钥进行加密,加密会使用到对方(收件人)的公钥,两个不一样。
图3-9 用产生的私钥对文件进行加密和签名
图3-10 待加密、签名的文本
加密、签名完成后,在指定文件夹中多出一个新文件,如图3-11所示。
图3-11 加密后的文件
如果用文本编辑器打开,可以发现都是密文,如图3-12所示。
图3-12 都是密文
选择图3-2所示的下拉菜单中的Decrypt/Verify命令可实现解密和签名验证,结果如图3-13显示。签名显示该文件是用户champway@163.com签名的。
图3-13 解密和签名验证
打开新生成的文件可以看到,里面的内容确实就是之前所编辑的内容: