公钥密码技术理论及应用介绍_第1页
公钥密码技术理论及应用介绍_第2页
公钥密码技术理论及应用介绍_第3页
公钥密码技术理论及应用介绍_第4页
公钥密码技术理论及应用介绍_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第三章 公钥密码技术 第三章 公钥密码技术 1公钥密码的概念 公钥密码学的理论基础 公钥密码算法 密钥交换 公钥密码算法的应用 提出公钥密码的动因密钥分配问题。使用对称加密算法的通信双方要进行加密通信时,需要通过秘密的安全信道协商加密密钥,而这种安全信道如何实现呢?机械阶段 数字签名问题。信息的电子化对密码学提出了新的要求:电子报文和电子文件需要一种与书面材料中使用的签名等效的认证手段。 公钥密码的初始化阶段加密通信阶段公钥密码的概念 公钥密码学的理论基础 公钥密码算法 密钥交换 公钥密码算法的应用 第三章 公钥密码技术 2计算复杂度与公钥密码计算复杂度 P问题和NP完全问题 密码与计算复杂度

2、的关系 单向陷门函数单向陷门函数的数学问题分解整数问题。离散对数问题。 RSA问题。 公钥密码的概念 公钥密码学的理论基础 公钥密码算法 密钥交换 公钥密码算法的应用 第三章 公钥密码技术 3公开密钥算法公钥算法的种类很多,具有代表性的三种密码: 基于离散对数难题(DLP)的算法体制,例如Diffie-Hellman 密钥交换算法; 基于整数分解难题(IFP)的算法体制,例如RSA算法; 基于椭圆曲线离散对数难题(ECDLP)的算法体制;RSA算法麻省理工学院的Ron Rivest, Adi Shamir和Len Adleman于1977年研制,并于1978年首次发表;RSA是一种分组密码,其

3、理论基础是一种特殊的可逆模幂运算,其安全性基于分解大整数的困难性;既可用于加密,又可用于数字签名,已得到广泛采用;RSA已被许多标准化组织(如ISO、ITU、IETF和SWIFT等)接纳;RSA-155(512 bit), RSA-140于1999年分别被分解;Euler 函数 欧拉函数 (Eulers totient function),记为(n),表示小于n而且与n互素的正整数个数; 对于任一素数p,(p)=p-1; 对于两个不同的素数p和q,若n=pq, 则(n)= (pq) (p)(q)(p-1)(q-1);Euler 函数举例 设p=3, q=5, 那么 n=pq=15;1)小于15

4、而且与15互素的正整数是: 1,2,4,7,8,11,13,14 因此, (15)8;2)(15)=(3-1)*(5-1)=8欧拉定理 对于任何互素的整数a和n, (mod n),或者写作 a(mod n) 给定两个素数p和q,以及整数n=pq,和m,其中0mn,则 mod n mod nRSA算法的描述对于明文分组M和密文分组C,加密解密形式分别为:C = Me mod nM = Cd mod n = (Me)d mod n = Med mod n因此,公钥 KU=e,n,私钥 KR=d,n,公钥算法必须满足: 1)有可能找到e、d、n的值,使得对所有Mn有Med =M mod n;2)对于

5、所有Mn,要计算Me和Cd相对简单;3)给定e和n时,判断出d是不可行的;RSA算法的描述如何找到:?参考欧拉定理可以得到:ed= k(n)+1也就是说:RSA算法的实现实现的步骤如下:Bob为实现者 (1) Bob寻找出两个大素数p和q (2) Bob计算出n=pq 和(n)=(p-1)(q-1) (3) Bob选择一个随机数e (0e (n),满足(e,(n)=1 (4) Bob使用辗转相除法计算d=e-1mod(n) (5) Bob在目录中公开n和e作为公钥密码分析者攻击RSA体制的关键点在于如何分解n。若分解成功使n=pq,则可以算出(n)(p-1)(q-1),然后由公开的e,解出秘密

6、的dRSA算法举例设 p=7, q=17, n=7*17=119; 参数T=n=119;(n)=(7-1)(17-1)=96;选择e=5, gcd(5,96)=1; 计算d, d*e =1 mod 96; d=77; 因为7753854961设:明文m=19 加密:(19)5 mod 119 = 66 解密:(66)77 mod 119 = 19RSA算法的安全性分析密码分析者攻击RSA体制的关键在于分解n,若分解成功使n=pq,则可以算出(n)(p-1)(q-1),然后由公开的e,解出秘密的d;若使RSA安全,p与q必为足够大的素数,使分析者没有办法在多项式时间内将n分解出来,建议选择p和q

7、大约是100位的十进制素数,模n的长度要求至少是512比特;RSA算法的安全性分析EDI攻击标准使用的RSA算法中规定n的长度为512至1024比特位之间,但必须是128的倍数;国际数字签名标准ISO/IEC 9796中规定n的长度位512比特位;为了提高加密速度,通常取e为特定的小整数,如EDI国际标准中规定 e2161;ISO/IEC9796中甚至允许取e3;这时加密速度一般比解密速度快10倍以上;RSA算法的安全性分析 为了抵抗现有的整数分解算法,对RSA模n的素因子p和q还有如下要求: (1) |p-q|很大,通常 p和q的长度相同; (2) p-1 和q-1分别含有大素因子p1和q1

8、; (3) P1-1和q1-1分别含有大素因子p2和q2; (4) p+1和q+1分别含有大素因子p3和q3;椭圆曲线密码编码学ECC1985年Miller,Koblitz 独立提出y2+axy+by=x3+cx2+dx+e表示曲线上的点连同无穷远点O的集合加法:若曲线三点在一条直线上,则其和为O;倍数:一个点的两倍是它的切线与曲线的另一个交点;椭圆曲线上的加法规则 加法公式:O 作为加法的单元,O=-O,P+O=P如果P=(x,y),则P+(x,-y)=O,(x,-y)点是P的负点,记为-P,而且(x,-y)也在EP(a,b)中如果P=(x1,y1),Q=(x2,y2),则 P+Q=(x3,

9、y3)为x3=2-x1-x2 (mod p)y3=(x1-x3)-y1 (mod p)其中,如果PQ,则 = (y2-y1)/(x2-x1) 如果P=Q,则 = (3x12+a)/(2y1)椭圆曲线示例椭圆曲线上的加法: P + Q = -R 椭圆曲线上一点的2倍: Q+Q=-S 有限域上的椭圆曲线有限域上的椭圆曲线定义如下:y2x3+ax+b (mod p) p是素数,a,b为非负整数,且满足4a3+27b2 (mod p) 0 针对所有的0= x p,可以求出有效的y,得到曲线上的点 (x,y),其中x,y p。曲线记为EP(a,b),EP(a,b)中也包括O点例如,令P=23,a=b=1

10、,椭圆曲线为y2x3+x+1,4132712(mod 23)=8 0满足模23椭圆群的条件椭圆曲线上的密钥交换1)双方选择EP(a,b)以及EP(a,b)的一个元素G,使得nG=0的最小n值是一个非常大的素数;2)A选择私钥Xn,计算公钥PA=XG;3)B选择私钥Yn,计算公钥PB=YG; 4)A计算秘密密钥:K=X(PB)=XYG5)B计算秘密密钥:K=Y(PA)=YXG=XYG因此,双方获得了一个共享会话密钥(XYG)椭圆曲线上的密钥交换攻击双方选择EP(a,b)以及EP(a,b)的一个元素G,使得G的阶n是一个大素数A选择私钥Xn,计算公钥PA=XG, AB: PAE截获PA,选私钥Z,

11、计算PE=ZG,冒充AB:PEB选择私钥Yn,计算公钥PB=YG, BA: PBE截获PB,冒充BA: PEA计算: XPE = XZGB计算: YPE = YZGE计算: ZPA=ZXG, ZPB =ZYGE无法计算出XYGE永远必须实时截获并冒充转发,否则会被发现.椭圆曲线加密/解密1)双方选择椭圆群EP(a,b)以及EP(a,b)的一个元素G,使得nG=0的最小n值是一个非常大的素数;2)A选择私钥Xn,计算公钥PA=XG;3)B选择私钥Yn,计算公钥PB=YG; 4)A若想加密和发送报文Pm给B,选择随机数k,并产生一对点组成的密文Cm=kG,Pm+kPB;5)B解密密文, Pm+kP

12、B-YkG Pm+kYG- YkG= Pm除了A,无人知道k,因此无法破译两类加密算法比较公钥密码的概念 公钥密码学的理论基础 公钥密码算法 密钥交换 公钥密码算法的应用 第三章 公钥密码技术 4Diffie-Hellman密钥交换算法若用户A和用户B希望交换一个密钥,如何进行?1)全局公开参数:一个素数q和其一个原根a;2)用户A选择一个随机数XAq,计算YA=aXA mod q,YA公开;3)用户B选择一个随机数XBq,计算YB=aXB mod q ,YB公开;4)用户A计算密钥K=(YB)XAmod q;5)用户B计算密钥K=(YA)XBmod q;Diffie-Hellman密钥交换算

13、法证明:K = (YB)XA mod q = (aXB mod q)XA mod q =(aXB)XA mod q =a XBXA mod q =(aXA)XB mod q =(aXA mod q)XB mod q =(YA)XB mod q攻击分析:公开数据 q,a,YA和YB,若想攻击用户B的秘密密钥,攻击者必须计算 XB = inda,q(YB);安全性分析:计算模一个素数的指数相对容易,计算离散对数却很难;Diffie-Hellman密钥交换算法举例1)密钥交换基于素数q=97和q的一个原根a=5;2)A和B分别选择密钥 XA=36和XB=58,并分别计算其公开密钥YA = 536= 50 mod 97YB = 558= 44 mod 973)交换了公开密钥后,每人计算共享的秘密密钥如下K=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论