新書推薦:
《
不止江湖
》
售價:HK$
101.2
《
天才留步!——从文艺复兴到新艺术运动(一本关于艺术天才的鲜活故事集,聚焦艺术史的高光时刻!)
》
售價:HK$
158.7
《
双城史
》
售價:HK$
110.9
《
冯友兰和青年谈心系列:不是问题的问题(哲学大师冯友兰和年轻人谈心,命运解读)
》
售價:HK$
57.3
《
月与蟹(青鲤文库)荣获第144届直木奖,天才推理作家经典作品全新译本。一部青春狂想曲,带你登上心理悬疑之巅。
》
售價:HK$
51.8
《
索恩丛书·盛清统治下的太监与皇帝
》
售價:HK$
88.5
《
透过器物看历史(全6册)
》
售價:HK$
503.7
《
我在台北故宫博物院读名画
》
售價:HK$
112.7
編輯推薦:
本书由教育部高等学校信息安全专业教学指导委员会、中国计算机学会教育专业委员会共同指导,为普通高等教育十一五*规划教材并获得首届中国大学出版社图书奖、中央网信办和教育部评选的国家网络安全优秀教材奖,符合《高等学校信息安全专业指导性专业规范》。本书作为信息安全专业重要的专业基础课程教材,是作者长期教学实践的积累,是同类教材中的优秀教材和经典教材。本书全面而详细地介绍现代密码学的理论和相关算法,可帮助读者将所学知识应用于信息安全的实践中。本书从教材使用的角度考虑,概念清晰、结构合理、通俗易懂、深入浅出,充分考虑方便教师在教学过程中的实施,注重与其他专业课教学的衔接,精心给出了大量的例题和习题。本书取材新颖,不仅介绍现代密码学的基础理论和实用算法,同时也涵盖了现代密码学领域国内外*的研究成果,并按内容的内在逻辑由浅及深地展开,有效帮助读者了解本学科*的发展方向,符合教育部高等学校信息安全专业教学指导委员会编制的《高等学校信息安全专业指导性专业规范》要求,特别适合作为高等院校信息安全、计算机工程和信息对抗等专业的本科生和网络空间安全学科研究生教材,也可作为通信工程师和计算机网络工程师的参考读物。
內容簡介:
本书全面而详细地介绍现代密码学的理论和相关算法,可帮助读者将所学知识应用于信息安全实践。全书共分10章,内容包括现代密码学的基本概念、流密码、分组密码、公钥密码、密钥分配与密钥管理、消息认证和哈希函数、数字签名和认证协议、密码协议、可证明安全、网络加密与认证。 本书从教材使用的角度考虑,概念清晰、结构合理、讲解通俗易懂、内容深入浅出,并充分考虑方便教师在教学过程中的实施,同时还注意与其他专业课教学的衔接。本书取材新颖,不仅介绍现代密码学所涉及的基础理论和实用算法,而且涵盖了现代密码学的*研究成果,力求使读者通过本书的学习而了解本学科*的发展方向。 本书可作为高等学校相关专业大学生和研究生的教材,也可作为通信工程师和计算机网络工程师的参考读物。
關於作者:
杨波,北京大学学士,西安电子科技大学硕士、博士,陕西师范大学计算机科学学院教授、博士生导师,陕西省百人计划特聘教授,中国密码学会理事,中国密码学会密码算法专业委员会委员,《密码学报》编委。曾任华南农业大学信息学院、软件学院院长。2011年起在陕西师范大学计算机科学学院工作。2005年担任第四届中国信息和通信安全学术会议程序委员会主席,2009年担任中国密码学会年会副主席,2010年起担任The Joint Workshop on Information Security JWISCo-General Chair。主持多项国家自然科学基金、863计划、国家密码发展基金、国防科技重点实验室基金、陕西省自然科学基金项目。
目錄 :
目录
第1章引言1
1.1信息安全面临的威胁1
1.1.1安全威胁1
1.1.2入侵者和病毒2
1.1.3安全业务3
1.2信息安全模型4
1.3密码学基本概念5
1.3.1保密通信系统5
1.3.2密码体制分类7
1.3.3密码攻击概述7
1.4几种古典密码8
1.4.1单表代换密码9
1.4.2多表代换密码10
习题11
第2章流密码13
2.1流密码的基本概念13
2.1.1同步流密码13
2.1.2有限状态自动机14
2.1.3密钥流产生器15
2.2线性反馈移位寄存器16
2.3线性移位寄存器的一元多项式表示18
2.4m序列的伪随机性21
2.5m序列密码的破译23
2.6非线性序列26
2.6.1Geffe序列生成器26
2.6.2JK触发器27
2.6.3Pless生成器28现代密码学第4版目录2.6.4钟控序列生成器28
习题30
第3章分组密码体制32
3.1分组密码概述32
3.1.1代换33
3.1.2扩散和混淆34
3.1.3Feistel密码结构35
3.2数据加密标准38
3.2.1DES描述38
3.2.2二重DES43
3.2.3两个密钥的三重DES44
3.2.43个密钥的三重DES44
3.3差分密码分析与线性密码分析45
3.3.1差分密码分析45
3.3.2线性密码分析46
3.4分组密码的运行模式47
3.4.1电码本模式47
3.4.2密码分组链接模式48
3.4.3密码反馈模式49
3.4.4输出反馈模式51
3.5IDEA52
3.5.1设计原理52
3.5.2加密过程54
3.6AES 算法Rijndael58
3.6.1Rijndael的数学基础和设计思想58
3.6.2算法说明61
3.7中国商用密码算法SM469
3.8祖冲之密码73
3.8.1算法中的符号及含义73
3.8.2祖冲之密码的算法结构74
3.8.3祖冲之密码的运行79
3.8.4基于祖冲之密码的机密性算法 128EEA379
习题81
第4章公钥密码83
4.1密码学中一些常用的数学知识83
4.1.1群、环、域83
4.1.2素数和互素数85
4.1.3模运算86
4.1.4模指数运算88
4.1.5费尔马定理、欧拉定理、卡米歇尔定理89
4.1.6素性检验92
4.1.7欧几里得算法95
4.1.8中国剩余定理98
4.1.9离散对数101
4.1.10平方剩余102
4.1.11循环群105
4.1.12循环群的选取106
4.1.13双线性映射107
4.1.14计算复杂性108
4.2公钥密码体制的基本概念109
4.2.1公钥密码体制的原理110
4.2.2公钥密码算法应满足的要求111
4.2.3对公钥密码体制的攻击112
4.3RSA算法113
4.3.1算法描述113
4.3.2RSA算法中的计算问题115
4.3.3一种改进的RSA实现方法116
4.3.4RSA的安全性116
4.3.5对RSA的攻击118
4.4背包密码体制119
4.5Rabin密码体制121
4.6NTRU公钥密码系统123
4.7椭圆曲线密码体制124
4.7.1椭圆曲线124
4.7.2有限域上的椭圆曲线125
4.7.3椭圆曲线上的点数127
4.7.4明文消息到椭圆曲线上的嵌入127
4.7.5椭圆曲线上的密码128
4.8SM2椭圆曲线公钥密码加密算法130
习题133
第5章密钥分配与密钥管理135
5.1单钥加密体制的密钥分配135
5.1.1密钥分配的基本方法135
5.1.2一个实例135
5.1.3密钥的分层控制137
5.1.4会话密钥的有效期137
5.1.5无中心的密钥控制137
5.1.6密钥的控制使用138
5.2公钥加密体制的密钥管理139
5.2.1公钥的分配139
5.2.2用公钥加密分配单钥密码体制的密钥141
5.2.3Diffie\|Hellman密钥交换143
5.3随机数的产生144
5.3.1随机数的使用144
5.3.2随机数源145
5.3.3伪随机数产生器145
5.3.4基于密码算法的随机数产生器147
5.3.5随机比特产生器149
5.4秘密分割150
5.4.1秘密分割门限方案150
5.4.2Shamir门限方案151
5.4.3基于中国剩余定理的门限方案152
习题154
第6章消息认证和哈希函数156
6.1消息认证码156
6.1.1消息认证码的定义及使用方式156
6.1.2产生MAC的函数应满足的要求157
6.1.3数据认证算法158
6.1.4基于祖冲之密码的完整性算法128EIA3159
6.2哈希函数161
6.2.1哈希函数的定义及使用方式161
6.2.2哈希函数应满足的条件162
6.2.3生日攻击164
6.2.4迭代型哈希函数的一般结构165
6.3MD5哈希算法166
6.3.1算法描述166
6.3.2MD5的压缩函数169
6.3.3MD5的安全性170
6.4安全哈希算法171
6.4.1算法描述171
6.4.2SHA的压缩函数172
6.4.3SHA与MD5的比较174
6.4.4对SHA的攻击现状174
6.5HMAC175
6.5.1HMAC的设计目标175
6.5.2算法描述175
6.5.3HMAC的安全性177
6.6SM3哈希算法178
6.6.1SM3哈希算法的描述178
6.6.2SM3哈希算法的安全性179
习题181
第7章数字签名和认证协议182
7.1数字签名的基本概念182
7.1.1数字签名应满足的要求182
7.1.2数字签名的产生方式183
7.1.3数字签名的执行方式184
7.2数字签名标准186
7.2.1DSS的基本方式186
7.2.2数字签名算法DSA187
7.3其他签名方案188
7.3.1基于离散对数问题的数字签名体制188
7.3.2基于大数分解问题的数字签名体制192
7.3.3基于身份的数字签名体制193
7.4SM2椭圆曲线公钥密码签名算法194
7.5认证协议196
7.5.1相互认证196
7.5.2单向认证200
习题201
第8章密码协议202
8.1一些基本协议202
8.1.1智力扑克202
8.1.2掷硬币协议203
8.1.3数字承诺协议204
8.1.4不经意传输协议205
8.2零知识证明208
8.2.1交互式证明系统208
8.2.2交互式证明系统的定义209
8.2.3交互式证明系统的零知识性209
8.2.4非交互式证明系统212
8.2.5适应性安全的非交互式零知识证明213
8.2.6零知识证明协议的组合213
8.2.7图的三色问题的零知识证明214
8.2.8知识证明215
8.2.9简化的Fiat\|Shamir身份识别方案218
8.2.10FiatShamir身份识别方案219
8.3安全多方计算协议220
8.3.1安全多方计算问题220
8.3.2半诚实敌手模型221
8.3.3恶意敌手模型225
习题228
第9章可证明安全229
9.1语义安全的公钥密码体制的定义229
9.1.1选择明文攻击下的不可区分性229
9.1.2公钥加密方案在选择密文攻击下的不可区分性233
9.1.3公钥加密方案在适应性选择密文攻击下的不可区分性235
9.1.4归约236
9.2语义安全的RSA加密方案237
9.2.1RSA问题和RSA假设237
9.2.2选择明文安全的RSA加密238
9.2.3选择密文安全的RSA加密240
9.3Paillier公钥密码系统243
9.3.1合数幂剩余类的判定243
9.3.2合数幂剩余类的计算244
9.3.3基于合数幂剩余类问题的概率加密方案246
9.3.4基于合数幂剩余类问题的单向陷门置换247
9.3.5Paillier密码系统的性质248
9.4CramerShoup密码系统249
9.4.1CramerShoup密码系统的基本机制249
9.4.2CramerShoup密码系统的安全性证明250
9.5RSAFDH签名方案252
9.5.1RSA签名方案252
9.5.2RSAFDH签名方案的描述253
9.5.3RSAFDH签名方案的改进255
9.6BLS短签名方案257
9.6.1BLS短签名方案所基于的安全性假设257
9.6.2BLS短签名方案描述257
9.6.3BLS短签名方案的改进一259
9.6.4BLS短签名方案的改进二259
9.7基于身份的密码体制260
9.7.1基于身份的密码体制定义和安全模型260
9.7.2随机谕言机模型下的基于身份的密码体制263
9.8分叉引理273
习题275
第10章网络加密与认证277
10.1网络通信加密277
10.1.1开放系统互连和TCPIP分层模型277
10.1.2网络加密方式278
10.2Kerberos认证系统281
10.2.1Kerberos V4281
10.2.2Kerberos区域与多区域的Kerberos284
10.3X.509认证业务285
10.3.1证书285
10.3.2认证过程288
10.4PGP289
10.4.1运行方式289
10.4.2密钥和密钥环293
10.4.3公钥管理298
习题301
参考文献302
內容試閱 :
网络空间安全重点规划丛书编审委员会顾问委员会主任: 沈昌祥(中国工程院院士)特别顾问: 姚期智(美国国家科学院院士、美国人文及科学院院士、中国科学院院士、图灵奖获得者)何德全(中国工程院院士)蔡吉人(中国工程院院士)方滨兴(中国工程院院士)主任: 封化民副主任: 韩臻李建华王小云张焕国冯登国委员: (按姓氏拼音为序)曹珍富陈克非陈兴蜀杜瑞颖段海新高岭宫力谷大武何大可侯整风胡爱群胡道元黄继武黄刘生荆继武寇卫东来学嘉李晖刘建伟刘建亚马建峰毛文波裴定一钱德沛秦玉海秦志光卿斯汉石文昌汪烈军王怀民王劲松王军王丽娜王美琴王清贤王新梅王育民吴晓平谢冬青徐明许进杨波杨庚杨义先俞能海张功萱张红旗张宏莉张敏情张玉清郑东周福才丛书策划: 张民21世纪是信息时代,信息已成为社会发展的重要战略资源,社会的信息化已成为当今世界发展的潮流和核心,而信息安全在信息社会中将扮演极为重要的角色,它会直接关系到国家安全、企业经营和人们的日常生活。 随着信息安全产业的快速发展,全球对信息安全人才的需求量不断增加,但我国目前信息安全人才极度匮乏,远远不能满足金融、商业、公安、军事和政府等部门的需求。要解决供需矛盾,必须加快信息安全人才的培养,以满足社会对信息安全人才的需求。为此,教育部继2001年批准在武汉大学开设信息安全本科专业之后,又批准了多所高等院校设立信息安全本科专业,而且许多高校和科研院所已设立了信息安全方向的具有硕士和博士学位授予权的学科点。信息安全是计算机、通信、物理、数学等领域的交叉学科,对于这一新兴学科的培养模式和课程设置,各高校普遍缺乏经验,因此中国计算机学会教育专业委员会和清华大学出版社联合主办了信息安全专业教育教学研讨会等一系列研讨活动,并成立了高等院校信息安全专业系列教材编审委员会,由我国信息安全领域著名专家肖国镇教授担任编委会主任,指导高等院校信息安全专业系列教材的编写工作。编委会本着研究先行的指导原则,认真研讨国内外高等院校信息安全专业的教学体系和课程设置,进行了大量前瞻性的研究工作,而且这种研究工作将随着我国信息安全专业的发展不断深入。系列教材的作者都是既在本专业领域有深厚的学术造诣、又在教学第一线有丰富的教学经验的学者、专家。该系列教材是我国第一套专门针对信息安全专业的教材,其特点是:① 体系完整、结构合理、内容先进。② 适应面广:能够满足信息安全、计算机、通信工程等相关专业对信息安全领域课程的教材要求。③ 立体配套:除主教材外,还配有多媒体电子教案、习题与实验指导等。④ 版本更新及时,紧跟科学技术的新发展。在全力做好本版教材,满足学生用书的基础上,还经由专家的推荐和审定,遴选了一批国外信息安全领域优秀的教材加入到系列教材中,以进一步满足大家对外版书的需求。高等院校信息安全专业系列教材已于2006年年初正式列入普通高等教育十一五国家级教材规划。2007年6月,教育部高等学校信息安全类专业教学指导委员会成立大会暨第一次会议在北京胜利召开。本次会议由教育部高等学校信息安全类专业教学指导委员会主任单位北京工业大学和北京电子科技学院主办,清华大学出版社协办。教育部高等学校信息安全类专业教学指导委员会的成立对我国信息安全专业的发展起到重要的指导和推动作用。2006年教育部给武汉大学下达了信息安全专业指导性专业规范研制的教学科研项目。2007年起该项目由教育部高等学校信息安全类专业教学指导委员会组织实施。在高教司和教指委的指导下,项目组团结一致,努力工作,克服困难,历时5年,制定出我国第一个信息安全专业指导性专业规范,于2012年年底通过经教育部高等教育司理工科教育处授权组织的专家组评审,并且已经得到武汉大学等许多高校的实际使用。2013年,新一届教育部高等学校信息安全专业教学指导委员会成立。经组织审查和研究决定,2014年以教育部高等学校信息安全专业教学指导委员会的名义正式发布《高等学校信息安全专业指导性专业规范》(由清华大学出版社正式出版)。现代密码学第4版出版说明2015年6月,国务院学位委员会、教育部出台增设网络空间安全为一级学科的决定,将高校培养网络空间安全人才提到新的高度。2016年6月,中央网络安全和信息化领导小组办公室(下文简称中央网信办)、国家发展和改革委员会、教育部、科学技术部、工业和信息化部及人力资源和社会保障部六大部门联合发布《关于加强网络安全学科建设和人才培养的意见》(中网办发文\[2016\]4号)。为贯彻落实《关于加强网络安全学科建设和人才培养的意见》,进一步深化高等教育教学改革,促进网络安全学科专业建设和人才培养,促进网络空间安全相关核心课程和教材建设,在教育部高等学校信息安全专业教学指导委员会和中央网信办资助的网络空间安全教材建设课题组的指导下,启动了网络空间安全重点规划丛书的工作,由教育部高等学校信息安全专业教学指导委员会秘书长封化民校长担任编委会主任。本规划丛书基于高等院校信息安全专业系列教材坚实的工作基础和成果、阵容强大的编审委员会和优秀的作者队伍,目前已经有多本图书获得教育部和中央网信办等机构评选的普通高等教育本科国家级规划教材、普通高等教育精品教材、中国大学出版社图书奖和国家网络安全优秀教材奖等多个奖项。网络空间安全重点规划丛书将根据《高等学校信息安全专业指导性专业规范》(及后续版本)和相关教材建设课题组的研究成果不断更新和扩展,进一步体现科学性、系统性和新颖性,及时反映教学改革和课程建设的新成果,并随着我国网络空间安全学科的发展不断完善,力争为我国网络空间安全相关学科专业的本科和研究生教材建设、学术出版与人才培养做出更大的贡献。我们的Email地址是: zhangm@tup.tsinghua.edu.cn,联系人: 张民。
网络空间安全重点规划丛书编审委员会当今世界,互联网深刻改变了人们的生产和生活方式,但我们在网络安全方面却面临着严峻挑战。从宏观上说,网络安全是事关国家安全的重大战略问题没有网络安全就没有国家安全;从微观上看,网络安全关乎我们每个人的信息安全。网络安全指网络系统中硬件、软件及其系统中的数据安全。从本质上说,网络安全就是网络上的信息安全。信息安全又分为系统安全包括操作系统的安全、数据库系统的安全等、数据安全包括数据的安全存储、安全传输和内容安全包括病毒的防护、不良内容的过滤等3个层次,是一个综合、交叉的学科领域,要利用数学、电子、信息、通信、计算机等诸多学科的长期知识积累和最新发展成果。信息安全研究的内容很多,涉及安全体系结构、安全协议、密码理论、信息分析、安全监控、应急处理等,其中密码技术是保障数据安全的关键技术。密码技术中的加密方法包括单钥密码体制又称为对称密码体制和公钥密码体制,而单钥密码体制又包括流密码和分组密码。本书在第1章介绍现代密码学的基本概念后,在第2~4章分别介绍流密码、分组密码、公钥密码。不管哪种密码体制都需要用到密钥,因此密钥分配与密钥管理也是密码技术的重要内容,这部分内容在第5章介绍。信息的安全性除要考虑保密性外,还需考虑信息的真实性、完整性、顺序性、时间性以及不可否认性。本书以3章的篇幅第6章消息认证和哈希算法、第7章数字签字和认证协议、第8章密码协议介绍这部分内容。第9章可证明安全介绍如何刻画公钥密码体制的语义安全性。第10章网络加密与认证介绍加密技术和认证技术在网络中的具体应用。书中4.1.5节的卡米歇尔定理、4.1.11节循环群、4.1.12节循环群的选取、8.3节安全多方计算协议、第9章可证明安全供研究生使用。本书自2003年8月第1版以来,已被150余所学校作为教材,曾获批普通高等教育十一五国家级规划教材,2016年获得首届国家网络安全优秀教材奖。第4版在第3版的基础上进行修订,因为内容陈旧而去掉了原5.3节,重新编写了第9章,增加了3.7节、3.8节、6.1.4节、6.6节和7.4节。本书的特点: 一是内容新颖、深入、全面,涵盖了现代密码学的最新成果;二是内容的安排充分考虑到作为教材,如何方便地在教学中使用。在本书的编写过程中,参考了国内外的有关著作和文献,特别是Stallings、王育民、卢开澄、朱文余等人的著作。西安电子科技大学通信工程学院的肖国镇教授作为本书的责任编委,认真审阅了全书并提出了许多宝贵的指导意见,对此表示特别的感谢。清华大学出版社张民编辑为本书的出版做了大量的工作,在此表示衷心的感谢。由于作者水平有限,书中不足在所难免,恳请读者批评指正。现代密码学第4版前言作者2017年4月
第5章第5章密钥分配与密钥管理
5.1单钥加密体制的密钥分配5.1.1密钥分配的基本方法两个用户主机、进程、应用程序在用单钥密码体制进行保密通信时,首先必须有一个共享的秘密密钥,而且为防止攻击者得到密钥,还必须时常更新密钥。因此,密码系统的强度也依赖于密钥分配技术。两个用户A和B获得共享密钥的方法有以下几种:1 密钥由A选取并通过物理手段发送给B;2 密钥由第三方选取并通过物理手段发送给A和B;3 如果A、B事先已有一密钥,则其中一方选取新密钥后,用已有的密钥加密新密钥并发送给另一方;4 如果A和B与第三方C分别有一个保密信道,则C为A、B选取密钥后,分别在两个保密信道上发送给A、B。前两种方法称为人工发送。在通信网中,若只有个别用户想进行保密通信,密钥的人工发送还是可行的。然而如果所有用户都要求支持加密服务,则任一对希望通信的用户都必须有一共享密钥。如果有n个用户,则密钥数目为nn-12。因此当n很大时,密钥分配的代价非常大,密钥的人工发送是不可行的。对第三种方法,攻击者一旦获得一个密钥就可获取以后所有的密钥;再者对所有用户分配初始密钥时,代价仍然很大。第四种方法比较常用,其中的第三方通常是一个负责为用户分配密钥的密钥分配中心。这时每一用户必须和密钥分配中心有一个共享密钥,称为主密钥。通过主密钥分配给一对用户的密钥称为会话密钥,用于这一对用户之间的保密通信。通信完成后,会话密钥即被销毁。如上所述,如果用户数为n,则会话密钥数为nn-12。但主密钥数却只需n个,所以主密钥可通过物理手段发送。5.1.2一个实例图51是密钥分配的一个实例。假定两个用户A、B分别与密钥分配中心Key Distribution Center,KDC有一个共享的主密钥KA和KB,A希望与B建立一个共享的一次性会话密钥,可通过以下几步: 图51密钥分配实例现代密码学(第4版)第5章密钥分配与密钥管理1 A向KDC发出会话密钥请求。表示请求的消息由两个数据项组成: 一是A和B的身份;二是这次业务的唯一识别符N1,称N1为一次性随机数,可以是时间戳、计数器或随机数。每次请求所用的N1都应不同,且为防止假冒,应使敌手对N1难以猜测。因此用随机数作为这个识别符最为合适。2 KDC为A的请求发出应答。应答是由KA加密的消息,因此只有A才能成功地对这一消息解密,并且A可相信这一消息的确是由KDC发出的。消息中包括A希望得到的两项: 一次性会话密钥KS; A在1中发出的请求,包括一次性随机数N1,目的是使A将收到的应答与发出的请求相比较,看是否匹配。因此A能验证自己发出的请求在被KDC收到之前,未被他人篡改。而且A还能根据一次性随机数相信自己收到的应答不是重放的过去的应答。此外,消息中还有B希望得到的两项: 一次性会话密钥KS; A的身份例如A的网络地址IDA;这两项由KB加密,将由A转发给B,以建立A、B之间的连接并用于向B证明A的身份。3 A存储会话密钥,并向B转发EKB[KS‖IDA]。因为转发的是由KB加密后的密文,所以转发过程不会被窃听。B收到后,可得会话密钥KS,并从IDA可知另一方是A,而且还从EKB知道KS的确来自KDC。这一步完成后,会话密钥就安全地分配给了A、B。然而还能继续以下两步:4 B用会话密钥KS加密另一个一次性随机数N2,并将加密结果发送给A。5 A以fN2作为对B的应答,其中f是对N2进行某种变换例如加1的函数,并将应答用会话密钥加密后发送给B。这两步可使B相信第3步收到的消息不是一个重放。注意: 第3步就已完成密钥分配,第4、5两步结合第3步执行的是认证功能。5.1.3密钥的分层控制网络中如果用户数目非常多而且分布的地域非常广,一个KDC就无法承担为用户分配密钥的重任。问题的解决方法是使用多个KDC的分层结构。例如,在每个小范围如一个LAN或一个建筑物内,都建立一个本地KDC。同一范围的用户在进行保密通信时,由本地KDC为他们分配密钥。如果两个不同范围的用户想获得共享密钥,则可通过各自的本地KDC,而两个本地KDC的沟通又需经过一个全局KDC。这样就建立了两层KDC。类似地,根据网络中用户的数目及分布的地域,可建立三层或多层KDC。分层结构可减少主密钥的分布,因为大多数主密钥是在本地KDC和本地用户之间共享。再者,分层结构还可将虚假KDC的危害限制到一个局部区域。5.1.4会话密钥的有效期会话密钥更换得越频繁,系统的安全性就越高。因为敌手即使获得一个会话密钥,也只能获得很少的密文。但另一方面,会话密钥更换得太频繁,又将延迟用户之间的交换,同时还造成网络负担。所以在决定会话密钥的有效期时,应权衡矛盾的两个方面。对面向连接的协议,在连接未建立前或断开时,会话密钥的有效期可以很长。而每次建立连接时,都应使用新的会话密钥。如果逻辑连接的时间很长,则应定期更换会话密钥。无连接协议如面向业务的协议无法明确地决定更换密钥的频率。为安全起见,用户每进行一次交换,都用新的会话密钥。然而这又失去了无连接协议主要的优势,即对每个业务都有最少的费用和最短的延迟。比较好的方案是在某一固定周期内或对一定数目的业务使用同一会话密钥。5.1.5无中心的密钥控制用密钥分配中心为用户分配密钥时,要求所有用户都信任KDC,同时还要求对KDC加以保护。如果密钥的分配是无中心的,则不必有以上两个要求。然而如果每个用户都能和自己想与之建立联系的另一用户安全地通信,则对有n个用户的网络来说,主密钥应多达nn-12个。当n很大时,这种方案无实用价值,但在整个网络的局部范围却非常有用。无中心的密钥分配时,两个用户A和B建立会话密钥需经过以下3步,见图52。图52无中心的密钥分配1 A向B发出建立会话密钥的请求和一个一次性随机数N1。2 B用与A共享的主密钥MKm对应答的消息加密,并发送给A。应答的消息中有B选取的会话密钥、B的身份、fN1和另一个一次性随机数N2。3 A使用新建立的会话密钥KS对fN2加密后返回给B。5.1.6密钥的控制使用因为密钥可根据其不同用途分为会话密钥和主密钥两种类型,所以还希望对密钥的使用方式加以某种控制,会话密钥又称为数据加密密钥,主密钥又称为密钥加密密钥。如果主密钥泄露了,则相应的会话密钥也将泄露,因此主密钥的安全性应高于会话密钥的安全性。一般在密钥分配中心以及终端系统中,主密钥都是物理上安全的,如果把主密钥当作会话密钥注入加密设备,那么其安全性则降低。单钥体制中的密钥控制技术有:1. 密钥标签用于DES的密钥控制,将DES的64比特密钥中的8个校验位作为控制使用这一密钥的标签。标签中各比特的含义为: 一个比特表示这个密钥是会话密钥还是主密钥。 一个比特表示这个密钥是否能用于加密。 一个比特表示这个密钥是否能用于解密。 其他比特无特定含义,留待以后使用。由于标签是在密钥之中的,所以在分配密钥时,标签与密钥一起被加密,因此可对标签起到保护。本方案的缺点一是标签的长度被限制为8比特,限制了它的灵活性和功能。二是由于标签是以密文形式传送,只有解密后才能使用,因而限制了对密钥使用的控制方式。2. 控制矢量这一方案比上一方案灵活。方案中对每一会话密钥都指定一个相应的控制矢量,控制矢量分为若干字段,分别用于说明在不同情况下密钥是被允许使用还是不被允许使用,且控制矢量的长度可变。控制矢量是在KDC产生密钥时加在密钥之中的,过程由图53a所示。首先由一个哈希函数将控制矢量压缩到与加密密钥等长,然后与主密钥异或后作为加密会话密钥的密钥,即H=hCVKin=KmHKout=EKmH[KS]其中CV是控制矢量,h是哈希函数,Km是主密钥,KS是会话密钥。会话密钥的恢复过程由图53b所示,表示为KS=DKmH[EKmH[KS]]图53控制矢量的使用方式KDC在向用户发送会话密钥时,同时以明文形式发送控制矢量。用户只有使用与KDC共享的主密钥以及KDC发送来的控制矢量才能恢复会话密钥,因此还必须保留会话密钥与其控制矢量之间的对应关系。与使用8比特的密钥标签相比,使用控制矢量有两个优点: 第一,控制矢量的长度没有限制,因此可对密钥的使用施加任意复杂的控制;第二,控制矢量始终是以明文形式存在,因此可在任一阶段对密钥的使用施加控制。5.2公钥加密体制的密钥管理前一节介绍了单钥密码体制中的密钥分配问题,而公钥加密的一个主要用途是分配单钥密码体制使用的密钥。本节介绍两个内容: 一是公钥密码体制所用的公开密钥的分配;二是如何用公钥体制来分配单钥密码体制所需的密钥。5.2.1公钥的分配公钥的分配方法有以下几类。1. 公开发布公开发布指用户将自己的公钥发给每一其他用户,或向某一团体广播。例如,PGPPretty Good Privacy中采用了RSA算法,它的很多用户都是将自己的公钥附加到消息上,然后发送到公开公共区域,如因特网邮件列表。这种方法虽然简单,但有一个非常大的缺点,即任何人都可伪造这种公开发布。如果某个用户假装是用户A并以A的名义向另一用户发送或广播自己的公开钥,则在A发现假冒者以前,这一假冒者可解读所有意欲发向A的加密消息,而且假冒者还能用伪造的密钥获得认证。2. 公用目录表公用目录表指建立一个公用的公钥动态目录表,目录表的建立、维护以及公钥的分布由某个可信的实体或组织承担,称这个实体或组织为公用目录的管理员。与第一种分配方法相比,这种方法的安全性更高。该方案有以下一些组成部分:1 管理员为每个用户都在目录表中建立一个目录,目录中有两个数据项: 一是用户名,二是用户的公开钥。2 每一用户都亲自或以某种安全的认证通信在管理者那里为自己的公开钥注册。3 用户如果由于自己的公开钥用过的次数太多或由于与公开钥相关的秘密钥已被泄露,则可随时用新密钥替换现有的密钥。4 管理员定期公布或定期更新目录表。例如,像电话号码本一样公布目录表或在发行量很大的报纸上公布目录表的更新。5 用户可通过电子手段访问目录表,这时从管理员到用户必须有安全的认证通信。本方案的安全性虽然高于公开发布的安全性,但仍易受攻击。如果敌手成功地获取了管理员的秘密钥,就可伪造一个公钥目录表,以后既可假冒任一用户,又能监听发往任一用户的消息,且公用目录表还易受到敌手的窜扰。3. 公钥管理机构如果在公钥目录表中对公钥的分配施加更严密的控制,安全性将会更强。与公用目录表类似,这里假定有一个公钥管理机构来为各用户建立、维护动态的公钥目录,但同时对系统提出以下要求,即: 每个用户都可靠地知道管理机构的公开钥,而只有管理机构自己知道相应的秘密钥。公开钥的分配步骤如下,如图54所示。图54公钥管理机构分配公钥1 用户A向公钥管理机构发送一个带时间戳的消息,消息中有获取用户B的当前公钥的请求。2 管理机构对A的请求作出应答,应答由一个消息表示,该消息由管理机构用自己的秘密钥SKAU加密,因此A能用管理机构的公开钥解密,并使A相信这个消息的确是来源于管理机构。应答的消息中有以下几项: B的公钥PKB,A可用它对将发往B的消息加密; A的请求,用于A验证收到的应答的确是对相应请求的应答,且还能验证自己最初发出的请求在被管理机构收到以前未被篡改。 最初的时间戳,以使A相信管理机构发来的消息不是一个旧消息,因此消息中的公开钥的确是B当前的公钥。3 A用B的公开钥对一个消息加密后发往B,这个消息有两个数据项,一是A的身份IDA,二是一个一次性随机数N1,用于唯一地标识这次业务。4、5 B以相同方式从管理机构获取A的公开钥。这时,A和B都已安全地得到了对方的公钥,所以可进行保密通信。然而,他们也许还希望有以下两步,以认证对方。6 B用PKA对一个消息加密后发往A,该消息的数据项有A的一次性随机数N1和B产生的一个新一次性随机数N2。因为只有B能解密3的消息,所以A收到的消息中的N1可使其相信通信的另一方的确是B。7 A用B的公开钥对N2加密后返回给B,可使B相信通信的另一方的确是A。以上过程共发送了7个消息,其中前4个消息用于获取对方的公开钥。用户得到对方的公开钥后存下可供以后使用,这样就不必再发送前4个消息了,然而还必须定期地通过密钥管理中心获取通信对方的公开钥,以免对方的公开钥更新后无法保证当前的通信。4. 公钥证书上述公钥管理机构分配公开钥时也有缺点,由于每一用户要想和他人联系都需求助于管理机构,所以管理机构有可能成为系统的瓶颈,而且由管理机构维护的公钥目录表也易被敌手窜扰。分配公钥的另一方法是公钥证书,用户通过公钥证书相互之间交换自己的公钥而无须与公钥管理机构联系。公钥证书由证书管理机构Certificate Authority,CA为用户建立,其中的数据项有与该用户的秘密钥相匹配的公开钥及用户的身份和时间戳等,所有的数据项经CA用自己的秘密钥签字后就形成证书,即证书的形式为CA=ESKCA[T,IDA,PKA],其中IDA是用户A的身份,PKA是A的公钥,T是当前时间戳,SKCA是CA的秘密钥,CA即是为用户A产生的证书。产生过程如图55所示。用户可将自己的公开钥通过公钥证书发给另一用户,接收方可用CA的公钥PKCA对证书加以验证,即DPKCA[CA]=DPKCA[ESKCA[T,IDA,PKA]]=T,IDA,PKA图55证书的产生过程因为只有用CA的公钥才能解读证书,接收方从而验证了证书的确是由CA发放的,且也获得了发方的身份IDA和公开钥PKA。时间戳T为接收方保证了收到的证书的新鲜性,用于防止发方或敌方重放一个旧证书。因此时间戳可被当作截止日期,证书如果过旧,则被吊销。5.2.2用公钥加密分配单钥密码体制的密钥公开钥分配完成后,用户就可用公钥加密体制进行保密通信了。然而由于公钥加密的速度过慢,以此进行保密通信不太合适,但用于分配单钥密码体制的密钥却非常合适。1. 简单分配图56表示简单使用公钥加密算法建立会话密钥的过程,如果A希望与B通信,则可通过以下几步建立会话密钥:图56简单使用公钥加密算法建立会话密钥1 A产生自己的一对密钥{PKA,SKA},并向B发送PKA||IDA,其中IDA表示A的身份。2 B产生会话密钥KS,并用A的公开钥PKA对KS加密后发往A。3 A由DSKA[EPKA[KS]]恢复会话密钥。因为只有A能解读KS,所以仅A、B知道这一共享密钥。4 A销毁PKA,SKA,B销毁PKA。A、B现在可以用单钥加密算法以KS作为会话密钥进行保密通信,通信完成后,又都将KS销毁。这种分配法尽管简单,但却由于A、B双方在通信前和完成通信后,都未存储密钥,因此,密钥泄露的危险性为最小,且可防止双方的通信被敌手监听。这一协议易受到主动攻击,如果敌手E已接入A、B双方的通信信道,就可以以下不被察觉的方式截获双方的通信:1 与上面的1相同。2 E截获A的发送后,建立自己的一对密钥{PKE,SKE},并将PKE‖IDA发送给B。3 B产生会话密钥KS后,将EPKE[KS]发送出去。4 E截获B发送的消息后,由DSKE[EPKE[KS]]解读KS。5 E再将EPKA[KS]发往A。现在A和B知道KS,但并未意识到KS已被E截获。A、B在用KS通信时,E就可以实施监听。2. 具有保密性和认证性的密钥分配图57所示的密钥分配过程具有保密性和认证性,因此既可防止被动攻击,又可防止主动攻击。图57具有保密性和认证性的密钥分配假定A、B双方已完成公钥交换,可按以下步骤建立共享会话密钥:1 A用B的公开钥加密A的身份IDA和一个一次性随机数N1后发往B,其中N1用于唯一地标识这一业务。2 B用A的公开钥PKA加密A的一次性随机数N1和B新产生的一次性随机数N2后发往A。因为只有B能解读1中的加密消息,所以B发来的消息中N1的存在可使A相信对方的确是B。3 A用B的公钥PKB对N2加密后返回给B,以使B相信对方的确是A。4 A选取一个会话密钥KS,然后将M=EPKB[ESKA[KS]]发给B,其中用B的公开钥加密是为保证只有B能解读加密结果,用A的秘密钥加密是保证该加密结果只有A能发送。5 B以DPKA[DSKB[M]]恢复会话密钥。5.2.3Diffie\|Hellman密钥交换Diffie\|Hellman密钥交换是W. Diffie和M. Hellman于1976年提出的第一个公钥密码算法,已在很多商业产品中得到应用。该算法的唯一目的是使得两个用户能够安全地交换密钥,得到一个共享的会话密钥,算法本身不能用于加、解密。算法的安全性基于求离散对数的困难性。图58表示DiffieHellman密钥交换过程,其中p是大素数,a是p的本原根,p和a作为公开的全程元素。用户A选择一个保密的随机整数XA,并将YA=aXAmod p发送给用户B。类似地,用户B选择一个保密的随机整数XB,并将YB=aXBmod p发送给用户A。然后A和B分别由K=YXAB mod p和K=YXBA mod p计算出的就是共享密钥,这是因为YXAB mod p=aXB mod pXA mod p=aXBXA mod p=aXBXA mod p=aXAXB mod p=aXA mod pXB mod p=YXBA mod p图58DiffieHellman密钥交换因为XA、XB是保密的,敌手只能得到p、a、YA、YB,要想得到K,则必须得到XA、XB中的一个,这意味着需要求离散对数。因此敌手求K是不可行的。【例51】p=97,a=5,A和B分别秘密选XA=36、XB=58,并分别计算YA=536mod 97=50,YB=558mod 97=44。在交换YA,YB后,分别计算K=YXAB mod 97=4436 mod 97=75,K=YXBA mod 97=5058 mod 97=755.3随机数的产生随机数在密码学中起着重要的作用。本节首先介绍随机数在密码学中的作用,然后介绍产生随机数的一些方法。5.3.1随机数的使用很多密码算法都需使用随机数,例如: 相互认证,如在图51、图52、图54和图57所示的密钥分配中,都使用了一次性随机数来防止重放攻击。 会话密钥的产生,用随机数作为会话密钥。 公钥密码算法中密钥的产生,用随机数作为公钥密码算法中的密钥,如图55所示;或以随机数来产生公钥密码算法中的密钥,如图58所示。在随机数的上述应用中,都要求随机数序列满足随机性和不可预测性。1. 随机性以下两个准则常用来保障数列的随机性:1 均匀分布数列中每个数出现的频率应相等或近似相等。2 独立性数列中任意一个数都不能由其他数推出。数列是否满足均匀分布可通过检测得出,而是否满足独立性则无法检测。相反却有很多检测方法能证明数列不满足独立性。通常检测数列是否满足独立性的方法是在对数列进行了足够多次检测后都不能证明不满足独立性,就可比较有把握地相信该数列满足独立性。在设计密码算法时,由于真随机数难以获得,经常使用似乎是随机的数列,这样的数列称为伪随机数列,这样的随机数称为伪随机数。2. 不可预测性在诸如相互认证和会话密钥的产生等应用中,不仅要求数列具有随机性,而且要求对