杨波《现代密码学(第2版)》07 PPT课件.ppt

杨波《现代密码学(第2版)》07 PPT课件.ppt

  1. 1、本文档共62页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
杨波《现代密码学(第2版)》07 PPT课件

7.2.2 数字签字算法DSA DSA是在ElGamal和Schnorr两个签字方案(见下一节)的基础上设计的,其安全性基于求离散对数的困难性。 算法描述如下: (1) 全局公开钥 p:满足2L-1p2L 的大素数,其中512≤L≤1024且L是64的倍数。 q:p-1的素因子,满足2159q2160 ,即q长为160比特。 g:g≡h(p-1)/q mod p,其中h是满足1hp-1且使得h(p-1)/q mod p1的任一整数。 (2) 用户秘密钥x x是满足0xq的随机数或伪随机数。 (3) 用户的公开钥y y≡gx mod p。 (4) 用户为待签消息选取的秘密数k k是满足0kq的随机数或伪随机数。 (5) 签字过程 用户对消息M的签字为(r, s), 其中r≡(gk mod p) mod q, s≡[k-1(H(M)+xr)] mod q,H(M)是由SHA求出的杂凑值。 (6) 验证过程 设接收方收到的消息为M′,签字为(r′,s′)。计算 w≡(s′)-1 mod q, u1≡[H(M′)w] mod q u2≡r′ w mod q, v≡[(gu1yu2) mod p] mod q 检查 ,若相等,则认为签字有效。这是因为若(M′,r′,s′) = (M, r, s),则 算法的框图如图7.3所示,其中的4个函数分别为 s≡f1[H(M), k, x, r, q]≡[k-1(H(M)+xr)] mod q r =f2(k, p, q, g)≡(gk mod p) mod q w =f3(s′,q)≡(s′)-1 mod q v =f4(y, q , g, H(M′), w, r′) ≡[(g(H(M′)w) mod qyr′w mod q) mod p] mod q 图7.3 DSA的框图 由于离散对数的困难性,敌手从r恢复k或从s恢复x都是不可行的。 还有一个问题值得注意,即签字产生过程中的运算主要是求r的模指数运算r=(gk mod p) mod q,而这一运算与待签的消息无关,因此能被预先计算。事实上,用户可以预先计算出很多r和k-1以备以后的签字使用,从而可大大加快产生签字的速度。 7.3 其他签字方案 7.3.1 基于离散对数问题的数字签字体制 基于离散对数问题的数字签字体制是数字签字体制中最为常用的一类,其中包括ElGamal签字体制、DSA签字体制、Okamoto签字体制等。 1. 离散对数签字体制 ElGamal、DSA、Okamoto等签字体制都可归结为离散对数签字体制的特例。 (1) 体制参数 p:大素数; q:p-1或p-1的大素因子; g:g∈RZ*p,且gq≡1(mod p),其中g∈R Z*p表示g是从Z*p中随机选取的,其中Z*p=Zp-{0}; x:用户A的秘密钥,1xq; y:用户A的公开钥,y≡gx(mod p)。 (2) 签字的产生过程 对于待签字的消息m,A执行以下步骤: ① 计算m的杂凑值H(m)。 ② 选择随机数k:1kq,计算r≡gk(mod p)。 ③ 从签字方程ak≡b+cx(mod q)中解出s。方程的系数a、b、c有许多种不同的选择方法,表7.1给出了这些可能选择中的一小部分,以(r, s)作为产生的数字签字。(见表7.1) (3) 签字的验证过程 接收方在收到消息m和签字(r, s)后,可以按照以下验证方程检验: 2. ElGamal签字体制 (1) 体制参数 p:大素数; g:Z*p的一个生成元; x:用户A的秘密钥,x∈RZ*p; y:用户A的公开钥,y≡gx(mod p)。 (2) 签字的产生过程 对于待签字的消息m,A执行以下步骤: ① 计算m的杂凑值H(m)。 ② 选择随机数k:k∈Z*p,计算r≡gk(mod p)。 ③ 计算s≡(H(m)-xr)k-1(mod p-1)。 以(r, s)作为产生的数字签字。 (3) 签字验证过程 接收方在收到消息m和数字签字(r, s)后,先计算H(m),并按下式验证: 正确性可由下式证明: 3. Schnorr签字体制 (1) 体制参数 p:大素数,p≥2512; q:大素数,q|(p-1),q≥2160; g:g∈RZ*p,且gq≡1(mod p); x:用户A的秘密钥,1xq; y:用户A的公开钥,y≡gx(mod p)。 (2) 签字的产生过程 对于待签字的消息m,A执行以下步骤: ① 选择随机数k:1kq,计算r≡gk(mod p)。 ② 计算e=H(r, m)。 ③ 计算s≡xe+k(mod q)。 以(e, s)作为产生的数字签字。 (3) 签字验证过程 接收方在收到消息m和数字签字(e, s)后,先计算r′≡g

文档评论(0)

gz2018gz + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档