首页 理论教育 使用PGP软件实现文件的数字签名

使用PGP软件实现文件的数字签名

时间:2023-05-30 理论教育 版权反馈
【摘要】:请使用PGP软件帮助小王完成这一任务。使用PGP软件实现文件的数字签名的过程分为生成密钥对、导入导出公钥、对文件进行加解密、对文件进行数字签名和验证4个步骤。1)盲签名的含义标准数字签名方案的最大缺点是签名者无法对自己的身份进行隐藏。数字签名采用公钥算法实现,数字签名与通常的数据加密算法的作用是不同的,它们的实现过程与使用的密钥不同。

使用PGP软件实现文件的数字签名

【任务描述】

雅鹿公司电商专员的小王需要对磁盘文件进行数字签名。请使用PGP软件帮助小王完成这一任务。

【任务分析】

使用PGP软件实现文件的数字签名的过程分为生成密钥对、导入导出公钥、对文件进行加解密、对文件进行数字签名和验证4个步骤。

【知识准备】

1.数字签名的概念及特点

1)数字签名的概念

数字签名是包含了字母数字的字符串,通过一个单向函数对要传送的信息进行处理得到。数字签名可认证信息来源,并核实信息在传送过程中是否发生变化,即检测信息是否被篡改。

2)数字签名的特点

数字签名具有法律效力,经国家数字认证中心认证的电子签名的法律效力等同于书面文件签名。数字签名与书面文件签名有相同之处,数字签名能确认以下三点:

(1)能确认信息是由签名者发送的;

(2)能确认自签发后到收到为止这一时间段内,信息是否曾被修改;

(3)能确认使用数字签名的电子信息的真实性。

3)数字签名和手写签名的区别

手写签名是附加在文本之后的,与文本信息是分离的。手写签名反映个人特征,是不变的;数字签名与文本信息是不可分割的,数字签名随文本的变化而变化。

2.数字签名的功能

数字签名用于解决双方之间对信息真实性的争议。其可以实现以下功能:

(1)身份认证:接收方通过发送方的电子签名能够确认发送方的确切身份,但无法伪造。

(2)保密性:发送方和接收方的通信内容高度保密,第三方无从知晓。

(3)完整性:通信的内容无法被篡改。

(4)不可抵赖性:发送方一旦将电子签名的信息发出,发送方就不能再否认。

3.使用数字签名

1)数字摘要

在数字签名前对发送的消息先进行数字摘要。数字摘要是将任意长度的消息变成固定长度的短消息,它类似于一个自变量是消息的函数,也就是哈希函数。数字摘要就是采用单向哈希函数将需要加密的明文“摘要”成一串固定长度(128位)的密文,这一串密文又称为数字指纹,它有固定的长度,而且不同的明文“摘要”成密文,其结果总是不同的,但同样的明文其摘要必定一致。

2)数字签名的使用过程

(1)发送方首先使用哈希函数从原文得到数字摘要,然后采用公钥体系中发送方的私钥对数字摘要进行签名,并把签名后的数字摘要附加在要发送的原文后面。

(2)发送方选择一个私钥对文件进行加密,并把加密后的文件通过网络传输到接收方。

(3)发送方用接收方的公钥对私钥进行加密,并通过网络把加密后的私钥传输到接收方。

(4)接收方使用自己的私钥对密钥信息进行解密,得到密钥的明文。

(5)接收方用密钥对文件进行解密,得到通过加密的数字摘要。

(6)接收方用发送方的公钥对数字签名进行解密,得到数字摘要的明文。

(7)接收方用得到的明文和哈希函数重新计算数字摘要,并与解密后的数字摘要进行对比。如果两个数字签名是相同的,说明文件在传输过程中没有被破坏。

数字签名的使用过程如图4-9所示。

图4-9 数字签名的使用过程

4.特殊数字签名

近些年来随着对数字签名的不断深入研究,产生了许多特殊的数字签名,例如盲签名、群签名、代理签名、多重签名、前向安全签名、团体签名、不可争辩签名、数字时间戳等。下面介绍盲签名的含义和基本原理。

1)盲签名的含义

标准数字签名方案的最大缺点是签名者无法对自己的身份进行隐藏。在电子商务环境下,为了保护签名者(或用户)的隐私,需要为他们提供隐私性保护。

一般在数字签名中,总是要先知道文件内容后才签订,但有时需要某人对一个文件签名,但又不让其知道文件内容,称为盲签名。盲签名是由Chaum在1983年最先提出的,在现实生活中的选举投票和数字货币协议中会使用到。

2)盲签名的基本原理

盲签名使用RSA算法实现。设定签名者B的公钥参数为e,私钥参数为d,模为n。如果A让B进行盲签名,签订消息M,步骤如下:

(1)A盲变换:选用盲因子k(1<k<M),计算t=Mke mod n,将t传送给B。

(2)B签名:B对t进行签名,计算S(t)=td=(Mke)d mod n,将签名S(t)传送给A。

(3)A计算后取得签名:S=td/k mod n=Md mod n。

3)盲签名的过程。

盲签名的过程如图4-10所示。

图4-10 盲签名的过程

(1)A取一文件并以一随机值乘之,称此随机值为盲因子;

(2)A将此盲文件发送给B;

(3)B对盲文件签名;

(4)A以盲因子除之,得到B对原文件的签名。

将盲变换看作信封,盲文件是对文件加个信封,而去掉盲因子的过程是打开信封的过程。文件在信封中时无人可读,而在盲文件上签名相当于在复写纸信封上签名,从而得到了对盲文件(信封内容)的签名。

5.数字签名和数据加密的区别

1)数据加密和数字签名的区别

数字签名的目的是证实信息确实是由某个用户发送,对网络中是否有人看到该信息并不关心。数字签名采用公钥算法实现,数字签名与通常的数据加密算法的作用是不同的,它们的实现过程与使用的密钥不同。

数字签名使用的是发送方的密钥对,发送方用自己的私钥进行加密,接收方用发送方的公钥进行解密。数字签名是一个一对多关系:任何拥有发送方公钥的人都可验证数字签名的正确性。

数字签名和数据加密的区别如表4-3所示。

表4-3 数字签名和数据加密的区别

(www.xing528.com)

2)数据加密和数字签名的结合使用

采用数字签名和数据加密相结合的方法,可以很好地解决信息传输过程中的完整性和防抵赖性问题。具体使用方法如图4-11所示。

图4-11 数字签名和数据加密相结合的方法

【任务实施】

1.使用PGP软件生成密钥对

(1)PGP软件在计算机上安装好后,选择“开始”→“程序”→“PGP”→“PGP Keys”选项。

(2)在弹出的窗口菜单栏中,选择“Keys”→“New Key”选项。

(3)在弹出的“PGP Key Generation Wizard”(PGP密钥生成向导)窗口中,单击“下一步”按钮,进入“Name and Email Assignment”(用户名和电子邮件分配)界面,在“Full name”文本框中输入用户名,在“Email address”文本框中输入用户所对应的电子邮件地址,完成后单击“下一步”按钮。

(4)在“Create Passphrase”(创建密钥)界面,在“Enter Passphrase”文本框中输入密码,在“Re-enter Rassphrase”(确认)文本框中再输入一次,密码长度必须大于8位。完成后单击“下一步”按钮,如图4-12所示。进入“Key Generation Progress”(密钥生成进程)界面,等待主密钥(Key)和次密钥(Subkey)生成完毕(出现“Done”提示),单击“下一步”按钮,进入“Completing the PGP Key Generation Wizard”(完成该PGP密钥生成向导)界面,再单击“完成”按钮,密钥对就创建完毕。

图4-12 创建密钥

2.导出并分发公钥

(1)在“PGP Keys”界面可以看到所创建的密钥对(包含一个公钥和一个私钥)。在这里可看到密钥的基本信息,例如Validity(有效性)、Trust(信任度)、Size(大小)、Description(描述)等。

(2)从“密钥对”内导出包含的公钥。单击刚才创建的密钥对,单击鼠标右键,选择“Export…”选项,在弹出的保存对话框中,选择存放的目录,单击“保存”按钮,即可导出公钥,扩展名为“.asc”,如图4-13所示。

(3)使用U盘、磁盘、电子邮件或文件共享等方式,将导出的公钥文件(.asc)发给其他人。

3.导入并设置其他人的公钥

双击对方发来的扩展名为“.asc”的公钥,弹出“Select key(s)”对话框,在此对话框中能看到该公钥的基本属性,如有效性、信任度等,便于了解是否应该导入此公钥。选好后,单击“Import”按钮,即可导入PGP软件,如图4-14所示。

图4-13 导出公钥

图4-14 导入其他人的公钥

(2)打开PGP Keys,就能看到刚才导入的公钥,如图4-15所示。

图4-15 查看导入的公钥

(3)查看密钥属性,完成签名操作。选中导入的公钥,单击鼠标右键,选择“Key Properties”(密钥属性)选项,能查看该公钥的全部信息,例如是否是有效的公钥、是否可信任等。如果直接拉动“Untrusted”(不信任的)处的滑块到“Trusted”(信任的)处,将会出现错误信息。正确的做法是关闭此对话框,然后在该公钥上单击鼠标右键,选择“Sign”(签名)选项,在弹出的“PGP Sign Key”(PGP密钥签名)对话框中,单击“OK”按钮,会弹出要求为该公钥输入Passphrase的对话框,这时就得输入创建密钥对时的那个密码来调用自己的私钥,然后继续单击“OK”按钮,即完成签名操作,查看“PGP Keys”窗口里该公钥的属性,若“Validity”栏显示为绿色,则表示该密钥有效,如图4-16所示。

图4-16 PGP密钥签名

用鼠标右键单击该公钥,选择“Key Properties”选项,将“Untrusted”处的滑块拉到“Trusted”处,再单击“关闭”按钮即可。这时再看“PGP Keys”窗口里的公钥,“Trusted”处就不再是灰色了,说明这个公钥被PGP加密系统正式接受,可以投入使用了,如图4-17所示。

图4-17 密钥属性

4.使用公钥加密文件

(1)打开“PGP Zip”界面的“New PGP Zip”界面,将要加密的文件拉入界面中,单击“下一步”按钮,选择“Recipient keys”选项,如图4-18所示。

图4-18 选择“Recipient keys”选项

(2)添加用户名或者E-mail地址,如图4-19所示。

图4-19 添加用户名或者E-mail地址

(3)使用U盘、磁盘、电子邮件或文件共享等方式,将所生成的“.pgp”文件发给同组人员。注:刚才使用哪个公钥加密,就只能发给该公钥所有人,别人无法解密。只有该公钥所有人的私钥才能解密。

5.解密文件

双击对方发来的扩展名为“.pgp”的文件,如图4-20所示。

图4-20 打开“.pgp”文件

单击鼠标右键解压,选择一个路径保存即可。双击解密后的文件,可以正常看到文件的内容。

6.数字签名

(1)在需要加密的文件上单击鼠标右键,选择“PGP”→“Sign”(加密)选项。

(2)在出现的对话框中的“Enter passphrase for above key”文本框中输入创建密钥对时的那个密码,单击“OK”按钮。

(3)在弹出的“Enter filename for encrypted file”对话中,单击“保存”按钮。经过PGP软件的短暂处理,会在想要签名的那个文件的同一目录下生成一个格式为“签名的文件名.sig”的文件。这个“.sig”文件就是数字签名。如果用“记事本”程序打开该文件,看到的是一堆乱码(签名的结果)。

(4)使用U盘、磁盘、电子邮件或文件共享等方式,将所生成的“.sig”文件连同原文件一起发给对方。

7.验证签名

双击对方发来的扩展名为“.sig”的文件,在弹出的“PGPlog”窗口中可以看到验证记录的“Validity”栏为绿色,表明验证成功。

【动手做一做】

Office文档的数字签名

数字证书是可信第三方颁发的身份验证程序。这与打印身份文档的使用非常类似。数字签名基于数字证书,在许多情况下,用户需要对Excel、PowerPoint或Word文档进行数字签名,对数字信息创建者的身份进行验证,签名用于确认文档来自签名人且未经更改。

发送经过数字签名的宏或文档时,数字证书也会随之一起发送。

(1)在文档或工作表中,将指针置于要创建签名行的位置。在“插入”选项卡的“文本”分组中,单击“签名行”列表,然后单击“Microsoft Office签名行”按钮。

(2)在“签名设置”对话框中,输入将显示在签名行下面的信息,如图4-21所示。

图4-21 “签名设置”对话框

(3)单击“确定”按钮。

(4)在对文件进行数字签名后,将出现“签名”按钮,并且文件会变为只读模式以防止修改。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈