现在的位置: 首页 > 综合 > 正文

加密(3)——数字签名

2012年01月27日 ⁄ 综合 ⁄ 共 3061字 ⁄ 字号 评论关闭

电子签名

在传统的商务活动中,为了保证交易的安全性和真实性,一份书面合同要由当事人或负责人签字,盖章,以便让交易双方识别是谁签的合同,保证签字或盖章的人认可合同的内容,在法律上才能承认这份合同的有效性。在电子商务环境中,合同或文件是以电子文件的形式表现和传递。在电子文件上,传统的手工签名和盖章不易进行,所以要依靠一些其它手段来代替。这种在电子文件中识别双方交易人的真实身份,保证交易安全性和真实性以及不可抵赖性,能起到和手工签名或盖章等效作用的签名的电子手段叫做电子签名。而数字签名就是现在普遍使用的一种较成熟的电子签名技术。

数字签名

所说的数字签名就是通过一些加密算法生成一系列符号及代码组成电子密码进行签名,来代替手工签名或盖章。数字签名在ISO7498-2标准中定义为:附加在数据单元上的一些数据,或是对数据单元所作的密码变换,这种数据和变换允许数据单元的接收者用以确认数据单元来源和数据单元的完整性,并保护数据,防止被人(例如接收者)进行伪造

 

原理:每个人都有一对钥匙(也就是数字身份),其中一个本人持有(私钥),另一个做为公开使用(公钥)。签名时,用私钥,验证时用公钥。

数字签名主要的功能是:保证信息传输的完整性、发送者的身份认证、防止交易中的抵赖发生。

数字签名算法由公钥加密技术实现。公钥加密又叫非对称加密,它的过程是:

假设两个用户AB进行通信,公钥为c,私钥为d,明文为x.

A用公钥对明文进行加密形成密文c(x),然后传输密文;

B收到密文,用私钥对密文进行解密d(c(x)),得到要通信的明文

而数字签名中的公钥的形式就是电子证书。(CA对个人信息及公钥进行的信息进行签名,签名用CA的私钥进行)

电子证书

电子证书又叫数字证书,是一种用于计算机的身份识别机制。它包括一个或一组电脑档案,里边有拥有人的身份资料和一把公钥。凭借电子证书,拥有人可以向身份验证机构进行身份验证。

证书一般由数字证书验证中心(证书颁发机构)制作颁发。一般情况下数字证书的申请和认证维护都需要比较昂贵的费用,也有免费的颁发机构。例如:http://www.cacert.org/。也可以自己制作证书。它的

它的颁发过程一般为:

用户生成密钥对,然后将公钥和个人信息传递到认证中心(CA)。认证中心核实用户身份后,通过一些步骤生成一个数字证书,该证书包含用户的个人信息,公钥,和一些证书的签名信息例如:有效时限,然后把证书发组用户。用户就可以使用这个数字证书进行电子商务活动了。

证书一般包括:

证书的版本信息;证书的序列号;证书所使用的签名算法;证书的发行机构名称及其私钥的签名;证书的有效期;证书使用者的名称及其公钥的信息。

 

这里详细说一下数字签名:

——密钥对进行加密解密

宋江有2把钥匙(密钥对),这里的两把钥匙都叫密钥。一把公钥,一把私钥。他有3个手下:

吴用,武松,李逵,这三个人都可以得到公钥。但,私钥由宋江自己保存。用密钥(公钥)用来加密信息,加密后的信息只有用私钥才能解密信息。

 

现在,武松通过公钥(宋江的)来加密信息,然后加密后的信息由宋江的私钥进行解密,然后宋江能看到信息。如果其他人得到了武松通过公钥加密过的信息,是不能解密的(即使是武松也不能对自己加过密的数据进行解密了),所以看不懂要传达的信息。

 

武松:及时雨老大,今天晚上9点,去大街喝酒,好酒。(原文)

通过公钥加密后,可能是:

892039jspdfs0dfsdfksdpf30-90-sdfksdkf0930-9sdf

 

然后,宋江接到信息:

892039jspdfs0dfsdfksdpf30-90-sdfksdkf0930-9sdf

通过自己保留的私钥进行解密可以得到:及时雨老大,今天晚上9点,去大街喝酒,好酒。

 

其他人即使有公钥在手也不能理解加密后的信息,因为无法解密。

说明:这部分内容的主题是:密文=加密(明文,公钥),明文=解密(密文,私钥)

 

——密钥用于数字签名

宋江可以利用私钥来对数据或文件进行数字签名。数字签名就像是宋江对数据或文件贴的邮票一样,它对宋江来说是唯一的,对这个文件贴的邮票是不会和其它文件贴的邮票是一样的,且是不能伪造的(从现实中来,这点是绝对的,对电子商务来说,也不是绝对的)。此外,签名确保任何对已经被签名的数据的修改都会被察觉,来保证签名数据的完整性。

 

为了签名一个文件,宋江通过哈希算法为数据生成一段信息摘要。信息摘要不能再还原为原文。然后通过私钥加密信息摘要,所得的结果就是数字签名。过程是这样的:

 

例如:

 

这是一段数据,里边有这个月要攻打祝家庄的提议:

1 数据DataXXXXXXXXXXXXXXX

2 通过哈希变换为信息摘要:哈希(XXXXXXXXXXXXXXX——AAAAAAA

3 私钥对摘要加密:加密(AAAAAA,私钥)——BBBBBB

4 BBBBBB就是数字签名

 

说明:这部分内容的主题是:数字签名=加密(信息摘要,私钥)

 

——带有数字签名的文件

最后,宋江把这个数字签名添加到文件中(文件中原来有数据,就是数据DataXXXXX……

现在文件的情况是:

 

XXXXXXXXXXXXXX(数据)

BBBBBB(数字签名)

 

把文件给吴用,吴用收到文件后通过公钥(宋江密钥对中的公钥)来验证签名。如果通过验证,那么证明这份文件是宋江签名的,因为只有宋江有私钥。然后把文件中的数据通过哈希变换为信息摘要,如果这个信息摘要和解密数字签名后的相同,说明数据的内容没有被篡改过。

说明:这部分内容的主题是:验证签名(数字签名,公钥),信息摘要=hash(数据)

 

 

现在假设一种情况:李逵对宋江不满,因为宋江不让他下山去做事,因此他伪造一份文件给吴用,让吴用允许他下山。但没有宋江的允许,是不能下山的。所以他伪造一份貌似是宋江签名的文件给吴用。于是他建立了自己的密钥对,一把公钥,一把私钥,然后自己写文件内容是让自己下山,然后通过自己的私钥进行加密,最后把数字签名过的文件和公钥一起给吴用。过程是这样的:

 

1 数据Data:可以让李逵下山

2 通过哈希方法变换为信息摘要:信息摘要=哈希(数据)

3 通过自己的私钥对摘要加密:数字签名=加密(信息摘要,李逵的私钥)

4文件的内容:文件=数据Data+数字签名+李逵的公钥

5 文件给吴用

 

吴用得到数据后,会误认为数据真是宋江来的。

 

——认证中心

梁山有一个机构:安全证书权力(管理)中心,其中管理者是武松。这个管理中心为每位人员进行了身份登记。例如:宋江的个人信息和他自己的公钥来生成宋江的可信任数字证书。现在可以根据宋江的可信任数字证书来确定,一把公钥是不是属于宋江他本人的。这点和身份证号有相似的道理,是不是本人,身份证号就是一个凭证,只有他本人才是这个号,别人不是。对于每个人来说,其实如果没有在证书管理中心进行数字证书登记,那么别人是不可能认同他的签名的。

现在,宋江在证书管理中心申请了一份个人证书(数字证书),证书包括:

·宋江的一些个人信息

·宋江的公钥

·证书的相关签名信息,例如,证书的有效时间

·CA的签名

 

说明:这部分内容的主题是:证书=电子签名(公钥,个人信息,……)

 

然后文件的内容包括:

·数据

·数字签名

·宋江公钥

 

吴用在收到文件后,通过认证中心登记的宋江的信息,通过CA的公钥来验证这份证书的真伪:证书的数字签名。

验证签名(数字签名,CA公钥)

如果通过这个公钥解密数字签名成功,那么可以证明证书的真实性,然后来对比公钥来确定这个公钥属于宋江,同理,李逵私钥加密的数字签名在这里就不能通过检查。

 

抱歉!评论已关闭.