《现代密码学原理与实践》课件第6章.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《《现代密码学原理与实践》课件第6章.ppt》由用户(momomo)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 现代密码学原理与实践 现代 密码学 原理 实践 课件
- 资源描述:
-
1、第6章 密钥管理和密码协议第第7 7章章 密钥管理和密码协议密钥管理和密码协议6.1 密钥管理密钥管理6.2 密钥共享密钥共享(密钥分配问题密钥分配问题)6.3 密码协议密码协议6.4 零知识证明零知识证明6.5 公钥基础设施公钥基础设施(PKI)习题习题 6实践练习实践练习 6-1实践练习实践练习 6-2第6章 密钥管理和密码协议 密钥是现代密码体系中最关键的一些数据,对整个系统的安全起着至关重要的作用。在一个庞大的通信网络中,存在大量不同级别不同权限的用户,有着形形色色的密钥需要分配和认证,这无疑是一个非常复杂的问题,需要有效地加以管理。本章主要讨论密钥的产生、密钥的分配、密钥共享和密码协
2、议等问题。最后作为实例讨论公钥基础设施PKI。第6章 密钥管理和密码协议6.1密钥管理密钥管理46.1.1概述概述 现代密码体系的一个基本概念是算法可以公开,而私有密钥则必须是保密的。不管算法多么强有力,一旦密钥丢失或出错,不但合法用户不能提取信息,而且可能导致非法用户窃取信息,甚至系统遭到破坏。一个安全系统,不仅要阻止侵入者窃取密钥,还要避免密钥的未授权使用、有预谋的修改和其他形式的操作,并且希望当这些不利的情况发生时,系统应能及时察觉。密钥管理应解决密钥自产生到最终销毁的整个过程中所涉及的各种问题,包括产生、装入、存储、备份、分配、更新、吊销和销毁。其中最棘手的是分配和存储。第6章 密钥管
3、理和密码协议 1.密钥的种类密钥的种类 (1)基本密钥(BaseKey)基本密钥也称初始密钥(PrimaryKey),由用户自选,或由系统分配给用户,在较长时间内由该用户所专用,以k0表示。(2)会话密钥(SessionKey)会话密钥是两个通信终端在一次通话时所采用的密钥,由用户双方预先约定或动态地产生,以k1表示。它的作用是使我们不必频繁地更换基本密钥,同时又能增加安全性。(3)密钥加密密钥(KeyEncryptingKey)在交换会话密钥时,需要加密传送,用来加密会话密钥的密钥,就是密钥加密密钥,用ke表示。一般各终端各有一把相互不同的ke与主机交换会话密钥,而主机则不仅需要与各终端交换
4、会话密钥,还要与其他主机之间交换密钥。第6章 密钥管理和密码协议 (4)主机主密钥(HostMasterKey)主机主密钥是对密钥加密密钥进行加密的密钥,用于主机给各用户分配ke,用km表示。其他还有一些特殊用途的密钥,如用户选择密钥(CustomOptionKey)、族密钥(FamilyKey)、算法更新密钥(AlgorithmChangingKey)等。2.密钥的产生密钥的产生 靠人工产生和管理密钥的方法已被时代所淘汰,目前已有多种密钥产生器为大型系统提供各类密钥。主机主密钥通常用诸如掷硬币、骰子或从随机数表中选数等随机方式产生,以保证密钥的随机性,避免可预测性。第6章 密钥管理和密码协议
5、 密钥加密密钥可由机器自动产生,见图6.1。常用的密钥产生器有随机比特发生器(如噪声二极管振荡器)或伪随机数发生器,也可由主密钥控制下的某种算法产生。会话密钥可通过某种加密算法动态地产生,如用初始密钥控制下的非线性移位寄存器或主密钥控制下的DES算法产生。初始密钥的产生与主机主密钥或密钥加密密钥产生的方法相同。实践表明,增加密钥长度固然很必要,然而更重要的是它的产生算法和选择方法。有的人喜欢使用一些单词为密钥,为的是容易记忆,但是采用字典攻击常能奏效,按字典上的词汇一一进行尝试,这样25%的密钥可被猜到。因此我们建议:第6章 密钥管理和密码协议 (1)采用真正随机等概的序列为密钥,如掷硬币的结
6、果。(2)避免使用特定算法的弱密钥。(3)采用揉搓和杂凑技术,将易记的词组句子经过单向函数处理变成伪随机数串。3.密钥的更换密钥的更换 密钥使用时间越长,泄露的机会就越大。所以密钥,特别是会话密钥要经常更换,使对手无法捉摸或难以搜索。密钥被更换的频率依据如下几点确定:(1)被保护数据的敏感性。(2)被保护数据的有效期。(3)密码算法的强度。第6章 密钥管理和密码协议图6.1 数据加密密钥的产生 第6章 密钥管理和密码协议 4.密钥的存储密钥的存储 密钥的存储必须保障密钥的机密性、认证性和完整性。应防止密钥泄露和被篡改。比较好的存储方式是将密钥存于磁条卡,或嵌入ROM芯片中,这样用户在使用时自己
7、都不知道密钥是什么。还可将密钥分为两半,卡上和终端机中各一半。另外一个办法就是对密钥加密,使密钥永远不以未加密的方式出现在设备之外。5.密钥的销毁密钥的销毁 不用的旧密钥必须销毁,否则可能造成危害。别人可能用它读取曾用它加密的文件,分析加密体系。对于写在纸上的密钥要用碎纸机粉碎,对于存在于介质上的密钥,要多次冲写。第6章 密钥管理和密码协议 6.密钥的吊销密钥的吊销 在密钥使用期内,发生丢失或其他不安全事件时,就需要从所使用的密钥集合中将其除去,并且通知系统防范。证书形式的公钥,可通过注销公钥证书的方式吊销。6.1.2密钥分配协议密钥分配协议 密钥分配(KeyDistribution)指的是这
8、样一种机制:系统中某一个成员选择了一个秘密密钥,系统有能力将它安全地传送给另一个成员;设想有一个n用户的不安全网络,当某两位用户想保密通信时,先向可信任中心TA提出申请,TA为他们选择一个会话密钥,通过安全信道(不在网络上进行)传给他们;这样就需要n条信道;若系统中两两都要通信,则每人须保存(n-1)个密钥,而TA则须保存n(n-1)个密钥;显然当n较大时,代价是十分昂贵的。这称为n2问题。第6章 密钥管理和密码协议 1.对称系统的密钥分配对称系统的密钥分配 对称系统指通信双方使用同一把密钥的保密系统。这种系统又有在线和离线之分。前面所述的有n个安全通道的系统就是离线系统,而在线系统则不必保存
9、那么多密钥。想利用网络通信的用户临时向TA申请一个会话密钥,每次都可以不同,以确保密钥的新鲜性(KeyFreshness),这是TA的义务。Kerberos协议是一个基于对称密钥的流行的密钥服务系统。在此系统中,每个用户U和可信任中心(对称密钥分发中心)共享一个DES密钥。密钥交换协议如下:(1)用户U为了与用户V通信,先向TA申请一个会话密钥。(2)可信任中心TA随机地选取一个会话密钥K,一个时戳T和生存期L。第6章 密钥管理和密码协议 (3)可信任中心用自己与U的密钥kU加密ID(V)等信息:m1=EU(K,ID(V),T,L)(6-1)再用自己与V的密钥kV加密ID(U)等信息:m2=E
10、V(K,ID(U),T,L)(6-2)最后将m1和m2发送给U。这里,ID(U)是关于U的某些识别信息。(4)用户U首先解密m1以获得K、ID(U)、T和L,接着U就可以通过T和L来验证密钥K是否在有效期内,然后用会话密钥K加密:m3=EK(ID(U),T)(6-3)将m3和m2一起发给V。第6章 密钥管理和密码协议 (5)用户V首先解密m2以获得ID(U)、K、T和L,然后用K解密m3获得ID(U)和T。通过判断两个ID(U)是否一致,从而验证了会话密钥的正确性。此后用K计算:m4=EK(T+1)(6-4)并发给U。(6)用户U用K解密m4,以验证T+1的正确性,表明V已收到K。以上协议中,
11、m1和m2用来提供会话密钥在传输中的秘密性;m3和m4用来使U和V确信收到了同一把会话密钥;而T和L用来防止主动攻击者用存储的旧消息进行重复攻击。Kerberos协议的缺点之一是系统必须统一时钟,另一个缺点是仍不能解决对称密钥普遍存在的n2问题。第6章 密钥管理和密码协议 2.非对称系统的密钥分配非对称系统的密钥分配 1)Blom方案 公开一个素数p,每个用户公开一个元素rUZp,各用户的rU必须互不相同。可信任中心随机选择三个随机元素a,b,cZp(未必不同),构成多项式:f(x,y)=(ab(xy)cxy)mod p (6-5)显然,它对于x和y对称:f(x,y)=f(y,x)(6-6)对
12、用户U,可信任中心计算:aU=abrU,bU=bcrU (6-7)第6章 密钥管理和密码协议由此构造函数:gU(x)=f(x,rU)=(a+bx+brU+crUx)mod p=(aUbUx)mod p(6-8)并用安全信道将此线性函数传给用户U。同样,每个用户都从可信任中心获得自己的gi(x)。如果U想与V通信,U计算KUV=gU(rV),而V计算KVU=gV(rU),不难得知:KUV=KVU=f(rU,rV)=(abrU)+(bcrU)rV mod p =ab(rUrV)crUrV mod p (6-9)于是U和V便有共同的密钥,是各自通过计算得到的。问题是其他用户,比如W能得知KUV吗?假
13、设W已经有了来自可信任中心的函数:gW(x)=(aWbWx)mod p (6-10)他想要推知KUV。第6章 密钥管理和密码协议 现在,rU和rV是公开的,而a、b、c是保密的。显然,W由方程组:WWWWbcrbabra(6-11)是无法确定三个变量a、b、c的。他得不到a、b、c也就求不出KUV。然而如果任何两个用户合作,却可以唯一地确定a、b、c。因为由联立方程:XXXXWWWWbcrbabrabcrbabra(6-12)第6章 密钥管理和密码协议就可以确定a、b、c,从而求出任何一个用户的密钥。此方案的安全性如此脆弱是因为这只是规模k=1的Blom方案。现将协议第步做如下改动,信任中心即
14、可使用如下形式的多项式:pyxakikjjiij mod00(6-13)这里aijZp(0ik,0jk),并对所有的i和j,有aij=aji。这样便构成规模为k(1)的Blom方案,此时,任何少于k个的用户合作,均无法破译系统密钥,只有k+1个用户合作才可以破译密钥。第6章 密钥管理和密码协议 2)Diffie-Hellman密钥预分配方案 公开一个素数p和一个本原元素 。ID(U)表示网络中用户U的某些信息,每个用户有一个秘密指数aU和一个相应的公钥:(6-14)可信任中心有一个签名方案SigTA,当用户U入网时,可信任中心给U发一个签名的证书:C(U)=ID(U),bU,SigTA(ID(
15、U),bU)(6-15)可信任中心无须知道aU的值,证书可以放在公开的数据库中,也可以由U自己存储。pZpba modUU第6章 密钥管理和密码协议 V使用自己的私钥aV和从U的证书中获得的公钥bU计算:(6-16)U使用自己的私钥aU及从V的证书中获得的公钥bV计算:(6-17)于是,通过不对称密钥体系,使U和V得到了相同的密钥。算法的安全性是基于离散对数的复杂性的。pbpKaaa mod modVVUUUVpbpKaaa mod modVVUVUV第6章 密钥管理和密码协议6.2密钥共享密钥共享(密钥分配问题密钥分配问题)26.2.1问题的提出问题的提出 有一项绝密文件锁在保险柜里,为安全
16、起见,规定课题组6人中至少4人在场方可打开柜子,同时也可避免万一某一位丢失钥匙而造成严重事故。究竟应当怎样配备锁子和钥匙呢?不妨这样考虑锁子的数量:6人中3人到场的情况是 =20种,这时至少还有一把锁不能打开,最不利的情况是这20种组合中的不能打开的锁是各不相同的,所以至少应有20把锁。然后考虑钥匙的数量:先任意指定1人必须在场,6人当中的4人在场等价于非指定的5人中3人在场,这样的情况是 =10种,这10种组合中每种都尚有一把锁必须等指定的那个人到场才能打开。而最36C35C第6章 密钥管理和密码协议不利的情况是10种组合中的最后一把锁是各不相同的,因此指定的人至少应当有10把不同的钥匙去一
17、一配合这10把不同的锁。无论先指定谁都一样。由此可见,每个人至少应持有10把不同的钥匙。6个人共应有60把钥匙,平均每把锁配有3把钥匙。这60把钥匙在6个人中被恰当地分配。把这个问题用到密钥分享方面,就相当于取一个20位的数字串,分给6个人保管,每人保管其中不相同的10位。任意3人组合,一定有一位并且只有一位数字是3个人都不掌握的,所以3个人不能得到完整的密钥。第四个人如果参与,虽然他与原来3个人中的任何两人可构成三种3人组合,但各组合都仍然各缺一个数位且只缺一位。设缺的分别是第i、j、k位,而原来的3人组合所空缺的位是第l位,因为不同3人组合的缺位是不同的,第6章 密钥管理和密码协议i、j、
18、k都不是l,所以l一定掌握在第四个人手里,4人组合后,l位必然不空缺,这就保证了4人组合必然得到完整的密钥。例如,密钥是(a1a2a3a19a20),且:A1掌握(a11a12a13a14a15a16a17a18a19a20);A2掌握(a5a6a7a8a9a10a17a18a19a20)A3掌握(a2a3a4a8a9a10a14a15a16a20);A4掌握(a1a3a4a6a7a10a12a13a16a19)A5掌握(a1a2a4a5a7a8a11a13a15a18);A6掌握(a1a2a3a5a6a8a11a12a14a17)则第一种3人组合A1A2A3缺少a1位,第二种3人组合A1A2
19、A4缺少a2位,第i种3人组合缺少ai位,直到第二十种3人组合A4A5A6缺少a20位。共有 =20种不同的3人组合,每种都缺一个不同的位。36C第6章 密钥管理和密码协议 普遍地说,如果系统的安全性最终取决于一个主密钥,若这个主密钥偶然或蓄意地被暴露,整个系统就会受到致命攻击;若主密钥丢失或损坏,则系统中所有信息也就用不成了。在这种情况下就要使用密钥共享(SecretKeyShareScheme)方案:主密钥k分成了n个子密钥k1k2kn,由n个人分别保管,要求:(1)已知其中任意t个子密钥(tn),容易算出k。(2)已知任意t-1或更少的子密钥,则不能算出k。这种方案叫做(t,n)门限(T
20、hreshold)密钥共享方案。第6章 密钥管理和密码协议6.2.2Shamir门限方案门限方案 1979年,Shamir基于拉格朗日内插多项式算法,提出了一个(t,n)门限方案。设GF(q)是一有限域,共享密钥kGF(q)。可信任中心给n(npdndn-1dn-t+2,于是,若M=d1d2dt,则 大于任意t-1个di之积。(因它大于最大的t-1个di之积。)pM第6章 密钥管理和密码协议 令是区间 中的一个随机整数,表示不大于 的最大整数。p和,计算k=k+p,则kpMpM1 0pM,0,M-1。将k分为n个共享密钥:ki=kmod di(i=1,2n)。将ki分配给用户i。为了恢复k,只
21、需求解中国剩余定理的联立方程组即可ttiiiiiidkkdkkdkkmod modmod2211(6-23)第6章 密钥管理和密码协议 t个方程联立,便可得到唯一解k,于是密钥k=k-p,即k=kmod p。若只有t-1个方程,则有无数多个解。有了(4),就制约了n与t之间并不独立。【例2】密钥k=5,要分配给n=3个终端,要求若少于t=2个终端就无法得到k。设计一个Asmuth-Bloom方案。解解:取常数p=7(k),并找3个与p互素且自相互素的数,此处找d1=11,d2=12,d3=17,且满足:d1d2=1112=132pd3=717=119任意选=14,满足:187132pM第6章
22、密钥管理和密码协议于是有 k=k+p=5+147=103在0,131区间内求出子密钥,分配给第一个终端:k1=103 mod 11=4分配给第二个终端和第三个终端的子密钥是:k2=103 mod 12=7 k3=103 mod 17=1现在,若有两个终端k1=4,k2=7在场,则k满足同余方程:)12(12 mod 7)11(11 mod 421dkdk因因为为因因为为第6章 密钥管理和密码协议 解同余方程的办法是先求M=d1d2=1112=132,由此:;dMM,dMM1112132 12111322211则由 y1M1=1 mod 11可求出y1=1;由y2M2=1 mod 12可求出y2
23、=11。所以k=k1M1y1+k2M2y2=4121+71111=895 mod 132=103最后 k=k-p=103-147=103-98=5第6章 密钥管理和密码协议 【例3】数据库可简单地看做是记录的集合,记录由字段构成。若对记录加密,而个别字段又可独立解密而不涉及其他字段的安全性,则可采取共享密钥方案。(1)请为此设计一个AsmuthBloom密钥方案。(2)如一条记录R有4字段:f1=5,f2=7,f3=8,f4=12,试根据(1)中方案分析加密、解密过程。解解:(1)设记录有n个字段f1 f2 fn,各个字段都是0,1符号串,可看做是一个二进制数。选n个不同的素数p1p2pn使p
24、i fi(i=1,2,n),整个记录的密文满足同余方程组:C=fi mod pi i=1,2,n (6-24)第6章 密钥管理和密码协议 令 nipMM,pppMiin,1,2,21(6-25)若 yiMi=1mod pi i=1,2,n (6-26)则令 ei=Miyi i=1,2,n (6-27)为n个共享子密钥。当n个ei都齐全时,可求出整条记录的密文为 0CM (6-28)若想只检索C中第i个字段,则可由C=fi mod pi求出fi。1 mod iiiMfeC第6章 密钥管理和密码协议 (2)如一条记录R有4个字段,分别为 f1=5,f2=7,f3=8,f4=12,选4个素数,分别为
25、p1=7,p2=11,p3=13,p4=17,满足pi fi。若C为密文,则同余方程是:17mod1213mod811mod77mod5CCCC根据中国剩余定理,有 M=7111317=17017 第6章 密钥管理和密码协议而 1001 13091547 243144332211pMM,pMM,pMM,pMM根据模逆元关系:yiMi=1 mod pi不难求出:y1=4,y2=8,y3=3,y4=8于是4个写入子密钥为 e1=y1M1=24314=9724 第6章 密钥管理和密码协议 e2=y2M2=15478=12376 e3=y3M3=13093=3927 e4=y4M4=10018=800
展开阅读全文