本書(shū)從密碼算法的軟硬件實(shí)現(xiàn)及其優(yōu)化的角度進(jìn)行論述,內(nèi)容包括密碼算法實(shí)現(xiàn)的基礎(chǔ)技術(shù)、分組密碼原理與實(shí)現(xiàn)技術(shù)、公鑰密碼原理與實(shí)現(xiàn)技術(shù)、序列密碼原理與實(shí)現(xiàn)技術(shù)、Hash函數(shù)實(shí)現(xiàn)原理與技術(shù)、數(shù)字簽名實(shí)現(xiàn)原理與技術(shù)。本書(shū)也重點(diǎn)論述了適應(yīng)目前資源約束物聯(lián)網(wǎng)環(huán)境下的輕量級(jí)密碼算法原理與優(yōu)化實(shí)現(xiàn)技術(shù),包括典型輕量級(jí)密碼算法優(yōu)化的實(shí)現(xiàn)方法,輕量級(jí)密碼算法的設(shè)計(jì)原理與方法,并以作者提出的Magpie輕量級(jí)密碼算法為例進(jìn)行設(shè)計(jì)方法學(xué)的介紹,以經(jīng)典的DES和AES密碼算法為例介紹密碼算法FPGA的實(shí)現(xiàn)方法。最后,論述了密碼芯片的主要攻擊與防御技術(shù)。
信息安全在當(dāng)代信息社會(huì)無(wú)比重要,密碼是信息安全的基石。社會(huì)需要大批的信息安全人才,一本好的密碼學(xué)教材顯得非常重要。
作者多年從事信息安全研究與教學(xué),發(fā)現(xiàn)目前特別需要一本既匯聚密碼學(xué)基礎(chǔ),又能體現(xiàn)密碼算法與硬件優(yōu)化實(shí)現(xiàn),同時(shí)又能有最新密碼技術(shù)的書(shū)籍。本書(shū)能夠讓讀者閱讀之后,快速入門(mén)并迅速掌握密碼軟硬件的實(shí)現(xiàn)技術(shù),能夠?qū)γ艽a算法安全設(shè)計(jì)有所思考。
對(duì)常見(jiàn)的密碼算法原理及其實(shí)現(xiàn)技術(shù)進(jìn)行了概括性提高,對(duì)目前適合資源約束的新型輕量級(jí)分組密碼算法進(jìn)行了優(yōu)化實(shí)現(xiàn),并以有自主知識(shí)產(chǎn)權(quán)的Magpie輕量級(jí)密碼算法為例,結(jié)合設(shè)計(jì)方法學(xué)論述了輕量級(jí)密碼算法的設(shè)計(jì)理念。密碼算法及其芯片仍然是攻擊者的重點(diǎn)攻擊對(duì)象,論述了主要攻擊技術(shù)及其防御方法。有些內(nèi)容是作者的最新研究成果,還有一些內(nèi)容是作者博士期間的研究工作。
本書(shū)的主要特點(diǎn)是: 以初學(xué)者的角度進(jìn)行論述、強(qiáng)調(diào)基礎(chǔ)、注重實(shí)踐操作能力的培養(yǎng),力求使學(xué)習(xí)者在掌握密碼算法基本原理的基礎(chǔ)上,能夠?qū)γ艽a設(shè)計(jì)與優(yōu)化方法有所掌握,特別是對(duì)硬件語(yǔ)言實(shí)現(xiàn)及密碼算法優(yōu)化有較深的理解,對(duì)目前密碼算法的主要攻擊技術(shù)及其防御方法有所掌握。
本書(shū)主要由李浪教授負(fù)責(zé)編寫(xiě)與組織統(tǒng)稿,其中李浪負(fù)責(zé)編寫(xiě)第1~第6章、第8章和第10.1、第10.2、第10.5節(jié),鄒祎負(fù)責(zé)編寫(xiě)第7章與第10.4節(jié),許瓊方負(fù)責(zé)編寫(xiě)第10.3節(jié),王玉奇對(duì)目錄和內(nèi)容架構(gòu)提出了寶貴意見(jiàn),中南大學(xué)郭迎博士對(duì)相關(guān)章節(jié)進(jìn)行了詳細(xì)的校對(duì),同時(shí)提出了許多建設(shè)性的意見(jiàn)。特別值得指出的是,李浪教授負(fù)責(zé)的嵌入式計(jì)算與信息安全研究所的劉波濤、余孝忠、曾婷、杜國(guó)權(quán)、李配對(duì)本書(shū)的附錄進(jìn)行了編寫(xiě),并為全書(shū)進(jìn)行了大量的基礎(chǔ)性工作,如對(duì)程序源碼及其實(shí)現(xiàn)都進(jìn)行了認(rèn)真的實(shí)驗(yàn)與校對(duì)。本書(shū)的編寫(xiě)得到了清華大學(xué)出版社張民老師的大力支持,同時(shí)一些基礎(chǔ)性原理與內(nèi)容參考了大量同行的相關(guān)著作與教材,在參考文獻(xiàn)中也進(jìn)行了注明,作者在此一并表示感謝。
本書(shū)獲得了湖南省普通高等學(xué)校教學(xué)改革研究項(xiàng)目“基于協(xié)同創(chuàng)新的地方本科院校計(jì)算機(jī)專業(yè)應(yīng)用人才培養(yǎng)研究”的資助(NO.2014382)。
盡管作者以最大的努力去編著本書(shū),但由于作者的學(xué)識(shí)和水平畢竟有限,特別是書(shū)中有些內(nèi)容是作者教學(xué)與科研中的原創(chuàng)成果,因此難免有需要商榷之處,誠(chéng)望讀者不吝賜教斧正。
本書(shū)制作了配套的電子課件,方便使用本書(shū)的老師進(jìn)行教學(xué)使用,課件可從清華大學(xué)出版社網(wǎng)站http://www.tup.tsinghua.edu.cn下載,也可聯(lián)系作者索取。
李浪2014年5月
第1章 緒論
1.1 信息安全與密碼技術(shù)
1.1.1 信息安全簡(jiǎn)述
1.1.2 密碼技術(shù)簡(jiǎn)述
1.1.3 信息安全與密碼技術(shù)的關(guān)系
1.2 密碼技術(shù)發(fā)展簡(jiǎn)介
1.2.1 古代密碼
1.2.2 近代密碼
1.2.3 現(xiàn)代密碼
1.3 密碼工程學(xué)的基本概念
1.3.1 密碼工程學(xué)的主要任務(wù)
1.3.2 密碼系統(tǒng)的概念
1.3.3 對(duì)密碼系統(tǒng)的攻擊
1.3.4 密碼系統(tǒng)的安全性
1.3.5 密碼體制的分類
1.3.6 對(duì)稱與非對(duì)稱密碼體制的主要特點(diǎn)
習(xí)題
第2章 密碼工程學(xué)的基礎(chǔ)技術(shù)
2.1 密碼工程學(xué)的VC基礎(chǔ)
2.1.1 簡(jiǎn)述
2.1.2 密碼算法的C/C++實(shí)現(xiàn)
2.1.3 C++程序開(kāi)發(fā)過(guò)程
2.1.4 實(shí)例
2.2 密碼算法的硬件實(shí)現(xiàn)技術(shù)
2.2.1 Verilog HDL
2.2.2 仿真軟件ModelSim
第3章 分組密碼體制
3.1 分組密碼的設(shè)計(jì)原則與評(píng)估
3.1.1 分組密碼的設(shè)計(jì)原則
3.1.2 分組密碼評(píng)估
3.2 分組密碼的設(shè)計(jì)方法
3.2.1 Feistel結(jié)構(gòu)
3.2.2 SPN結(jié)構(gòu)
3.2.3 Lai-Massey結(jié)構(gòu)
3.3 數(shù)據(jù)加密標(biāo)準(zhǔn)
3.3.1 DES概述
3.3.2 DES的設(shè)計(jì)準(zhǔn)則
3.3.3 DES的加密原理
3.3.4 DES的加密算法程序?qū)崿F(xiàn)
3.4 高級(jí)加密標(biāo)準(zhǔn)
3.4.1 算法的總體設(shè)計(jì)思想
3.4.2 算法基本運(yùn)算
3.4.3 算法變換
3.4.4 AES解密
3.4.5 密鑰擴(kuò)展算法
3.4.6 算法實(shí)例
3.5 分組密碼工作模式
3.5.1 電子密碼本模式
3.5.2 密碼分組鏈接模式
3.5.3 密碼反饋模式
3.5.4 輸出反饋模式
3.5.5 其他模式
習(xí)題
第4章 公鑰密碼體制
4.1 概述
4.1.1 公鑰密碼體制提出的背景
4.1.2 公鑰密碼體制的基本思想
4.1.3 公鑰密碼的應(yīng)用
4.2 公鑰密碼的數(shù)學(xué)基礎(chǔ)
4.2.1 素?cái)?shù)和互素?cái)?shù)
4.2.2 模運(yùn)算
4.2.3 費(fèi)馬定理和歐拉定理
4.2.4 素性檢驗(yàn)
4.2.5 歐幾里得算法
4.2.6 中國(guó)剩余定理
4.2.7 離散對(duì)數(shù)
4.2.8 平方剩余
4.2.9 群論
4.2.10 有限域
4.3 RSA公鑰密碼體制
4.3.1 RSA算法描述
4.3.2 RSA的實(shí)現(xiàn)
4.3.3 RSA算法的程序?qū)崿F(xiàn)
4.3.4 RSA的安全性
4.3.5 對(duì)RSA的攻擊
4.4 ElGamal公鑰密碼體制
4.4.1 ElGamal密碼體制描述
4.4.2 ElGamal算法程序?qū)崿F(xiàn)
4.5 橢圓曲線密碼體制
4.5.1 概述
4.5.2 橢圓曲線的概念與運(yùn)算
4.5.3 橢圓曲線密碼的編程實(shí)現(xiàn)
習(xí)題
第5章 序列密碼
5.1 序列密碼的基本概念
5.1.1 同步序列密碼
5.1.2 自同步序列密碼
5.2 線性反饋移位寄存器
5.3 基于LFSR的序列密碼
5.3.1 基于LFSR的序列密碼密鑰流生成器
5.3.2 基于LFSR的序列密碼體制
5.4 序列密碼算法RC4
習(xí)題
第6章 Hash函數(shù)與消息鑒別
6.1 Hash函數(shù)的概念
6.1.1 Hash函數(shù)的性質(zhì)
6.1.2 Hash函數(shù)的應(yīng)用
6.2 Hash函數(shù)的構(gòu)造與設(shè)計(jì)
6.2.1 安全Hash函數(shù)的結(jié)構(gòu)
6.2.2 Hash函數(shù)的設(shè)計(jì)方法
6.3 安全散列算法SHA
6.3.1 SHA-1
6.3.2 其他SHA算法
6.4 對(duì)散列函數(shù)的攻擊
6.4.1 生日悖論
6.4.2 生日攻擊
6.5 消息鑒別
6.5.1 基于消息加密的鑒別
6.5.2 基于Hash函數(shù)的消息鑒別
6.5.3 HMAC
習(xí)題
第7章 數(shù)字簽名技術(shù)
7.1 數(shù)字簽名概述
7.1.1 數(shù)字簽名的特性
7.1.2 數(shù)字簽名的要求
7.1.3 數(shù)字簽名的執(zhí)行方式
7.1.4 數(shù)字簽名的分類
7.2 基于公鑰密碼體制的典型數(shù)字簽名方案
7.2.1 RSA數(shù)字簽名方案及編程實(shí)現(xiàn)
7.2.2 ElGamal數(shù)字簽名方案
7.2.3 數(shù)字簽名標(biāo)準(zhǔn)及編程實(shí)現(xiàn)
7.2.4 基于橢圓曲線密碼的數(shù)字簽名算法
7.3 特殊數(shù)字簽名方案
7.3.1 收方不可否認(rèn)數(shù)字簽名
7.3.2 盲簽名
7.3.3 門(mén)限簽名
習(xí)題
第8章 輕量級(jí)分組密碼
8.1 輕量級(jí)密碼算法簡(jiǎn)介
8.1.1 輕量級(jí)分組密碼算法的產(chǎn)生
8.1.2 輕量級(jí)分組密碼算法的發(fā)展歷程
8.1.3 輕量級(jí)分組密碼算法的設(shè)計(jì)原則與評(píng)估
8.2 典型輕量級(jí)密碼算法的優(yōu)化實(shí)現(xiàn)方法
8.2.1 PRESENT密碼算法
8.2.2 Piccolo密碼算法
8.3 新輕量級(jí)分組密碼算法Magpie
8.3.1 Magpie技術(shù)背景
8.3.2 Magpie算法描述
習(xí)題
第9章 密碼算法的FPGA實(shí)現(xiàn)
9.1 AES密碼算法的Verilog HDL實(shí)現(xiàn)
9.1.1 字節(jié)替換模塊
9.1.2 列混合模塊
9.1.3 密鑰擴(kuò)展模塊
9.1.4 AES算法的主模塊
9.1.5 S盒變換模塊與tab模塊
9.2 AES密碼算法的FPGA實(shí)現(xiàn)
9.2.1 AES的主要優(yōu)化
9.2.2 實(shí)驗(yàn)分析
9.2.3 AES算法的FPGA實(shí)現(xiàn)
9.2.4 AES算法優(yōu)化效果分析
9.3 DES密碼算法的Verilog HDL實(shí)現(xiàn)
9.3.1 初始置換IP及逆初始置換IP-1模塊
9.3.2 輪函數(shù)F模塊
9.3.3 密鑰擴(kuò)展模塊設(shè)計(jì)
9.3.4 主模塊
9.4 DES密碼算法的FPGA實(shí)現(xiàn)
9.4.1 實(shí)驗(yàn)分析
9.4.2 DES優(yōu)化實(shí)現(xiàn)
9.4.3 DES算法的EDK操作流程
9.4.4 優(yōu)化效果分析
習(xí)題
第10章 密碼芯片的主要攻擊與防御技術(shù)
10.1 簡(jiǎn)述
10.2 差分攻擊與防御技術(shù)
10.2.1 差分攻擊原理
10.2.2 DES差分分析
10.2.3 差分攻擊防御技術(shù)
10.2.4 差分密碼的分析推廣
10.3 代數(shù)攻擊
10.3.1 解方程法
10.3.2 MQ問(wèn)題轉(zhuǎn)化為 SAT問(wèn)題的求解
10.3.3 對(duì)AES單輪代數(shù)的攻擊
10.4 故障攻擊與防御技術(shù)
10.4.1 故障攻擊模型研究
10.4.2 故障攻擊技術(shù)
10.4.3 故障攻擊防御技術(shù)
10.5 功耗攻擊與防御技術(shù)
10.5.1 功耗攻擊模型研究
10.5.2 功耗攻擊技術(shù)
10.5.3 功耗攻擊防御技術(shù)
10.5.4 實(shí)驗(yàn)方法
10.5.5 分析與討論
10.6 一種SMS4加密算法的差分功耗攻擊
10.6.1 SMS4加密算法簡(jiǎn)介
10.6.2 SMS4加密算法的功耗攻擊模型
10.6.3 SMS4加密算法的差分功耗攻擊點(diǎn)
10.6.4 SMS4加密算法的差分功耗攻擊實(shí)驗(yàn)
10.6.5 SMS4差分功耗攻擊仿真平臺(tái)設(shè)計(jì)
10.7 一種防御高階功耗攻擊的SMS4掩碼方法
10.7.1 抗高階功耗攻擊SMS4算法
10.7.2 抗高階功耗攻擊隨機(jī)掩碼SMS4算法
10.7.3 偽隨機(jī)固定值掩碼SMS4算法
10.7.4 實(shí)驗(yàn)結(jié)果與分析
習(xí)題
附錄A 密碼工程學(xué)實(shí)驗(yàn)
A1 實(shí)驗(yàn)一DES程序?qū)崿F(xiàn)
A2 實(shí)驗(yàn)二AES程序?qū)崿F(xiàn)
A3 實(shí)驗(yàn)三RSA程序?qū)崿F(xiàn)
A4 實(shí)驗(yàn)四ECC程序?qū)崿F(xiàn)
A5 實(shí)驗(yàn)五PRESENT程序?qū)崿F(xiàn)
A6 實(shí)驗(yàn)六Piccolo程序?qū)崿F(xiàn)
附錄B 主要習(xí)題參考答案
參考文獻(xiàn)