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