應(yīng)用密碼學(xué)是信息安全學(xué)科體系和信息系統(tǒng)安全工程的重要組成部分,密碼技術(shù)在實(shí)現(xiàn)信息的機(jī)密性保護(hù)、可鑒別性、完整性保護(hù)和抗抵賴性等方面發(fā)揮著極其重要的作用。本書旨在從應(yīng)用的角度系統(tǒng)介紹密碼學(xué)的體系結(jié)構(gòu)、基本原理和技術(shù)。全書共分為11章,主要內(nèi)容包括密碼學(xué)概述、古典密碼技術(shù)、分組密碼、公鑰密碼體制、散列函數(shù)與報(bào)文鑒別、數(shù)字簽名技術(shù)、密鑰管理技術(shù)、身份鑒別技術(shù)、序列密碼、密碼技術(shù)應(yīng)用以及密碼分析基礎(chǔ)等,并將與密碼學(xué)密切相關(guān)的一些數(shù)學(xué)知識(shí)作為附錄,以供需要的讀者學(xué)習(xí)閱讀。每章最后均配有思考題和習(xí)題以幫助讀者掌握本章重要知識(shí)點(diǎn),并加以鞏固。
《應(yīng)用密碼學(xué)(第2版)》既可作為信息安全、計(jì)算機(jī)科學(xué)與技術(shù)、信息與計(jì)算科學(xué)、通信工程、信息管理以及電子商務(wù)等信息技術(shù)類專業(yè)密碼學(xué)課程的教材,也可供從事信息安全、計(jì)算機(jī)、通信、電子工程等領(lǐng)域的科技人員參考。
現(xiàn)代密碼技術(shù)已被廣泛地應(yīng)用到了信息技術(shù)的許多領(lǐng)域,是實(shí)現(xiàn)信息系統(tǒng)安全的關(guān)鍵技術(shù)之一,在保障信息安全的應(yīng)用中具有重要地位,F(xiàn)代密碼技術(shù)的研究內(nèi)容除傳統(tǒng)的信息機(jī)密性保護(hù)技術(shù)外,還包括數(shù)字簽名、報(bào)文與身份鑒別、密鑰管理、安全協(xié)議等與信息安全密切相關(guān)的重要內(nèi)容。“應(yīng)用密碼學(xué)”已成為許多高等院校信息安全、通信工程、計(jì)算機(jī)科學(xué)、信息管理、電子商務(wù)等本科專業(yè)一門重要的專業(yè)基礎(chǔ)課程及重要教學(xué)內(nèi)容。
針對(duì)高等院校信息技術(shù)類相關(guān)專業(yè)本科生所開設(shè)的課程特點(diǎn),編者結(jié)合近幾年在應(yīng)用密碼學(xué)方面的教學(xué)實(shí)踐情況,廣泛汲取了各類成功教材的有益經(jīng)驗(yàn),博采眾家之長而精心編著了本書。在本書的體系構(gòu)架和內(nèi)容編排上以培養(yǎng)學(xué)生的密碼技術(shù)應(yīng)用能力為目標(biāo),突出本書的體系性和密碼技術(shù)的實(shí)用性,盡量避免傳統(tǒng)密碼學(xué)或?qū)V⒅孛艽a學(xué)的數(shù)學(xué)原理和理論分析,而應(yīng)用性偏弱的局限,并對(duì)一些需要較深?yuàn)W數(shù)學(xué)知識(shí)的知識(shí)點(diǎn),如密碼學(xué)的信息論基礎(chǔ)、序列密碼以及密碼分析等內(nèi)容進(jìn)行了簡化或忽略,重點(diǎn)選擇一些具有典型意義和常用的密碼體制、算法進(jìn)行介紹,并在每章最后均配有思考題和習(xí)題以幫助學(xué)生對(duì)本章重要知識(shí)點(diǎn)的掌握和鞏固。使其更加易于課堂教學(xué)的實(shí)施和學(xué)生閱讀,激發(fā)學(xué)生潛在的學(xué)習(xí)積極性。
本書在第一版的基礎(chǔ)上在以下方面做出了修訂: 增加了密碼分析技術(shù)基礎(chǔ)知識(shí)的介紹,包括密碼分析概述、密碼算法的數(shù)學(xué)分析、密碼協(xié)議的數(shù)學(xué)分析以及密碼設(shè)備的邊信道攻擊技術(shù)等; 增加了國家商用密碼管理政策及條例的相關(guān)內(nèi)容; 對(duì)第一版部分章節(jié)進(jìn)行了結(jié)構(gòu)和內(nèi)容的局部補(bǔ)充與調(diào)整; 對(duì)第一版?zhèn)別地方進(jìn)行了勘誤,對(duì)習(xí)題進(jìn)行了補(bǔ)充。
本書的主要特色是: 可讀性強(qiáng)、結(jié)構(gòu)合理、強(qiáng)調(diào)基礎(chǔ)、注重應(yīng)用,不求面面俱到,力求使學(xué)生能夠較快掌握密碼技術(shù)的核心內(nèi)容。在書中內(nèi)容取舍、結(jié)構(gòu)編排、密碼算法選擇及習(xí)題設(shè)計(jì)上盡量體現(xiàn)出廣泛的代表性和典型性,做到書中內(nèi)容主次分明、結(jié)構(gòu)清晰、重點(diǎn)突出、邏輯性強(qiáng),對(duì)知識(shí)點(diǎn)的闡述強(qiáng)調(diào)由淺入深、循序漸進(jìn),使教材具有顯著的可讀性和實(shí)用性?墒棺x者能夠在充分掌握密碼學(xué)基礎(chǔ)知識(shí)的同時(shí),掌握應(yīng)用密碼技術(shù),并將其盡快運(yùn)用到實(shí)際工作中,是一本較為系統(tǒng)全面介紹密碼學(xué)基本原理和典型應(yīng)用的教材。全書共分為11章和3個(gè)附錄,其具體章節(jié)內(nèi)容安排如下。
第1章主要介紹信息安全與密碼學(xué)、密碼技術(shù)發(fā)展概況以及密碼學(xué)的基本概念,包括密碼學(xué)的任務(wù)、保密通信模型、密碼系統(tǒng)的安全性及設(shè)計(jì)原則以及密碼體制的分類等內(nèi)容。
第2章介紹古典密碼體制中的基本加密運(yùn)算、幾種典型的古典密碼體制。
第3章通過對(duì)典型的分組密碼算法,如數(shù)據(jù)加密標(biāo)準(zhǔn)(DES)、高級(jí)加密標(biāo)準(zhǔn)(AES)、國際數(shù)據(jù)加密算法(IDEA)、RC5等,介紹分組密碼算法的特點(diǎn)、設(shè)計(jì)原理、實(shí)現(xiàn)方法與安全強(qiáng)度以及分組密碼算法在實(shí)際應(yīng)用中的基本工作模式及相關(guān)問題。
第4章介紹公鑰密碼體制的原理和基本概念,RSA與ElGamal算法原理、計(jì)算問題與安全性,橢圓曲線密碼體制(ECC)基本原理與應(yīng)用等內(nèi)容。
第5章介紹散列函數(shù)的需求、特點(diǎn)、一般結(jié)構(gòu)以及相關(guān)的安全性問題等。通過SHA、HMAC等密碼算法,介紹散列算法和報(bào)文鑒別的原理以及在實(shí)現(xiàn)報(bào)文完整性保護(hù)和鑒別的應(yīng)用。
第6章介紹數(shù)字簽名的基本概念和典型數(shù)字簽名方案,如RSA數(shù)字簽名方案、ElGamal數(shù)字簽名方案和數(shù)字簽名標(biāo)準(zhǔn)(DSS)的原理與實(shí)現(xiàn),并對(duì)典型特殊數(shù)字簽名方案的原理與應(yīng)用進(jìn)行了介紹。
第7章介紹密鑰的種類與層次結(jié)構(gòu)、密鑰管理的生命周期、密鑰的生成與安全存儲(chǔ),密鑰的協(xié)商與分發(fā)問題,典型密鑰分配與協(xié)商協(xié)議及算法,PKI技術(shù)基礎(chǔ)等。
第8章對(duì)身份鑒別的基本原理與典型協(xié)議進(jìn)行了介紹。
第9章包括序列密碼的基本原理及模型、線性反饋移位寄存器LFSR、基于LFSR的序列密碼以及典型序列密碼算法等內(nèi)容。
第10章介紹密碼技術(shù)在數(shù)字通信安全、電子商務(wù)中的典型應(yīng)用技術(shù)和協(xié)議。
第11章介紹密碼分析技術(shù)的基礎(chǔ)知識(shí)和概念,包括密碼分析概述、密碼算法的數(shù)學(xué)分析、密碼協(xié)議的數(shù)學(xué)分析以及密碼設(shè)備的邊信道攻擊技術(shù)等。
考慮密碼學(xué)要用到的數(shù)學(xué)知識(shí)較多,特別是概率論、近世代數(shù)和數(shù)論方面的基礎(chǔ)知識(shí)。為方便讀者學(xué)習(xí),本書附錄對(duì)書中用到的有關(guān)初等數(shù)論和近世代數(shù)的基礎(chǔ)知識(shí)進(jìn)行了介紹。學(xué)習(xí)和了解這方面的數(shù)學(xué)知識(shí)對(duì)研究和學(xué)習(xí)應(yīng)用密碼學(xué)是大有幫助的,但即使沒有學(xué)過這些數(shù)學(xué)知識(shí)也不會(huì)影響對(duì)本書的閱讀和學(xué)習(xí)。為了使讀者了解國家對(duì)商用密碼產(chǎn)品的有關(guān)規(guī)定和政策,本書還特別增加了國家商用密碼管理政策及條例的相關(guān)內(nèi)容。
本書由四川大學(xué)信息安全研究所組織編寫,全書由劉嘉勇教授負(fù)責(zé)組織與統(tǒng)稿工作。第1、5、6、10章由劉嘉勇負(fù)責(zé)編寫,第3、4、7、9、11章由任德斌負(fù)責(zé)編寫,第2章由方勇編寫,第8章及附錄由胡勇、周安民編寫。四川大學(xué)信息安全研究所全體同志為本書的編寫給予了大力支持和幫助。本書的編寫還從其他老師和同行的有關(guān)著作和教材(包括網(wǎng)站)中得到了幫助,作者在此一并表示由衷的感謝。
盡管作者已盡了最大努力,但限于作者的學(xué)識(shí)和水平,仍自感書中難免有需要商榷之處,誠望讀者不吝賜教,為推動(dòng)我國信息技術(shù)領(lǐng)域高級(jí)人才的培養(yǎng)共同努力。
第1章密碼學(xué)概述
1.1信息安全與密碼技術(shù)
1.2密碼技術(shù)發(fā)展簡介
1.2.1古典密碼時(shí)期
1.2.2近代密碼時(shí)期
1.2.3現(xiàn)代密碼時(shí)期
1.3密碼學(xué)基本概念
1.3.1密碼學(xué)的主要任務(wù)
1.3.2保密通信模型
1.3.3密碼系統(tǒng)的安全性
1.3.4密碼系統(tǒng)設(shè)計(jì)的基本原則
1.3.5密碼體制的分類及特點(diǎn)
思考題與習(xí)題
第2章古典密碼技術(shù)
2.1替代密碼(Substitution Cipher)
2.1.1單表替代密碼
2.1.2多表替代密碼
2.2置換密碼(Permutation Cipher)
2.2.1周期置換密碼
2.2.2列置換密碼
2.3轉(zhuǎn)輪機(jī)密碼
思考題與習(xí)題
第3章分組密碼
3.1概述
3.2分組密碼的設(shè)計(jì)原則與評(píng)估
3.2.1分組密碼的設(shè)計(jì)原則
3.2.2分組密碼的評(píng)估
3.3分組密碼常見的設(shè)計(jì)方法
3.3.1Feistel結(jié)構(gòu)
3.3.2SPN結(jié)構(gòu)
3.4數(shù)據(jù)加密標(biāo)準(zhǔn)——DES
3.4.1算法描述
3.4.2DES的安全性分析
3.4.3三重DES
3.5高級(jí)加密標(biāo)準(zhǔn)——AES
3.5.1AES算法的數(shù)學(xué)基礎(chǔ)
3.5.2算法的總體描述
3.5.3算法的基本變換
3.5.4密鑰擴(kuò)展算法
3.5.5解密算法
3.6分組密碼的工作模式
3.6.1電子密碼本模式(ECB)
3.6.2密碼分組鏈接模式(CBC)
3.6.3密碼反饋模式(CFB)
3.6.4輸出反饋模式(OFB)
3.6.5計(jì)數(shù)器模式(CTR)
3.7其他分組密碼
3.7.1IDEA加密算法
3.7.2RC6加密算法
思考題和習(xí)題
第4章公鑰密碼體制
4.1概述
4.1.1公鑰密碼體制提出的背景
4.1.2公鑰密碼的基本思想
4.1.3公鑰密碼的應(yīng)用
4.2RSA公鑰密碼體制
4.2.1RSA的算法描述
4.2.2RSA的實(shí)現(xiàn)
4.2.3RSA的安全性
4.2.4RSA在應(yīng)用中的問題
4.3ElGamal公鑰密碼體制
4.4橢圓曲線密碼體制
4.4.1概述
4.4.2橢圓曲線的概念與運(yùn)算
4.4.3橢圓曲線密碼體制
思考題和習(xí)題
第5章散列函數(shù)與消息鑒別
5.1散列函數(shù)的概念
5.1.1散列函數(shù)的性質(zhì)
5.1.2散列函數(shù)的應(yīng)用
5.2散列函數(shù)的構(gòu)造與設(shè)計(jì)
5.2.1迭代型散列函數(shù)的一般結(jié)構(gòu)
5.2.2散列函數(shù)的設(shè)計(jì)方法
5.3安全散列算法SHA
5.3.1SHA1
5.3.2其他SHA算法
5.4對(duì)散列函數(shù)的攻擊
5.4.1生日悖論
5.4.2生日攻擊
5.5消息鑒別
5.5.1基于加密技術(shù)的消息鑒別
5.5.2基于散列函數(shù)的消息鑒別
5.5.3HMAC算法
思考題與習(xí)題
第6章數(shù)字簽名技術(shù)
6.1數(shù)字簽名概述
6.1.1數(shù)字簽名的特性
6.1.2數(shù)字簽名的執(zhí)行方式
6.2基于公鑰密碼體制的典型數(shù)字簽名方案
6.2.1RSA數(shù)字簽名方案
6.2.2ElGamal數(shù)字簽名方案
6.2.3數(shù)字簽名標(biāo)準(zhǔn)DSS
6.2.4基于橢圓曲線密碼的數(shù)字簽名算法ECDSA
6.3特殊數(shù)字簽名方案
6.3.1不可否認(rèn)簽名
6.3.2盲數(shù)字簽名
6.3.3群簽名
思考題與習(xí)題
第7章密鑰管理技術(shù)
7.1密鑰管理的原則
7.2密鑰的層次結(jié)構(gòu)
7.3密鑰的生命周期
7.3.1密鑰的產(chǎn)生
7.3.2密鑰的存儲(chǔ)和備份
7.3.3密鑰的終止和銷毀
7.4密鑰分發(fā)和密鑰協(xié)商
7.4.1密鑰分發(fā)
7.4.2密鑰協(xié)商
7.5公開密鑰的分發(fā)
7.5.1公開密鑰的分發(fā)方式
7.5.2X.509公鑰證書
7.6秘密分割
7.6.1Shamir秘密分割門限方案
7.6.2AsmuthBloom門限方案
7.7群密鑰
思考題與習(xí)題
第8章身份鑒別技術(shù)
8.1身份鑒別的基本原理
8.2基于口令的身份鑒別技術(shù)
8.2.1基本口令鑒別協(xié)議
8.2.2口令鑒別協(xié)議的改進(jìn)
8.2.3基于質(zhì)詢響應(yīng)的身份鑒別技術(shù)
8.2.4S/Key一次性口令身份鑒別協(xié)議
8.3基于生物特征的身份鑒別技術(shù)
8.4零知識(shí)證明與身份鑒別
8.4.1FiegeFiatShamir身份鑒別方案
8.4.2FFS增強(qiáng)方案
8.4.3GuillonQuisquater身份鑒別方案
8.4.4Schnorr身份鑒別方案
思考題與習(xí)題
第9章序列密碼
9.1概述
9.2密鑰流發(fā)生器設(shè)計(jì)準(zhǔn)則
9.3序列的隨機(jī)性概念
9.4線性反饋移位寄存器(LFSR)
9.5基于LFSR的序列密碼
9.6序列密碼RC4
思考題和習(xí)題
第10章密碼技術(shù)應(yīng)用
10.1網(wǎng)絡(luò)通信的數(shù)據(jù)加密方式
10.1.1鏈路加密
10.1.2端端加密
10.2PGP技術(shù)及應(yīng)用
10.2.1概述
10.2.2運(yùn)行方式和服務(wù)
10.2.3密鑰和密鑰環(huán)
10.2.4公鑰管理和信任關(guān)系
10.2.5基于PGP的電子郵件通信安全
10.3Kerberos身份鑒別系統(tǒng)
10.3.1Kerberos系統(tǒng)概述
10.3.2Kerberos鑒別模型
10.3.3Kerberos協(xié)議鑒別過程
10.3.4Kerberos的局限性
10.4安全電子交易(SET)
10.4.1概述
10.4.2SET系統(tǒng)的商務(wù)模型
10.4.3基于SET的交易過程
10.4.4SET的雙重?cái)?shù)字簽名機(jī)制
10.4.5SET的支付流程
10.4.6SET協(xié)議的安全性
10.5公鑰基礎(chǔ)設(shè)施(PKI)
10.5.1PKI的定義
10.5.2PKI提供的服務(wù)和應(yīng)用
10.5.3PKI的構(gòu)成
10.5.4PKI標(biāo)準(zhǔn)
10.5.5PKI的信任模型
思考題與習(xí)題
第11章密碼分析基礎(chǔ)
11.1密碼分析概述
11.1.1密碼分析的目標(biāo)
11.1.2對(duì)密碼系統(tǒng)的攻擊類型
11.1.3密碼分析的方法
11.2古典密碼的統(tǒng)計(jì)分析
11.2.1單表替代密碼分析
11.2.2多表替代密碼分析
11.2.3對(duì)Hill密碼的已知明文分析
11.3密碼算法的數(shù)學(xué)分析
11.3.1偽隨機(jī)序列的密碼分析
11.3.2分組密碼的數(shù)學(xué)分析
11.3.3公鑰密碼的數(shù)學(xué)分析
11.4密碼協(xié)議的數(shù)學(xué)分析
11.4.1密碼協(xié)議的分類
11.4.2密碼協(xié)議的安全性
11.4.3密碼協(xié)議的分析方法
11.5密碼設(shè)備的邊信道攻擊
11.5.1邊信道攻擊的分類
11.5.2能量分析攻擊
11.5.3邊信道攻擊的防御對(duì)策
思考題和習(xí)題
附錄A密碼學(xué)數(shù)學(xué)基礎(chǔ)
A.1數(shù)論基礎(chǔ)
A.1.1素?cái)?shù)與互素
A.1.2模運(yùn)算與同余式
A.1.3費(fèi)馬定理與歐拉定理
A.1.4中國剩余定理
A.1.5離散對(duì)數(shù)
A.1.6平方剩余
A.2群論
A.2.1群的概念
A.2.2群的性質(zhì)
A.3有限域
A.3.1域和有限域的概念
A.3.2域上的多項(xiàng)式
A.3.3有限域元素的多項(xiàng)式表示
思考題與習(xí)題
附錄B計(jì)算復(fù)雜性
B.1算法的復(fù)雜性
B.2問題的復(fù)雜性
思考題與習(xí)題
附錄C商用密碼管理政策
參考文獻(xiàn)