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

应用密码学——公钥密码体制.ppt

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

第6章非对称密码体制;§6-1概述;;公钥密码体制;;对公钥密码体制的要求;;注:1*.仅满足(1)、(2)两条的称为单向函数;第(3)条称为陷门性,δ称为陷门信息。

2*.当用陷门函数f作为加密函数时,可将f公开,这相当于公开加密密钥。此时加密密钥便称为公开密钥,记为Pk。f函数的设计者将δ保密,用作解密密钥,此时δ称为秘密密钥,记为Sk。由于加密函数是公开的,任何人都可以将信息x加密成y=f(x),然后送给函数的设计者〔当然可以通过不平安信道传送〕;由于设计者拥有Sk,他自然可以解出x=f-1(y)。

3*.单向陷门函数的第(2)条性质说明窃听者由截获的密文y=f(x)推测x是不可行的。;公开密钥密码系统的分析方法;公钥密码系统的应用类型;例子:简单数字签名;例子续:平安数字签名;;;一个素数q和一个整数a〔均公开〕,a是q的一个原根

用户A选择一个随机数XAq,并计算

类似地,用户B选择一个随机数XBq,并计算

每一方都对X的值保密存放而使得Y的值对于另一方可以公开得到

用户A计算密钥:

用户B计算密钥:

双方以K作为加、解密密钥,以对称密钥算法进行保密通信;原根〔本原元〕;;DH例子;§6-3RSA;明文空间P=密文空间C=Zn

密钥的生成

选择互异素数p,q,计算n=p*q,?(n)=(p-1)(q-1),选择整数e使(?(n),e)=1,1e?(n),计算d,使d=e-1mod?(n)

公钥Pk={e,n}

私钥Sk={d,n}

加密(用e,n)

明文:Mn密文:C=Me(modn)

解密(用d,n)

密文:C明文:M=Cd〔modn);假设Bob选择了p=7和q=17

那么n=119,?(n)=6×16=96=25×3,一个正整数e能用作加密指数,当且仅当e不能被2,3所整除

假设Bob选择e=5,那么用辗转相除法将求得:d=e-1?77(mod96)

Bob的解密密钥d={77,119},公开{5,119}

现假设Alice想发送明文19给Bob

注:RSA的平安性基于:加密函数ek(x)=xe(modn)是一个单向函数,所以对敌人来说求逆计算不可行。而Bob能解密的陷门是分解n=pq,知?(n)=(p-1)(q-1),从而解出解密私钥d;步骤:Bob为实现者

Bob寻找出两个大素数p和q

Bob计算出n=pq和?(n)=(p-1)(q-1).

Bob选择一个随机数e(0e?(n)),满足〔e,?(n)〕=1

Bob使用辗转相除法计???d=e-1(mod?(n))

Bob在目录中公开n和e作为她的公开钥

密码分析者攻击RSA体制的关键点在于如何分解n。假设分解成功使n=pq,那么可以算出φ(n)=〔p-1)(q-1),然后由公开的e,解出秘密的d。;要求:假设使RSA平安,p与q必为足够大的素数,使

分析者没有方法在有效时间内将n分解出来。建议选择

p和q大约是100位的十进制素数。模n的长度要求至少是

512比特。

为了抵抗现有的整数分解算法,对RSA模n的素因子

p和q还有如下要求:

(1)|p-q|很大,通常p和q的长度相同;

(2)p-1和q-1分别含有大素因子p1和q1

(3)gcd(p1-1,q1-1)应该很小。

为了提高加密速度,通常取e为特定的小整数,如EDI国际标准中规定e=216+1,ISO/IEC9796中甚至允许取e=3。这时加密速度一般比解密速度快10倍以上。;RSA密钥的生成;;例:p=47,q=61,?(n)=(47-1)(61-1)=2760时,SK=167是否为秘密密钥的候选者?

用欧氏算法计算:gcd(2760,167)=1即可证明。;用RSA算法加密与解密的过程:

例:明文=“RSAALGORITHM〞

(1)明文用数字表示空白=00,A=01,B=02,…,Z=26(两位十进制数表示)

1819010001120715180920211300

(2)利用加密变换公式C=mPKmodr,即C=mod2867=2756

=210+27+26+22+21+20

=1024+128+64+4+2+1

C(mod2867)

·1819128·181964·18194·18192·18191(mod2867)

=2756;选择两个大素数p

文档评论(0)

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

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

1亿VIP精品文档

相关文档