数字签名与认证技术 (2).ppt
网络信息安全 第第4章章 数字签名与认证技术数字签名与认证技术本章主要内容本章主要内容4.1 数字签名数字签名4.2 认证技术认证技术4.3 公钥基础设施公钥基础设施PKI/PMI技术技术4.1 数字签名数字签名4.1.1 传统签名与数字签名传统签名与数字签名4.1.2 数字签名的目的和功能数字签名的目的和功能4.1.3 数字签名应具有的性质和要求数字签名应具有的性质和要求4.1.4 数字签名的分类数字签名的分类4.1.5 数字签名及相关标准数字签名及相关标准4.1.6 群签名群签名4.1.7 代理签名代理签名 4.1.8 多重数字签名多重数字签名4.1.9 电子邮件的数字签名电子邮件的数字签名4.1.1 传统签名与数字签名传统签名与数字签名什么是数字签名?什么是数字签名?数字签名是由信息发送者使用公开密钥技术产生数字签名是由信息发送者使用公开密钥技术产生的无法伪造的一段数字串的无法伪造的一段数字串。数数字字签签名名是是指指用用密密码码算算法法,对对待待发发的的数数据据进进行行加加密密处处理理,生生成成一一段段数数据据摘摘要要信信息息附附在在原原文文上上一一起起发发送送,接接受受方方对对其其进进行行验验证证,判判断断原原文文真真伪伪。这这种种数数字字签签名名适适用用于于对对大大文文件件的的处处理理,对对于于那那些些小小文文件件的的数数据据签签名名,则则不不预预先先做做数数据据摘摘要要,而而直直接接将原文进行加密处理。将原文进行加密处理。传统方式的签名是可以被伪造(冒签)的,签名传统方式的签名是可以被伪造(冒签)的,签名可以被从一个文件移到另一个文件中,签名后的可以被从一个文件移到另一个文件中,签名后的文件可以被更改,签名者甚至声称是在违背自己文件可以被更改,签名者甚至声称是在违背自己意愿的情况下签名的。意愿的情况下签名的。公认签名具有五个基本特征:公认签名具有五个基本特征:第一第一,签名是可信的。因为签名者就是现实中的那签名是可信的。因为签名者就是现实中的那个人,所以文件内容表述了签名者的真实意愿。个人,所以文件内容表述了签名者的真实意愿。第二第二,签名是不可伪造的。大家相信其他人不可能签名是不可伪造的。大家相信其他人不可能仿冒签名者的签名。仿冒签名者的签名。第三第三,签名是不可重用的。其他人不可能将签名移签名是不可重用的。其他人不可能将签名移动到另外的文件上。动到另外的文件上。第四第四,签名后的文件是不可篡改的。人们确认不可签名后的文件是不可篡改的。人们确认不可对已经签名的文件作任何更改。对已经签名的文件作任何更改。第五第五,签名是不可抵赖的。即签名者事后无法声称签名是不可抵赖的。即签名者事后无法声称他没有签过名。他没有签过名。4.1.2 数字签名的目的和功能数字签名的目的和功能1 数字签名的目的数字签名的目的目的是认证、核准、有效和负责目的是认证、核准、有效和负责,防止相互防止相互欺骗和抵赖。欺骗和抵赖。因此因此,数字签名是保证数据可靠性数字签名是保证数据可靠性,实现认实现认证的重要工具证的重要工具,它在信息安全、身份认证、它在信息安全、身份认证、数据完整性、不可否认以及匿名性等方面数据完整性、不可否认以及匿名性等方面有着广泛的应用有着广泛的应用。2 数字签名的功能:数字签名的功能:保证信息传输的完整性、发送者的身份认证、防保证信息传输的完整性、发送者的身份认证、防止交易中的抵赖发生。止交易中的抵赖发生。数字签名技术是将摘要信息用发送者的私钥加密,数字签名技术是将摘要信息用发送者的私钥加密,与原文一起传送给接收者。与原文一起传送给接收者。接收者只有用发送的公钥才能解密被加密的摘要接收者只有用发送的公钥才能解密被加密的摘要信息,然后用信息,然后用HASH函数对收到的原文产生一个函数对收到的原文产生一个摘要信息,与解密的摘要信息对比。摘要信息,与解密的摘要信息对比。如果相同,如果相同,则说明收到的信息是完整的,在传输过程中没有则说明收到的信息是完整的,在传输过程中没有被修改,否则说明信息被修改过,因此数字签名被修改,否则说明信息被修改过,因此数字签名能够验证信息的完整性。能够验证信息的完整性。4.1.3 数字签名应具有的性质和要求数字签名应具有的性质和要求1 数字签名应该具有以下性质:数字签名应该具有以下性质:(1)能够验证数字签名者产生的身份,以及数能够验证数字签名者产生的身份,以及数字签名产生的日期和时间;字签名产生的日期和时间;(2)能用于证实被签消息的内容;能用于证实被签消息的内容;(3)数字签名可由第三方验证,从而能够解决数字签名可由第三方验证,从而能够解决通信双方的争议。通信双方的争议。2 数字签名应满足的需求数字签名应满足的需求(1)数字签名的产生必须使用双方独有的一些数字签名的产生必须使用双方独有的一些信息以防伪造和否认;信息以防伪造和否认;(2)数字签名的产生应较为容易实现;数字签名的产生应较为容易实现;(3)数字签名的识别和验证应较为容易实施;数字签名的识别和验证应较为容易实施;(4)对已知的数字签名构造一新的消息或对已对已知的数字签名构造一新的消息或对已知的消息构造一新的数字签名在计算机上知的消息构造一新的数字签名在计算机上都是不可行的。都是不可行的。4.1.4 数字签名的分类数字签名的分类数字签名可以分为直接数字签名和仲裁数字签名。数字签名可以分为直接数字签名和仲裁数字签名。1直接数字签名直接数字签名直接数字签名是在数字签名者和数字签名接收者之直接数字签名是在数字签名者和数字签名接收者之间进行的。间进行的。数字签名者用自己的私钥对整个消息或消息的散列数字签名者用自己的私钥对整个消息或消息的散列码进行数字签名。码进行数字签名。数字签名接收者用数字签名者的公钥对数字签名进数字签名接收者用数字签名者的公钥对数字签名进行验证行验证,从而确认数字签名和消息的真实性。从而确认数字签名和消息的真实性。另外另外,可以通过对整个消息和数字签名进行加密来可以通过对整个消息和数字签名进行加密来实现消息和数字签名的机密性实现消息和数字签名的机密性.加密的密钥可以是加密的密钥可以是签名接收者的公钥签名接收者的公钥,也可以是双方共有的密钥。也可以是双方共有的密钥。2 仲裁数字签名仲裁数字签名仲裁数字签名是在数字签名者、数字签名接收和仲仲裁数字签名是在数字签名者、数字签名接收和仲裁者之间进行的。裁者之间进行的。仲裁者是数字签名者和数字签名接收者共同信任的。仲裁者是数字签名者和数字签名接收者共同信任的。数字签名者首先对消息进行数字签名数字签名者首先对消息进行数字签名,然后送给仲然后送给仲裁者。裁者。仲裁者首先对数字签名者送来的消息和数字签名进仲裁者首先对数字签名者送来的消息和数字签名进行验证行验证,并对验证过的消息和数字签名附加一个验并对验证过的消息和数字签名附加一个验证日期和一个仲裁说明证日期和一个仲裁说明,然后把验证过的数字签名然后把验证过的数字签名和消息发给数字签名接收者和消息发给数字签名接收者.4.1.5 基于对称与非对称密码系统的数字签名基于对称与非对称密码系统的数字签名1基于对称密码系统的数字签名基于对称密码系统的数字签名在对称密码系统中,要实现数字签名的前在对称密码系统中,要实现数字签名的前提是需要一个存在公众都信赖的、具有权提是需要一个存在公众都信赖的、具有权威的仲裁者威的仲裁者T。现在假设签名者现在假设签名者A想对数字消息想对数字消息M签名,签名,并发送给并发送给B,则在签名协议开始前,仲裁,则在签名协议开始前,仲裁者者T必须与必须与A约定共享密钥约定共享密钥KA,而与,而与B约定约定共享密钥共享密钥KB,并且允许这些密钥多次使用。,并且允许这些密钥多次使用。按如下算法步骤实现数字签名:按如下算法步骤实现数字签名:第一步,让发送方第一步,让发送方A用用KA加密要传送给接收方加密要传送给接收方B的的消息消息M,则得到,则得到M1,然后将,然后将M1传送给仲裁者传送给仲裁者T;第二步,而仲裁者第二步,而仲裁者T用用KA解密解密M1,恢复,恢复M;第三步,仲裁者第三步,仲裁者T将将M以及消息以及消息M来自发送方来自发送方A的的证书(包含证书(包含M1)一起用密钥)一起用密钥KB加密,得到加密,得到M2;第四步,仲裁者第四步,仲裁者T将将M2传送给接收方传送给接收方B;第五步,接收方第五步,接收方B用用KB解密解密M2,恢复消息,恢复消息M和仲和仲裁者裁者T的证书。的证书。2 基于非对称密码系统的数字签名基于非对称密码系统的数字签名从网络通信技术的角度来讲,由于仲裁者从网络通信技术的角度来讲,由于仲裁者T必须对必须对每一条签名的消息进行加密和解密处理,所以仲每一条签名的消息进行加密和解密处理,所以仲裁者裁者T很可能成为通信系统中的瓶颈。很可能成为通信系统中的瓶颈。致命的问题可能是致命的问题可能是:谁可以担当那个公众都信赖的、谁可以担当那个公众都信赖的、具有权威的仲裁者具有权威的仲裁者T?人们认为仲裁者人们认为仲裁者T必须是完美无缺的,它不能犯任必须是完美无缺的,它不能犯任何错误,并且不会将消息泄露给任何人。何错误,并且不会将消息泄露给任何人。假如共享密钥假如共享密钥KA已泄露,将会出现冒充发送方已泄露,将会出现冒充发送方A的伪造签名。的伪造签名。如果密钥数据库被盗,就可能出现一些声称是几如果密钥数据库被盗,就可能出现一些声称是几年前签名的假文件,这必将引起动乱年前签名的假文件,这必将引起动乱.假设仲裁者假设仲裁者T和发送方和发送方A共同否认一个已签名的消共同否认一个已签名的消息,接收方息,接收方B将陷入无法举证的境地;将陷入无法举证的境地;假如仲裁者假如仲裁者T和接收方和接收方B合谋篡改了发送方合谋篡改了发送方A的签的签名消息名消息M,同时发送方,同时发送方A也将陷于无法举证的境地。也将陷于无法举证的境地。因此,在这种类型的方法中,仲裁者因此,在这种类型的方法中,仲裁者T起着至关重起着至关重要的作用,通信各方都应百分百信任仲裁者要的作用,通信各方都应百分百信任仲裁者T。基于非对称密码系统数字签名机制与算法步骤基于非对称密码系统数字签名机制与算法步骤第一步,首先让发送方第一步,首先让发送方A用自己的私钥用自己的私钥dA对对消息消息M加密,得到加密,得到M1,M1即是经过发送方即是经过发送方A签名的消息;签名的消息;第二步,而发送方第二步,而发送方A将将M1发送给接收方发送给接收方B;第三步,接收方第三步,接收方B保存保存M1,并用发送方,并用发送方A的的公钥公钥eA解密解密M1,恢复,恢复M。数字签名协议同样满足前面描述数字签名协议同样满足前面描述5条基本要求条基本要求 一,签名是可信的。接收方一,签名是可信的。接收方B使用发送方使用发送方A的公钥的公钥eA可以由可以由M1恢复恢复M,所以接收方,所以接收方B确信确信M1就是发就是发送方送方A对消息对消息M的签名。的签名。二,签名是不可伪造的。只有发送方二,签名是不可伪造的。只有发送方A知道私钥知道私钥dA。三,签名是不可重用的。对于给定的私钥三,签名是不可重用的。对于给定的私钥dA,M1仅是仅是M的函数。的函数。四,签名后的文件是不可篡改的。如果接收方四,签名后的文件是不可篡改的。如果接收方B企图更改企图更改M1,则不可能用发送方,则不可能用发送方A的公钥的公钥eA恢复恢复M。五,签名是不可抵赖的。接收方五,签名是不可抵赖的。接收方B只要证明只要证明eA的的确是发送方确是发送方A的公钥就能说明一切,而这一点是的公钥就能说明一切,而这一点是很容易做到的。很容易做到的。4.1.6 数字签名及相关标准数字签名及相关标准20世纪世纪1994年年12月,由美国国家标准与技月,由美国国家标准与技术委员会(术委员会(NIST)正式发布了数字签名标)正式发布了数字签名标准准DSS(Digital Signature Standard)即联即联邦信息处理标准邦信息处理标准 FIPS PUB 186。在在EIGamal和和Schnorr数字签名体制的基础数字签名体制的基础上设计的,其安全性基于有限域上离散对上设计的,其安全性基于有限域上离散对数问题求解的困难性。数问题求解的困难性。该标准中提出了数字签名算法该标准中提出了数字签名算法DSA和安全和安全散列算法散列算法SHA,它使用公开密钥,为接收,它使用公开密钥,为接收者提供数据完整性和数据发送者身份的验者提供数据完整性和数据发送者身份的验证,可由第三方用来验证签名和所签数据证,可由第三方用来验证签名和所签数据的完整性。的完整性。数字签名标准数字签名标准DSS主体部分条目主体部分条目下面介绍的内容是以下面介绍的内容是以2000年修订标准为基础:年修订标准为基础:1 首先对数字签名标准首先对数字签名标准DSS作了简单的介绍和说明。作了简单的介绍和说明。2 规定使用数字签名算法(规定使用数字签名算法(DSA).消息散列值使用消息散列值使用SHA-1。3 描述数字签名算法(描述数字签名算法(DSA)使用的参数。)使用的参数。4 数字签名算法(数字签名算法(DSA)的产生。)的产生。5 数字签名算法(数字签名算法(DSA)的验证。)的验证。6 RSA数字签名算法数字签名算法.7 椭圆曲线数字签名算法(椭圆曲线数字签名算法(ECDSA)的介绍。)的介绍。数字签名标准数字签名标准DSS附录部分条目附录部分条目为了介绍完整,下面给出标准为了介绍完整,下面给出标准DSS附录部分的内附录部分的内容条目:容条目:1 证明数字签名算法(证明数字签名算法(DSA)成立。)成立。2 如何产生数字签名算法(如何产生数字签名算法(DSA)需要的素数。)需要的素数。3 如何产生数字签名算法(如何产生数字签名算法(DSA)需要的随机数。)需要的随机数。4 产生数字签名算法(产生数字签名算法(DSA)的其他参数。)的其他参数。5 一个产生数字签名算法(一个产生数字签名算法(DSA)的例子。)的例子。6 推荐使用的椭圆曲线数字签名算法(推荐使用的椭圆曲线数字签名算法(ECDSA)的说明。的说明。下面来讨论数字签名算法下面来讨论数字签名算法DSA。在数字签名算法在数字签名算法DSA中,有中,有3个参数(全局公开密个参数(全局公开密钥分量)对于一组用户是公开的和公用的:钥分量)对于一组用户是公开的和公用的:素数素数p,其中,其中2L-1p2 L,512 L1024,且,且L是是64的倍数;的倍数;素数素数q,其中,其中q是(是(p-1)的因数,)的因数,2159q2160;常数常数g=h(p-1)/qmod p,其中整数,其中整数h满足条件满足条件1h(p-1)且使得且使得g1;每个用户的私有密钥每个用户的私有密钥x是随机或伪随机整数,且是随机或伪随机整数,且xq以及公开密钥以及公开密钥y=gxmod p。4.1.6 群签名群签名群体密码学是群体密码学是Desmedt于于20世纪世纪1987年提年提出来的。出来的。它是研究面向社会团体或者群体中的所有成它是研究面向社会团体或者群体中的所有成员需要的一种密码体制。员需要的一种密码体制。随后,随后,Chaum和和vanHeyst于于20世纪世纪1987年年提出了群签名(提出了群签名(Group Signature)。)。群签名就是一个群体中的任意一个成员可以群签名就是一个群体中的任意一个成员可以以匿名的方式代表整个群体对消息进行签名。以匿名的方式代表整个群体对消息进行签名。也称为团体签名,与其他数字签名一样,群也称为团体签名,与其他数字签名一样,群签名也是可以公开验证的,而且可以用单个签名也是可以公开验证的,而且可以用单个群公钥来验证。群公钥来验证。一个群签名体制由以下几部分组成:一个群签名体制由以下几部分组成:(1)创建:一个用以产生群公钥和私钥的多项式)创建:一个用以产生群公钥和私钥的多项式时间概率算法。时间概率算法。(2)加入:一个用户和群管理人之间交互协议。)加入:一个用户和群管理人之间交互协议。执行该协议可以使用户成为群成员,群管理人得执行该协议可以使用户成为群成员,群管理人得到群成员的秘密成员管理密钥,并产生群成员的到群成员的秘密成员管理密钥,并产生群成员的私钥和群成员证书。私钥和群成员证书。(3)签名:一个概率算法,当输入一个消息和一)签名:一个概率算法,当输入一个消息和一个群成员私钥后,输出签名。个群成员私钥后,输出签名。(4)验证:一个在输入对消息的签名及群公钥的)验证:一个在输入对消息的签名及群公钥的条件下确定签名人身份的算法。条件下确定签名人身份的算法。1 群签名的特点及其安全性要求群签名的特点及其安全性要求群签名特点:群签名特点:一,只有团体内部的成员才能够代表团体一,只有团体内部的成员才能够代表团体签名;签名;二,而收到签名的人可以验证该签名是属二,而收到签名的人可以验证该签名是属于某一团体;于某一团体;三,但是,接收者不知道签名的是该团体三,但是,接收者不知道签名的是该团体中的哪一个成员签名;中的哪一个成员签名;四,在出现争议时,可以由团体的成员或四,在出现争议时,可以由团体的成员或者第三方识别出签名者。者第三方识别出签名者。群签名安全性要求有以下几个方面群签名安全性要求有以下几个方面(1)匿名性:给定一个群签名后,对除了唯一群管理人之匿名性:给定一个群签名后,对除了唯一群管理人之外的任何人来说,确定签名人的身份在计算机上是不可行外的任何人来说,确定签名人的身份在计算机上是不可行的。的。(2)不关联性:在不打开群签名的情况下,确定两个不同)不关联性:在不打开群签名的情况下,确定两个不同的群签名是否为同一个群成员所作在计算机上是困难的。的群签名是否为同一个群成员所作在计算机上是困难的。(3)防伪造性:只有群成员才能产生有效的群签名。)防伪造性:只有群成员才能产生有效的群签名。(4)可跟踪性:群管理人在必要时可以打开一个群签名以)可跟踪性:群管理人在必要时可以打开一个群签名以确定群签名人的身份,而且群签名人不能阻止一个合法群确定群签名人的身份,而且群签名人不能阻止一个合法群签名的打开。签名的打开。(5)防陷害攻击:包括群管理人在内的任何人都不能以其)防陷害攻击:包括群管理人在内的任何人都不能以其他群成员的名义产生合法的群签名。他群成员的名义产生合法的群签名。(6)抗联合攻击:即使一些群成员串通在一起也不能产生)抗联合攻击:即使一些群成员串通在一起也不能产生一个合法的不能被跟踪的群签名。一个合法的不能被跟踪的群签名。2 一个简单的群签名协议一个简单的群签名协议 现在描述一个简单的协议来完成群签名。现在描述一个简单的协议来完成群签名。这个协议使用了一个可以信赖的第三方,并这个协议使用了一个可以信赖的第三方,并且其团体有且其团体有n个成员。个成员。下面给出这个协议的步骤:下面给出这个协议的步骤:第一步,第三方产生第一步,第三方产生nm对密钥即公钥和对密钥即公钥和私钥对;然后给每个成员私钥对;然后给每个成员m对互异的密钥。对互异的密钥。第二步,第三方产生第二步,第三方产生nm个公钥用随机的个公钥用随机的顺序加以公开,作为群体的公钥表;并且顺序加以公开,作为群体的公钥表;并且第三方记住每一个成员对应哪第三方记住每一个成员对应哪m对密钥。对密钥。第三步,当群体中某一个成员签名时,从自己的第三步,当群体中某一个成员签名时,从自己的m个私钥中随机选择一个进行签名。个私钥中随机选择一个进行签名。第四步,而验证群签名时,用其团体的公钥表进第四步,而验证群签名时,用其团体的公钥表进行签名认证即可。行签名认证即可。第五步,当发生争议时,第三方知道密钥对与成第五步,当发生争议时,第三方知道密钥对与成员之间的对应关系,所以可以确定出签名者是团员之间的对应关系,所以可以确定出签名者是团体中哪一个成员。体中哪一个成员。由此可见,上述协议中比较大的缺点是需要一个由此可见,上述协议中比较大的缺点是需要一个第三方。第三方。4.1.7 代理签名代理签名 代理签名(代理签名(Proxy Signature)就是一个)就是一个被称为原始签名人的用户,可以将他的被称为原始签名人的用户,可以将他的数字签名权利委托给另外一个被称为代数字签名权利委托给另外一个被称为代理签名人的用户。理签名人的用户。代理签名也称为委托代理签名。代理签名也称为委托代理签名。签名人可以代表原始签名人对消息进行签名人可以代表原始签名人对消息进行签名。签名。与其他数字签名一样,代理签名是可以与其他数字签名一样,代理签名是可以公开验证的。公开验证的。一个代理签名体制有以下几部分组成:一个代理签名体制有以下几部分组成:(1)初始化。选定代理签名体制的参数、用初始化。选定代理签名体制的参数、用户的密钥等。户的密钥等。(2)签名权的委托。原始签名人将自己的签签名权的委托。原始签名人将自己的签名权委托给代理签名人。名权委托给代理签名人。(3)代理签名的产生。代理签名人代表原始代理签名的产生。代理签名人代表原始签名人产生代理签名。签名人产生代理签名。(4)代理签名的验证。验证人验证代理签名代理签名的验证。验证人验证代理签名的有效性的有效性代理签名一般应该具有的特性代理签名一般应该具有的特性一,不可伪制性,只有原来的签名者和所托付的一,不可伪制性,只有原来的签名者和所托付的代理人可以建立合法代理签名。代理人可以建立合法代理签名。二,不可抵赖性,代理签名者不能事后抵赖他所二,不可抵赖性,代理签名者不能事后抵赖他所建立的已被认可的代理签名。建立的已被认可的代理签名。三,可识别性,原始签名者可以从代理签名结果三,可识别性,原始签名者可以从代理签名结果中识别出代理签名者的身份。中识别出代理签名者的身份。四,可验证性,从代理签名中,验证者能够相信四,可验证性,从代理签名中,验证者能够相信原始的签名者认同了这份签名的消息。原始的签名者认同了这份签名的消息。五,代理签名的差异,代理签名者不可能制造一五,代理签名的差异,代理签名者不可能制造一个合法代理签名,而不被检查出来其是一个代理个合法代理签名,而不被检查出来其是一个代理签名。签名。六,可区分性,代理签名与某人的通常签名是可六,可区分性,代理签名与某人的通常签名是可以区分的。以区分的。代理签名体制的三种代理方式代理签名体制的三种代理方式:(1)委托状代理方式委托状代理方式(2)全代理方式全代理方式 (3)部分代理方式部分代理方式 三种代理方式各有其优点和缺点:三种代理方式各有其优点和缺点:部分代理方式和委任状代理方式要比全代部分代理方式和委任状代理方式要比全代理方式安全,而部分代理方式又比委任状理方式安全,而部分代理方式又比委任状方式灵活、方便。方式灵活、方便。在实际应用中,大部分代理签名都采用部分代理在实际应用中,大部分代理签名都采用部分代理签名方式。签名方式。(1)不可伪造性。除了代理签名人之外,任何其)不可伪造性。除了代理签名人之外,任何其他人都不能生成有效的代理签名。他人都不能生成有效的代理签名。(2)可验证性。任何人都可以验证代理签名的有)可验证性。任何人都可以验证代理签名的有效性,并且根据有效的代理签名确认原始签名人效性,并且根据有效的代理签名确认原始签名人承认被签名的信息。承认被签名的信息。(3)可区分性。任何人都能区别代理签名和普通)可区分性。任何人都能区别代理签名和普通的数字签名,原始签名人的签名和代理签名人的的数字签名,原始签名人的签名和代理签名人的代理签名。代理签名。(4)不可抵赖性。代理签名人不能否认他产生的,)不可抵赖性。代理签名人不能否认他产生的,且被认可的代理签名且被认可的代理签名 4.1.8 多重数字签名多重数字签名多重数字签名是指两个或两个以上的用户对多重数字签名是指两个或两个以上的用户对同一份数字文件同一份数字文件M进行签名。进行签名。自自Boyd与与1983年提出多重数字签名至今,年提出多重数字签名至今,基于不同数学难题的多重数字签名方案应运基于不同数学难题的多重数字签名方案应运而生。实现多重数字签名的协议有很多种,而生。实现多重数字签名的协议有很多种,这里介绍其中两个较简单的协议。这里介绍其中两个较简单的协议。第一个协议基于第一个协议基于RSA算法算法给定给定n=pq,适当选取,适当选取K1、K2和和K3,满足,满足K1K2K3=1 mod(p-1)(q-1),系统分别将,系统分别将K1和和K2分发给分发给A和和B作为他们的密钥,并公布作为他们的密钥,并公布n和和K3作为作为公钥。公钥。这里存在一个问题,即第二位签名者这里存在一个问题,即第二位签名者B在签名时在签名时并不知道所签文件的内容,并不知道所签文件的内容,B当然担心上当。当然担心上当。在只有两个人的时候,在只有两个人的时候,B很容易解决这个问题,很容易解决这个问题,他只要恢复他只要恢复M即可:即可:B首先恢复首先恢复M=M 1K2 K3 mod n,审阅后再对,审阅后再对M1签名,得到签名,得到M2=M1 K2 mod n。第二个协议基于单向散列函数第二个协议基于单向散列函数H(M)。在该协议中,每一位签名者都只需对数字文件在该协议中,每一位签名者都只需对数字文件M的单向散列函数值的单向散列函数值H(M)分别签名即可。分别签名即可。此协议的好处是:当共同签名者多于两个人的时此协议的好处是:当共同签名者多于两个人的时候,协议同样容易实现。候,协议同样容易实现。4.1.9 电子邮件的数字签名电子邮件的数字签名电子邮件系统是一个分散的系统,每封邮电子邮件系统是一个分散的系统,每封邮件都是根据一定的路由,从一个邮件传输件都是根据一定的路由,从一个邮件传输代理(代理(MTA)转发到另一个邮件传输代理,)转发到另一个邮件传输代理,几经周折后才送到用户的邮箱中所以在这几经周折后才送到用户的邮箱中所以在这个过程中,邮件可能受到的安全威胁是多个过程中,邮件可能受到的安全威胁是多方面的方面的.主要有以下几点:主要有以下几点:其一,信息泄露。其一,信息泄露。其二,身份假冒。其二,身份假冒。其三,内容篡改。其三,内容篡改。对于电子邮件安全性,总体来讲应该保证对于电子邮件安全性,总体来讲应该保证两条:两条:一是确保只有收信人才能阅读信件内容,一是确保只有收信人才能阅读信件内容,这可以通过加密技术来解决;这可以通过加密技术来解决;二是收信人能够判断出信件的确是由发件二是收信人能够判断出信件的确是由发件人发送的,而不是被别人伪造的、经过篡人发送的,而不是被别人伪造的、经过篡改的,这就是由数字签名技术来解决。改的,这就是由数字签名技术来解决。目前电子邮件中应用比较广泛的保密及数目前电子邮件中应用比较广泛的保密及数字签名字签名.最重要的有三种:完美秘密邮件(最重要的有三种:完美秘密邮件(PGP:Pretty Good Privacy)、增强保密邮件增强保密邮件(PEM:Privacy-Enhanced Mail)和和安全安全/通通用用Internet邮件扩展邮件扩展(S/MIME:Secure/Multipurpose Internet Mail Extensions)。1 完美秘密邮件完美秘密邮件PGPPGP是一种相当完整的电子邮件安全包,能够实是一种相当完整的电子邮件安全包,能够实现保密、鉴别、数字签名甚至压缩功能。现保密、鉴别、数字签名甚至压缩功能。它采用了现有的加密算法和成熟的技术,这些算它采用了现有的加密算法和成熟的技术,这些算法和技术都已发展的比较完善,因此,法和技术都已发展的比较完善,因此,PGP总体总体性能比较稳定。性能比较稳定。PGP是一个混合密码系统。是一个混合密码系统。具体的说,它有四个密码单元:分组密码单元,具体的说,它有四个密码单元:分组密码单元,有有IDEA、CAST、TDES等算法;公钥密码单元,等算法;公钥密码单元,有有RSA、DSA等算法;散列函数单元,有等算法;散列函数单元,有SHA、MD5等算法;还有一个随机数产生单元。等算法;还有一个随机数产生单元。PGP主要具有五方面功能:保密、数字签名(即主要具有五方面功能:保密、数字签名(即鉴别)、压缩、分段功能和电子邮件的兼容性。鉴别)、压缩、分段功能和电子邮件的兼容性。下面分别介绍各个功能。下面分别介绍各个功能。2 增强保密邮件增强保密邮件PEM(1)PEM的安全功能的安全功能增强保密的邮件是基于增强保密的邮件是基于SMTP协议加上成熟的协议加上成熟的DES、RSA和数字签名等加密机制来完成下列四方面的安和数字签名等加密机制来完成下列四方面的安全功能:全功能:第一第一,使数据具有机密性,不向非授权用户泄露电子邮件的内使数据具有机密性,不向非授权用户泄露电子邮件的内容。容。第二第二,数据报鉴别,收信者可确定电子邮件原发送者的身份。数据报鉴别,收信者可确定电子邮件原发送者的身份。第三第三,电子邮件的完整性保证,可保证对电子邮件内容不被非电子邮件的完整性保证,可保证对电子邮件内容不被非法修改。法修改。第四第四,不可否认,可核实原发送者的身份,并核实报文未曾被不可否认,可核实原发送者的身份,并核实报文未曾被更改过。更改过。(2)PEM的数字签名的数字签名由上述由上述PEM的安全功能可知,的安全功能可知,PEM中的数字签名中的数字签名中使用散列函数中使用散列函数MD2或或MD5,签名的加密算法使,签名的加密算法使用用RSA。现在先看一下现在先看一下PEM消息的发送过程。可以分为四消息的发送过程。可以分为四步:步:第一步,将消息变为典型格式,以适应兼容性和第一步,将消息变为典型格式,以适应兼容性和完整性要求;完整性要求;第二步,是产生消息完整性和认证性消息,本步第二步,是产生消息完整性和认证性消息,本步骤就可以使用数字签名来完成;骤就可以使用数字签名来完成;第三步,是对消息加密,本步骤是可选项;第三步,是对消息加密,本步骤是可选项;第四步,是将其变换为可打印码格式,本步骤也第四步,是将其变换为可打印码格式,本步骤也是可选项。是可选项。3安全安全/通用通用Internet邮件扩展邮件扩展S/MIME(1)S/MIME的功能的功能 因为因为PGP和和S/MIME都是为了提供电子邮件都是为了提供电子邮件的安全性,所以其功能是很相似的的安全性,所以其功能是很相似的:封装数据封装数据签名数据签名数据透明签名数据透明签名数据签名和封装数据签名和封装数据与与PGP相比,相比,S/MIME实现了层次信任模型,实现了层次信任模型,比比PGP更安全,有更好的扩展性,很容易更安全,有更好的扩展性,很容易把规模从小范围的组扩大到大企业,也很把规模从小范围的组扩大到大企业,也很容易把容易把S/MIME集成到许多邮件应用中。集成到许多邮件应用中。相对相对PEM而言,而言,S/MIME具有较大的伸缩性,具有较大的伸缩性,它除了支持文本信息外,还支持它除了支持文本信息外,还支持MIME。4.2 认证技术认证技术4.2.1 基于口令的身份认证技术基于口令的身份认证技术如果如果A要登录某服务器(要登录某服务器(ATM,计算机或其他类,计算机或其他类型的终端),服务器怎么知道登录的人就是型的终端),服务器怎么知道登录的人就是A而而不是其他的人呢?不是其他的人呢?传统的方法(现在大多数情况下仍然是这样)是传统的方法(现在大多数情况下仍然是这样)是用口令来解决这个问题。用口令来解决这个问题。A必须输入他的用户名(或必须输入他的用户名(或ID)和口令,服务器)和口令,服务器将它们与保存在主机数据库中的口令表进行匹配,将它们与保存在主机数据库中的口令表进行匹配,如果匹配成功,表明登录的人就是如果匹配成功,表明登录的人就是A。这里存在着一个明显的安全隐患,如果口令表被这里存在着一个明显的安全隐患,如果口令表被偷窥(黑客或者系统管理员都有可能),就会产偷窥(黑客或者系统管理员都有可能),就会产生严重的后果。生严重的后果。可以解决这个问题,假定服务器保存每个可以解决这个问题,假定服务器保存每个用户口令的单向函数值,则认证协议如下:用户口令的单向函数值,则认证协议如下:A将自己的用户名和口令传送给服务器;将自己的用户名和口令传送给服务器;服务器计算出口令的单向函数值;服务器计算出口令的单向函数值;服务器将用户名和单向函数值与口令表服务器将用户名和单向函数值与口令表中的值进行匹配。中的值进行匹配。另一种方法是使用非对称密钥系统,登录系统另一种方法是使用非对称密钥系统,登录系统时,按如下协议进行认证:时,按如下协议进行认证:服务器发送一个随机数服务器发送一个随机数R给给A;A用自己的私钥对用自己的私钥对R加密,得到加密,得到R1并将它和并将它和用户名一起回传给服务器;用户名一起回传给服务器;服务器根据用户名在数据库中找到服务器根据用户名在数据库中找到A的公钥,的公钥,用它解密用它解密R1,得到,得到R2;如果如果R2=R,则,则A登录成功。登录成功。该协议可以有效地对付窃听或偷窥,但该协议可以有效地对付窃听或偷窥,但A所使所使用的终端必须具有计算的能力。用的终端必须具有计算的能力。4.2.2 信息认证技术信息认证技术信息认证技术是网络信息安全技术的一个重信息认证技术是网络信息安全技术的一个重要方面,它用于保证通信双方的不可抵赖性要方面,它用于保证通信双方的不可抵赖性和信息的完整性。和信息的完整性。在在Internet深入发展和普遍应用的时代,信深入发展和普遍应用的时代,信息认证显得十分重要。息认证显得十分重要。例如,在网络银行、电子商务等应用中,对于所发例如,在网络银行、电子商务等应用中,对于所发生的业务或交易,可能并不需要保密交易的具体内生的业务或交易,可能并不需要保密交易的具体内容,但是交易双方应当能够确认是对方发送(接收)容,但是交易双方应当能够确认是对方发送(接收)了这些信息,同时接收方还能确认接收的信息是完了这些信息,同时接收方还能确认接收的信息是完整的,即在通信过程中没有被修改或替换整的,即在通信过程中没有被修改或替换 1 基于私钥密码体制的信息认证基于私钥密码体制的信息认证假设通信双方为假设通信双方为A和和B。A、B共享的密钥为共享的密钥为KAB,M为为A发送给发送给B的的信息。信息。为防止信息为防止信息M在传输信道被窃听,在传输信道被窃听,A将将M加加密后再传送密后再传送。由于由于KAB为用户为用户A和和B的共享密钥,所以用的共享密钥,所以用户户B可以确定信息可以确定信息M是由用户是由用户A所发出的。所发出的。这种认证方法可以对信息来源进行认证,这种认证方法可以对信息来源进行认证,而且它在认证的同时对信息而且它在认证的同时对信息M也进行了加密。也进行了加密。这种方法的缺点是不能提供信息完整性的这种方法的缺点是不能提供信息完整性的鉴别。鉴别。通过引入单向通过引入单向hash函数,可以解决信息完函数,可以解决信息完整性的签别检测问题,如图整性的签别检测问题,如图4.2所示。所示。MMmM1m1HDm2mHmEm1MMmM1m1HDm2mHmEm1MEM1HmM1DMmHm1m在图在图4.2(a)的信息认证机制中,用户)的信息认证机制中,用户A首首先对信息先对信息M求求hash值值H(M),然后将,然后将MH(M)加密后传送给用户加密后传送给用户B。用户用户B通过解密并验证附于信息通过解密并验证附于信息M之后的之后的hash值是否正确。值是否正确。基于私钥的信息认证机制的优点是速度基于私钥的信息认证机制的优点是速度较快,较快,缺点缺点是通信双方是通信双方A和和B需要事先约定需要事先约定共享密钥共享密钥KAB,而且如果用户,而且如果用户A需要与其他需要与其他n个用户进行秘密通信的话,那么用户个用户进行秘密通信的话,那么用户A需需要事先与这些用户约定和妥善保存要事先与这些用户约定和妥善保存n-1个共个共享密钥,这本身就存在安全问题。享密钥,这本身就存在安全问题。2 基于公钥体制的信息认证基于公钥体制的信息认证基于公钥体制的信息认证技术主要利用数字签名基于公钥体制的信息认证技术主要利用数字签名和和hash函数来实现。函数来实现。假设用户假设用户A对信息对信息M的的hash值值H(M)的签名的签名为为SigSA(dA,(H(m),其中),其中dA为用户为用户A的私钥。的私钥。用户用