网站大量收购闲置独家精品文档,联系QQ:2885784924

信息安全基础CS-IS09.pptVIP

  1. 1、本文档共25页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
信息安全基础CS-IS09.ppt

第九章 散列算法 1 离散对数的散列函数算法 (Chaum–Van, Heijst–Pfitzmann散列算法) 设P是一个大素数,且q=(p-1)/2也为素数,取定FP(P 元有限域)中的一个本原元α,给定一个保密的指数λ, (λ,p–1)=1,于是β=αλ也为FP中的本原元。值 λ=logαβ不公开,计算这个对数值是计算上难处理的。 散列算法 h:{0,1,…,q-1}?{0,1,…,q-1}?Fp* 定义为 h(x1,x2)=αx1βx2(mod p) 下面要证明,散列算法h是强无碰撞的!相当于证明: 定理:若上述算法h的碰撞算法是可行的,那么计算离散 对数logαβ也是可行的。 证明: 假设我们给了一个碰撞h (x1, x2)=h (x3, x4)其中 (x1,x2)≠(x3, x4),则有下列同余式 αx1βx2≡αx3βx4(modp) 也即,αx1-x3?βx4-x2(mod p) 记 gcd(x4-x2,p-1)=d,易见d∈{1,2,q,p-1} ,原因是p–1=2q. 1°若d=1,此时可设 y= (x4–x2)–1(mod p–1) 有 β ? β(x4-x2)y(mod p) ? α(x1-x3)y(modp) 于是,计算出离散对数 logαβ=(x1–x3)y =(x1–x3)(x4–x2)–1 (mod p–1) 2°若d=2: 由p-1=2q, q为奇素数,必有gcd (x4-x2, q)=1, 设 y= (x4-x2)-1 (mod q) 于是 (x4-x2)* y≡1 (mod q) 也就是存在整数k使得(x4-x2)*y=k*q+1 所以β(x4-x2)*y?βk*q+1(mod p) ?(-1)kβ(mod p) (因为β(p-1)/2 ? -1(mod p)) ? ?β(modp) 这样 α(x1-x2)y ? β(x4-x2)*y(modp)? ±β(mod p) (i) 若α(x1-x3)y ? β(mod p) 则logαβ=(x1-x3)y (mod p-1) (ii)若α(x1-x3)y ? ?β(mod p) ? α(p-1)/2*β(mod p) ==α(x1-x3)y*α(p-1)/2 ? β(mod p) 所以,logαβ=(x1-x3)y+(p-1)/2(mod p-1) 可见,(i)、(ii)都是易计算的。 3°若d=q:因为0≤x2≤q-1,0≤x4≤q-1 有结果,gcd(x4-x2, p-1)=q是不可能的。 4°若d=p-1,此时仅当x4=x2时发生,此时有 αx1βx2?αx3βx2(mod p) αx1 ? αx3(mod p)=x1=x3 于是,(x1,x2)=(x3,x4)与假设矛盾,此种情况不可 能发生。 综上知,如果计算FP中离散对数logαβ是不可行的, 那么我们推出该算法h是强无碰撞的。 2 扩展的散列函数 我们已研究过具有有限定义域的散列函数。现在研究 如何把具有有限定义域的强无碰撞的散列函数扩展为具 有无限定义域的强无碰撞散列函数,这将使我们能签名 任意长度的消息。 假设h: (F2)m?(F2)t是一个强无碰撞的散列函数,这里 m≥t+1。我们的目的是想从h入手,构造无限定义域的散 列函数h*:X?(F2)t, 其中 首先考虑m≥t+2的情况: 符号:|x|表示x的长度。(比特数目) x||y表示比特串x和y的并。 假设|x|=n>m,(x为一段信息bit串) 则先将x表为x=x1||x2||……||xk 这里, |x1|=|x2|=…=|xk-1|=m-t-1 且 |xk|=m-t-1-d, 易见0≤d≤m-t-2 而 k=[n/(m-t-1)] (上整数部分) 下面给出扩展的散列函数h*的生成算法: 从h到h*算法,注意|x|=n>m,m≥t+2情形: x=x1||x2||……||xk; |x1|=|x2|=…=|xk-1|=m-t-1; |xk|=m-t-1-d 1°对i=1到k-1做yi=xi 2°yk=xk||od 3°设yk+1是d的二进制表示,(右边补0,使∣yk+1∣=m-t-1) 4°g1=h(ot+1||y1) 5°对i=1到k做gi+1=h(gi||1||yi+1) 6

您可能关注的文档

文档评论(0)

czy2014 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档