本书由教育部高等学校信息安全专业教学指导委员会、中国计算机学会教育专业委员会共同指导,为普通高等教育“十一五”国家级规划教材并获得首届中国大学出版社图书奖、中央网信办和教育部评选的国家网络安全优秀教材奖,符合《高等学校信息安全专业指导性专业规范》。
本书作为信息安全专业重要的专业基础课程教材,是作者长期教学实践的积累,是同类教材中的优秀教材和经典教材。本书全面而详细地介绍现代密码学的理论和相关算法,可帮助读者将所学知识应用于信息安全的实践中。本书从教材使用的角度考虑,概念清晰、结构合理、通俗易懂、深入浅出,充分考虑方便教师在教学过程中的实施,注重与其他专业课教学的衔接,精心给出了大量的例题和习题。本书取材新颖,不仅介绍现代密码学的基础理论和实用算法,同时也涵盖了现代密码学领域国内外*新的研究成果,并按内容的内在逻辑由浅及深地展开,有效帮助读者了解本学科*新的发展方向,符合教育部高等学校信息安全专业教学指导委员会编制的《高等学校信息安全专业指导性专业规范》要求,特别适合作为高等院校信息安全、计算机工程和信息对抗等专业的本科生和网络空间安全学科研究生教材,也可作为通信工程师和计算机网络工程师的参考读物。
本书自出版以来,已经多次再版和重印,累计发行近5万册,深受广大师生和读者欢迎,150多所高校选用本书作为专业课教材,普遍反映该教材特色突出,教学效果很好。
本书全面而详细地介绍现代密码学的理论和相关算法,可帮助读者将所学知识应用于信息安全实践。全书共分10章,内容包括现代密码学的基本概念、流密码、分组密码、公钥密码、密钥分配与密钥管理、消息认证和哈希函数、数字签名和认证协议、密码协议、可证明安全、网络加密与认证。
本书从教材使用的角度考虑,概念清晰、结构合理、讲解通俗易懂、内容深入浅出,并充分考虑方便教师在教学过程中的实施,同时还注意与其他专业课教学的衔接。本书取材新颖,不仅介绍现代密码学所涉及的基础理论和实用算法,而且涵盖了现代密码学的*研究成果,力求使读者通过本书的学习而了解本学科*的发展方向。
本书可作为高等学校相关专业大学生和研究生的教材,也可作为通信工程师和计算机网络工程师的参考读物。
杨波,北京大学学士,西安电子科技大学硕士、博士,陕西师范大学计算机科学学院教授、博士生导师,陕西省百人计划特聘教授,中国密码学会理事,中国密码学会密码算法专业委员会委员,《密码学报》编委。曾任华南农业大学信息学院、软件学院院长。2011年起在陕西师范大学计算机科学学院工作。2005年担任第四届中国信息和通信安全学术会议程序委员会主席,2009年担任中国密码学会年会副主席,2010年起担任The Joint Workshop on Information Security (JWIS ) Co-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基于祖冲之密码的机密性算法 128�睧EA379
习题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基于祖冲之密码的完整性算法128�睧IA3159
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.10Fiat�睸hamir身份识别方案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.4Cramer�睸houp密码系统249
9.4.1Cramer�睸houp密码系统的基本机制249
9.4.2Cramer�睸houp密码系统的安全性证明250
9.5RSA�睩DH签名方案252
9.5.1RSA签名方案252
9.5.2RSA�睩DH签名方案的描述253
9.5.3RSA�睩DH签名方案的改进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开放系统互连和TCP/IP分层模型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
第3章分组密码体制
3.1分组密码概述在许多密码系统中,单钥分组密码是系统安全的一个重要组成部分,用分组密码易于构造伪随机数生成器、流密码、消息认证码(MAC)和哈希函数等,还可进而成为消息认证技术、数据完整性机制、实体认证协议以及单钥数字签字体制的核心组成部分。实际应用中对于分组密码可能会提出多方面的要求,除了安全性外,还有运行速度、存储量(程序的长度、数据分组长度、高速缓存大小)、实现平台(硬件、软件、芯片)、运行模式等限制条件。这些都需要与安全性要求之间进行适当的折中选择。
分组密码是将明文消息编码表示后的数字序列x0,x1,…,xi,…划分成长为n的组x=(x0,x1,…,xn-1),各组(长为n的矢量)分别在密钥k=(k0,k1,…,kt-1)控制下变换成等长的输出数字序列y=(y0,y1,…,ym-1)(长为m的矢量),其加密函数E:Vn×KVm,Vn和Vm分别是n维和m维矢量空间,K为密钥空间,如图3��1所示。它与流密码的不同之处在于输出的每一位数字不是只与相应时刻输入的明文数字有关,而是与一组长为n的明文数字有关。在相同密钥下,分组密码对长为n的输入明文组所实施的变换是等同的,所以只需研究对任一组明文数字的变换规则。这种密码实质上是字长为n的数字序列的代换密码。
图3��1分组密码框图
通常取m=n。若m>n,则为有数据扩展的分组密码。若m (1)分组长度n要足够大,使分组代换字母表中的元素个数2n足够大,防止明文穷举攻击法奏效。DES、IDEA、FEAL和LOKI等分组密码都采用n=64,在生日攻击下用232组密文成功概率为1/2,同时要求232×64比特=215Mbyte存储,故采用穷举攻击是不现实的。 (2)密钥量要足够大(即置换子集中的元素足够多),尽可能消除弱密钥并使所有密现代密码学(第4版)第3章分组密码体制钥同等地好,以防止密钥穷举攻击奏效。但密钥又不能过长,以便于密钥的管理。DES采用56比特密钥,现在看来太短了,IDEA采用128比特密钥,据估计,在今后30~40年内采用80比特密钥是足够安全的。 (3)由密钥确定置换的算法要足够复杂,充分实现明文与密钥的扩散和混淆,没有简单的关系可循,能抗击各种已知的攻击,如差分攻击和线性攻击;有高的非线性阶数,实现复杂的密码变换;使对手破译时除了用穷举法外,无其他捷径可循。 (4)加密和解密运算简单,易于软件和硬件高速实现。如将分组n划分为子段,每段长为8、16或者32。在以软件实现时,应选用简单的运算,使作用于子段上的密码运算易于以标准处理器的基本运算,如加、乘、移位等实现,避免使用以软件难以实现的逐比特置换。为了便于硬件实现,加密和解密过程之间的差别应仅在于由秘密密钥所生成的密钥表不同而已。这样,加密和解密就可使用同一器件实现。设计的算法采用规则的模块结构,如多轮迭代等,以便于软件和VLSI快速实现。此外,差错传播和数据扩展要尽可能小。 (5)数据扩展尽可能小。一般无数据扩展,在采用同态置换和随机化加密技术时可引入数据扩展。 (6)差错传播尽可能小。 要实现上述几点要求并不容易。首先,要在理论上研究有效而可靠的设计方法,而后进行严格的安全性检验,并且要易于实现。 下面介绍设计分组密码的一些常用方法。 3.1.1代换 如果明文和密文的分组长都为n比特,则明文的每一个分组都有2n个可能的取值。为使加密运算可逆(使解密运算可行),明文的每一个分组都应产生唯一的一个密文分组,这样的变换是可逆的,称明文分组到密文分组的可逆变换为代换。不同可逆变换的个数有2n!个。 图3��2代换结构图3��2表示n=4的代换密码的一般结构,4比特输入产生16个可能输入状态中的一个,由代换结构将这一状态映射为16个可能输出状态中的一个,每一输出状态由4个密文比特表示。加密映射和解密映射可由代换表来定义,如表3��1所示。这种定义法是分组密码最常用的形式,能用于定义明文和密文之间的任何可逆映射。表3��1与图3��2对应的代换表 明文密文明文密文00001110100000110001010010011010001011011010011000110001101111000100001011000101010111111101100101101011111000000111100011110111密文明文密文明文00001110100001110001001110011101001001001010100100111000101101100100000111001011010111001101001001101010111000000111111111110101但这种代换结构在实用中还有一些问题需考虑。如果分组长度太小,如n=4,系统则等价于古典的代换密码,容易通过对明文的统计分析而攻破。这个弱点不是代换结构固有的,只是因为分组长度太短。如果分组长度n足够大,而且从明文到密文可有任意可逆的代换,那么明文的统计特性将被隐藏而使以上的攻击不能奏效。 然而,从实现的角度来看,分组长度很大的可逆代换结构是不实际的。仍以表3��1为例,该表定义了n=4时从明文到密文的一个可逆映射,其中第二列是每个明文分组对应的密文分组的值,可用来定义这个可逆映射。因此从本质上来说,第二列是从所有可能的映射中决定某一特定映射的密钥。在这个例子中,密钥需要64比特。一般,对n比特的代换结构,密钥的大小是n×2n比特。如对64比特的分组,密钥大小应是64×264=270≈1021比特,因此难以处理。实际中常将n分成较小的段,例如可选n=r·n0,其中r和n0都是正整数,将设计n个变量的代换变为设计r个较小的子代换,而每个子代换只有n0个输入变量。一般n0都不太大,称每个子代换为代换盒,简称为S盒。例如DES中将输入为48比特、输出为32比特的代换用8个S盒来实现,每个S盒的输入端数仅为6比特,输出端数仅为4比特。 3.1.2扩散和混淆 扩散和混淆是由Shannon提出的设计密码系统的两个基本方法,目的是抗击敌手对密码系统的统计分析。如果敌手知道明文的某些统计特性,如消息中不同字母出现的频率,或可能出现的特定单词或短语,而且这些统计特性以某种方式在密文中反映出来,敌手就有可能得出加密密钥或其一部分,或包含加密密钥的一个可能密钥集合。在Shannon称之为理想密码的密码系统中,密文的所有统计特性都与所使用的密钥独立。图3��2讨论的代换密码就是这样的一个密码系统,然而是不实用的。 所谓扩散,就是将明文的统计特性散布到密文中去,实现方式是使得密文中每一位由明文中多位产生。例如,对英文消息M=m1m2m3…的加密操作yn=chr(∑ki=1ord(mn+i)(mod26))其中ord(mi)是求字母mi对应的序号,chr(i)是求序号i对应的字母,密文字母yn是由明文中k个连续的字母相加而得。这时明文的统计特性将被散布到密文,因而每一字母在密文中出现的频率比在明文中出现的频率更接近于相等,双字母及多字母出现的频率也更接近于相等。在二元分组密码中,可对数据重复执行某个置换再对这一置换作用以一个函数,便可获得扩散。 分组密码在将明文分组依靠密钥变换到密文分组时,扩散的目的是使明文和密文之间的统计关系变得尽可能复杂,以使敌手无法得到密钥。混淆是使密文和密钥之间的统计关系变得尽可能复杂,以使敌手无法得到密钥。因此即使敌手能得到密文的一些统计关系,由于密钥和密文之间统计关系复杂化,敌手无法得到密钥。使用复杂的代换算法可得预期的混淆效果,而简单的线性代换函数得到的混淆效果不够理想。 扩散和混淆成功地实现了分组密码的本质属性,因而成为设计现代分组密码的基础。 3.1.3Feistel密码结构 很多分组密码的结构从本质上说都是基于一个称为Feistel网络的结构。Feistel提出利用乘积密码可获得简单的代换密码,乘积密码指顺序地执行两个或多个基本密码系统,使得最后结果的密码强度高于每个基本密码系统产生的结果,Feistel还提出了实现代换和置换的方法。其思想实际上是Shannon提出的利用乘积密码实现混淆和扩散思想的具体应用。 1.Feistel加密结构 图3��3是Feistel网络示意图,加密算法的输入是分组长为2w的明文和一个密钥K。将每组明文分成左右两半L0和R0,在进行完n轮迭代后,左右两半再合并到一起以产生密文分组。其第i轮迭代的输入为前轮输出的函数:Li=Ri-1 Ri=Li-1�軫(Ri-1,Ki)其中Ki是第i轮用的子密钥,由加密密钥K得到。一般,各轮子密钥彼此不同而且与K也不同。 图3��3Feistel网络 Feistel网络中每轮结构都相同,每轮中右半数据被作用于轮函数F后,再与左半数据进行异或运算,这一过程就是上面介绍的代换。每轮轮函数的结构都相同,但以不同的子密钥Ki作为参数。代换过程完成后,再交换左、右两半数据,这一过程称为置换。这种结构是Shannon提出的代换�仓没煌�络(Substitution�睵ermutationNetwork,SPN)的特有形式。 Feistel网络的实现与以下参数和特性有关: (1)分组大小。分组越大则安全性越高,但加密速度就越慢。分组密码设计中最为普遍使用的分组大小是64比特。 (2)密钥大小。密钥越长则安全性越高,但加密速度就越慢。现在普遍认为64比特或更短的密钥是不安全的,通常使用128比特长的密钥。 (3)轮数。单轮结构远不足以保证安全性,多轮结构可提供足够的安全性。典型地,轮数取为16。 (4)子密钥产生算法。该算法的复杂性越高,则密码分析的困难性就越大。 (5)轮函数。轮函数的复杂性越高,密码分析的困难性也越大。 在设计Feistel网络时,还要考虑以下两个问题: (1)快速的软件实现。在很多情况下,算法是被镶嵌在应用程序中,因而无法用硬件实现。此时算法的执行速度是考虑的关键。 (2)算法容易分析。如果算法能被无疑义地解释清楚,就可容易地分析算法抵抗攻击的能力,有助于设计高强度的算法。 2.Feistel解密结构 Feistel解密过程本质上和加密过程是一样的,算法使用密文作为输入,但使用子密钥Ki的次序与加密过程相反,即第一轮使用Kn,第二轮使用Kn-1,一直下去,最后一轮使用K1。这一特性保证了解密和加密可采用同一算法。 图3��4的左边表示16轮Feistel网络的加密过程,右边表示解密过程,加密过程由上而下,解密过程由下而上。为清楚起见,加密算法每轮的左右两半用LEi和REi表示,解密算法每轮的左右两半用LDi和RDi表示。图中右边标出了解密过程中每一轮的中间值与左边加密过程中间值的对应关系,即加密过程第i轮的输出是LEi‖REi(‖表示链接),解密过程第16-i轮相应的输入是RDi‖LDi。 图3��4Feistel加解密过程 加密过程的最后一轮执行完后,两半输出再经交换,因此密文是RE16‖LE16。解密过程取以上密文作为同一算法的输入,即第一轮输入是RE16‖LE16,等于加密过程第16轮两半输出交换后的结果。现在显示解密过程第一轮的输出等于加密过程第16轮输入左右两半的交换值。 在加密过程中:LE16=RE15 RE16=LE15�軫(RE15,K16)在解密过程中:LD1=RD0=LE16=RE15 RD1=LD0�軫(RD0,K16)=RE16�軫(RE15,K16) =LE15�軫(RE15,K16)�軫(RE15,K16) =LE15所以解密过程第一轮的输出为LE15‖RE15,等于加密过程第16轮输入左右两半交换后的结果。容易证明这种对应关系在16轮中每轮都成立。一般,加密过程的第i轮有:LEi=REi-1 REi=LEi-1�軫(REi-1,Ki)因此REi-1=LEi LEi-1=REi�軫(REi-1,Ki)=REi�軫(LEi,Ki)以上两式描述了加密过程中第i轮的输入与第i轮输出的函数关系,由此关系可得图3��4右边显示的LDi和RDi的取值关系。 最后可以看到,解密过程最后一轮的输出是RE0‖LE0,左右两半再经一次交换后即得最初的明文。 3.2数据加密标准DES(DataEncryptionStandard)是迄今为止世界上最为广泛使用和流行的一种分组密码算法,它的分组长度为64比特,密钥长度为56比特,它是由美国IBM公司研制的,是早期的称作Lucifer密码的一种发展和修改。DES在1975年3月17日首次被公布在联邦记录中,在做了大量的公开讨论后于1977年1月15日正式批准并作为美国联邦信息处理标准,即FIPS��46,同年7月15日开始生效。规定每隔5年由美国国家保密局(NationalSecurityAgency,NSA)作出评估,并重新批准它是否继续作为联邦加密标准。最后一次评估是在1994年1月,美国已决定1998年12月以后将不再使用DES。1997年,DESCHALL小组经过近4个月的努力,通过Internet搜索了3×1016个密钥,找出了DES的密钥,恢复出了明文。1998年5月美国EFF(ElectronicsFrontierFoundation)宣布,他们将一台价值20万美元的计算机改装成的专用解密机,用56小时破译了56比特密钥的DES。美国国家标准和技术协会已征集并进行了几轮评估筛选,产生了称为AES(AdvancedEncryptionStandard)的新加密标准。尽管如此,DES对于推动密码理论的发展和应用起了重大作用,对于掌握分组密码的基本理论、设计思想和实际应用仍然有着重要的参考价值,下面是这一算法的描述。 3.2.1DES描述 图3��5是DES加密算法的框图,其中明文分组长为64比特,密钥长为56比特。图的左边是明文的处理过程,有3个阶段,首先是一个初始置换IP,用于重排明文分组的64比特数据。然后是具有相同功能的16轮变换,每轮中都有置换和代换运算,第16轮变换的输出分为左右两半,并被交换次序。最后再经过一个逆初始置换IP-1(为IP的逆)从而产生64比特的密文。除初始置换和逆初始置换外,DES的结构和图3��3所示的Feistel密码结构完全相同。 图3��5DES加密算法框图 图3��5的右边是使用56比特密钥的方法。密钥首先通过一个置换函数,然后,对加密过程的每一轮,通过一个左循环移位和一个置换产生一个子密钥。其中每轮的置换都相同,但由于密钥被重复迭代,所以产生的每轮子密钥不相同。 1.初始置换 表3��2(a)和表3��2(b)分别给出了初始置换和逆初始置换的定义,为了显示这两个置换的确是彼此互逆的,考虑下面64比特的输入M:表3��2DES的置换表 (a)初始置换IP58504234261810260524436282012462544638302214664564840322416857494133251791595143352719113615345372921135635547393123157(b)逆初始置换IP-140848165624643239747155523633138646145422623037545135321612936444125220602835343115119592734242105018582633141949175725(c)选择扩展运算E3212345456789891011121312131415161716171819202120212223242524252627282928293031321(d)置换运算P1672021291228171152326518311028241432273919133062211425M1M2M3M4M5M6M7M8 M9M10M11M12M13M14M15M16 M17M18M19M20M21M22M23M24 M25M26M27M28M29M30M31M32 M33M34M35M36M37M38M39M40 M41M42M43M44M45M46M47M48 M49M50M51M52M53M54M55M56 M57M58M59M60M61M62M63M64 其中Mi是二元数字。由表3��2(a),得X=IP(M)为:M58M50M42M34M26M18M10M2 M60M52M44M36M28M20M12M4 M62M54M46M38M30M22M14M6 M64M56M48M40M32M24M16M8 M57M49M41M33M25M17M9M1 M59M51M43M35M27M19M11M3 M61M53M45M37M29M21M13M5 M63M55M47M39M31M23M15M7如果再取逆初始置换Y=IP-1(X)=IP-1(IP(M)),可以看出,M各位的初始顺序将被恢复。 2.轮结构 图3��6是DES加密算法的轮结构,首先看图的左半部分。将64比特的轮输入分为 图3��6DES加密算法的轮结构 各为32比特的左、右两半,分别记为L和R。和Feistel网络一样,每轮变换可由以下公式表示:Li=Ri-1 Ri=Li-1�軫(Ri-1,Ki)其中轮密钥Ki为48比特,函数F(R,K)的计算如图3��7所示。轮输入的右半部分R为32比特,R首先被扩展成48比特,扩展过程由表3��2(c)定义,其中将R的16个比特各重复一次。扩展后的48比特再与子密钥Ki异或,然后再通过一个S盒,产生32比特的输出。该输出再经过一个由表3��2(d)定义的置换,产生的结果即为函数F(R,K)的输出。 图3��7函数F(R,K)的计算过程 F中的代换由8个S盒组成,每个S盒的输入长为6比特、输出长为4比特,其变换关系由表3��3定义,每个S盒给出了4个代换(由一个表的4行给出)。表3��3DES的S盒定义 列 行0123456789101112131415S101441312151183106125907101574142131106121195382411481362111512973105031512824917511314100613S201518146113497213120510131347152814120110691152014711104131581269321531381013154211671205149S301009146315511312711428113709346102851412111512136498153011121251014731101306987415143115212续表 列 行0123456789101112131415S407131430691012851112415113811561503472121101492106901211713151314528433150610113894511127214S502124171011685315130149114112124713150151039862421111013781591256301431181271142136150910453S601211015926801334147511110154271295611314011382914155281237041011311634321295151011141760813S704112141508133129751061113011749110143512215862141113123714101568059236111381410795015142312S801328461511110931450127111513810374125611014922711419121420610131535832114741081315129035611对每个盒Si,其6比特输入中,第1个和第6个比特形成一个2位二进制数,用来选择Si的4个代换中的一个。在6比特输入中,中间4位用来选择列。行和列选定后,得到其交叉位置的十进制数,将这个数表示为4位二进制数即得这一S盒的输出。例如,S1的输入为011001,行选为01(即第1行),列选为1100(即第12列),行列交叉位置的数为9,其4位二进制表示为1001,所以S1的输出为1001。 S盒的每一行定义了一个可逆代换,图3��2(在3.1.1节)表示S1第0行所定义的代换。 3.密钥的产生 再看图3��5和图3��6,输入算法的56比特密钥首先经过一个置换运算,该置换由表3��4(a)给出,然后将置换后的56比特分为各为28比特的左、右两半,分别记为C0和D0。在第i轮分别对Ci-1和Di-1进行左循环移位,所移位数由表3��4(c)给出。移位后的结果作为下一轮求子密钥的输入,同时也作为置换选择2的输入。通过置换选择2产生的48比特的Ki,即为本轮的子密钥,作为函数F(Ri-1,Ki)的输入。其中置换选择2由表3��4(b)定义。表3��4DES密钥编排中使用的表 (a)置换选择1PC��157494133251791585042342618102595143352719113605244366355473931231576254463830221466153453729211352820124(b)置换选择2PC��21417112415328156211023191242681672720132415231374755304051453348444939563453464250362932(c)左循环移位位数轮数12345678910111213141516位数11222222122222214.解密 和Feistel密码一样,DES的解密和加密使用同一算法,但子密钥使用的顺序相反。 3.2.2二重DES ……
2017-06-13
网络空间安全重点规划丛书编审委员会顾问委员会主任:沈昌祥(中国工程院院士)
特别顾问:姚期智(美国国家科学院院士、美国人文及科学院院士、中国科学院院士、“图灵奖”获得者)
何德全(中国工程院院士)蔡吉人(中国工程院院士)
方滨兴(中国工程院院士)
主任:封化民
副主任:韩臻李建华王小云张焕国冯登国
委员:(按姓氏拼音为序)
曹珍富陈克非陈兴蜀杜瑞颖段海新高岭
宫力谷大武何大可侯整风胡爱群胡道元
黄继武黄刘生荆继武寇卫东来学嘉李晖
刘建伟刘建亚马建峰毛文波裴定一钱德沛
秦玉海秦志光卿斯汉石文昌汪烈军王怀民
王劲松王军王丽娜王美琴王清贤王新梅
王育民吴晓平谢冬青徐明许进杨波
杨庚杨义先俞能海张功萱张红旗张宏莉
张敏情张玉清郑东周福才
丛书策划:张民21世纪是信息时代,信息已成为社会发展的重要战略资源,社会的信息化已成为当今世界发展的潮流和核心,而信息安全在信息社会中将扮演极为重要的角色,它会直接关系到国家安全、企业经营和人们的日常生活。随着信息安全产业的快速发展,全球对信息安全人才的需求量不断增加,但我国目前信息安全人才极度匮乏,远远不能满足金融、商业、公安、军事和政府等部门的需求。要解决供需矛盾,必须加快信息安全人才的培养,以满足社会对信息安全人才的需求。为此,教育部继2001年批准在武汉大学开设信息安全本科专业之后,又批准了多所高等院校设立信息安全本科专业,而且许多高校和科研院所已设立了信息安全方向的具有硕士和博士学位授予权的学科点。
信息安全是计算机、通信、物理、数学等领域的交叉学科,对于这一新兴学科的培养模式和课程设置,各高校普遍缺乏经验,因此中国计算机学会教育专业委员会和清华大学出版社联合主办了“信息安全专业教育教学研讨会”等一系列研讨活动,并成立了“高等院校信息安全专业系列教材”编审委员会,由我国信息安全领域著名专家肖国镇教授担任编委会主任,指导“高等院校信息安全专业系列教材”的编写工作。编委会本着研究先行的指导原则,认真研讨国内外高等院校信息安全专业的教学体系和课程设置,进行了大量前瞻性的研究工作,而且这种研究工作将随着我国信息安全专业的发展不断深入。系列教材的作者都是既在本专业领域有深厚的学术造诣、又在教学第一线有丰富的教学经验的学者、专家。
该系列教材是我国第一套专门针对信息安全专业的教材,其特点是:
①体系完整、结构合理、内容先进。
②适应面广:能够满足信息安全、计算机、通信工程等相关专业对信息安全领域课程的教材要求。
③立体配套:除主教材外,还配有多媒体电子教案、习题与实验指导等。
④版本更新及时,紧跟科学技术的新发展。
在全力做好本版教材,满足学生用书的基础上,还经由专家的推荐和审定,遴选了一批国外信息安全领域优秀的教材加入到系列教材中,以进一步满足大家对外版书的需求。“高等院校信息安全专业系列教材”已于2006年年初正式列入普通高等教育“十一五”国家级教材规划。
2007年6月,教育部高等学校信息安全类专业教学指导委员会成立大会暨第一次会议在北京胜利召开。本次会议由教育部高等学校信息安全类专业教学指导委员会主任单位北京工业大学和北京电子科技学院主办,清华大学出版社协办。教育部高等学校信息安全类专业教学指导委员会的成立对我国信息安全专业的发展起到重要的指导和推动作用。2006年教育部给武汉大学下达了“信息安全专业指导性专业规范研制”的教学科研项目。2007年起该项目由教育部高等学校信息安全类专业教学指导委员会组织实施。在高教司和教指委的指导下,项目组团结一致,努力工作,克服困难,历时5年,制定出我国第一个信息安全专业指导性专业规范,于2012年年底通过经教育部高等教育司理工科教育处授权组织的专家组评审,并且已经得到武汉大学等许多高校的实际使用。2013年,新一届“教育部高等学校信息安全专业教学指导委员会”成立。经组织审查和研究决定,2014年以“教育部高等学校信息安全专业教学指导委员会”的名义正式发布《高等学校信息安全专业指导性专业规范》(由清华大学出版社正式出版)。
现代密码学(第4版)出版说明2015年6月,国务院学位委员会、教育部出台增设“网络空间安全”为一级学科的决定,将高校培养网络空间安全人才提到新的高度。2016年6月,中央网络安全和信息化领导小组办公室(下文简称中央网信办)、国家发展和改革委员会、教育部、科学技术部、工业和信息化部及人力资源和社会保障部六大部门联合发布《关于加强网络安全学科建设和人才培养的意见》(中网办发文[2016]4号)。为贯彻落实《关于加强网络安全学科建设和人才培养的意见》,进一步深化高等教育教学改革,促进网络安全学科专业建设和人才培养,促进网络空间安全相关核心课程和教材建设,在教育部高等学校信息安全专业教学指导委员会和中央网信办资助的网络空间安全教材建设课题组的指导下,启动了“网络空间安全重点规划丛书”的工作,由教育部高等学校信息安全专业教学指导委员会秘书长封化民校长担任编委会主任。本规划丛书基于“高等院校信息安全专业系列教材”坚实的工作基础和成果、阵容强大的编审委员会和优秀的作者队伍,目前已经有多本图书获得教育部和中央网信办等机构评选的“普通高等教育本科国家级规划教材”、“普通高等教育精品教材”、“中国大学出版社图书奖”和“国家网络安全优秀教材奖”等多个奖项。
“网络空间安全重点规划丛书”将根据《高等学校信息安全专业指导性专业规范》(及后续版本)和相关教材建设课题组的研究成果不断更新和扩展,进一步体现科学性、系统性和新颖性,及时反映教学改革和课程建设的新成果,并随着我国网络空间安全学科的发展不断完善,力争为我国网络空间安全相关学科专业的本科和研究生教材建设、学术出版与人才培养做出更大的贡献。
我们的E�瞞ail地址是: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月
这本书的深度和广度都超出了我的预期,它不仅涵盖了密码学的基础知识,还涉及到了许多前沿的研究领域。我惊喜地发现,书中对“后量子密码学”的介绍并非浅尝辄止,而是深入探讨了基于格、编码、多变量方程等不同数学难题的抗量子算法,并分析了它们各自的优缺点和发展前景。这让我意识到,密码学正处于一个快速发展的时代,为了应对量子计算机的威胁,新的加密技术正在孕育而生。书中对这些前沿领域的介绍,不仅让我对密码学的未来发展有了清晰的认识,也为我进一步深入研究提供了宝贵的方向。我特别关注书中关于“安全多方计算”的阐述,这项技术能够在不泄露各自私密数据的情况下,允许多方联合计算一个函数,对于分布式机器学习、隐私数据分析等领域具有颠覆性的意义。
评分这本书的封面设计就透露出一种沉稳而专业的风格,灰蓝色的主调,配以抽象的几何图形,隐约勾勒出信息的流动与加密的意象。翻开第一页,目录就展现了其宏大的结构,从基础的数论、代数初步,到公钥密码学、对称密码学、散列函数、数字签名,再到更前沿的格密码学、后量子密码学,甚至还触及了密码学在区块链、物联网等实际应用中的场景。这让我不禁联想到,编著者们一定花费了大量的心血去梳理和整合这些庞杂的知识体系,力求为读者呈现一个清晰、有条理的学习路径。尤其是看到“网络空间安全重点规划丛书”的标识,更增添了几分权威性和指导性,仿佛这本书就是通往网络安全领域的一本“宝典”,值得深入研读和探索。我对于书中关于公钥基础设施(PKI)的介绍尤为期待,它在现代互联网安全中扮演着基石般的作用,了解其运作原理和潜在的安全威胁,对于理解HTTPS、数字证书等日常可见的安全措施至关重要。同时,书中对椭圆曲线密码学的深入阐述也勾起了我的好奇心,这种看似抽象的数学工具,如何在实际应用中实现高效且安全的加密,我想从中一探究竟。
评分从这本书的目录结构来看,它似乎采取了一种由浅入深、由理论到实践的学习路径。我初步浏览了一下,发现书中从基础的数论和代数概念出发,逐步过渡到各种密码算法的设计原理和安全性分析。这种循序渐进的教学方式,对于初学者来说非常有益,能够帮助他们逐步建立起坚实的数学基础,并理解密码学背后的数学逻辑。而对于有一定基础的读者,书中对高级概念的深入探讨,例如群论在密码学中的应用、密码编码理论等,则提供了更深层次的理解。我特别期待书中关于“差分分析”和“线性分析”的讲解,这两种方法是破解对称密码算法的经典手段,理解它们的工作原理,对于评估算法的安全性至关重要。我个人对书中关于“安全协议设计”的章节非常感兴趣,它将理论与实际应用相结合,帮助我理解如何构建安全的通信协议,例如SSL/TLS协议的工作流程和潜在的安全隐患。
评分这本书的语言风格既专业又不失趣味性,它能够将复杂的密码学概念以一种清晰易懂的方式呈现出来。我注意到编著者们在解释一些数学原理时,会巧妙地运用类比和直观的图形,帮助读者更好地理解抽象的概念。例如,在讲解“模运算”时,书中可能用时钟的指针运动来类比,让读者瞬间明白模运算的周期性。同时,编著者们在介绍一些经典攻击案例时,也穿插了一些历史故事和实际场景,使得阅读过程更加生动有趣。我特别关注书中关于“公钥基础设施(PKI)”的详细介绍,它在现代互联网安全中扮演着至关重要的角色,理解其运作原理和证书颁发机构(CA)的作用,对于理解HTTPS等安全协议至关重要。我对书中关于“比特币的密码学应用”的章节充满了期待,它将密码学理论与实际的区块链技术相结合,展现了密码学在去中心化系统中的强大力量。
评分我注意到这本书的案例分析部分非常丰富,涵盖了从经典的DES、AES算法,到现代的RSA、ECC算法,以及最新的后量子密码算法。每个算法的介绍都非常详细,不仅阐述了其工作原理,还分析了其安全性,并列举了相关的攻击方法和防御策略。这种详实的介绍,让我能够更深入地理解不同算法的特点和适用场景。我尤其欣赏书中对“哈希函数”的深入剖析,它不仅介绍了MD5、SHA-1、SHA-256等常用哈希函数,还讨论了它们的碰撞攻击问题,以及如何在实际应用中选择合适的哈希函数。我非常期待书中关于“数字签名”的详细讲解,它在身份验证、数据完整性验证等方面起着至关重要的作用,理解其原理和应用将有助于我更好地理解公钥密码学的作用。
评分这本书的参考文献列表非常详尽,涵盖了密码学领域的经典论文和最新研究成果,这表明编著者们在编写此书时进行了深入的学术研究和广泛的文献查阅。这对于希望深入研究密码学各个分支的读者来说,无疑是一份宝贵的资源。我注意到书中在介绍每一个算法或概念时,都会注明相关的参考文献,这方便了读者追溯和深入学习。我特别关注书中关于“编码理论在密码学中的应用”的章节,它将信息论与密码学紧密联系起来,为理解纠错码、秘密共享等技术提供了理论基础。我非常期待书中关于“密码学在物联网(IoT)安全中的挑战与机遇”的探讨,随着物联网设备的普及,如何保证这些设备的安全通信和数据隐私,已经成为一个日益重要的问题。
评分这本书的语言风格十分独特,既有学术论文的严谨,又不失科普读物的通俗易懂。它不像一些技术书籍那样枯燥乏味,而是充满了智慧的闪光点。我在阅读过程中,经常会因为某个巧妙的比喻或者精辟的论述而产生共鸣。例如,书中在解释“一次性密码本”的安全性时,用了一个非常形象的比喻,让我瞬间理解了其不可破解性的原因。同时,编著者在处理复杂的数学公式时,也尽量避免过于晦涩的表达,而是通过图示、表格等多种方式来辅助说明,让读者能够更好地消化和吸收。我尤其喜欢书中关于“密码学在现代通信中的作用”的论述,它不仅解释了TLS/SSL协议如何保证网络通信的安全性,还涉及到了端到端加密在即时通讯软件中的应用,让我对日常使用的安全通信有了更深刻的认识。我对书中关于“同态加密”的探讨充满了期待,这项技术能够实现在加密数据上直接进行计算,这将极大地推动云计算和数据隐私的进步。
评分在阅读这本书的过程中,我被其中严谨的逻辑和深邃的洞察力所折服。编著者们显然对密码学的历史发展、理论基石以及未来趋势有着深刻的理解。他们不仅介绍了当前主流的加密算法,还对一些经典算法的优劣进行了详细的分析,并展望了未来可能出现的新的加密技术。我印象深刻的是关于“密码学安全证明”的部分,它揭示了密码学理论的严谨性,以及如何在数学层面保证算法的安全性。这让我意识到,密码学不仅仅是简单的加解密操作,更是一门建立在坚实数学基础之上的科学。书中对于不同密码学分支之间的联系和区别的阐述也十分到位,例如,如何从对称密码学过渡到公钥密码学,以及哈希函数在其中扮演的角色。这种全局性的视角,帮助我构建了一个更加完整和立体的密码学知识体系。我非常期待书中关于“零知识证明”的详细介绍,这项技术在隐私保护和身份验证方面具有革命性的潜力,理解其原理将是解锁未来许多安全应用的钥匙。
评分这本书的排版和字体选择都非常考究,阅读体验十分舒适,丝毫没有那种堆砌枯燥公式的冰冷感,反而像是在与一位经验丰富的老师进行深入的交流。我特别欣赏编著者在引入每一个概念时,都会先给出清晰的定义,然后循序渐进地讲解其背后的数学原理,并辅以恰当的例子来帮助理解。例如,在讲解RSA算法时,书中不仅详细列出了算法的生成密钥、加密、解密步骤,还配上了具体的数值计算过程,让原本抽象的数学推导变得触手可及。更让我惊喜的是,书中并没有止步于理论的讲解,而是积极地将理论与实际应用相结合,比如在介绍哈希函数时,就联系到了文件校验、密码存储等常见场景,让我能够更直观地感受到密码学在现实生活中的价值。我尤其关注书中关于“密码学攻击”的章节,了解各种攻击手段(如中间人攻击、侧信道攻击等)的原理和防御方法,对于提升自身的安全意识和防范能力具有重要的意义。这本书似乎在潜移默化地引导着我,让我从一个单纯的密码学知识的学习者,逐步成长为一位能够洞察安全威胁并具备一定防御能力的实践者。
评分这本书的章节组织非常合理,从基础概念到高级主题,再到实际应用,层层递进,逻辑清晰。我注意到书中在每一章的结尾,都附有习题,并且有些习题还提供了详细的解答,这对于读者巩固所学知识非常有帮助。这种“理论+实践+反馈”的学习模式,能够有效地提升读者的学习效果。我特别期待书中关于“格密码学”的深入介绍,它被认为是后量子密码学的重要候选者之一,理解其数学基础和算法设计,对于应对未来的量子计算威胁至关重要。我对书中关于“差分隐私”(Differential Privacy)的讨论充满了好奇,这项技术旨在保护个人隐私的同时,允许对数据集进行统计分析,对于大数据时代的隐私保护具有极其重要的意义。
评分期末复习指定书
评分一直买这本书,所以出来的新版本一定要买
评分挺好的
评分嗯嗯,好。学校开课用
评分当大家看到我的这一篇评价时,表示我对产品是认可的,尽管我此刻的评论是复制粘贴的。这一方面是为了肯定商家的服务,另一方面是为了节省自己的时间,因为差评我会直接说为什么的。所以大家就当做是产品质量合格的意思来看就行了。最后祝店家越做越好,大家幸福平安,中华民族繁荣昌盛。
评分可以
评分不错 密码学入门
评分haohaoaaihjjjjjjjjjjjjjj
评分不错 密码学入门
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 book.coffeedeals.club All Rights Reserved. 静流书站 版权所有