1、提纲提纲数字签名的基本概念数字签名的基本概念数字签名的产生方式数字签名的产生方式数字签名的执行方式数字签名的执行方式数字签名标准数字签名标准1234 提纲数字签名的基本概念1 引例引例 引例 传统签名与数字签名传统签名与数字签名v传统签名的基本特点传统签名的基本特点能与被签的文件在物理上不可分割能与被签的文件在物理上不可分割签名者不能否认自己的签名签名者不能否认自己的签名容易被验证容易被验证签名不能被伪造签名不能被伪造v数字签名是传统签名的数字签名是传统签名的数字化数字化能与所签文件能与所签文件“绑定绑定”签名者不能否认自己的签名签名者不能否认自己的签名容易被自动验证容易被自动验证签名不能被伪
2、造签名不能被伪造 传统签名与数字签名v 传统签名的基本特点 能与被签的文件在物理数字签名的要求数字签名的要求签名必须依赖于被签名信息签名必须依赖于被签名信息,且必须且必须123使用对于发送者是唯一的信息,以防使用对于发送者是唯一的信息,以防止双方的伪造与否认止双方的伪造与否认;必须相对容易生成该数字签名必须相对容易生成该数字签名,且相且相对容易识别和验证该数字签名对容易识别和验证该数字签名;伪造该数字签名在计算复杂性意义上伪造该数字签名在计算复杂性意义上是不可行的,且在存储器中保存一个是不可行的,且在存储器中保存一个数字签名副本是现实可行的数字签名副本是现实可行的 数字签名的要求1 使用对于发
3、送者是唯一的信息,以防数字签名提纲提纲数字签名的基本概念数字签名的基本概念数字签名的产生方式数字签名的产生方式数字签名的执行方式数字签名的执行方式数字签名标准数字签名标准1234 提纲数字签名的基本概念1 数字签名数字签名产生方式产生方式由签名算由签名算法产生数法产生数字签名字签名由加密算由加密算法产生数法产生数字签名字签名 数字签名由签名算由加密算发送方发送方A接收方接收方B由加密算法产生数字签名由加密算法产生数字签名 单钥加密单钥加密 A和和B共享密钥共享密钥K 向向B保证收到的消息确实来自保证收到的消息确实来自A B恢复恢复M后,后,可相信可相信M未被篡改,否则未被篡改,否则B得到的得到
4、的是无意义的比特序列是无意义的比特序列 发送方A 接收方B由加密算法产生数字签名 A 和B 共享密钥由加密算法产生数字签名由加密算法产生数字签名发送方发送方A接收方接收方 A公开其公钥公开其公钥PKA,保密其私钥保密其私钥SKA;向任意接收方保证收到的消息确实来自向任意接收方保证收到的消息确实来自A,因为只有因为只有A才能才能用用SKA加密加密;由于任何人都可使用由于任何人都可使用A的公开钥解密密文,所以这种方案的公开钥解密密文,所以这种方案不提供不提供保密性保密性 由加密算法产生数字签名发送方A 接收方 A 公开其公钥P K A由加密算法产生数字签名由加密算法产生数字签名 公钥加密公钥加密发
5、送方发送方A接收方接收方B A/B公开其公钥公开其公钥PKA/PKB,保密其私钥保密其私钥SKA/SKB;向向B保证收到的消息确实来自保证收到的消息确实来自A,因为只有因为只有A才能用才能用SKA加加密密;用用B的公开钥的公开钥PKB再一次加密再一次加密,使得该方案具有使得该方案具有保密性保密性.由加密算法产生数字签名发送方A 接收方B A/B 公开其公散列函数散列函数v 散列函数散列函数H 是一个公开的函数,它将任意长度的报文是一个公开的函数,它将任意长度的报文M变变换为固定长度的散列码换为固定长度的散列码h。v hH(M)M:变长报文,:变长报文,H(M):定长的散列值:定长的散列值v 散
6、列函数是一种算法,算法的输出内容称为散列码或者报散列函数是一种算法,算法的输出内容称为散列码或者报文摘要文摘要。v 报文摘要要唯一地对应原始报文,如果原始报文改变并且报文摘要要唯一地对应原始报文,如果原始报文改变并且再次通过散列函数,它将生成不同的报文摘要,因此散列再次通过散列函数,它将生成不同的报文摘要,因此散列函数能用来检测报文的完整性,保证报文从建立开始到收函数能用来检测报文的完整性,保证报文从建立开始到收到为止没有被改变和破坏到为止没有被改变和破坏。散列函数v 散列函数H 是一个公开的函数,它将任意长度的报文压缩函数压缩函数散列函数散列函数数字指纹数字指纹The same!数据数据鉴别
7、码鉴别码哈希函数哈希函数 压缩函数散列函数数字指纹T h e s a me!数据数字签名过程数字签名过程 数字签名过程 数字签名数字签名产生方式产生方式由签名算由签名算法产生数法产生数字签名字签名由加密算由加密算法产生数法产生数字签名字签名 数字签名由签名算由加密算由签名算法产生数字签名由签名算法产生数字签名 由签名算法产生数字签名 由签名算法产生数字签名由签名算法产生数字签名 由签名算法产生数字签名 数字签名的性质数字签名的性质1能够验证签名能够验证签名产生者的身产生者的身份,以及产生份,以及产生签名的日期和签名的日期和2能够认证签名能够认证签名时刻的消息内时刻的消息内容容。3签名能由第三签
8、名能由第三方验证,从而方验证,从而能够解决通信能够解决通信双方的争议双方的争议。时间时间。数字签名的性质123时间。提纲提纲数字签名的基本概念数字签名的基本概念数字签名的产生方式数字签名的产生方式数字签名的执行方式数字签名的执行方式数字签名标准数字签名标准1234 提纲数字签名的基本概念1 数字签名数字签名执行方式执行方式仲裁数字仲裁数字签名签名直接数字直接数字签名签名 数字签名仲裁数字直接数字直接数字签名直接数字签名v 只有通信双方参与,并假定双方有共享的秘密钥或接收一只有通信双方参与,并假定双方有共享的秘密钥或接收一方知道发方的公开钥方知道发方的公开钥。v E.g.直接数字签名v 只有通信
9、双方参与,并假定双方有共享的秘密钥或直接数字签名直接数字签名v v 缺点缺点:方案的有效性依赖于发送方的保密密钥方案的有效性依赖于发送方的保密密钥 发送方要抵赖发送某一消息时,可能会声称其私有密钥发送方要抵赖发送某一消息时,可能会声称其私有密钥丢失或被窃,从而他人伪造了他的签名丢失或被窃,从而他人伪造了他的签名。通常需要采用与私有密钥安全性相关的行政管理控制手通常需要采用与私有密钥安全性相关的行政管理控制手段来制止或至少是削弱这种情况,但威胁在某种程度上段来制止或至少是削弱这种情况,但威胁在某种程度上依然存在依然存在。改进的方式,例如可以要求被签名的信息包含一个时间改进的方式,例如可以要求被签
10、名的信息包含一个时间戳(日期与时间),并要求将已暴露的密钥报告给一个戳(日期与时间),并要求将已暴露的密钥报告给一个授权中心授权中心。X X的某些私有密钥确实在时间的某些私有密钥确实在时间T T被窃取,敌方可以伪造被窃取,敌方可以伪造X X的签名及早于或等于时间的签名及早于或等于时间T T的时间戳。的时间戳。直接数字签名v 缺点:方案的有效性依赖于发送方的保密密钥 数字签名数字签名执行方式执行方式仲裁数字仲裁数字签名签名直接数字直接数字签名签名 数字签名仲裁数字直接数字仲裁数字签名仲裁数字签名v引入仲裁者引入仲裁者 所有从发送方所有从发送方X到接收方到接收方Y 的签名消息首先送到仲裁者的签名消
11、息首先送到仲裁者A;A 将消息及其签名进行一系列测试,以检查其来源和内将消息及其签名进行一系列测试,以检查其来源和内容容;A 将消息加上日期并与已被仲裁者验证通过的知识一起将消息加上日期并与已被仲裁者验证通过的知识一起发给发给Y.v仲裁者在这一类签名模式中扮演敏感和关键的角仲裁者在这一类签名模式中扮演敏感和关键的角色色v所有的参与者必须极大地相信这一仲裁机制工作所有的参与者必须极大地相信这一仲裁机制工作正常正常。仲裁数字签名v 引入仲裁者 所有从发送方X 到接收方Y 的签仲裁数字签名仲裁数字签名单密钥加密方式单密钥加密方式1:(1)XA:MEKXAIDXH(M)(2)AY:EKAYIDXMEK
12、XAIDXH(M)TX与与A共享密钥共享密钥KXA;Y与与A共享密钥共享密钥KAY;v X:准备消息准备消息M,计算其散列值计算其散列值,以以EKXAIDXH(M)作为自作为自己对己对M的签名的签名,将将M及签名发往及签名发往A;v A:解密签名解密签名,用用H(M)验证消息验证消息M,将将IDX,M,签名和时间戳签名和时间戳T一起加密后发往一起加密后发往Y;v Y:解密解密A发来的消息发来的消息M,并可将并可将M和签名保存起来。和签名保存起来。v A可以看到可以看到X给给Y的所有信息的所有信息 仲裁数字签名单密钥加密方式1:(1)X A:M E K X A仲裁数字签名仲裁数字签名解决纠纷解决
13、纠纷:Y:向向A发送发送EKAYIDXMEKXAIDXH(M)A:用用KAY解密后,再用解密后,再用KXA对对EKXAIDXH(M)解密,并对解密,并对H(M)加以验证,从而验证加以验证,从而验证X的签名。的签名。v Y不能直接验证不能直接验证X的签名,但的签名,但Y认为消息来自于认为消息来自于A,因而是因而是可信的。所以可信的。所以A必须取得必须取得X和和Y的高度信任:的高度信任:X相信相信A不会泄露不会泄露KXA,并且不会伪造,并且不会伪造X的签名的签名;Y相信相信A只有在对只有在对EKAYIDXMEKXAIDXH(M)T中的杂凑中的杂凑值及值及X的签名验证无误后才将之发给的签名验证无误后
14、才将之发给Y;X,Y都相信都相信A可公正地解决争议。可公正地解决争议。v 如果如果A已取得各方的信任,则已取得各方的信任,则X就能相信没有人能伪造自就能相信没有人能伪造自己的签名,己的签名,Y就可相信就可相信X不能对自己的签名予以否认。不能对自己的签名予以否认。仲裁数字签名解决纠纷:Y:向A 发送E K A Y I D X M E仲裁数字签名仲裁数字签名单钥加密方式单钥加密方式2:(1)XA:IDXEKXYMEKXAIDXH(EKXYM)(2)AY:EKAYIDXEKXYMEKXAIDXH(EKXYM)TKXY是是X,Y共享的密钥共享的密钥;v X:以以EKXAIDXH(EKXYM)作为对作为
15、对M的签名,与由的签名,与由KXY加密的消息加密的消息M一起发给一起发给A;v A:对对EKXAIDXH(EKXYM)解密后通过验证杂凑值以验证解密后通过验证杂凑值以验证X的签的签名,但始终未能读取明文名,但始终未能读取明文M,然后对然后对X发来的消息加一时戳,再用发来的消息加一时戳,再用KAY加密后发往加密后发往Y;v Y:解密解密A发来的消息发来的消息M,并可将并可将M和签名保存起来。和签名保存起来。仲裁数字签名单钥加密方式2:(1)X A:I D X E K X仲裁数字签名仲裁数字签名v存在问题存在问题:仲裁者可和发方共谋以否认发方曾发过的消息仲裁者可和发方共谋以否认发方曾发过的消息;仲
16、裁者也可和收方共谋以伪造发方的签名仲裁者也可和收方共谋以伪造发方的签名.仲裁数字签名v 存在问题:仲裁者可和发方共谋以否认发方曾发仲裁数字签名仲裁数字签名双钥加密方式双钥加密方式:vXA:IDXESKXIDXEPKYESKXM。vAY:ESKAIDXEPKYESKXMTSKX和和SKA是是X和和A的私钥的私钥,PKY是是Y的公钥的公钥.v X:对消息对消息M双重加密双重加密:首先用首先用X的私钥的私钥SKX,再用再用Y的公钥的公钥PKY,形成一个签名的保密的消息形成一个签名的保密的消息.然后发送给然后发送给A;v A:收到收到X发来的内容后,用发来的内容后,用X的公开钥可对的公开钥可对ESKX
17、IDXEPKYESKXM解密,并将解密得到的解密,并将解密得到的IDX与收与收到的到的IDX加以比较,从而可确信这一消息是来自于加以比较,从而可确信这一消息是来自于X的的.A将将X的身份的身份IDX和和X对对M的签名加上一时戳后,再用自己的的签名加上一时戳后,再用自己的秘密钥加密发往秘密钥加密发往Y.仲裁数字签名双钥加密方式:v X A:I D X E S K X I D X仲裁数字签名仲裁数字签名双钥加密方式优点双钥加密方式优点:123在协议执行以前,各方都不必在协议执行以前,各方都不必有共享的信息,从而可防止共有共享的信息,从而可防止共谋。谋。只要仲裁者的秘密钥不被泄露只要仲裁者的秘密钥不
18、被泄露,任何人包括发方就不能发送任何人包括发方就不能发送重放的消息重放的消息。对任何第三方(包括对任何第三方(包括A)来说)来说,X发往发往Y的消息都是保密的的消息都是保密的 仲裁数字签名1 在协议执行以前,各方都不必 提纲提纲数字签名的基本概念数字签名的基本概念数字签名的产生方式数字签名的产生方式数字签名的执行方式数字签名的执行方式数字签名标准数字签名标准1234 提纲数字签名的基本概念1 DSS概述概述vDSS(Digital Signature Standard)v1991年,由年,由NIST公布公布v1993年,公布修改版年,公布修改版v美国联邦信息处理标准美国联邦信息处理标准FIPS
19、 PUB 186v采用数字签名算法采用数字签名算法DSA,其签名长度,其签名长度320bitv只能用于数字签名,不能用于加密只能用于数字签名,不能用于加密vhttp:/www.itl.nist.gov/fipspubs/fip186.htm D S S 概述v D S S (D i g i t a l S i g n a t u r e SDSS签名与签名与RSA签名比较签名比较 D S S 签名与R S A 签名比较 数学困难问题数学困难问题v大素数分解问题大素数分解问题 N=pqv离散对数问题离散对数问题 y=gx mod p(p是素数是素数)已知已知p,g,x,求求y容易容易;已知已知p,g,y,求求x困难困难.数学困难问题v 大素数分解问题 N=p q v 离散对数问题 ElGamal数字签名数字签名方案方案离散对数离散对数特种签名特种签名SchnorrSchnorr E l G a ma l 数字签名离散对数特种签名S c h n o r r 作业作业 1.查阅相关资料,了解群签名、代理查阅相关资料,了解群签名、代理签名、签名、可传递签名等特种数字签名提出的背景可传递签名等特种数字签名提出的背景及其定义及其定义.作业 1.查阅相关资料,了解群签名、代理签名、