典型密碼算法FPGA實現

基本信息

典型密碼算法FPGA實現

作 譯 者:楊亞濤,李子臣

出版時間:2017-01

千 字 數:332

版 次:01-01

頁 數:208

開 本:16開

I S B N :9787121303838

內容簡介

本書用FPGA實現的密碼算法主要分為四大部分,分別是分組密碼、公鑰密碼、Hash算法和數字簽名算法,其中分組密碼包括DES、AES和SM4算法;公鑰算法包括RSA公鑰密碼算法、ECC密碼算法和SM2密碼算法;Hash算法包括SHA-1算法、SHA-3算法和SM3算法;數字簽名算法包括ECC簽名算法和DSA簽名算法。 本書在Xilinx公司的ISE平台和Mentor公司ModelSim仿真軟體上編程實現了這些算法,並且還附加了相關實現截圖以及密碼算法實現效率分析。 本書不僅可作為大學密碼與信息安全相關專業本科生以及研究生的教學與參考用書,也可以作為密碼與信息安全科研或工程開發人員的參考書。

目錄信息

第1章 密碼算法FPGA實現基礎 1

1.1 FPGA概述 1

1.1.1 Xilinx公司的代表晶片 2

1.1.2 Altera公司的代表晶片 2

1.2 FPGA工作原理 3

1.3 FPGA語法基礎 4

1.3.1 Verilog HDL語法要點 4

1.3.2 VHDL語法要點 7

1.4 FPGA開發環境簡介 10

1.4.1 FPGA開發環境ISE 10

1.4.2 FPGA開發環境ModelSim 14

1.5 密碼算法的FPGA實現流程 16

1.5.1 FPGA一般實現流程 16

1.5.2 密碼算法的FPGA實現流程 16

1.6 本章小結 17

第2章 DES算法FPGA實現 18

2.1 DES算法原理 18

2.1.1 參數產生 18

2.1.2 密鑰生成 18

2.1.3 加密解密過程 19

2.1.4 安全性分析 20

2.2 DES算法相關模組的FPGA設計 20

2.2.1 IP和IP?1模組設計 21

2.2.2 密鑰擴展設計 21

2.2.3 S盒設計 22

2.2.4 f函式設計 23

2.2.5 頂層模組設計 24

2.3 DES算法工程實現 25

2.4 效果測試 28

2.5 本章小結 29

第3章 AES算法FPGA實現 30

3.1 AES算法原理 30

3.1.1 基礎知識 30

3.1.2 加密解密過程 31

3.2 AES算法相關模組FPGA設計 32

3.2.1 密鑰加變換設計 32

3.2.2 位元組代換模組設計 32

3.2.3 密鑰擴展模組設計 35

3.2.4 行移位設計 37

3.2.5 列混合設計 38

3.3 AES算法工程實現 39

3.4 效果測試 41

3.5 本章小節 43

第4章 SM4算法FPGA實現 44

4.1 SM4算法原理 44

4.1.1 算法定義 44

4.1.2 算法描述 44

4.1.3 加解密算法 45

4.2 SM4算法相關模組FPGA設計 46

4.2.1 循環移位設計 46

4.2.2 S盒設計 47

4.2.3 密鑰擴展設計 48

4.2.4 輪函式加密設計 52

4.3 SM4算法工程實現 54

4.4 效果測試 56

4.5 本章小節 57

第5章 RSA算法FPGA實現 58

5.1 RSA算法原理 58

5.1.1 參數產生與密鑰生成 58

5.1.2 加解密過程 58

5.1.3 正確性證明與安全性分析 59

5.2 RSA算法相關模組FPGA設計 60

5.2.1 Montgmoery算法模組設計 60

5.2.2 R-L模式模冪算法模組設計 62

5.3 RSA算法工程實現 67

5.4 效果測試 70

5.5 本章小結 72

第6章 ECC算法FPGA實現 73

6.1 ECC算法原理 73

6.1.1 參數產生 73

6.1.2 加密解密過程 73

6.2 ECC算法相關模組FPGA設計 74

6.2.1 有限域加法的FPGA實現 74

6.2.2 有限域乘法的FPGA實現 75

6.2.3 有限域平方的FPGA實現 76

6.2.4 有限域模逆的FPGA實現 79

6.2.5 點加和倍加的FPGA實現 82

6.2.6 點乘的FPGA實現 86

6.3 ECC算法工程實現 89

6.4 效果測試 92

6.5 本章小結 93

第7章 SM2算法FPGA實現 94

7.1 算法原理 94

7.1.1 密鑰生成 94

7.1.2 加密過程 94

7.1.3 解密過程 95

7.2 SM2算法相關模組FPGA設計 97

7.2.1 坐標轉換模組設計 97

7.2.2 點加運算和2倍點運算設計 97

7.2.3 點乘運算設計 98

7.2.4 Hash算法設計 99

7.2.5 模逆運算設計 99

7.3 SM2算法工程實現 99

7.4 效果測試 103

7.5 本章小結 105

第8章 SHA-1算法FPGA實現 106

8.1 SHA-1算法原理 106

8.1.1 SHA-1算法的補位與補長度 106

8.1.2 計算訊息摘要 107

8.2 SHA-1算法基本步驟 107

8.3 SHA-1算法的FPGA設計 109

8.3.1 控制單元模組設計 109

8.3.2 訊息擴展模組設計 110

8.3.3 疊代壓縮模組設計 110

8.3.4 結果輸出模組設計 112

8.4 SHA-1算法工程實現 113

8.5 效果測試 115

8.6 本章小結 117

第9章 Keccak算法FPGA實現 118

9.1 算法描述 118

9.1.1 Keccak結構 118

9.1.2 常數與函式 119

9.2 Keccak算法相關模組FPGA設計 120

9.2.1 主函式模組的設計 120

9.2.2 輪函式模組設計 122

9.2.3 輪常數模組的設計 123

9.2.4 快取模組設計 124

9.3 Keccak算法工程實現 126

9.4 效果測試 129

9.5 本章小結 131

第10章 SM3算法FPGA實現 132

10.1 SM3算法原理 132

10.1.1 算法描述 132

10.1.2 常數與函式 134

10.2 SM3算法相關模組FPGA設計 134

10.2.1 控制單元設計 134

10.2.2 訊息擴展模組設計 136

10.2.3 疊代壓縮模組設計 140

10.2.4 結果輸出模組設計 141

10.3 SM3算法工程實現 143

10.4 效果測試 147

10.5 本章小結 148

第11章 DSA數字簽名算法FPGA實現 149

11.1 DSA數字簽名原理 149

11.2 DSA數字簽名算法相關模組FPGA設計 150

11.2.1 模乘算法模組設計 151

11.2.2 模冪算法模組設計 152

11.2.3 模逆算法模組設計 156

11.2.4 模加算法模組設計 158

11.3 DSA數字簽名算法的工程實現及結果 159

11.4 效果測試 162

11.5 本章小結 163

第12章 ECC數字簽名算法FPGA實現 164

12.1 ECC數字簽名原理 164

12.2 ECC數字簽名算法相關模組FPGA設計 165

12.2.1 模乘算法模組設計 165

12.2.2 模逆模組設計 168

12.2.3 Hash函式模組設計 172

12.2.4 點乘模組設計 172

12.3 ECC數字簽名算法的工程實現及結果 185

12.4 效果測試 188

12.5 本章小結 189

參考文獻 190

相關詞條

熱門詞條

聯絡我們