应用密码学是信息安全学科体系和信息系统安全工程的重要组成部分,密码技术在实现信息的机密性保护、可鉴别性、完整性保护和抗抵赖性等方面发挥着极其重要的作用。本书旨在从应用的角度系统介绍密码学的体系结构、基本原理和技术。全书共分为11章,主要内容包括密码学概述、古典密码技术、分组密码、公钥密码体制、散列函数与报文鉴别、数字签名技术、密钥管理技术、身份鉴别技术、序列密码、密码技术应用以及密码分析基础等,并将与密码学密切相关的一些数学知识作为附录,以供需要的读者学习阅读。每章最后均配有思考题和习题以帮助读者掌握本章重要知识点,并加以巩固。
现代密码技术已被广泛地应用到了信息技术的许多领域,是实现信息系统安全的关键技术之一,在保障信息安全的应用中具有重要地位。现代密码技术的研究内容除传统的信息机密性保护技术外,还包括数字签名、报文与身份鉴别、密钥管理、安全协议等与信息安全密切相关的重要内容。“应用密码学”已成为许多高等院校信息安全、通信工程、计算机科学、信息管理、电子商务等本科专业一门重要的专业基础课程及重要教学内容。
针对高等院校信息技术类相关专业本科生所开设的课程特点,编者结合近几年在应用密码学方面的教学实践情况,广泛汲取了各类成功教材的有益经验,博采众家之长而精心编著了本书。在本书的体系构架和内容编排上以培养学生的密码技术应用能力为目标,突出本书的体系性和密码技术的实用性,尽量避免传统密码学或专著注重密码学的数学原理和理论分析,而应用性偏弱的局限,并对一些需要较深奥数学知识的知识点,如密码学的信息论基础、序列密码以及密码分析等内容进行了简化或忽略,重点选择一些具有典型意义和常用的密码体制、算法进行介绍,并在每章最后均配有思考题和习题以帮助学生对本章重要知识点的掌握和巩固。使其更加易于课堂教学的实施和学生阅读,激发学生潜在的学习积极性。
本书在第一版的基础上在以下方面做出了修订: 增加了密码分析技术基础知识的介绍,包括密码分析概述、密码算法的数学分析、密码协议的数学分析以及密码设备的边信道攻击技术等; 增加了国家商用密码管理政策及条例的相关内容; 对第一版部分章节进行了结构和内容的局部补充与调整; 对第一版个别地方进行了勘误,对习题进行了补充。
本书的主要特色是: 可读性强、结构合理、强调基础、注重应用,不求面面俱到,力求使学生能够较快掌握密码技术的核心内容。在书中内容取舍、结构编排、密码算法选择及习题设计上尽量体现出广泛的代表性和典型性,做到书中内容主次分明、结构清晰、重点突出、逻辑性强,对知识点的阐述强调由浅入深、循序渐进,使教材具有显著的可读性和实用性。可使读者能够在充分掌握密码学基础知识的同时,掌握应用密码技术,并将其尽快运用到实际工作中,是一本较为系统全面介绍密码学基本原理和典型应用的教材。全书共分为11章和3个附录,其具体章节内容安排如下。
第1章主要介绍信息安全与密码学、密码技术发展概况以及密码学的基本概念,包括密码学的任务、保密通信模型、密码系统的安全性及设计原则以及密码体制的分类等内容。
第2章介绍古典密码体制中的基本加密运算、几种典型的古典密码体制。
第3章通过对典型的分组密码算法,如数据加密标准(DES)、高级加密标准(AES)、国际数据加密算法(IDEA)、RC5等,介绍分组密码算法的特点、设计原理、实现方法与安全强度以及分组密码算法在实际应用中的基本工作模式及相关问题。
第4章介绍公钥密码体制的原理和基本概念,RSA与ElGamal算法原理、计算问题与安全性,椭圆曲线密码体制(ECC)基本原理与应用等内容。
第5章介绍散列函数的需求、特点、一般结构以及相关的安全性问题等。通过SHA、HMAC等密码算法,介绍散列算法和报文鉴别的原理以及在实现报文完整性保护和鉴别的应用。
第6章介绍数字签名的基本概念和典型数字签名方案,如RSA数字签名方案、ElGamal数字签名方案和数字签名标准(DSS)的原理与实现,并对典型特殊数字签名方案的原理与应用进行了介绍。
第7章介绍密钥的种类与层次结构、密钥管理的生命周期、密钥的生成与安全存储,密钥的协商与分发问题,典型密钥分配与协商协议及算法,PKI技术基础等。
第8章对身份鉴别的基本原理与典型协议进行了介绍。
第9章包括序列密码的基本原理及模型、线性反馈移位寄存器LFSR、基于LFSR的序列密码以及典型序列密码算法等内容。
第10章介绍密码技术在数字通信安全、电子商务中的典型应用技术和协议。
第11章介绍密码分析技术的基础知识和概念,包括密码分析概述、密码算法的数学分析、密码协议的数学分析以及密码设备的边信道攻击技术等。
考虑密码学要用到的数学知识较多,特别是概率论、近世代数和数论方面的基础知识。为方便读者学习,本书附录对书中用到的有关初等数论和近世代数的基础知识进行了介绍。学习和了解这方面的数学知识对研究和学习应用密码学是大有帮助的,但即使没有学过这些数学知识也不会影响对本书的阅读和学习。为了使读者了解国家对商用密码产品的有关规定和政策,本书还特别增加了国家商用密码管理政策及条例的相关内容。
本书由四川大学信息安全研究所组织编写,全书由刘嘉勇教授负责组织与统稿工作。第1、5、6、10章由刘嘉勇负责编写,第3、4、7、9、11章由任德斌负责编写,第2章由方勇编写,第8章及附录由胡勇、周安民编写。四川大学信息安全研究所全体同志为本书的编写给予了大力支持和帮助。本书的编写还从其他老师和同行的有关著作和教材(包括网站)中得到了帮助,作者在此一并表示由衷的感谢。
尽管作者已尽了最大努力,但限于作者的学识和水平,仍自感书中难免有需要商榷之处,诚望读者不吝赐教,为推动我国信息技术领域高级人才的培养共同努力。
第1章密码学概述
1.1信息安全与密码技术
1.2密码技术发展简介
1.2.1古典密码时期
1.2.2近代密码时期
1.2.3现代密码时期
1.3密码学基本概念
1.3.1密码学的主要任务
1.3.2保密通信模型
1.3.3密码系统的安全性
1.3.4密码系统设计的基本原则
1.3.5密码体制的分类及特点
思考题与习题
第2章古典密码技术
2.1替代密码(Substitution Cipher)
2.1.1单表替代密码
2.1.2多表替代密码
2.2置换密码(Permutation Cipher)
2.2.1周期置换密码
2.2.2列置换密码
2.3转轮机密码
思考题与习题
第3章分组密码
3.1概述
3.2分组密码的设计原则与评估
3.2.1分组密码的设计原则
3.2.2分组密码的评估
3.3分组密码常见的设计方法
3.3.1Feistel结构
3.3.2SPN结构
3.4数据加密标准——DES
3.4.1算法描述
3.4.2DES的安全性分析
3.4.3三重DES
3.5高级加密标准——AES
3.5.1AES算法的数学基础
3.5.2算法的总体描述
3.5.3算法的基本变换
3.5.4密钥扩展算法
3.5.5解密算法
3.6分组密码的工作模式
3.6.1电子密码本模式(ECB)
3.6.2密码分组链接模式(CBC)
3.6.3密码反馈模式(CFB)
3.6.4输出反馈模式(OFB)
3.6.5计数器模式(CTR)
3.7其他分组密码
3.7.1IDEA加密算法
3.7.2RC6加密算法
思考题和习题
第4章公钥密码体制
4.1概述
4.1.1公钥密码体制提出的背景
4.1.2公钥密码的基本思想
4.1.3公钥密码的应用
4.2RSA公钥密码体制
4.2.1RSA的算法描述
4.2.2RSA的实现
4.2.3RSA的安全性
4.2.4RSA在应用中的问题
4.3ElGamal公钥密码体制
4.4椭圆曲线密码体制
4.4.1概述
4.4.2椭圆曲线的概念与运算
4.4.3椭圆曲线密码体制
思考题和习题
第5章散列函数与消息鉴别
5.1散列函数的概念
5.1.1散列函数的性质
5.1.2散列函数的应用
5.2散列函数的构造与设计
5.2.1迭代型散列函数的一般结构
5.2.2散列函数的设计方法
5.3安全散列算法SHA
5.3.1SHA1
5.3.2其他SHA算法
5.4对散列函数的攻击
5.4.1生日悖论
5.4.2生日攻击
5.5消息鉴别
5.5.1基于加密技术的消息鉴别
5.5.2基于散列函数的消息鉴别
5.5.3HMAC算法
思考题与习题
第6章数字签名技术
6.1数字签名概述
6.1.1数字签名的特性
6.1.2数字签名的执行方式
6.2基于公钥密码体制的典型数字签名方案
6.2.1RSA数字签名方案
6.2.2ElGamal数字签名方案
6.2.3数字签名标准DSS
6.2.4基于椭圆曲线密码的数字签名算法ECDSA
6.3特殊数字签名方案
6.3.1不可否认签名
6.3.2盲数字签名
6.3.3群签名
思考题与习题
第7章密钥管理技术
7.1密钥管理的原则
7.2密钥的层次结构
7.3密钥的生命周期
7.3.1密钥的产生
7.3.2密钥的存储和备份
7.3.3密钥的终止和销毁
7.4密钥分发和密钥协商
7.4.1密钥分发
7.4.2密钥协商
7.5公开密钥的分发
7.5.1公开密钥的分发方式
7.5.2X.509公钥证书
7.6秘密分割
7.6.1Shamir秘密分割门限方案
7.6.2AsmuthBloom门限方案
7.7群密钥
思考题与习题
第8章身份鉴别技术
8.1身份鉴别的基本原理
8.2基于口令的身份鉴别技术
8.2.1基本口令鉴别协议
8.2.2口令鉴别协议的改进
8.2.3基于质询响应的身份鉴别技术
8.2.4S/Key一次性口令身份鉴别协议
8.3基于生物特征的身份鉴别技术
8.4零知识证明与身份鉴别
8.4.1FiegeFiatShamir身份鉴别方案
8.4.2FFS增强方案
8.4.3GuillonQuisquater身份鉴别方案
8.4.4Schnorr身份鉴别方案
思考题与习题
第9章序列密码
9.1概述
9.2密钥流发生器设计准则
9.3序列的随机性概念
9.4线性反馈移位寄存器(LFSR)
9.5基于LFSR的序列密码
9.6序列密码RC4
思考题和习题
第10章密码技术应用
10.1网络通信的数据加密方式
10.1.1链路加密
10.1.2端端加密
10.2PGP技术及应用
10.2.1概述
10.2.2运行方式和服务
10.2.3密钥和密钥环
10.2.4公钥管理和信任关系
10.2.5基于PGP的电子邮件通信安全
10.3Kerberos身份鉴别系统
10.3.1Kerberos系统概述
10.3.2Kerberos鉴别模型
10.3.3Kerberos协议鉴别过程
10.3.4Kerberos的局限性
10.4安全电子交易(SET)
10.4.1概述
10.4.2SET系统的商务模型
10.4.3基于SET的交易过程
10.4.4SET的双重数字签名机制
10.4.5SET的支付流程
10.4.6SET协议的安全性
10.5公钥基础设施(PKI)
10.5.1PKI的定义
10.5.2PKI提供的服务和应用
10.5.3PKI的构成
10.5.4PKI标准
10.5.5PKI的信任模型
思考题与习题
第11章密码分析基础
11.1密码分析概述
11.1.1密码分析的目标
11.1.2对密码系统的攻击类型
11.1.3密码分析的方法
11.2古典密码的统计分析
11.2.1单表替代密码分析
11.2.2多表替代密码分析
11.2.3对Hill密码的已知明文分析
11.3密码算法的数学分析
11.3.1伪随机序列的密码分析
11.3.2分组密码的数学分析
11.3.3公钥密码的数学分析
11.4密码协议的数学分析
11.4.1密码协议的分类
11.4.2密码协议的安全性
11.4.3密码协议的分析方法
11.5密码设备的边信道攻击
11.5.1边信道攻击的分类
11.5.2能量分析攻击
11.5.3边信道攻击的防御对策
思考题和习题
附录A密码学数学基础
A.1数论基础
A.1.1素数与互素
A.1.2模运算与同余式
A.1.3费马定理与欧拉定理
A.1.4中国剩余定理
A.1.5离散对数
A.1.6平方剩余
A.2群论
A.2.1群的概念
A.2.2群的性质
A.3有限域
A.3.1域和有限域的概念
A.3.2域上的多项式
A.3.3有限域元素的多项式表示
思考题与习题
附录B计算复杂性
B.1算法的复杂性
B.2问题的复杂性
思考题与习题
附录C商用密码管理政策
参考文献