本書從密碼算法的軟硬件實現(xiàn)及其優(yōu)化的角度進行論述,內(nèi)容包括密碼算法實現(xiàn)的基礎(chǔ)技術(shù)、分組密碼原理與實現(xiàn)技術(shù)、公鑰密碼原理與實現(xiàn)技術(shù)、序列密碼原理與實現(xiàn)技術(shù)、Hash函數(shù)實現(xiàn)原理與技術(shù)、數(shù)字簽名實現(xiàn)原理與技術(shù)。本書也重點論述了適應目前資源約束物聯(lián)網(wǎng)環(huán)境下的輕量級密碼算法原理與優(yōu)化實現(xiàn)技術(shù),包括典型輕量級密碼算法優(yōu)化的實現(xiàn)方法,輕量級密碼算法的設(shè)計原理與方法,并以作者提出的Magpie輕量級密碼算法為例進行設(shè)計方法學的介紹,以經(jīng)典的DES和AES密碼算法為例介紹密碼算法FPGA的實現(xiàn)方法。最后,論述了密碼芯片的主要攻擊與防御技術(shù)。
第1章 緒論
1.1 信息安全與密碼技術(shù)
1.1.1 信息安全簡述
1.1.2 密碼技術(shù)簡述
1.1.3 信息安全與密碼技術(shù)的關(guān)系
1.2 密碼技術(shù)發(fā)展簡介
1.2.1 古代密碼
1.2.2 近代密碼
1.2.3 現(xiàn)代密碼
1.3 密碼工程學的基本概念
1.3.1 密碼工程學的主要任務
1.3.2 密碼系統(tǒng)的概念
1.3.3 對密碼系統(tǒng)的攻擊
1.3.4 密碼系統(tǒng)的安全性
1.3.5 密碼體制的分類
1.3.6 對稱與非對稱密碼體制的主要特點
習題
第2章 密碼工程學的基礎(chǔ)技術(shù)
2.1 密碼工程學的VC基礎(chǔ)
2.1.1 簡述
2.1.2 密碼算法的C/C++實現(xiàn)
2.1.3 C++程序開發(fā)過程
2.1.4 實例
2.2 密碼算法的硬件實現(xiàn)技術(shù)
2.2.1 Verilog HDL
2.2.2 仿真軟件ModelSim
第3章 分組密碼體制
3.1 分組密碼的設(shè)計原則與評估
3.1.1 分組密碼的設(shè)計原則
3.1.2 分組密碼評估
3.2 分組密碼的設(shè)計方法
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ù)加密標準
3.3.1 DES概述
3.3.2 DES的設(shè)計準則
3.3.3 DES的加密原理
3.3.4 DES的加密算法程序?qū)崿F(xiàn)
3.4 高級加密標準
3.4.1 算法的總體設(shè)計思想
3.4.2 算法基本運算
3.4.3 算法變換
3.4.4 AES解密
3.4.5 密鑰擴展算法
3.4.6 算法實例
3.5 分組密碼工作模式
3.5.1 電子密碼本模式
3.5.2 密碼分組鏈接模式
3.5.3 密碼反饋模式
3.5.4 輸出反饋模式
3.5.5 其他模式
習題
第4章 公鑰密碼體制
4.1 概述
4.1.1 公鑰密碼體制提出的背景
4.1.2 公鑰密碼體制的基本思想
4.1.3 公鑰密碼的應用
4.2 公鑰密碼的數(shù)學基礎(chǔ)
4.2.1 素數(shù)和互素數(shù)
4.2.2 模運算
4.2.3 費馬定理和歐拉定理
4.2.4 素性檢驗
4.2.5 歐幾里得算法
4.2.6 中國剩余定理
4.2.7 離散對數(shù)
4.2.8 平方剩余
4.2.9 群論
4.2.10 有限域
4.3 RSA公鑰密碼體制
4.3.1 RSA算法描述
4.3.2 RSA的實現(xiàn)
4.3.3 RSA算法的程序?qū)崿F(xiàn)
4.3.4 RSA的安全性
4.3.5 對RSA的攻擊
4.4 ElGamal公鑰密碼體制
4.4.1 ElGamal密碼體制描述
4.4.2 ElGamal算法程序?qū)崿F(xiàn)
4.5 橢圓曲線密碼體制
4.5.1 概述
4.5.2 橢圓曲線的概念與運算
4.5.3 橢圓曲線密碼的編程實現(xiàn)
習題
第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
習題
第6章 Hash函數(shù)與消息鑒別
6.1 Hash函數(shù)的概念
6.1.1 Hash函數(shù)的性質(zhì)
6.1.2 Hash函數(shù)的應用
6.2 Hash函數(shù)的構(gòu)造與設(shè)計
6.2.1 安全Hash函數(shù)的結(jié)構(gòu)
6.2.2 Hash函數(shù)的設(shè)計方法
6.3 安全散列算法SHA
6.3.1 SHA-1
6.3.2 其他SHA算法
6.4 對散列函數(shù)的攻擊
6.4.1 生日悖論
6.4.2 生日攻擊
6.5 消息鑒別
6.5.1 基于消息加密的鑒別
6.5.2 基于Hash函數(shù)的消息鑒別
6.5.3 HMAC
習題
第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ù)字簽名方案及編程實現(xiàn)
7.2.2 ElGamal數(shù)字簽名方案
7.2.3 數(shù)字簽名標準及編程實現(xiàn)
7.2.4 基于橢圓曲線密碼的數(shù)字簽名算法
7.3 特殊數(shù)字簽名方案
7.3.1 收方不可否認數(shù)字簽名
7.3.2 盲簽名
7.3.3 門限簽名
習題
第8章 輕量級分組密碼
8.1 輕量級密碼算法簡介
8.1.1 輕量級分組密碼算法的產(chǎn)生
8.1.2 輕量級分組密碼算法的發(fā)展歷程
8.1.3 輕量級分組密碼算法的設(shè)計原則與評估
8.2 典型輕量級密碼算法的優(yōu)化實現(xiàn)方法
8.2.1 PRESENT密碼算法
8.2.2 Piccolo密碼算法
8.3 新輕量級分組密碼算法Magpie
8.3.1 Magpie技術(shù)背景
8.3.2 Magpie算法描述
習題
第9章 密碼算法的FPGA實現(xiàn)
9.1 AES密碼算法的Verilog HDL實現(xiàn)
9.1.1 字節(jié)替換模塊
9.1.2 列混合模塊
9.1.3 密鑰擴展模塊
9.1.4 AES算法的主模塊
9.1.5 S盒變換模塊與tab模塊
9.2 AES密碼算法的FPGA實現(xiàn)
9.2.1 AES的主要優(yōu)化
9.2.2 實驗分析
9.2.3 AES算法的FPGA實現(xiàn)
9.2.4 AES算法優(yōu)化效果分析
9.3 DES密碼算法的Verilog HDL實現(xiàn)
9.3.1 初始置換IP及逆初始置換IP-1模塊
9.3.2 輪函數(shù)F模塊
9.3.3 密鑰擴展模塊設(shè)計
9.3.4 主模塊
9.4 DES密碼算法的FPGA實現(xiàn)
9.4.1 實驗分析
9.4.2 DES優(yōu)化實現(xiàn)
9.4.3 DES算法的EDK操作流程
9.4.4 優(yōu)化效果分析
習題
第10章 密碼芯片的主要攻擊與防御技術(shù)
10.1 簡述
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問題轉(zhuǎn)化為 SAT問題的求解
10.3.3 對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 實驗方法
10.5.5 分析與討論
10.6 一種SMS4加密算法的差分功耗攻擊
10.6.1 SMS4加密算法簡介
10.6.2 SMS4加密算法的功耗攻擊模型
10.6.3 SMS4加密算法的差分功耗攻擊點
10.6.4 SMS4加密算法的差分功耗攻擊實驗
10.6.5 SMS4差分功耗攻擊仿真平臺設(shè)計
10.7 一種防御高階功耗攻擊的SMS4掩碼方法
10.7.1 抗高階功耗攻擊SMS4算法
10.7.2 抗高階功耗攻擊隨機掩碼SMS4算法
10.7.3 偽隨機固定值掩碼SMS4算法
10.7.4 實驗結(jié)果與分析
習題
附錄A 密碼工程學實驗
A1 實驗一DES程序?qū)崿F(xiàn)
A2 實驗二AES程序?qū)崿F(xiàn)
A3 實驗三RSA程序?qū)崿F(xiàn)
A4 實驗四ECC程序?qū)崿F(xiàn)
A5 實驗五PRESENT程序?qū)崿F(xiàn)
A6 實驗六Piccolo程序?qū)崿F(xiàn)
附錄B 主要習題參考答案
參考文獻