第七章密码协议内容提要对称密钥加密体制的密钥分配公钥加密体制的密钥管理认证协议秘密共享身份识别对称密钥加密体制的密钥分配KeyDistributionofsymmetriccryptography密钥分配的基本方法两个用户在使用对称密钥加密体制进行通信时,必须预先共享秘密密钥,并且应当时常更新,用户A和B共享密钥的方法主要有A选取密钥并通过物理手段发送给B第三方选取密钥并通过物理手段发送给A和BA,B事先已有一密钥,其中一方选取新密钥,用已有密钥加密新密钥发送给另一方A和B分别与第三方C有一保密信道,C为A,B选取密钥,分别在两个保密信道上发送给A和B密钥分配的基本方法如果有n个用户,需要两两拥有共享密钥,一共需要n(n-1)/2的密钥采用第4种方法,只需要n个密钥KS:一次性会话密钥N1,N2:随机数KA,KB:A与B和KDC的共享密钥f:某种函数变换2.一个实例4.)],(||||||[1AsKsKIDKENrequestKEBAKDCAB1.Request||N13.]||[AsKIDKEB][2NESK5.)]([2NfESK密钥的分层控制用户数目很多并且分布地域很广,一个KDC无法承担,需要采用多个KDC的分层结构。本地KDC为本地用户分配密钥。不同区域内的KDC通过全局KDC沟通。密钥的控制使用根据用途不同分为会话密钥(数据加密密钥)主密钥(密钥加密密钥),安全性高于会话密钥根据用途不同对密钥使用加以控制会话密钥的有效期密钥更换越频繁,安全性越高。缺点是延迟用户的交互,造成网络负担。决定会话的有效期,应权衡利弊。面向连接的协议,每次建立连接时应使用新的会话密钥。无连接的协议,无法明确确定更换密钥的频率,安全起见,每次交换都用新的密钥。经济的做法在一固定周期内对一定数目的业务使用同一会话密钥。无中心的密钥控制有KDC时,要求所有用户信任KDC,并且要求KDC加以保护。无KDC时没有这种限制,但是只适用于用户小的场合无中心的密钥控制用户A和B建立会话密钥的过程AB1.Request||N12.B12[||R||ID||f()||N]mMKsEKequestN3.)]([2NfESK公钥加密体制的密钥管理KeyManagementofPublicKeyCryptography公钥的分配-公开发布用户将自己的公钥发给每一个其他用户方法简单,但没有认证性,因为任何人都可以伪造这种公开发布公钥的分配-公用目录表公用的公钥动态目录表,目录表的建立、维护以及公钥的分布由可信的实体和组织承担。管理员为每个用户都在目录表里建立一个目录,目录中包括两个数据项:一是用户名,二是用户的公开密钥。每一用户都亲自或以某种安全的认证通信在管理者处为自己的公开密钥注册。用户可以随时替换自己的密钥。管理员定期公布或定期更新目录。用户可以通过电子手段访问目录。公钥的分配-公钥管理机构公钥管理机构为用户建立维护动态的公钥目录。每个用户知道管理机构的公开钥。只有管理机构知道自己的秘密钥。公钥管理机构分配公钥公钥管理机构AB1.Request||Time12.1[||Re||]AUSKBEPKquestTime3.]||[1NIDEAPKB6.]||[21NNEAPK4.Request||Time25.]||Re||[2TimequestPKEASKAU7.][2NEBPK有可能称为系统的瓶颈,目录容易受到敌手的串扰公钥证书用户通过公钥证书交换各自公钥,无须与公钥管理机构联系公钥证书由证书管理机构CA(CertificateAuthority)为用户建立。证书的形式为T-时间,PKA-A的公钥,IDA-A的身份,SKCA-CA的私钥时戳T保证证书的新鲜性,防止重放旧证书。[,,]CAASKAACETIDPKCA的计算机用户的计算机证书的产生过程产生密钥姓名秘密钥公开钥CA的公开钥CA的秘密钥签名证书用公钥加密分配对称密钥密码体制的密钥AB1.PKA||IDA2.][SPKKEA简单分配易受到主动攻击AB攻击者E1.PKA||IDA2.PKE||IDA3.][SPKKEE4.][SPKKEA用公钥加密分配对称密钥密码体制的密钥具有保密性和认证性的密钥分配AB1.1[||]BPKAENID2.]||[21NNEAPK3.][2NEBPK4.]][[SSKPKKEEAB用户B用户ADiffie-Hellman密钥交换W.Diffie和M.Hellman1976年提出算法的安全性基于求离散对数的困难性选择随机数xp计算YA=gxmodp选择随机数yp计算YB=gymodpYAYB计算K=YAy=gxymodp计算K=YBx=gxymodp端到端协议1992年,Diffie、Oorschot和Wiener提出了一个端到端协议(station-to-stationprotocol)ABgaC(B),gb,Ek(SigB(ga,gb))C(A),Ek(SigA(ga,gb))认证协议AuthenticationProtocols相互认证A,B双方在建立共享密钥时需要考虑保密性和实时性。保密性:会话密钥应以密文传送,因此双方应事先共享密钥或者使用公钥实时性:防止重放序列号方法时戳询问-应答序列号方法对交换的每一条消息加上序列号,序列号正确才被接收要求每个用户分别记录与其他每一用户交互的序列号,增加用户负担,因而很少使用时戳法A收到消息中包含时戳,且A看来这一时戳充分接近自己的当前时刻,A才认为收到的消息是新的并接收要求各方时间同步询问-应答用户A向B发出一个一次性随机数作为询问,如果收到B发来的应答消息也包含一正确的一次性随机数,A就认为消息是新的并接受之。各种方法的比较时戳法不适用于面向连接的应用过程要求不同的处理器之间时间同步,所用的协议必须是容错的以处理网络错误协议中任何一方时钟出现错误失去同步,则敌手攻击的可能性增加网络中存在延迟,不能期待保持精确同步,必须允许误差范围各种方法的比较询问-应答不适合于无连接的应用过程在传输前需要经过询问-应答这一额外的握手过程,与无连接应用过程的本质特性不符。无连接应用最好使用安全时间服务器提供同步Needham-Schroeder协议2.4.)]||(||||||[1AsKBsKIDKENIDKEBAKDCAB1.IDA||IDB||N13.]||[AsKIDKEB][2NESK5.)]([2NfESK如果敌手获得了旧会话密钥,则可以冒充A重放3,并且可回答5,成功的欺骗BNeedham-Schroeder改进协议(1)2.4.)]||||(||||||[TIDKETIDKEAsKBsKBAKDCAB1.IDA||IDB3.]||||[TIDKEAsKB][1NESK5.)]([1NfESK以时戳替代随机数,用以向A,B保证Ks的新鲜性|Clock-T|⊿t1+⊿t2Clock:本地时钟⊿t1:本地时钟与KDC时钟误差估计值⊿t2:网络延迟时间要求各方时钟同步如果发方时钟超前B方时钟,可能导致等待重放攻击Needham-Schroeder改进协议(2)KDCAB3.1.AANID||4.][||]||||[BKBSAKNETKIDESB2.]||||[||||BAAKBBTNIDENIDBBBSAKBSABKNTKIDETKNIDEBA||]||||[||]||||||[会话密钥的截止时间Needham-Schroeder改进协议(2)AB1.'],||||[ABSAKNTKIDEB2.][,''AKBNENS3.]['BKNES有效期内可不通过KDC直接认证公钥加密体制ASAB1.IDA||IDB2.]||||[||]||||[TPKIDETPKIDEBBSKAASKASAS3.]]||[[||]||||[||]||||[TKEETPKIDETPKIDESSKPKBBSKAASKABASAS时戳防止重放,要求时钟同步公钥加密体制ASAB2.]||[BBSKPKIDEAS1.IDA||IDB3.]||[AAPKIDNEB4.][||||APKABNEIDIDAS6]||]||||[[BBSASKPKNIDKNEEASA7][BKNES单向认证不需要双方同时在线(电子邮件)邮件接收者希望认证邮件的来源以防假冒分为单钥加密方法和公钥加密方法单钥加密2.)]||(||||||[1AsKBsKIDKENIDKEBAKDCAB1.IDA||IDB||N13.][]||[MEIDKESBKAsK不要求B同时在线,保证只有B能解读消息,提供对A的认证。不能防止重放攻击。公钥加密AB][||][MEKEsBKsPK对发送消息提供保密性对发送消息提供认证性AB]||||[||)]([||AASKSKPKIDTEMHEMASA对发送消息提供保密和认证性AB]||||[)]]([||[AASKSKPKPKIDTEMHEMEASABA的证书秘密共享SecreteSharing问题1保险柜的开启保险柜中存放有7个人的共有财产要从保险柜中取出物品,必须有半数以上的人在场才可取出,半数一下则不行如何构造锁的设计方案?问题2导弹控制发射,重要场所通行检验,通常需要多人同时参与才能生效,需要将秘密分为多人掌管,并且由一定掌管秘密的人数同时到场才能恢复秘密。门限方案的一般概念秘密s被分为n个部分,每个部分称为shadow,由一个参与者持有,使得由k个或多于k个参与者所持有的部分信息可重构s。由少于k个参与者所持有的部分信息则无法重构s。称为(k,n)秘密分割门限方案,k称为门限值。少于k个参与者所持有的部分信息得不到s的任何信息称该门限方案是完善的。Shamir门限方案基于多项式Lagrange插值公式设{(x1,y1),…,(xk,yk)}是平面上k个点构成的点集,其中xi(i=1,…k,)各不相同,那么在平面上存在唯一的k-1次多项式f(x)通过这k个点.若把秘密s取做f(0),n个shadow取做f(xi)(i=1,…n),那么利用其中任意k个shadow可以重构f(x),从而可以得到秘密sShamir门限方案有限域GF(q),q为大素数,q≥n+1。秘密s是GF(q)\{0}上均匀选取的随机数,表示为s∈RGF(q)\{0}.k-1个系数a1,a2,…ak-1选取ai∈RGF(q)\{0}.在GF(q)上构造一个k-1次多项式f(x)=a0+a1x+…+ak-1xk-1N个参与者P1,…,Pn,Pi的Shadow为f(i)。任意k个参与者得到秘密,可使用{(il,f(il))|l=1,…,k}构造方程组)()()()()()(11101111110kkkkkkkifiaiaaifiaiaaShamir门限方案由Lagrange插值公式)(mod)()()(11qiiixifxfkjkjllljlj)(mod)()1(111qiiiifskjkjllljljkShamir门限方案如果k-1个参与者想获得s,可构造k-1个方程,有k个未知量。对任一s0,设f(0)=s0.这样可以得到第k个方程,得到f(x)。对每个s0都有唯一的多项式满足,所有由k-1个shadow得不到任何s的信息。因此此方案是完善的。Shamir门限方案例k=3,n=5,q=19,s=11。随机选a1=2,a2=7f(x)=7x2+2x+11mod19。计算f(1)=1,f(2)=5,f(3)=4,f(4)=17,f(5)=6已知f(2),f(3),f(5),重构1127)35)(25()3)(2(6)53)(23()5)(2(4)52)(32()5)(3(5)(2xxxxxxxxxf门限方案的实例假定房间里有4个人,其中一个是国外特务,其余3人拥有Shamir秘密分享方案的数对,任何两个人都能