- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2-密码技术(3h)
数字签名技术Digital Signature 数字签名的含义 数字签名的简单定义:数字签名是使以数字形式存储 的明文信息经过特定密码变换生成密文,作为相应明 文的签名,使明文信息的接收者能够验证信息确实来 自合法用户,以及确认信息发送者身份。 数字签名的基本要求 签名接收者能容易地验证签字者对消息所做的数字签名; 任何人,包括签名接收者,都不能伪造签名者的签字; 发生争议时,如签字方否认签名,则可由第三方解决争议 数字签名与消息认证的区别 消息认证是使消息接收方验证消息发送者发送的内 容有无被修改过,对防止第三者破坏足够,但收发 双方有利害冲突时就无法解决纷争,需要更严格的 手段,即数字签名。 数字签名的基本形式 有两种数字签名的方法: --对消息整体的签字,将被签消息整体经过密码变换得到签字; --对消息摘要的签字,附在被签消息之后,或嵌在某一特定位置上作一段签字图样。 两类数字签名: --确定性数字签名,明文与签名一一对应; --概率性数字签名,一个明文可以有多个合法签名,每次都不一样。 基于非对称密码体制的数字签名 RSA签名算法 (确定性) ElGamal算法 (概率性) RSA签名算法 密钥初始化:给定n = pq,p和q是大素数,ed mod φ(n) = 1,公开密钥为(n,e),秘密密钥为(p,q,d) 加密:m ∈[0, n-1],gcd(m, n) = 1, 则c = me mod n 解密:m = cd mod n = (me mod n )d mod n = m ed mod n = m 签名:s = md mod n 验证:m = se mod n = (md mod n )e mod n = m ed mod n = m 例:n = 55 = 11x5,φ(n) = 40,选d = 11,则e = 11。 若对m = 3签字,则签名s = 311 mod 55 = 47. 验证: m = se mod n = 4711 mod 55 = 3. n = 65,φ(n) = 48,选d = 5,则e = 29,若m = 3, 则签名s = md mod n = 35 mod 65 = 48. 验证: m = se mod n = 4829 mod 65 = 3. 用数字签名和加密同时实现报文的秘密和认证的传送 设有用户A和B,A: nA, eA, dA, EA, DA, B: nB, eB, dB, EB, DB, 数据从A→B: Secrecy: c = EB(m) = meB mod nB m = DB(c) = cdB mod nB = meBdB mod nB Authenticity: c = DA(m) = mdA mod nA m = EA(c) = ceA mod nA = meAdA mod nA = m Both secrecy and authenticity: c = EB(DA(m)) = (mdA mod nA)eB mod nB or: c = DA(EB(m)) = (meB mod nB)dA mod nA m = EA(DB(c)) = EA(DB(EB(DA(m)))) = (((mdA mod nA)eB mod nB)dB mod nB )eA mod nA = m or: m = DB(EA(c)) = DB(EA(DA(EB(m)))) = (((meB mod nB)dA mod nA)eA mod nA )dB mod nB = m 注意:1. nAnB,则A:c = EB(DA(m)), B:m = EA(DB(c)) = EA(DB(EB(DA(m)))) 2. nB nA,则A:c = DA(EB(m)), B:m = DB(EA(c)) = DB(EA(DA(EB(m)))) 例:(nA, eA)=(15, 3),(nB, eB)=(35, 5),A发送m = 11给B,要求 既保密又认证地传送。 ElGamal算法 . ElGamal算法既可用于数字签名又可用于加密,其安全性
文档评论(0)