加密技术2研-公钥密码体系自学_第1页
加密技术2研-公钥密码体系自学_第2页
加密技术2研-公钥密码体系自学_第3页
加密技术2研-公钥密码体系自学_第4页
加密技术2研-公钥密码体系自学_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

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

文档简介

计算机网络安全概论,1,附2数据加密技术,计算机网络安全概论,2,密码系统的模型,计算机网络安全概论,3,对称与非对称密钥加密,传递信息是否安全?APB,计算机网络安全概论,4,对称与非对称密钥加密,使用钥匙是否可保证安全?AB密钥发布(Distribution)或交换(exchange),计算机网络安全概论,5,密钥交换协议算法的历史,76年Diffie和Hellman发表了“密码学的新方向”,奠定了公钥密码学的基础Diffie-Hellman密钥交换协议算法使用此方法确定对称密钥交换,RalphMerkle,andindependentlyMartyHellmanWhitDiffie,inventedthenotionofpublic-keycryptography.InNovember1976,DiffieandHellmanpublishedDirectionsinCryptography,proclaiming“Weareatthebrinkofarevolutionincryptography.”,计算机网络安全概论,6,密钥交换协议算法的历史,78年,RSA算法公钥技术是二十世纪最伟大的思想之一改变了密钥分发的方式可以广泛用于数字签名和身份认证服务,RSA(RonRivest,AdiShamir,LenAdleman,1977),计算机网络安全概论,7,DH算法描述,Alice与ob确定两个大素数n和g,这两个整数不保密,Alice与ob可以使用不安全信道确定这两个数Alice选择另一个大随机数x,并计算A如下:A=gxmodnAlice将发给obob选择另一个大随机数y,并计算B如下:B=gymodnob将发给Alice计算秘密密钥K1如下:K1=Bxmodn计算秘密密钥K2如下:K2=Aymodn,计算机网络安全概论,8,算法示例,Alice与ob确定两个大素数n和g,这两个整数不保密,Alice与ob可以使用不安全信道确定这两个数设n=11,g=7Alice选择另一个大随机数x,并计算A如下:A=gxmodn设x=3,则A=73mod11=343mod11=2Alice将发给obAlice将发给obob选择另一个大随机数y,并计算B如下:B=gymodn设y=6,则B=76mod11=117649mod11=4ob将发给Aliceob将4发给Alice,计算机网络安全概论,9,算法示例,计算秘密密钥K1如下:K1=Bxmodn有K1=43mod11=64mod11=9计算秘密密钥K2如下:K2=Aymodn有K2=26mod11=64mod11=9,计算机网络安全概论,10,数学理论,安全性在于有限域中的离散对数计算难度比同一个域中的指数计算难得多Alice在第步的计算:K1=BxmodnB=gymodnK1=(gy)xmodn=gyxmodnBob在第步的计算:K2=AymodnA=gxmodnK2=(gx)ymodn=gxymodnK1=K2=KAlice与Bob交换n、g、A、B。根据这些值并不容易求出x(Alice知道)和y(Bob知道),数学上对于足够大的数,求x与y是相当复杂的ab(modn)a0而0bn,b是a/n的余数,a为同余例:2311(mod12)求模指数y=axmodn求一个数的离散对数求x,使axb(modn),计算机网络安全概论,11,对称密钥的问题,A、B(A-B)1A、B、C(A-B、A-C、B-C)3A、B、C、D(A-B、A-C、A-D、B-C、B-D、C-D)6nn*(n-1)/2N=1000499500钥匙的管理非常复杂(引入管钥匙的T),计算机网络安全概论,12,算法问题,中间人攻击,Alicen=11,g=7,Tomn=11,g=7,Bobn=11,g=7,1,Alicex=3,Tomx=8,y=6,Boby=9,2,AliceA=gxmodn=73mod11=2,TomA=gxmodn=78mod11=9,BobB=gymodn=79mod11=8,3,B=gymodn=76mod11=4,计算机网络安全概论,13,中间人攻击,A=2,截获,A=,B=8,A=4,4,计算机网络安全概论,14,中间人攻击,AliceA=2,B=4,TomA=2,B=8,BobA=9,B=8,5,AliceK1=Bxmodn=43mod11=9,TomK1=Bxmodn=88mod11=5,BobK2=Aymodn=99mod11=5,6,K2=Aymodn=26mod11=9,计算机网络安全概论,15,非对称密钥,A、B不必同时访问T以获得密钥对B访问T取得一个锁和密钥(K1),将锁和密钥(K1)发给AB告诉A可以使用这个锁和密钥(K1)封箱B拥有不同组相关的密钥(K2),B从T取得(K2),是根据锁和密钥(K1)求出的,只有(K2)可用于开(K1)加的锁一个密钥(K1)用于封箱,一个密钥(K2)用于开锁这里引入T为可信任的第三方,T经过认证,是高度可靠和高效的机构,B拥有密钥对K1和K2,K1用于封箱,K2用于开锁,B可以将锁与钥匙K1发给任何人(如A),使其可以安全的向B发消息。B请求发送方(如A)用锁与钥匙K1封住内容,然后B可以用密钥K2开锁这里密钥K1是公开的,称为公钥(Publickey),另一个密钥K是私有的的,称为私钥(Privatekey),计算机网络安全概论,16,非对称密钥,A、B(A-B)A、B、C(A-B、A-C、B-C)A、B、C、D(A-B、A-C、A-D、B-C、B-D、C-D)nnN=100010001000个锁,1000个公钥,1000个私钥,计算机网络安全概论,17,公钥算法应用:保密,计算机网络安全概论,18,公钥算法应用:认证,计算机网络安全概论,19,基本思想和要求,涉及到各方:发送方、接收方、攻击者涉及到数据:公钥、私钥、明文、密文公钥算法的条件:产生一对密钥是计算可行的已知公钥和明文,产生密文是计算可行的接收方利用私钥来解密密文是计算可行的对于攻击者,利用公钥来推断私钥是计算不可行的已知公钥和密文,恢复明文是计算不可行的(可选)加密和解密的顺序可交换,计算机网络安全概论,20,如何设计一个公钥算法,公钥和私钥必须相关,而且从公钥到私钥不可推断必须要找到一个难题,从一个方向走是容易的,从另一个方向走是困难的如何把这个难题跟加解密结合起来数学上是用一个单向陷门函数描述,满足下列条件的函数f:给定定义域内的任意x,计算y=f(x)是容易的给定y,计算x使y=f(x)是困难的,即要求出x=f-1(y)在计算上是不可行的存在某个,当它已知时,对任何给定的y,若相应的x存在,则计算x使y=f(x)是容易的,公钥,私钥,计算机网络安全概论,21,公钥密码学的研究情况,与计算复杂性理论密切相关基于大整数因式分解问题(RSA体制)以大素数为模,计算离散对数问题(Elgamal体制,椭圆曲线密码体制)计算复杂性理论可以提供指导但是需求不尽相同计算复杂性通常针对一个孤立的问题进行研究而公钥密码学往往需要考虑一些相关的问题比如,密码分析还需要考虑已知明文、选择明文等相关的情形讨论的情形不同计算复杂性考虑最坏的情形而对于公钥密码学则是不够的一个np问题必然会导致一个保密性很好的密码系统吗?不一定,还需要有好的构造,计算机网络安全概论,22,ELGamal算法取P为质数,随机数gP,xP,计算y=gxmodP,(y,g,p)为公开密钥,x为隐蔽密钥。选取随机数k,使K与p-1互质;计算a=gkmodp;b=ykMmodpa和b构成密文,它比明文M长一倍;解密时计算M=b/axmodp,三大数学难题,大整数因数分解问题两个素数pq,计算积容易n=pXq给定n,求两个素因子pq,使n=pXq难这是RSA算法未被破译的前提假设条件,三大数学难题,离散对数问题已知有限循环群G=gk|k=0,1,2,及其生成元g和阶n=|G|.给定整数a,计算ga=h容易;给定元素h,计算整数x,0=x=n,使得gx=h非常困难DH、RSA算法的假设前提,三大数学难题,椭圆曲线离散对数问题已知有限域Fp上的椭圆曲线点群E(Fp)=(x,y)属于FpXFpy2=x3+ax+b,a,b属于FpUO点P=(x,y)的阶为一个大素数则:给定a,计算点aP很容易给定Q,计算整数x,使xP=Q非常困难。这是椭圆加密算法的前提假设,计算机网络安全概论,26,RSA算法,1977年由RonRivest、AdiShamir和LenAdleman发明,1978年公布是一种块加密算法。应用最广泛的公钥密码算法只在美国申请专利,且已于2000年9月到期,计算机网络安全概论,27,RSA简介,素数只能被和本身整除的数(、)RSA算法思想:两个大素数很容易相乘而对得到的积求因子则很难RSA中的私钥和公钥基于大素数(100位以上)难度在于RSA选择和生成私钥和公钥,计算机网络安全概论,28,RSA密钥生成与使用,产生密钥对选择两个大素数p,q,pq计算n=pq,(n)=(p-1)(q-1)选择整数e(公钥,即加密密钥),使gcd(e,(n)=1选择整数d(私钥,即解密密钥),使d*emod(n)=1公钥:KU=e,n,私钥:KR=d,n使用加密:C=Memodn解密:M=Cdmodn,明文,密文,计算机网络安全概论,29,计算乘幂(反复平方乘),计算d=am,m=bkbk-1b0(二进制表示)d1forikdownto0dod(dd)modnifbi=1thend(da)modnreturnd原理:M=(bk2+bk-1)2+bk-2)2+bk-3)2+)2+b0,计算机网络安全概论,30,RSA密钥生成与使用(例子),产生密钥对选择两个大素数p=7,q=17,pq计算n=pq=7*17=119,(n)=(p-1)(q-1)=6*16=96,96的因子有2,2,2,2,2和,因此e不能有2和3的因子选择整数e=5(公钥,即加密密钥),使gcd(e,(n)=1选择整数d=77(私钥,即解密密钥),使d*emod(n)=1(5*77)mod96=385mod96=1公钥:KU=e,n=5,119,私钥:KR=d,n=77,119使用加密:C=Memodn解密:M=Cdmodn,计算机网络安全概论,31,RSA密钥生成与使用(例子),用A=1、B=2等编码原字符求出明文e的幂(这里是5)将结果除以119,得到余数,即为密文,求出密文d的幂(这里是77)将结果除以119,得到余数,即为明文用A=1、B=2等译码原字符,使用公钥的加密算法,使用私钥的解密算法,F,F=66565Mod119=41,41774177Mod119=66=F,41,F,计算机网络安全概论,32,RSA算法要求,块大小为k,2kn2k+1明文信息Mn加密:C=Memodn解密:M=Cdmodn=Medmodn公钥:KU=e,n,私钥:KR=d,n上述算法需要满足以下条件:能够找到e,d,n,使得Medmodn=M,对所有Mn计算Me和Cd相对容易从e和n得到d是在计算上不可行的,公开,计算机网络安全概论,33,RSA密钥生成原理,令n=pq,pq都是素数,(n)=(p-1)(q-1)是n的Euler函数Euler定理推论:若n=pq,pq都是素数,k是任意整数,则mk(p-1)(q-1)+1mmodn,对任意0mnmk(n)+1mmodn,对任意0mn只要选择e,d,满足ed=k(n)+1,即edmod(n)1ed1mod(n)de-1mod(n)公钥:KU=e,n,私钥:KR=d,n,即选择e或d,使e与(n)互质,计算机网络安全概论,34,RSA的实现,素数的产生取大数n(100位以上的整数)和整数a60秒降到2秒以内。(2)Web服务器实现在web服务器上集中进行密码计算就会形成瓶颈,Web服务器上的宽带有限使宽带费用增高,而采用ECC后就可节省时间和宽带,且通过算法的协商也比较容易处理兼容性方面的问题。(3)集成电路卡的实现ECC无需协处理器就可以在标准卡上实现快速、安全的数字签名,而RSA体制难以做到。而且ECC可使程序代码、密钥、证书的存储空间极小化,数据帧最短,便于实现,从而大大降低了IC卡的成本。,对称与非对称密钥加密比较,网络与信息安全,45,完整的数据加密及身份认证流程,加密,对称密钥,用户A,明文,密文,用户B的公钥,数字信封,解密,用户B,明文,hash,摘要,签名,签名,A证书,B证书,用户A的私钥,用户B的私钥,对称密钥,密文,解密,明文,签名,A证书,签名,用户A的公钥,摘要,密钥托管系统,从保护国家安全、防止犯罪需要,希望国家权威机构能够对加密的数据进行破译。密钥托管系统(KeyEscrowSystem)托管的密钥加密标准(EscrowedEncryptionStandard-EES),计算机网络安全概论,47,KES基本原理:所有数字通信的加密都必须使用经政府批准统一生产的加密芯片实现。该芯片在应用于其它网络安全设备之前置入一个由KES生成的密钥,称为设备惟一密钥KU。KU由两个子密钥KC1和KC2构成,这两个子密钥分别存放在两个指定的KES代理处。KU与另外两个元素LEAF和KF一起使用

温馨提示

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

评论

0/150

提交评论