10.4.3  密码技术应用

10.4.3 密码技术应用

1.数字签名

数字签名是非对称密钥加密与单项散列函数技术的典型应用。数字签名是通过一个单向函数对要传送的报文进行处理得到的,用于认证报文来源并核实报文是否发生变化的一个字母数字串。

数字签名可以具有与手写签字或印章同样的法律效用。其应用过程是:数据发送方使用自己的私钥对数据或校验值进行加密,完成对数据的合法签名;数据接收方则利用对方的公钥来解读收到的数字签名,并将解读结果用于对数据完整性的校验,以确认签名的合法性。

散列函数是数字签名过程中使用的主要技术之一。散列就是把任意长度的输入通过单向散列算法变换成固定长度的输出,该输出就是散列值。简单地说,散列函数就是将任意长度的消息压缩成固定长度的消息摘要的函数。一个安全的散列函数必须具有以下属性:

1)能够应用到大小不一的数据上。

2)能够生成大小固定的输出。

3)对于任意给定的数据,散列值的计算相对简单。

4)对于任意给定的散列值,要推算出原始数据,在计算上是不可能的。

5)对于任意给定的原始数据,不可能存在两个不同的哈希函数能够得到相同的散列值。

6)对于任意两个不同的原始数据,其散列值也不可能相同。

类似于手写签字,数字签名应满足以下要求:

1)接收方能够确认或证实发送方的签字,但不能伪造。

2)发送方发出签字的消息给接收方后就不能否认所签发的消息。

3)接收方对接收到的签字消息不能否认。

4)第三者可以确认收发双方之间的消息传送,但不能伪造这一过程[71]。

数字签名按算法不同可分为以下3类:

1)使用对称密钥算法的数字签名 由于这种方法是逐位进行签名的,所以只要有一位被改动过,接收方就得不到征求的数字签名,因此其安全性较好。缺点是签名太长,签名密钥及相应的验证信息不能重复使用,否则极不安全。

2)使用非对称密钥算法的数字签名 这种算法使用两个密钥,即公开密钥和私有密钥,分别用于数据的加密和解密,即:如果用公钥进行加密;则只有用对应的私钥才能解密;如果用私钥进行加密,则只有对应的公钥能够解密。使用公钥算法进行数字签名的加密算法有RSA、DSA、Diffie-Hellman等。

其签名和验证过程为:发送方先用公开的单项函数对报文进行一次变换,得到数字签名,然后利用私钥对数字签名进行加密,附在报文之后一同发出。接收方用发送方的公钥对数字签名进行解密交换,得到一个数字签名的明文。发送方的公钥可以由一个可信赖的第三方机构,即认证中心(Certificate Authority,简称CA)发布。接收方将得到的明文通过单向函数计算,同样得到一个数字签名,再将两个数字签名进行对比。如果相同,则证明签名有效,否则无效。

3)使用报文摘要算法的数字签名 报文摘要是最主要的数字签名方法。该方法将数字签名与要发送的信息绑定,更适合于电子商务活动。使用报文摘要算法的数字签名的通用加密标算法有SHA-1和MD5等。其中MD5是目前应用最广泛的报文摘要算法,提供了一种单向的散列函数,是一种校验工具。它将一个任意长的字串作为输入,产生一个128位的报文摘要,附在报文后面,以防报文被篡改[72]。

2.公钥基础设施

公钥基础设施(Public Key Infrastructure,简称PKI),是一种遵循既定标准的密钥管理平台。它能够为所有网络应用提供加密和数字签名等密码服务及所必须的密钥和证书管理体系。简言之,PKI就是利用公钥理论和技术建立的提供安全服务的基础设施。PKI技术是信息安全技术的核心,也是电子商务的关键技术和基础技术。

PKI的基础技术包括加密、数字签名、数据完整性机制、数字信封、双重数字签名等。完成的PKI系统必须具有权威认证机构(CA)、数字证书库、密钥备份及恢复系统、证书作废系统、应用接口(API)等基本构成部分,构建PKI也将围绕这五大系统来着手。

(1)认证机构(CA) 即数字证书的申请和签发机关,CA必须具备权威性的特征。

(2)数字证书库 用于存储已签发的数字证书及公钥,用户可由此获得所需的其他用户的证书及公钥。数字证书是公开密钥体系的一种密钥管理媒介,它是一种权威性的电子文档,形同网络计算环境中的一种身份证,用于证明某一主体(如人、服务器等)的身份及其公开密钥的合法性,又称为数字ID。数字证书由一对密钥及用户信息等数据共同组成,并写入一定的存储介质内,确保用户信息不被非法读取及篡改。

(3)密钥备份及恢复系统 如果用户丢失了用于解密数据的密钥,则数据无法被解密,这将造成合法数据丢失。为避免这种情况,PKI提供备份与恢复密钥的机制。但需注意,密钥的备份与恢复必须由可行的机构来完成,且密钥的备份与恢复只能针对解密密钥,签名私钥为确保其唯一性而不能做备份。

(4)证书作废系统 证书作废系统是PKI的一个必备的组件。与日常生活中的各种身份证件一样,证书在有效期以内也可能需要作废,原因可能是密钥介质丢失或用户身份变更等。为实现这一点,PKI必须提供作废证书的一系列机制。

(5)应用接口(API) PKI的价值在于使用户能够方便地使用加密、数字签名等安全服务,因此一个完整的PKI必须提供良好的应用接口系统,使得各种各样的应用能够以安全、一致、可信的方式与PKI交互,确保安全网络环境的完整性和易用性。

通常来说,CA是证书的签发机构,是PKI的核心。目前,我国的CA安全认证机构分为非区域性和区域性两类:非区域性CA主要有中国人民银行联合12家银行建立的金融CFCA安全认证中心、中国电信认证中心CTCA、中国海关认证中心SCCA、商务部的国富安CA等;区域性CA主要有广东CA和上海CA等地方性的认证机构。

目前,PKI已广泛应用于保障电子商务和电子政务的安全,且从长远看,PKI将逐渐集成到更多的操作系统和应用中去,并实现对用户透明。而利用PKI作为电子商务的安全基础平台、使用PKI发布的数字证书实现在线交易所必须的认证和加密功能,必将是实现安全电子商务的主要发展方向。

3.其他密码技术应用

(1)数字摘要 数字摘要技术就是单项散列函数技术,也称作数字指纹,利用单向散列函数把任意长度的明文输入映射为固定长度的密文输出,这个固定长度的密文输出就叫作消息摘要。相对于数字签名,数字摘要更适合对较长的消息进行加密处理,以提高工作效率。数字摘要生成后,一般以加密的方式传递给接收方。接收方对所收到的消息进行散列计算,将新生成的数字摘要与收到的数字摘要进行对比,以确定消息是否被改变[73]

(2)数字时间戳 数字时间戳可以算作数字签名应用的一种变种,在交易文件的书面合同中,文件签署的日期和签名一样都是十分重要的。在电子交易中,数字时间戳对电子文件发表的日期和实践信息提供安全保护。它解决了数字签名有效性的问题和数据报文容易被篡改伪造、产生时间不确定的问题,为电子文件发表时间提供了安全保护和证明。

(3)数字水印 数字水印技术是将一些标识信息直接嵌入数字载体当中(包括多媒体、文档、软件等)或是间接表示(修改特定区域的结构),且不影响原载体的使用价值,也不容易被探知和再次修改,但可以被生产方识别和辨认。通过这些隐藏在载体中的信息,可以达到确认内容创建者、购买者,传送隐秘信息或判断载体是否被篡改等目的。