第4章-公钥密码.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章 公钥密码;对称算法;对称算法不适合于大规模使用;密钥交换协议;Diffie-Hellman密钥交换;非对称算法/公钥算法;非对称算法/公钥算法;*;*;基于公钥的加密过程;1.1 公钥密码体制简介;公钥密码的理论基础: 陷门单向函数;公钥密码算法应满足以下要求: ① 接收方B产生密钥对(PKB和SKB)在计算上是容易的。 ② 发方A对消息m加密以产生密文c,即 c=EPKB[m] 在计算上是容易的。 ③ 收方B用自己的秘密钥对c解密,即m=DSKB[c]在计算上是容易的。;④ 敌手由PKB求SKB在计算上是不可行的。 ⑤ 敌手由密文c和PKB恢复明文m在计算上是不可行的。 ;(1)大整数分解问题(factorization problem) 若已知两个大素数p和q,求n = pq是容易的,只需一次乘法运算,而由n,求p和q则是困难的,这就是大整数分解问题。 (2)离散对数问题(discrete logarithm problem) 给定一个大素数p,p?1含另一大素数因子q,则可构造一个乘法群,它是一个p?1阶循环群。设g是的一个生成元,1<g<p?1。已知x,求y=gx mod p是容易的,而已知y、g、p,求x使得y=gx mod p成立则是困难的,这就是离散对数问题。 ;;;;4.2 RSA密码算法;;一个数学题;(1). 费尔玛定理 定理1 (Fermat)若p是素数,a是正整数且gcd(a, p)=1,则ap-1≡1 mod p。 ;例如: 由21=3×7,得φ(21)=φ(3)×φ(7)=2×6=12。;4.3.1 算法描述-----密钥生成;加密 将明文分组,各组对应的十进制数mn, 计算 c =E(m)≡ me mod n 解密 m = D(c)≡ cd mod n;RSA算法解密过程的正确性。 证明: 由加密过程知c≡me mod n,所以 cd mod n≡med mod n ≡mkφ(n)+1 mod n;由gcd(m,q)=1及Euler定理得mφ(q)≡1 mod q,所以 mkφ(q)≡1 mod q, [mkφ(q)]φ(p)≡1 mod q, mkφ(n)≡1 mod q 因此存在一整数r,使得mkφ(n)=1+rq,两边同乘以m=cp得 mkφ(n)+1=m+rcpq=m+rcn 即mkφ(n)+1≡m mod n,所以cd mod n≡m。(证毕);例: p=7, q=17. n=p×q=119, φ(n)=(p-1)(q-1)=96。取e=5,满足1eφ(n),且gcd(φ(n),e)=1。 确定满足d·e=1 mod 96且小于96的d,因为77×5=385=4×96+1,故d=77。 因此公钥为{5, 119},私钥为{77, 119}。 设明文m=19,则由加密过程得密文为 c≡195 mod 119≡2476099 mod 119≡66 解密为 6677mod 119≡19;1. RSA的加密与解密过程 RSA的加密、解密过程都为求一个整数的整数次幂,再取模。如果按其含义直接计算,则中间结果非常大,有可能超出计算机所允许的整数取值范围。而用模运算的性质: (a×b) mod n=[(a mod n)×(b mod n)] mod n 就可减小中间结果。; 再者,考虑如何提高加、解密运算中指数运算的有效性。例如求x16,直接计算的话需做15次乘法。然而如果重复对每个部分结果做平方运算即求x,x2,x4,x8,x16则只需4次乘法。 求am可如下进行,其中a,m是正整数: 将m表示为二进制形式bk bk-1…b0,即 因此 ;d=1; For i=k downto 0 do { d=(d×d) mod n; if bi=1 then { d=(d×a) mod n } } return d.;2. RSA密钥的产生 两个大素数p、q的选取。 Miller-Rabin算法; (2) e的选取和d的计算。 选取满足1eφ(n)和gcd(φ(n),e)=1的e,并计算满足d·e≡1 mod φ(n)的d。这一问题可由推广的Euclid算法完成。 ;素性检验是指对给定的数检验其是否为素数。对于大数的素性检验来说没有简单直接的方法,本节介绍一个概率检验法,为此需要以下引理。;引理 如果p为大于2的素数,则方程x2≡1(mod p)的解只有x≡1和x≡-1。 ;引理的逆否命题为:如果方程x2≡1 mod p有一解x0{-1,1},那么p不为素数。 ;定理4.2 (Fermat)若p是素数,a是正

文档评论(0)

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

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

1亿VIP精品文档

相关文档