密码学概述-数字签名
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(3)接收者能验证签名,而任何其他人都不能 伪造签名;
实现:签名必须与特定的公开信息相对应,
使收方能够验证;签名应与签名者独有的秘密
信息密切相关,使其他人不能伪造。
(4)当双方关于签名的真伪发生争执时,一个
法官或第三方能解决双方之间发生的争执。
实现:签名对应的验证密钥应由可信的第 三方确认并公布。当发生争执时,靠法律解决 争端。
然后将既签名,又加密了的 c 发送给用户B ;
y ( 3)B收到c后,先进行变换: c mod N A
eA
m 再用自己的保密密钥作变换: y mod N B
dB
从而验证签名来自A。
二、RSA数字签名方案
例: 设用户A,B 要应用RSA进行签名加密,用户A
的公开密钥为(39,5),用户B的公开密钥为(55, 7), 求用户A 向用户B 传送的对消息 m = 6 的保密签名。 解: 因为NA =39 < 55 = NB ,所以对消息 m = 6 应该先签名,后加密。 此时 NA=pA×qA =3×13=39, eA=5,因此
二、RSA数字签名方案
RSA数字签名方案
记用户A的参数为(NA,eA, d A) ,用户B的
参数为(NB,eB, d B),E为加密算法,D为脱密 算法。 (一)实现保密通信的RSA算法
加密:
A
c m mod N B
eB
B
B
B 脱密: 计算 : c d mod N B m mod N B
二、RSA数字签名方案
名。
二、RSA数字签名方案
(2) 如果用户A对文件x1和文件x2的签名分别为y1和 y2,由于(x1x2)dmodn= [(x1dmodn)(x2dmodn)]modn 故任何第三方知道x1,x2,y1,y2,都可伪造出用户A对
文件x1x2modn的签名y1y2modn。
注意: 文件x1x2modn 是哪个值伪造者无法控制。
S计算EA(x)记为m1;
若m=m1,则签名来自A,否则签名是伪造的。
二、RSA数字签名方案
(2)当NA>NB时(c=DA(EB(m))) B向S提供:m和c=DA(EB(m)); S计算EB(m)=x;
计算EA(c)=x1;(实际上EA(c)=EB(m))
若x=x1,则签名来自A,否则签名是伪造的。
ElGamal密码系统
• ElGamal算法既能用于数据加密也能用于数字签名,其安全性依赖于计算有限域上离散
对数这一难题。
(1)首先选择一个素数p,两个随机数, g 和x,(g, x < p,) 计算 y = gx ( mod p ),则其公钥为 y, g 和p。私钥是x。g和p可由一组 用户共享。 (2)被签信息为M,首先选择一个随机数k, k与 p - 1互质,计算 a = gk ( mod p ) 再用扩展 Euclidean 算法对下面方程求解b: M = xa + kb ( mod p - 1 ) 签名就是( a, b )。随机数k须丢弃。 验证时要验证下式: ya * ab ( mod p ) = gM ( mod p ) 同时一定要检验是否满足1<= a < p。否则签名容易伪造。
1、当NA<NB时,先签名,后加密 得到:
(1)用户A先用自己的保密密钥dA对消息m进行签名,
y md A mod N A
(2)A再用用户B的公开密钥eB 对签名y进行加密, 得到: c y eB mod N B 然后将既签名,又加密了的 c 发送给用户B ;
y ( 3)B收到c后,先进行变换: c mod N B
( N A ) lcm( pA 1, qA 1) lcm(2,12) 12
eA=5 与 ( N ) 12 互素,故可解模方程 5d A 1(mod12),
二、RSA数字签名方案
利用扩展的欧几里德算法计算
12=5×2 + 2 2 =12 - 5×2
5=2×2 + 1
1 =5 - 2×2
(2)A计算:
r ( g k mod p) mod q s k 1 ( H (m) xr) mod q
二、RSA数字签名方案
(四)RSA数字签名的缺点 (1) 利用用户A的签名识别密钥ke,任意给定y,任何
人都可计算出:x=yemodn,因而可以伪造对消息x
的签名y。
注意:文件x是哪个值,伪造者无法控制。虽然可伪
造(文件—签名)对,但这里的文件 x 可能是毫无
意义的随机数。第三者无法伪造出想要的文件的签
(B) 对一个文件的签名不能复制或篡改成对另
一个文件的签名; (4) 可仲裁性: 出现争议时第三方可仲裁。
一、数字签名概述
仲裁的内容:
(1) 签名者是否在抵赖,否认签名;
(2) 验证者是否在欺诈,伪造签名。
签名的实现方式:
就是在原文件上追加一定的笔迹信息,并使
二者形成一个整体。 对电子文档的签名也应达到同样的目的。
三、数字签名标准算法DSA
(一)DSA算法的安全性基础:
有限域上离散对数问题的难解性。
三、数字签名标准算法DSA
(二) DSA算法 1、 DSA参数选取
(1)选取大素数p;(p是L比特的大素数,L至少
为512比特,并且是64的倍数) (2)选取素数q;(q是p-1 的一个160比特的素数因 子)
一、数字签名概述
2、数字签名的简单定义
数字签名是使以数字形式存储的文件信息经 过特定密码变换生成数据,作为相应文件的签名, 使文件信息的接收者能够验证信息确实来自合法 用户,以及确认信息发送者身份。
形象地说:它通常是跟随在正文数据后的 “尾巴”,别人可以通过“尾巴”证明这段正文 确实是作者的“原著”,却创造不出和作者相同 的 “作品” ,而作者不能抵赖,说那段正文不是 他的著作。
1= 5 - 2×(12 - 5×2) = 5×5 - 12 ×2 可得
5 5 1 (mod12) ,即 dA=5,
二、RSA数字签名方案
第一步,用户A 先用自己的保密密钥 dA =5 对消息 m = 6 进行签名,得到:
65 15 (mod39)
第二步,用户A再用用户B的公开密钥 eB =7 对签名15进行加密,得到:
一、数字签名概述
3、数字签名应满足的条件
(1)签名应与文件是一个不可分割的整体 ;
实现:对消息进行某种变换完成签名;使签名
是报文或待签名的文件的函数。
(2)签名者事后不能否认自己的签名;
实现:签名是通过发方所独有的秘密信息来完
成,并且该秘密信息对应惟一公开的验证信息,使
签名者不能抵赖自己的签名。
一、数字签名概述
(二)实现数字签名的RSA算法
A的签名:
A
c md A mod N A
A
B
B 验证: 计算 : c e mod N A m mod N A
将m和c一起发送,作为签名(m,c)。 由于与eA 相对应的dA是A所独有,因此c一定来 自A,又因为eA是公开的,则m不能保密。
二、RSA数字签名方案
(4)C把加密的消息包传递给B (5) B用KB解密消息包,他能读A所发的消息和C的证书,证明消息 来自A.
• (2) 利用特殊的公钥密码算法实现。 • 并非所有的公钥密码算法都能实现 数字签名,只有满足
Dkd ( Eke ( x)) Eke ( Dkd ( x)) x
• 的公钥密码算法,才能实现数字签名。 • 其中D是脱密算法,E是加密算法。 (3)利用专门设计的数字签名算法实现。
(三)RSA签名与加密的结合
由于RSA算法满足E(D(m))=D(E(m))=m,因
此可实现带有签名的保密通信。 如果要实现带有签名的保密通信,只需将两 个用户的加、脱密变换结合在一起即可。由于在 变换过程中用到两个模数,为了使逆变换唯一,
பைடு நூலகம்
需区分两个模数的大小,具体处理如下:
二、RSA数字签名方案
三、数字签名标准算法DSA
(3)选取整数 g=h(p-1)/qmodp;(g>1;其中1<h<p-1)
(4)随机选取整数x;(0<x<q) (5)计算y=gxmodp; 公开参数:p,q,g;公开密钥:y;保密密钥:x
三、数字签名标准算法DSA
2、签名过程
设用户A要对消息 m 进行签名,则:
(1) A秘密选取一个小于q的随机数k;
一、数字签名概述
基于公钥算法设计的数字签名
设计方法:用户A将其私钥kd作为其签名密钥, 将对应的公钥ke作为其签名识别密钥; 用户A对文件m的签名过程: (1) 利用签名密钥kd对m执行脱密变换D,得到 签名 sign(m) Dkd (m) ; (2) 签名者将文件m及其签名sign(m)一起公布。
第七章 认证技术及 数字签名
数字签名概述
RSA数字签名方案 数字签名标准算法DSA
1
2
3
信息认证技术 • 信息认证技术。通过数字签名、信息摘要 以及身份认证理论和技术,实现信息完整 性检测;保护信息的抗否认性。利用知识、 推理、生物特征和认证的可信协议及模型 完成实体的身份认证,防止身份的假冒。
• 认证技术应用于: • 一:验证信息的发送者是否合法性,也即 实体认证或身份认证,包括信源、信宿的 认证和识别。 • 二:验证信息的完整性即数据在存储、传 输中是否被篡改、重放或延迟等。
二、RSA数字签名方案
(3) 对长文件的签名
若采取电码本方式逐块签名,则 (A)签名变长,签名速度慢; (B)会遭遇替换攻击(重新组合和替换文件块)。
解决方案: 先将文件压缩成一个摘要,再对
摘要签名。
二、RSA数字签名方案
数字签名的一般过程
报文
杂凑函数 报文摘要
签名者 的身份
报文
对摘要的签名
公布
认证的内容和目的
• ������ 实体(身份)鉴别——身份认证
• ������ 完整性鉴别——完整性认证 • ������ 时序性鉴别——时序性认证
一、数字签名概述
1、手书签名的目的和作用
(1) 表示签名者对消息的认可;
(2) 他人可识别和验证出是谁的签名;
(3) 他人无法伪造和更改签名,即
(A) 无法凭空造出一个签名;
一、数字签名概述
用户B对签名的验证过程:
利用用户A的签名识别密钥ke对签名sign(m) 执行加密变换E,得到 Eke (sign(m)) Eke ( Dkd (m)) 若它与m相等,则判断Sign(m)是用户A对文 件m的签名;
否则,Sign(m)不是用户A对文件m的签名。
仲裁: 与签名识别过程相同。
dB
再用A的公开密钥作变换:m y mod N A
eA
从而验证签名来自A。
二、RSA数字签名方案
2、当NA>NB时,先加密,后签名 (1)用户A先用B的公开密钥eB对消息m进行加密, 得到: y meB mod N B (2) A再用自己的保密密钥dA对y进行签名,
d 得到: c y A mod N A
157 5 (mod55)
所以用户A 向用户 B 传送的对消息 m = 6 的 保密签名为 5
二、RSA数字签名方案
3、仲裁问题 当A、B之间因A的签名的真实性问题发生争执 时,可通过可信的第三方S,用如下方法解决。 (1)当NA<NB时(c= EB ( DA(m))
B向S提供:m和x=DB(c);实际上DB(c)=DA(m)
生成一个签名,并公布恰当信息使第三方能够 验证签名。
三、数字签名标准算法DSA
1991年8月,美国国家标准技术研究所(NIST)
提出了DSA(Digital Signature Algorithm),将其用 作数字签名标准DSS(Digital Signature Standard)。 1994年5月公布DSA算法; 1994年12月DSA算法被正式采纳。
一、数字签名概述
4、如何达到签名的目的
(1) 签名实现:对消息进行某种变换完成签名;
(2) 识别和验证: 利用签名者的公开信息(签名 识别密钥)和文件的公开性; (3)签名不能伪造: 签名应与签名者独有的秘密 信息(签名密钥)密切相关;
(4) 可仲裁性:靠法律解决争端。签名者的签名
识别密钥应由可信的第三方确认并公布。 法律介入:在发证中心和认证中心(仲裁中心)认 可、参与下解决争端。
一、数字签名概述
5、数字签名方案的分类
(1) 用对称钥密码算法进行数字签名和验证
与B共享密钥KB.签名和验证过程如下:
(1)A用KA加密好准备给B的消息,并将其发送给C; (2) C用KA解密消息
第三方C是可信的仲裁者,能同时与A,B通信,与A共享密钥KA
(3) C把解密的消息和他收到的A消息的声明,一起用KB 加密。
实现:签名必须与特定的公开信息相对应,
使收方能够验证;签名应与签名者独有的秘密
信息密切相关,使其他人不能伪造。
(4)当双方关于签名的真伪发生争执时,一个
法官或第三方能解决双方之间发生的争执。
实现:签名对应的验证密钥应由可信的第 三方确认并公布。当发生争执时,靠法律解决 争端。
然后将既签名,又加密了的 c 发送给用户B ;
y ( 3)B收到c后,先进行变换: c mod N A
eA
m 再用自己的保密密钥作变换: y mod N B
dB
从而验证签名来自A。
二、RSA数字签名方案
例: 设用户A,B 要应用RSA进行签名加密,用户A
的公开密钥为(39,5),用户B的公开密钥为(55, 7), 求用户A 向用户B 传送的对消息 m = 6 的保密签名。 解: 因为NA =39 < 55 = NB ,所以对消息 m = 6 应该先签名,后加密。 此时 NA=pA×qA =3×13=39, eA=5,因此
二、RSA数字签名方案
RSA数字签名方案
记用户A的参数为(NA,eA, d A) ,用户B的
参数为(NB,eB, d B),E为加密算法,D为脱密 算法。 (一)实现保密通信的RSA算法
加密:
A
c m mod N B
eB
B
B
B 脱密: 计算 : c d mod N B m mod N B
二、RSA数字签名方案
名。
二、RSA数字签名方案
(2) 如果用户A对文件x1和文件x2的签名分别为y1和 y2,由于(x1x2)dmodn= [(x1dmodn)(x2dmodn)]modn 故任何第三方知道x1,x2,y1,y2,都可伪造出用户A对
文件x1x2modn的签名y1y2modn。
注意: 文件x1x2modn 是哪个值伪造者无法控制。
S计算EA(x)记为m1;
若m=m1,则签名来自A,否则签名是伪造的。
二、RSA数字签名方案
(2)当NA>NB时(c=DA(EB(m))) B向S提供:m和c=DA(EB(m)); S计算EB(m)=x;
计算EA(c)=x1;(实际上EA(c)=EB(m))
若x=x1,则签名来自A,否则签名是伪造的。
ElGamal密码系统
• ElGamal算法既能用于数据加密也能用于数字签名,其安全性依赖于计算有限域上离散
对数这一难题。
(1)首先选择一个素数p,两个随机数, g 和x,(g, x < p,) 计算 y = gx ( mod p ),则其公钥为 y, g 和p。私钥是x。g和p可由一组 用户共享。 (2)被签信息为M,首先选择一个随机数k, k与 p - 1互质,计算 a = gk ( mod p ) 再用扩展 Euclidean 算法对下面方程求解b: M = xa + kb ( mod p - 1 ) 签名就是( a, b )。随机数k须丢弃。 验证时要验证下式: ya * ab ( mod p ) = gM ( mod p ) 同时一定要检验是否满足1<= a < p。否则签名容易伪造。
1、当NA<NB时,先签名,后加密 得到:
(1)用户A先用自己的保密密钥dA对消息m进行签名,
y md A mod N A
(2)A再用用户B的公开密钥eB 对签名y进行加密, 得到: c y eB mod N B 然后将既签名,又加密了的 c 发送给用户B ;
y ( 3)B收到c后,先进行变换: c mod N B
( N A ) lcm( pA 1, qA 1) lcm(2,12) 12
eA=5 与 ( N ) 12 互素,故可解模方程 5d A 1(mod12),
二、RSA数字签名方案
利用扩展的欧几里德算法计算
12=5×2 + 2 2 =12 - 5×2
5=2×2 + 1
1 =5 - 2×2
(2)A计算:
r ( g k mod p) mod q s k 1 ( H (m) xr) mod q
二、RSA数字签名方案
(四)RSA数字签名的缺点 (1) 利用用户A的签名识别密钥ke,任意给定y,任何
人都可计算出:x=yemodn,因而可以伪造对消息x
的签名y。
注意:文件x是哪个值,伪造者无法控制。虽然可伪
造(文件—签名)对,但这里的文件 x 可能是毫无
意义的随机数。第三者无法伪造出想要的文件的签
(B) 对一个文件的签名不能复制或篡改成对另
一个文件的签名; (4) 可仲裁性: 出现争议时第三方可仲裁。
一、数字签名概述
仲裁的内容:
(1) 签名者是否在抵赖,否认签名;
(2) 验证者是否在欺诈,伪造签名。
签名的实现方式:
就是在原文件上追加一定的笔迹信息,并使
二者形成一个整体。 对电子文档的签名也应达到同样的目的。
三、数字签名标准算法DSA
(一)DSA算法的安全性基础:
有限域上离散对数问题的难解性。
三、数字签名标准算法DSA
(二) DSA算法 1、 DSA参数选取
(1)选取大素数p;(p是L比特的大素数,L至少
为512比特,并且是64的倍数) (2)选取素数q;(q是p-1 的一个160比特的素数因 子)
一、数字签名概述
2、数字签名的简单定义
数字签名是使以数字形式存储的文件信息经 过特定密码变换生成数据,作为相应文件的签名, 使文件信息的接收者能够验证信息确实来自合法 用户,以及确认信息发送者身份。
形象地说:它通常是跟随在正文数据后的 “尾巴”,别人可以通过“尾巴”证明这段正文 确实是作者的“原著”,却创造不出和作者相同 的 “作品” ,而作者不能抵赖,说那段正文不是 他的著作。
1= 5 - 2×(12 - 5×2) = 5×5 - 12 ×2 可得
5 5 1 (mod12) ,即 dA=5,
二、RSA数字签名方案
第一步,用户A 先用自己的保密密钥 dA =5 对消息 m = 6 进行签名,得到:
65 15 (mod39)
第二步,用户A再用用户B的公开密钥 eB =7 对签名15进行加密,得到:
一、数字签名概述
3、数字签名应满足的条件
(1)签名应与文件是一个不可分割的整体 ;
实现:对消息进行某种变换完成签名;使签名
是报文或待签名的文件的函数。
(2)签名者事后不能否认自己的签名;
实现:签名是通过发方所独有的秘密信息来完
成,并且该秘密信息对应惟一公开的验证信息,使
签名者不能抵赖自己的签名。
一、数字签名概述
(二)实现数字签名的RSA算法
A的签名:
A
c md A mod N A
A
B
B 验证: 计算 : c e mod N A m mod N A
将m和c一起发送,作为签名(m,c)。 由于与eA 相对应的dA是A所独有,因此c一定来 自A,又因为eA是公开的,则m不能保密。
二、RSA数字签名方案
(4)C把加密的消息包传递给B (5) B用KB解密消息包,他能读A所发的消息和C的证书,证明消息 来自A.
• (2) 利用特殊的公钥密码算法实现。 • 并非所有的公钥密码算法都能实现 数字签名,只有满足
Dkd ( Eke ( x)) Eke ( Dkd ( x)) x
• 的公钥密码算法,才能实现数字签名。 • 其中D是脱密算法,E是加密算法。 (3)利用专门设计的数字签名算法实现。
(三)RSA签名与加密的结合
由于RSA算法满足E(D(m))=D(E(m))=m,因
此可实现带有签名的保密通信。 如果要实现带有签名的保密通信,只需将两 个用户的加、脱密变换结合在一起即可。由于在 变换过程中用到两个模数,为了使逆变换唯一,
பைடு நூலகம்
需区分两个模数的大小,具体处理如下:
二、RSA数字签名方案
三、数字签名标准算法DSA
(3)选取整数 g=h(p-1)/qmodp;(g>1;其中1<h<p-1)
(4)随机选取整数x;(0<x<q) (5)计算y=gxmodp; 公开参数:p,q,g;公开密钥:y;保密密钥:x
三、数字签名标准算法DSA
2、签名过程
设用户A要对消息 m 进行签名,则:
(1) A秘密选取一个小于q的随机数k;
一、数字签名概述
基于公钥算法设计的数字签名
设计方法:用户A将其私钥kd作为其签名密钥, 将对应的公钥ke作为其签名识别密钥; 用户A对文件m的签名过程: (1) 利用签名密钥kd对m执行脱密变换D,得到 签名 sign(m) Dkd (m) ; (2) 签名者将文件m及其签名sign(m)一起公布。
第七章 认证技术及 数字签名
数字签名概述
RSA数字签名方案 数字签名标准算法DSA
1
2
3
信息认证技术 • 信息认证技术。通过数字签名、信息摘要 以及身份认证理论和技术,实现信息完整 性检测;保护信息的抗否认性。利用知识、 推理、生物特征和认证的可信协议及模型 完成实体的身份认证,防止身份的假冒。
• 认证技术应用于: • 一:验证信息的发送者是否合法性,也即 实体认证或身份认证,包括信源、信宿的 认证和识别。 • 二:验证信息的完整性即数据在存储、传 输中是否被篡改、重放或延迟等。
二、RSA数字签名方案
(3) 对长文件的签名
若采取电码本方式逐块签名,则 (A)签名变长,签名速度慢; (B)会遭遇替换攻击(重新组合和替换文件块)。
解决方案: 先将文件压缩成一个摘要,再对
摘要签名。
二、RSA数字签名方案
数字签名的一般过程
报文
杂凑函数 报文摘要
签名者 的身份
报文
对摘要的签名
公布
认证的内容和目的
• ������ 实体(身份)鉴别——身份认证
• ������ 完整性鉴别——完整性认证 • ������ 时序性鉴别——时序性认证
一、数字签名概述
1、手书签名的目的和作用
(1) 表示签名者对消息的认可;
(2) 他人可识别和验证出是谁的签名;
(3) 他人无法伪造和更改签名,即
(A) 无法凭空造出一个签名;
一、数字签名概述
用户B对签名的验证过程:
利用用户A的签名识别密钥ke对签名sign(m) 执行加密变换E,得到 Eke (sign(m)) Eke ( Dkd (m)) 若它与m相等,则判断Sign(m)是用户A对文 件m的签名;
否则,Sign(m)不是用户A对文件m的签名。
仲裁: 与签名识别过程相同。
dB
再用A的公开密钥作变换:m y mod N A
eA
从而验证签名来自A。
二、RSA数字签名方案
2、当NA>NB时,先加密,后签名 (1)用户A先用B的公开密钥eB对消息m进行加密, 得到: y meB mod N B (2) A再用自己的保密密钥dA对y进行签名,
d 得到: c y A mod N A
157 5 (mod55)
所以用户A 向用户 B 传送的对消息 m = 6 的 保密签名为 5
二、RSA数字签名方案
3、仲裁问题 当A、B之间因A的签名的真实性问题发生争执 时,可通过可信的第三方S,用如下方法解决。 (1)当NA<NB时(c= EB ( DA(m))
B向S提供:m和x=DB(c);实际上DB(c)=DA(m)
生成一个签名,并公布恰当信息使第三方能够 验证签名。
三、数字签名标准算法DSA
1991年8月,美国国家标准技术研究所(NIST)
提出了DSA(Digital Signature Algorithm),将其用 作数字签名标准DSS(Digital Signature Standard)。 1994年5月公布DSA算法; 1994年12月DSA算法被正式采纳。
一、数字签名概述
4、如何达到签名的目的
(1) 签名实现:对消息进行某种变换完成签名;
(2) 识别和验证: 利用签名者的公开信息(签名 识别密钥)和文件的公开性; (3)签名不能伪造: 签名应与签名者独有的秘密 信息(签名密钥)密切相关;
(4) 可仲裁性:靠法律解决争端。签名者的签名
识别密钥应由可信的第三方确认并公布。 法律介入:在发证中心和认证中心(仲裁中心)认 可、参与下解决争端。
一、数字签名概述
5、数字签名方案的分类
(1) 用对称钥密码算法进行数字签名和验证
与B共享密钥KB.签名和验证过程如下:
(1)A用KA加密好准备给B的消息,并将其发送给C; (2) C用KA解密消息
第三方C是可信的仲裁者,能同时与A,B通信,与A共享密钥KA
(3) C把解密的消息和他收到的A消息的声明,一起用KB 加密。