第六章数字签名算法:6.1数字签名概述 61.3数字签名的执行方式 ●以下是具有仲裁方式数字签名的几个实例 其中X表示发方,Y表示收方,A是仲裁者,M是消息 X→Y:M表示X给Y发送一消息M 【例6-1】签名过程如下: ①X→A: MIEKXALDXH(M ②A→Y: EKAYlDXIMIEKXAlDxi)T ●T用于向Y表示所发的消息不是旧消息的重放。Y对收到的内容解密后, 将解密结果存储起来以备出现争议时使用 这个方案要求双方对A绝对的信任,相信其能公正执行协议、解决争 议,且不会滥用他们的密钥 历忠毛孑技*字 12/
6.1.3 数字签名的执行方式 以下是具有仲裁方式数字签名的几个实例 ⚫ 其中X表示发方,Y表示收方,A是仲裁者,M是消息 ⚫ X→Y: M表示X给Y发送一消息M 【例6-1】签名过程如下: ⚫ ① X→A:M‖EKXA[IDX‖H(M)] ⚫ ② A→Y:EKAY[IDX‖M‖EKXA[IDX‖H(M)]‖T] T用于向Y表示所发的消息不是旧消息的重放。Y对收到的内容解密后, 将解密结果存储起来以备出现争议时使用 这个方案要求双方对A绝对的信任,相信其能公正执行协议、解决争 议,且不会滥用他们的密钥 12/ 第六章 数字签名算法:6.1 数字签名概述
第六章数字签名算法:6.1数字签名概述 613数字签名的执行方式 ●如果还要提供保密性,则可如下进行 ●【例7-2】签名过程如下: ①X→A: DXIEKxrIM] EKXALDXIA(EKXM ②A→Y: EKAYIIDXIEKXrIMEKXALDXIa(EKM川T ●其中Kx是X,Y享的密钥,其他符号与例1相同 ●以上两个例子是用单钥方案解决的,但都存在一个重要问 题,即仲裁者可和发方共谋以否认发方曾发过的消息,也 可和收方共谋以伪造发方的签名 这一问题可通过下例所示的采用公钥加密技术的方法得 以解决 历忠毛孑技*字
6.1.3 数字签名的执行方式 如果还要提供保密性,则可如下进行 【例7-2】签名过程如下: ⚫ ① X→A: IDX ‖EKXY[M]‖EKXA[IDX ‖H(EKXY[M])] ⚫ ② A→Y: EKAY[IDX‖EKXY[M]‖EKXA[IDX‖H(EKXY[M])]‖T] ⚫ 其中KXY是X,Y共享的密钥,其他符号与例1相同 以上两个例子是用单钥方案解决的,但都存在一个重要问 题,即仲裁者可和发方共谋以否认发方曾发过的消息,也 可和收方共谋以伪造发方的签名 ⚫ 这一问题可通过下例所示的采用公钥加密技术的方法得 以解决 13/ 第六章 数字签名算法:6.1 数字签名概述
第六章数字签名算法:6.1数字签名概述 613数字签名的执行方式 ●【例7-3】签名过程如下: ①X→A: DXIesKX{ DXEPKrEsKxIM ②A→Y: ESKALIDXIEPKYESKXIM|T 与前两种方案相比,第3种方案有很多优点。 首先,在协议执行以前,各方都不必有共享的信息,从 而可防止共谋 第二,只要仲裁者的秘密钥不被泄露,任何人包括发方 就不能发送重放的消息。 最后,对任何第三方(包括A)来说,X发往Y的消息都 是保密的 历忠毛孑技*字 14
6.1.3 数字签名的执行方式 【例7-3】 签名过程如下: ⚫ ① X→A:IDX‖ESKX[IDX‖EPKY[ESKX[M]]] ⚫ ② A→Y:ESKA[IDX‖EPKY[ESKX[M]]‖T] 与前两种方案相比,第3种方案有很多优点。 ⚫ 首先,在协议执行以前,各方都不必有共享的信息,从 而可防止共谋。 ⚫ 第二,只要仲裁者的秘密钥不被泄露,任何人包括发方 就不能发送重放的消息。 ⚫ 最后,对任何第三方(包括A)来说,X发往Y的消息都 是保密的 14/ 第六章 数字签名算法:6.1 数字签名概述
第六章数字签名算法:6.1数字签名概述 614数字签名的安全性 ●数字签名的安全性中首先是其所使用的hash函数必须是安全的 ●数字签名安全的核心目标是抗伪造,其中最强的一种安全性是适应性 选择消息攻击下的存在性不可伪造性。 存在性伪造攻击 existential forgery 攻击者E至少能够为一个消息产生一个有效的签名,即他可能生成一个数 对(m,s),其中m是消息,s=sigs(m)是签名,签名者以前未对消息签名 ●根据hash函数的安全性又分为三种情况 使用已知消息攻击的存在性伪造:已知一个签名m,s),找一个m≠m满足 h(m)=h(m),从而可以伪造一个签名(m’,;要求hash是弱抗碰撞的 使用选择消息攻击的存在性伪造:找出任意两个不同的输入m和m’,使得 H(m)=H(m),让签名者对m签名,则可得到伪造的签名m,s;要求has是 强抗碰撞的 使用唯密钥攻击的存在性伪造:先找一个随机的hash值h,并由公钥伪造 个签名,然后找合理的消息使其hash值等于h;要求hash函数必须满足 单向性 历忠毛孑技*字 15/
6.1.4 数字签名的安全性 数字签名的安全性中首先是其所使用的hash函数必须是安全的 数字签名安全的核心目标是抗伪造,其中最强的一种安全性是适应性 选择消息攻击下的存在性不可伪造性。 存在性伪造攻击existential forgery ⚫ 攻击者E至少能够为一个消息产生一个有效的签名,即他可能生成一个数 对(m,s),其中m是消息,s=sigsk(m)是签名,签名者以前未对消息签名 根据hash函数的安全性又分为三种情况 ⚫ 使用已知消息攻击的存在性伪造:已知一个签名(m,s),找一个m’m满足 h(m)=h(m’),从而可以伪造一个签名(m’,s);要求hash是弱抗碰撞的 ⚫ 使用选择消息攻击的存在性伪造:找出任意两个不同的输入m和m’,使得 H(m)=H(m’),让签名者对m签名,则可得到伪造的签名(m’,s);要求hash是 强抗碰撞的 ⚫ 使用唯密钥攻击的存在性伪造:先找一个随机的hash值h,并由公钥伪造 一个签名,然后找合理的消息使其hash值等于h;要求hash函数必须满足 单向性 15/ 第六章 数字签名算法:6.1 数字签名概述
第六章数字签名算法:62基于公钥加密的签名RSA签名体制 621RSA签名 ●下面以RSA签名体制为例说明数字签名的产生过程 ①体制参数 选两个保密的大素数p和q,计算→×q,以(m)=(p-1)(q1) 选一整数e,满足1<eg(n),且gcd(p(n)2)=1 计算,满足de=1modg(m) ●以{e,n}为公开钥4,D,q为秘密钥 ②签名过程 设消息为M,对其签名为:S= Md mod n ③验证过程 接收方在收到消息M和签名S后,验证M= Se mod n是否成立,若成 立,则发送方的签名有效 实际应用时,数字签名是对消息摘要加密产生,而不是直接对消息加 密产生,否则是不安全的,即S=H(M4modn 历毛孑拌技大字 16/
6.2.1 RSA签名 下面以RSA签名体制为例说明数字签名的产生过程 ① 体制参数 ⚫ 选两个保密的大素数p和q,计算n=p×q,(n)=(p-1)(q-1) ⚫ 选一整数e,满足1<e<φ(n),且gcd(φ(n),e)=1 ⚫ 计算d,满足d·e≡1 mod φ(n) ⚫ 以{e,n}为公开钥,{d,p,q}为秘密钥 ② 签名过程 ⚫ 设消息为M,对其签名为:S≡M d mod n ③ 验证过程 ⚫ 接收方在收到消息M和签名S后,验证M≡S emod n是否成立,若成 立,则发送方的签名有效 实际应用时,数字签名是对消息摘要加密产生,而不是直接对消息加 密产生,否则是不安全的,即S≡H(M) dmod n 16/ 第六章 数字签名算法:6.2 基于公钥加密的签名-RSA签名体制