6 数字签名
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
到此,签名结果为(r,s) (4)把消息和签名结果(M,r,s)发送给接收者
2020/5/22
27
签名验证
接收方收到消息和签名结果(M,r,s)后,可以按下面 的步骤验证签名的有效性。
(1)如果1≤r≤p-1,那么继续后续步骤;否则,签名是 不合法。
(2)计算 v1 yrr s mod p
(3)计算 v2 g H (M ) mod p
M
|| M
h
Ekus (h(M ))
比较
hE
D
2020/5/22
kus
kup
14
举例
(1)选择素数p=5,q=11;n=pq=55(n,) = ( p -1)(q -1) = 40
(2)选择私钥e=3,由ed 1mod(n)计算私钥d=27
假设消息M=19 (3)签名生成:c = md modn = 1927 mod55 = 24 (4)签名验证: m = ce modn = 243 mod55 = 19
本签名体制中,要签字的消息空间为 z* p
,签名结果的值空间为
z
p
。z p1
2020/5/22
26
签名生成
给定要签名的消息为M,签名过程如下所述. (1)生成一个随机数 k, k z* p (2)计算 r : r g x mod p.
(3)计算 s : s (H (M ) xr)k 1 mod( p 1)
(4)比较 v和1 v如2 果 v,2 表v示1 签名有效;否则,签名无
效.
2020/5/22
28
签名验证证明
我们先对签名过程中等式 s : s (H (M ) xr)进k 行1 m处od理( p有1)
sk = (H (M ) xr)k 1k mod(p 1) ⇒ks = (H (M ) xr) mod(p 1) ⇒H (M ) = rx + ksmod(p 1)
(n) ( p ,1)然(p后可1以) 确定d。
(2)在不确定p和q的情况下,而直接确定(n。) 当
然同样可以计算 d = e 1 mo。d (n)
(3)在不确定(n的) 情况下,直接确定d。
2020/5/22
18
目前大部分RSA密码分析的讨论都集中于对
n进行素因子分解。给定n去确定 ,(n就) 等
2020/5/22
36
M / (hM is)(hr js)1 mod( p 1)
那么,M的/ 合法签字就是 (r ./ , s / )
如果攻击者要预先确定消息 M,/并得到该消息 的合法签名,他还是面临解决离散对数问题 。所以攻击者还是不能得逞。
2020/5/22
37
(3)如果攻击者知道了两个消息 (M1,, M及2 ) 其
2020/5/22
15
安全性分析
RSA算法的安全性就是基于大整数的因子分 解困难之上的,到目前为止其还是安全的。 要分析RSA算法的安全性,我们从攻击RSA 的角度来审视。总的来分,RSA算法攻击可 以区分为三类:
(1)蛮力攻击:它通过实验所有的可能私钥,来 达到目的。
(2)数字攻击:使用数学技巧,类似于分解n来 达到攻击目的。
(3) 签名是不可复制的:如果签名是从别的地方复 制的,任何人都可发现消息与签名的不一致,从而拒 绝签名。
2020/5/22
5
数字签名的特点
(4) 签名的消息是不可改变的:经过的签名不 能被篡改。 (5) 签名是不可抵赖的:签名者不能否认自己的 签名。
2020/5/22
6
数字签名与加密的区别
(1)在加密中:公钥加密,私钥解密。
2020/5/22
29
下面考察认证过程中的等式:
因为
v2 g xrksmod(p-1) mod p ⇒v2 (g x )r (g k )s mod p ⇒v2 yrr s mod p v1
所以可以说明该算法是成立的.
2020/5/22
30
举例
1.参数生成 取p=2357,g=2;2是Z * p 的一个生成元.选择一个
签名结果为(r,s)=(1490,1777)
2020/5/22
32
签名验证
3.签名验证 接收方在受到消息和签名结果之后,计算: (1)v1 = yrr s mod p = 1185 1490 ×1490 1777 mod 2357 = 1072 (2)v2 = g H (M ) mod p = 21463 mod 2357 = 1072
(3)签名为 (M , s)
2020/5/22
12
签名验证
(1)解密签名: h se modn
(2)比较h=H(M),如果等号相等,签名有效 ;否则签名无效。
2020/5/22
13
RSA签名过程图
图中h:表示Hah运算;M:消息;E:加密;D解 密;Kus :用户秘密钥; Kup :用户公开密钥。
2020/5/22
20
其他攻击
攻击RSA还有其他方法,如:迭代攻击、 选择明文攻击、公共模数攻击、低加密指 数攻击等。
2020/5/22
21
使用RSA的建议
(1)不可使用公共模数。 (2)明文的熵要尽可能的大。
(3)尽量使用散列函数。
2020/5/22
22
三、ELGAMAL数字签名体 制
2020/5/22
价于对n进行因子分解。给定e和n,使用目 前已知的攻击算法求出d的时间开销至少和因 子分解问题的时间开销一样大。所以我们通 常把因子分解的性能作为评价RSA安全性基 准。
2020/5/22
19
定时攻击
定时攻击被安全专家称为“有创意的攻击”。 因为该攻击与常规攻击方式完全不同,同时 其仅仅使用密文进行攻击。其提出者是密码 分析家P.C.Kocher,于1996年提出。Kocher 曾发明了一种办法,通过监视耗电量的微小 波动,可以推导出一张加密的智能卡中内嵌 的密钥。之后,他又因设计了一种能够攻破 RSA算法实现的技术而轰动一时,该方法其 不是通过正面攻击算法,而是通过观察系统 处理特定函数所花费的时间来寻找破解的蛛 丝马迹。
2020/5/22
16
(3)时间攻击:通过观察解密算法运行的时间来 达到目的。
其中抵抗蛮力攻击的方法,与其他加密系统是 一致的——使用大的密钥空间,使穷举法无 能为力。因此e和d位数的长度应该与实际应 用系统有综合的权衡。
2020/5/22
17
因子分解问题
从因子分解问题着手的使用数学手段攻击RSA的方 法可以区分为如下三类: (1)将n分解为两个素因子。这就是要计算
数x=1751作为私钥.再计算公钥 y:
y = g x mod p = 21751 mod 2357 = 1185
现在假定消息为M.H(M)=1463
2020/5/22
31
签名生成
2.签名过程: 选随机数k=Leabharlann Baidu529;计算:
r g k mod p 21529 mod2357 1490 k 1 mod(p 1) 1529-1 mod2356 245 s (H (M ) xr)k -1 mod(p 1) (146317511490) 245mod2356 1777
第六章 数字签名
一、数字签名的概念 二、RSA数字签名体制 三、ELGAMAL数字签名体制 四、其他数字签名 五、数字签名标准
2020/5/22
1
一、数字签名基本概念
2020/5/22 2
数字签名就是两个数学变换,首先发送 方对信息施以数学变换,接受方进行逆变 换,得到原始信息。发送方的变换就是签 名,通常是一种加密,对应的逆变换就是 对签名的认证,通常是一种解密措施。数 字签名体制一般包括两个部分:一是签名 部分,对消息M签名,可以记为S=SIG( K,M),K是签名者的私钥,是秘密的。 二是接收方的认证部分,可以记成VER( M,S,K)=(真,假)。
名过程中使用的等式。
如果我们把u、v、w分别对应不同次序的H(M)、r、s
就可以得到其他的ElGamal数字签名变体体制.
2020/5/22
34
ElGamal签名体制的6种变形
序号 u H(
1 M) H(
2 M)
3
S
4
S
2020/5/22
v
w
签名方程
认证等式
r
S
h(m) xr ksmod(p 1) g H (M ) (g x )r r s mod p
2020/5/22
3
• 数字签名示意图
公钥 算法 加 密
消息 原文
数字 签名
公钥 算法
消息 原文
解 密
比 较
消息 原文
2020/5/22
4
数字签名的特点
(1) 签名是可信的:任何人都可以方便的验证签名的 有效性.
(2) 签名是不可伪造的:除了合法的签名者外,任何其 它人伪造签名是困难的,这种困难性指计算上是不可 行的。
3.在电子政务中,必须提供身份认证服务、权限
控制服务、信息保密服务等,而这些都离不
开数字签名。
2020/5/22
8
二、RSA数字签名体制
2020/5/22
9
• RSA是以它的三个发明者Ron Rivest ,Adi Shamir和Leoard Adleman 的名字命名。该算法既可以用于加密, 也可以用于数字签名。RSA的安全性基 于大数分解的困难性,该算法已经经受 住了多年深入的密码分析,密码分析者 既不能证明也不能否认RSA的安全性, 这恰恰说明该算法有一定的可信度。
2020/5/22
24
构造参数
1.全局参数
P:是一个大的素数,确保在 z中p* 求解离
散对数在计算上的困难;
g:是 Zp中的乘法群 称为本原元素.
z的p*一个生成元,或
2.私钥参数
x:用户的私钥,
x
z
* p
2020/5/22
25
3.公钥参数
y:用户的公钥, y g x mod p
算法中常还使用一个随机数k.另外,在
h(m) xs krmod(p 1)
g H (M ) (g x )s r r mod p
s
r H( M)
r
s xr kH(M ) mod(p 1) g s (g x )r r H (M ) mod p
s xH (M ) krmod(p 1) g s (g x )H(M ) r r mod p
(2)数字签名中:签名者用私钥签名,接收者用 签名者的公钥验证。
2020/5/22
7
数字签名的应用
在网络应用中,凡是要解决伪造、抵赖、冒充 、篡改与身份鉴别的问题,都可以运用数字 签名来处理:
1.网上银行通过因特网向客户提供信息查询、 网上支付、信贷等,都需要数字签名。
2.在电子商务中,企业与企业之间,企业与消 费者之间,在网上进行的商业交换活动,也 需要数字签名。
2020/5/22
10
算法描述
• 参数选择
(1)令p, q是两个素数, n pq
(2)随机选择e,满足 1 e (n),那么私钥就
是(e,n)
(3)计算 d : ed = 1mod(n) ,私钥就是(d,n).
2020/5/22
11
签名过程 (1)计算消息的散列值H(M).
(2)加密散列值:s (H (M ))d mod n
因为v1 = v2 ,所以签名有效.
2020/5/22
33
ElGamal签名体制的变型
• ElGamal数字签名体制有很多变形,我们把签名过程中 的等式 s (H (M ) xr)k 1 mod( p 1)
修改为:u x v k wm(o称d(为p 签1名) 方程) 其中,如果 u H (M ),v,那r,么w 签 s名方程就是ElGamal签
由于攻击者不知道用户私钥X,所以要伪造 用户签名,需要先选取定一个r(或s),然后实 验求取另外一个值s(或r).都属于求解离散对 数问题. 2.已经知道明文密文对的攻击 攻击者知道(r,s)是消息M的合法签字.那么攻 击者可以先择整数h,i,j,计算:
r / r h yi mod p
s / s(hr js)1 mod( p 1)
23
ELGAMAL数字签名体制
ElGamal算法既可用于数字签名,也可用于 加密,其安全性依赖于计算有限域上离散对 数的困难性上. ElGamal数字签名体制是由 T.ELGamal于1985年提出的,其变 体已经使用于DSS中,ElGamal数字签名体 制是Rabin签名体制的变形,也是使用了随 机数,称为随机化的数签名.ANSLX9 30-199X已经将ElGamal数字签名体 制采纳为签名的标准算法.
H(M )
r xs kH(M ) mod(p 1)
r xH(M ) ksmod(p 1)
g r (g x )s r H (M ) mod p g r (g x ) H (M ) r s mod p
r
35
H(M
安全性
• 下面讨论一下ElGamal数字签名体制的安全 1.不知道明文密文对的攻击,
2020/5/22
27
签名验证
接收方收到消息和签名结果(M,r,s)后,可以按下面 的步骤验证签名的有效性。
(1)如果1≤r≤p-1,那么继续后续步骤;否则,签名是 不合法。
(2)计算 v1 yrr s mod p
(3)计算 v2 g H (M ) mod p
M
|| M
h
Ekus (h(M ))
比较
hE
D
2020/5/22
kus
kup
14
举例
(1)选择素数p=5,q=11;n=pq=55(n,) = ( p -1)(q -1) = 40
(2)选择私钥e=3,由ed 1mod(n)计算私钥d=27
假设消息M=19 (3)签名生成:c = md modn = 1927 mod55 = 24 (4)签名验证: m = ce modn = 243 mod55 = 19
本签名体制中,要签字的消息空间为 z* p
,签名结果的值空间为
z
p
。z p1
2020/5/22
26
签名生成
给定要签名的消息为M,签名过程如下所述. (1)生成一个随机数 k, k z* p (2)计算 r : r g x mod p.
(3)计算 s : s (H (M ) xr)k 1 mod( p 1)
(4)比较 v和1 v如2 果 v,2 表v示1 签名有效;否则,签名无
效.
2020/5/22
28
签名验证证明
我们先对签名过程中等式 s : s (H (M ) xr)进k 行1 m处od理( p有1)
sk = (H (M ) xr)k 1k mod(p 1) ⇒ks = (H (M ) xr) mod(p 1) ⇒H (M ) = rx + ksmod(p 1)
(n) ( p ,1)然(p后可1以) 确定d。
(2)在不确定p和q的情况下,而直接确定(n。) 当
然同样可以计算 d = e 1 mo。d (n)
(3)在不确定(n的) 情况下,直接确定d。
2020/5/22
18
目前大部分RSA密码分析的讨论都集中于对
n进行素因子分解。给定n去确定 ,(n就) 等
2020/5/22
36
M / (hM is)(hr js)1 mod( p 1)
那么,M的/ 合法签字就是 (r ./ , s / )
如果攻击者要预先确定消息 M,/并得到该消息 的合法签名,他还是面临解决离散对数问题 。所以攻击者还是不能得逞。
2020/5/22
37
(3)如果攻击者知道了两个消息 (M1,, M及2 ) 其
2020/5/22
15
安全性分析
RSA算法的安全性就是基于大整数的因子分 解困难之上的,到目前为止其还是安全的。 要分析RSA算法的安全性,我们从攻击RSA 的角度来审视。总的来分,RSA算法攻击可 以区分为三类:
(1)蛮力攻击:它通过实验所有的可能私钥,来 达到目的。
(2)数字攻击:使用数学技巧,类似于分解n来 达到攻击目的。
(3) 签名是不可复制的:如果签名是从别的地方复 制的,任何人都可发现消息与签名的不一致,从而拒 绝签名。
2020/5/22
5
数字签名的特点
(4) 签名的消息是不可改变的:经过的签名不 能被篡改。 (5) 签名是不可抵赖的:签名者不能否认自己的 签名。
2020/5/22
6
数字签名与加密的区别
(1)在加密中:公钥加密,私钥解密。
2020/5/22
29
下面考察认证过程中的等式:
因为
v2 g xrksmod(p-1) mod p ⇒v2 (g x )r (g k )s mod p ⇒v2 yrr s mod p v1
所以可以说明该算法是成立的.
2020/5/22
30
举例
1.参数生成 取p=2357,g=2;2是Z * p 的一个生成元.选择一个
签名结果为(r,s)=(1490,1777)
2020/5/22
32
签名验证
3.签名验证 接收方在受到消息和签名结果之后,计算: (1)v1 = yrr s mod p = 1185 1490 ×1490 1777 mod 2357 = 1072 (2)v2 = g H (M ) mod p = 21463 mod 2357 = 1072
(3)签名为 (M , s)
2020/5/22
12
签名验证
(1)解密签名: h se modn
(2)比较h=H(M),如果等号相等,签名有效 ;否则签名无效。
2020/5/22
13
RSA签名过程图
图中h:表示Hah运算;M:消息;E:加密;D解 密;Kus :用户秘密钥; Kup :用户公开密钥。
2020/5/22
20
其他攻击
攻击RSA还有其他方法,如:迭代攻击、 选择明文攻击、公共模数攻击、低加密指 数攻击等。
2020/5/22
21
使用RSA的建议
(1)不可使用公共模数。 (2)明文的熵要尽可能的大。
(3)尽量使用散列函数。
2020/5/22
22
三、ELGAMAL数字签名体 制
2020/5/22
价于对n进行因子分解。给定e和n,使用目 前已知的攻击算法求出d的时间开销至少和因 子分解问题的时间开销一样大。所以我们通 常把因子分解的性能作为评价RSA安全性基 准。
2020/5/22
19
定时攻击
定时攻击被安全专家称为“有创意的攻击”。 因为该攻击与常规攻击方式完全不同,同时 其仅仅使用密文进行攻击。其提出者是密码 分析家P.C.Kocher,于1996年提出。Kocher 曾发明了一种办法,通过监视耗电量的微小 波动,可以推导出一张加密的智能卡中内嵌 的密钥。之后,他又因设计了一种能够攻破 RSA算法实现的技术而轰动一时,该方法其 不是通过正面攻击算法,而是通过观察系统 处理特定函数所花费的时间来寻找破解的蛛 丝马迹。
2020/5/22
16
(3)时间攻击:通过观察解密算法运行的时间来 达到目的。
其中抵抗蛮力攻击的方法,与其他加密系统是 一致的——使用大的密钥空间,使穷举法无 能为力。因此e和d位数的长度应该与实际应 用系统有综合的权衡。
2020/5/22
17
因子分解问题
从因子分解问题着手的使用数学手段攻击RSA的方 法可以区分为如下三类: (1)将n分解为两个素因子。这就是要计算
数x=1751作为私钥.再计算公钥 y:
y = g x mod p = 21751 mod 2357 = 1185
现在假定消息为M.H(M)=1463
2020/5/22
31
签名生成
2.签名过程: 选随机数k=Leabharlann Baidu529;计算:
r g k mod p 21529 mod2357 1490 k 1 mod(p 1) 1529-1 mod2356 245 s (H (M ) xr)k -1 mod(p 1) (146317511490) 245mod2356 1777
第六章 数字签名
一、数字签名的概念 二、RSA数字签名体制 三、ELGAMAL数字签名体制 四、其他数字签名 五、数字签名标准
2020/5/22
1
一、数字签名基本概念
2020/5/22 2
数字签名就是两个数学变换,首先发送 方对信息施以数学变换,接受方进行逆变 换,得到原始信息。发送方的变换就是签 名,通常是一种加密,对应的逆变换就是 对签名的认证,通常是一种解密措施。数 字签名体制一般包括两个部分:一是签名 部分,对消息M签名,可以记为S=SIG( K,M),K是签名者的私钥,是秘密的。 二是接收方的认证部分,可以记成VER( M,S,K)=(真,假)。
名过程中使用的等式。
如果我们把u、v、w分别对应不同次序的H(M)、r、s
就可以得到其他的ElGamal数字签名变体体制.
2020/5/22
34
ElGamal签名体制的6种变形
序号 u H(
1 M) H(
2 M)
3
S
4
S
2020/5/22
v
w
签名方程
认证等式
r
S
h(m) xr ksmod(p 1) g H (M ) (g x )r r s mod p
2020/5/22
3
• 数字签名示意图
公钥 算法 加 密
消息 原文
数字 签名
公钥 算法
消息 原文
解 密
比 较
消息 原文
2020/5/22
4
数字签名的特点
(1) 签名是可信的:任何人都可以方便的验证签名的 有效性.
(2) 签名是不可伪造的:除了合法的签名者外,任何其 它人伪造签名是困难的,这种困难性指计算上是不可 行的。
3.在电子政务中,必须提供身份认证服务、权限
控制服务、信息保密服务等,而这些都离不
开数字签名。
2020/5/22
8
二、RSA数字签名体制
2020/5/22
9
• RSA是以它的三个发明者Ron Rivest ,Adi Shamir和Leoard Adleman 的名字命名。该算法既可以用于加密, 也可以用于数字签名。RSA的安全性基 于大数分解的困难性,该算法已经经受 住了多年深入的密码分析,密码分析者 既不能证明也不能否认RSA的安全性, 这恰恰说明该算法有一定的可信度。
2020/5/22
24
构造参数
1.全局参数
P:是一个大的素数,确保在 z中p* 求解离
散对数在计算上的困难;
g:是 Zp中的乘法群 称为本原元素.
z的p*一个生成元,或
2.私钥参数
x:用户的私钥,
x
z
* p
2020/5/22
25
3.公钥参数
y:用户的公钥, y g x mod p
算法中常还使用一个随机数k.另外,在
h(m) xs krmod(p 1)
g H (M ) (g x )s r r mod p
s
r H( M)
r
s xr kH(M ) mod(p 1) g s (g x )r r H (M ) mod p
s xH (M ) krmod(p 1) g s (g x )H(M ) r r mod p
(2)数字签名中:签名者用私钥签名,接收者用 签名者的公钥验证。
2020/5/22
7
数字签名的应用
在网络应用中,凡是要解决伪造、抵赖、冒充 、篡改与身份鉴别的问题,都可以运用数字 签名来处理:
1.网上银行通过因特网向客户提供信息查询、 网上支付、信贷等,都需要数字签名。
2.在电子商务中,企业与企业之间,企业与消 费者之间,在网上进行的商业交换活动,也 需要数字签名。
2020/5/22
10
算法描述
• 参数选择
(1)令p, q是两个素数, n pq
(2)随机选择e,满足 1 e (n),那么私钥就
是(e,n)
(3)计算 d : ed = 1mod(n) ,私钥就是(d,n).
2020/5/22
11
签名过程 (1)计算消息的散列值H(M).
(2)加密散列值:s (H (M ))d mod n
因为v1 = v2 ,所以签名有效.
2020/5/22
33
ElGamal签名体制的变型
• ElGamal数字签名体制有很多变形,我们把签名过程中 的等式 s (H (M ) xr)k 1 mod( p 1)
修改为:u x v k wm(o称d(为p 签1名) 方程) 其中,如果 u H (M ),v,那r,么w 签 s名方程就是ElGamal签
由于攻击者不知道用户私钥X,所以要伪造 用户签名,需要先选取定一个r(或s),然后实 验求取另外一个值s(或r).都属于求解离散对 数问题. 2.已经知道明文密文对的攻击 攻击者知道(r,s)是消息M的合法签字.那么攻 击者可以先择整数h,i,j,计算:
r / r h yi mod p
s / s(hr js)1 mod( p 1)
23
ELGAMAL数字签名体制
ElGamal算法既可用于数字签名,也可用于 加密,其安全性依赖于计算有限域上离散对 数的困难性上. ElGamal数字签名体制是由 T.ELGamal于1985年提出的,其变 体已经使用于DSS中,ElGamal数字签名体 制是Rabin签名体制的变形,也是使用了随 机数,称为随机化的数签名.ANSLX9 30-199X已经将ElGamal数字签名体 制采纳为签名的标准算法.
H(M )
r xs kH(M ) mod(p 1)
r xH(M ) ksmod(p 1)
g r (g x )s r H (M ) mod p g r (g x ) H (M ) r s mod p
r
35
H(M
安全性
• 下面讨论一下ElGamal数字签名体制的安全 1.不知道明文密文对的攻击,