第七章 公钥密钥体制

发布时间:2022-07-05 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了第七章 公钥密钥体制脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

转https://www.cnblogs.COM/WITtPEng/p/8978737.htML

第七章 公钥密钥体制

公钥密码体制概述

  • 对称密码体制的局限性:
    • 密钥分发问题
    • 密钥管理问题
    • 数字签名问题
  • 公钥加密体制的思想
    • 公钥和私钥
    • 基于陷门单向函数的困难问题
  • 公钥密码体制的分类

公钥加密体制介绍

ElGamal    应用 1.加密;2.数字签名
密钥生成
  1. 随机选择一个满足安全要求的1024位的大素数p,并生成有限域Zp的一个生成元g∈Zp*
  2. 选择一个随机数x(1<x<p-1),计算y≡gx(mod p),则公钥为(y,g,p),私钥为Sk=x。

                          (随机数的选取可以使同一明文在不同时间加密成不同密文)

加解密算法
  1. 加密过程:将明文分组比特串分组,是分组长度小于LOG2p,,然后对每个明文分组分别加密
    1. 得到公钥Pk(y,g,p);
    2. 消息m分组m1m2m3m4······
    3. 对第i块消息随机选择整数ri(1<ri<p-1);
    4. 计算ci≡gri(mod p),ci'≡miyri(mod p)(1≤i≤t)
    5. 将密文C=(c1,c1')()()()····发送给接收方  (可知,密文是明文长度的2倍)
  2. 解密过程
    1. 接收方接收密文C
    2. 使用密钥x和解密算法mi≡(ci'/cix)(mod p)(1≤i≤t)进行计算
    3. 得到明文
  3. 正确性

  

第七章 公钥密钥体制

安全性分析
  1. 穷举法和列表法(二分查找算法) O(p)
  2. 小步大步算法

于生日攻击的思想,

小步为 序列1:g1,···,gj,···,gm(1≤j≤m)

大步为 序列2:y,y*g-m,···,y*g-im

找到gj≡y*g-im(mod p),即找到y=gj+im(mod p),即x=j+im私钥被找到

@R_747_1304@:O(p1/2)

3.指数积分法

  1.  选取因子基S
  2. 建构同余方程组:对若干随机整数k(0≤k≤p),计算gk,尝试将gk写成S中的元素幂次的乘积,即gk=∏piei(mod p),式子两边取离散对数k≡∑eilogg(pi)(mod (p-1)),重复这个过程,直到有超过m个方程
  3. 求logg(pi)
  4. 计算x:随机取整数r,计算ygrmod p,使得其值可表示为S中元素幂次的乘积,即ygr=∏pidi(mod p),取离散对数可得x≡logg(y)≡-r+∑dilogg(pi)(mod (p-1)),如果成功,即求得此解x。
 ;mH背包公钥加密体制      难题来源

 背包问题:∑aixi=b,这是一个NP完全类问题

特例:超递增序列(每一个元素都比先前的元素和大) 可将背包问题转化为P类问题

 公私钥对的生成
  1. 选取素数p 和u,且bi为超递增序列
  2. 利用uv=1(mod p)可求得v
  3. a=ubk(mod p)
  4. {ai}和p作为公钥,{bi}和v作为私钥
 加密和解密
  1.  明文消息分组
  2. 密文c=a1m1+···+anmn
    1. 利用{bi}求v c的解,可得消息m  
 安全性分析
  1.  NP类问题,至今没有好的求解方法,能经受住穷举攻击
  2. 隐蔽性不够,此公钥密码是不安全的
 地位 第一个公钥算法 
 RSA公钥密码    理论基础

 数论中的欧拉定理,安全性依赖于大整数的素因子分解的困难性

欧拉定理:若a和n互素,则aΦ(n)≡1(mod n)

密钥生成算法

加密和解密

(1)生成公私密钥

  • 选取两个大素数p和q,至少要1024位
  • 计算n=p*q
  • 随机选取整数e在(1≤e≤Φ(n))作为公钥,要求满足gcd(e,Φ(n))=1
  • 用Euclid扩展算法计算私钥d,满足d*e≡1(mod Φ(n)),则e和n是公钥,d是私钥

(3)明文加密  c=E(m)=me(mod n)(4)密文解密。   m=D(c)=cd(mod n)

 安全性

 1.算法正确性的证明

第七章 公钥密钥体制

2.攻击

  1. 针对n分解的攻击
    1. 试除法
    2. 因子分解分析法:二次筛因子分析法
    3. 侧信道攻击

           2.针对算法参数的攻击

                       1.对素数p和q选取时的限制;p和q长度相差不大,大小相差要大,否则难以抵御除法的攻击;p-1和q-1都应有大的素因子。

                       2.共模攻击(因此不同用户不用使用相同的p和q)

                       3.低指数攻击

 椭曲线公钥加密体制          椭圆曲线

韦尔斯特拉方程 :E:y²+axy+by=x³+cx²+dx+e。密码学中,常采用的椭圆曲线为: E:y²=x³+ax+b,并要求4a³+27b²≠0

Hasse定理:如果E是有限域GF(p)上的椭圆曲线,N是E上的点(x,y)(其中x,yξGF(p))的个数,则:|N-(p+1)|≤2(p)½

椭圆曲线上的点集合Ep(a,b)对于如下定义的加法规则构成一个Abel群:

  1. O+O=O;(O是单位元)
  2. 椭圆上的点P,P+O=P;
  3. P的逆元是-P;
  4. 第七章 公钥密钥体制

  5. 满足交换律

  6. 满足结合律

点乘规则:

  • 如果k为整数,kP=P+···+P    (k个P相加)
  • 如果s和t为整数,(s+t)P=sP+tP,s(tP)=t(sP)

椭圆曲线点的计算:

                                         

第七章 公钥密钥体制

 

 

 

 ECC密钥生成算法
  1. 选择一个椭圆曲线E,构造一个椭圆群Ep(a,b)。 
  2. 在椭圆群中挑选生成元点G=(x0,y0),需满足nG=O的最小的n是一个非常大的素数。
  3. 选择一个小于n的整数nB作为私钥,然后利用PB=nBG算出PB。

       公钥为(E,n,G,PB),私钥为nB。

 加密过程
  1.  A将明文消息编码成一个数m<p,并在椭圆群Ep(a,b)中任选一点Pt=(xt,yt);
  2. 在区间[1,n-1]内,A选取一个随机数k,计算P1:P1=(x1,y1)=kG;
  3. 依据接收方B的公钥PB,A计算点P2:P2=(x2,y2)=kPB
  4. A计算密文C=mxt+yt;
  5. A传送加密数据Cm={kG,Pt+kPB,C}给接收方B。
 解密过程
  1.  接收方B收到Cm;
  2. B使用私钥nB运算:Pt+kPB-nB(kG)=Pt+k(nBG)-nB(kG)=Pt;
  3. B计算m=(C-yt)/xt,得明文m。
 安全性和优势      安全性基于椭圆曲线上的离散对数问题
应用前景好,尤其是在移动通信和无线设备上的应用,计算量小,处理速度快,存储空间占用小,带宽要求低。 

 160位的ECC密钥和1024位的RSA和1024位的ElGamal的安全性等同。

可用于加密、数字签名。 
未申请专利 
         Rabin公钥加密体制  前言(学习意义)  具有很好的参考价值
 特点 

 不是以一一对应的陷门单向函数为基础,同一密文可能有多种明文;

 破译该体制等价于对大整数的因子分解。
 密钥生成算法

随机选取两个大素数p和q,并且p≡q≡3mod4,将p和q作为私钥,n=pq作为公钥 

 加密算法 设明文块为m(m<n),运用公式c=m²modn 进行加密,c为密文。
 解密算法   

第七章 公钥密钥体制

 

    

 

脚本宝典总结

以上是脚本宝典为你收集整理的第七章 公钥密钥体制全部内容,希望文章能够帮你解决第七章 公钥密钥体制所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。