《基于硬件逻辑加密的保密通信系统》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:丁群,杨自恒著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2015
  • ISBN:9787115378095
  • 页数:364 页
图书介绍:本书在传统密码学的基础上主要介绍了加密算法及HDL程序实现,重点给出了数据加密核与加密芯片设计,为保证信息的安全传输,设计了完整的数据加密系统。全书共15章。其中,第一章主要介绍本书研究对象和一些基础知识。第二章和第三章主要讲解基于可编程逻辑分组密码实现过程。第四章和第五章主要讲解基于可编程逻辑公钥密码实现过程。后几章则将分别介绍不同的相关技术和应用实例。

第1章 绪论 1

1.1 通信安全 1

1.2 保密通信系统 2

1.2.1 香农保密通信系统 2

1.2.2 加密系统基本原理 3

1.2.3 加密体制 4

1.3 现场可编程门阵列 5

1.4 VHDL编程 6

1.5 Quartus Ⅱ仿真软件 8

1.6 DSPBuilder的设计 10

第2章 分组密码DES 14

2.1 DES算法描述 14

2.2 DES中的初始置换与初始逆置换 16

2.3 密码函数 16

2.4 轮密钥的生成过程 19

第3章 基于FPGA的分组密码AES实现 22

3.1 AES加密算法 22

3.1.1 AES算法的数学知识 22

3.1.2 AES算法描述 24

3.1.3 AES算法一轮迭代 29

3.2 AES算法的FPGA实现 30

3.2.1 开发环境 30

3.2.2 整体结构设计 30

3.2.3 系统分支模块设计 31

3.2.4 AES加密系统的片上测试 39

第4章 基于FPGA的RSA公钥密码实现 47

4.1 RSA算法数论知识 47

4.1.1 模运算的定义 47

4.1.2 欧几里得算法 48

4.1.3 扩展欧几里得算法 49

4.1.4 模幂算法 50

4.1.5 模乘算法 51

4.1.6 公开密钥算法的密钥交换原理 51

4.2 RSA加解密算法 52

4.2.1 RSA加解密算法原理 52

4.2.2 基于Matlab编程实现RSA加密算法 54

4.2.3 RSA算法举例及其仿真 56

4.3 基于FPGA硬件实现RSA算法设计 59

4.3.1 实现RSA公钥算法的顶层设计 59

4.3.2 实现公钥e的互素判断模块设计 61

4.3.3 实现私钥d的模块设计 62

4.3.4 求模幂算法模块设计 65

第5章 基于FPGA的椭圆曲线加密算法实现 71

5.1 椭圆曲线加密算法理论 71

5.1.1 椭圆曲线相关理论 71

5.1.2 椭圆曲线群的运算法则 72

5.2 椭圆曲线加解密原理 73

5.2.1 椭圆曲线离散对数问题 73

5.2.2 系统建立和密钥生成 73

5.2.3 椭圆曲线密码体制加解密过程 74

5.2.4 椭圆曲线相关参数 74

5.3 密钥交换协议 75

5.3.1 Diffie-Hellman密钥交换协议 75

5.3.2 ECDH密钥交换协议 76

5.4 椭圆曲线加密有限域运算模块设计 77

5.4.1 有限域加法模块 77

5.4.2 有限域乘法模块 79

5.4.3 有限域平方模块 81

5.4.4 有限域求逆模块 82

5.4.5 有限域运算模块的验证 84

5.5 点加和点倍单元设计 86

5.6 点乘单元设计 90

第6章 基于FPGA的序列密码实现 95

6.1 序列密码体制 95

6.1.1 序列密码加密原理 95

6.1.2 序列密码分类 96

6.2 序列密码的性质 97

6.2.1 序列的周期性 97

6.2.2 序列的随机特性 98

6.2.3 序列的线性复杂度 100

6.2.4 对密钥序列的要求 100

6.3 反馈移位寄存器 101

6.3.1 线性移位寄存器结构 101

6.3.2 线性反馈移位寄存器的特征多项式 102

6.3.3 序列密码的破译 106

6.3.4 非线性序列密码 109

6.4 A5/1码 110

6.4.1 A5/1算法原理 110

6.4.2 A5/1算法的硬件实现 111

6.4.3 A5/1模块设计 111

6.5 其他几种序列密码 117

6.5.1 E0码 117

6.5.2 W7码 120

6.5.3 Helix码 120

6.5.4 几种序列密码实现结果比较 122

6.6 序列密码安全分析方法 123

6.6.1 Kerckhoff假设与密码系统的安全性 123

6.6.2 攻击密码的方法 124

第7章 混沌序列密码 127

7.1 混沌基本理论 127

7.1.1 混沌的定义 128

7.1.2 混沌运动的特征 128

7.1.3 混沌的分析识别方法 129

7.1.4 相关混沌特性分析与计算 131

7.2 典型的混沌系统 141

7.2.1 离散混沌系统 141

7.2.2 连续混沌系统 144

7.3 数字混沌模块设计 150

7.3.1 数字混沌模块设计原理 150

7.3.2 Logistic数字混沌电路设计 151

7.3.3 DSPBuilder中Altbus模块 153

7.4 数字混沌特性中的分岔现象 155

7.5 数字混沌密钥序列发生器的周期扩展方法 159

7.5.1 周期扩展理论方法分析 159

7.5.2 Logistic数字混沌周期扩展电路实现 160

7.5.3 Logistic数字混沌序列测试 163

7.6 数字混沌序列周期测试的新方法 165

第8章 纠错卷积编码的DSP实现 168

8.1 卷积编码概述 168

8.2 卷积码结构特性及维特比译码 169

8.2.1 卷积码的状态图和网格描述 169

8.2.2 卷积码的传递函数 170

8.2.3 维特比算法 172

8.3 卷积码的Matlab仿真实现 174

8.3.1 (2,1,7)卷积码编码器 174

8.3.2 (2,1,7)编码器的Matlab仿真 175

8.3.3 维特比译码原理分析与Matlab仿真 176

8.3.4 基于Matlab的(2,1,7)卷积码性能分析 176

8.3.5 DSP实现的(2,1,7)卷积码性能仿真 179

8.4 卷积码的硬件平台实现 180

8.4.1 卷积码编码的DSP实现 180

8.4.2 维特比译码的DSP实现 181

8.4.3 卷积码的纠错能力验证 182

第9章 调制与解调 184

9.1 调制与解调的基本原理 184

9.1.1 BPSK调制的基本原理 184

9.1.2 BPSK解调的基本原理 185

9.1.3 载波同步的概念 185

9.1.4 几种常见的载波同步算法 186

9.2 载波同步系统的设计 190

9.2.1 系统的总体设计 190

9.2.2 载波同步环路主要模块的设计 191

9.3 调制解调的Matlab仿真实现 198

9.3.1 发送部分的Matlab仿真 198

9.3.2 接收部分的Matlab仿真 199

9.4 调制解调的FPGA实现 207

9.4.1 数字发射机的FPGA实现 207

9.4.2 数字接收机的FPGA实现 210

第10章 数据传输加密系统 215

10.1 数据传输加密系统总体构思 215

10.2 数据传输加密卡硬件电路设计 217

10.2.1 电平转换电路设计 218

10.2.2 配置电路设计 219

10.2.3 时钟电路设计 219

10.2.4 扩展I/O口电路设计 220

10.2.5 电源电路 220

10.3 数据传输加密系统模块设计 224

10.3.1 异步串行接收模块 226

10.3.2 异步串行发送模块 233

10.3.3 波特率发生器模块 235

10.3.4 加密模块 237

10.3.5 多路选择模块 237

10.3.6 密码发生模块 238

10.3.7 主控制器模块 246

10.4 数据传输加密系统测试 251

第11章 无线数据传输加密系统 254

11.1 无线数据传输加密系统的总体构架 254

11.2 无线数据传输加密系统的硬件电路设计 255

11.2.1 下载电路设计 256

11.2.2 键盘输入电路设计 256

11.2.3 串口通信模块设计 258

11.2.4 显示电路设计 258

11.3 无线数据传输加密系统的模块设计 259

11.3.1 程序设计原理 260

11.3.2 波特率发生器模块 261

11.3.3 发送端PS2键盘输入模块 261

11.3.4 12864液晶显示模块 262

11.3.5 主控制CPU模块 263

11.3.6 混沌密钥发生模块 264

11.3.7 缓冲模块 267

11.3.8 异步串行发送模块 267

11.3.9 异步串行接收模块 268

11.4 无线混沌加密通信系统测试 270

11.4.1 发送接收数据测试 271

11.4.2 正确解密模式 271

11.4.3 错误解密模式 271

第12章 网络加密卡的硬件设计 273

12.1 网卡的功能、结构及性能指标 273

12.1.1 网卡的功能流程 273

12.1.2 DM9000A的主要性能 274

12.1.3 DM9000A的内部结构及工作原理 275

12.1.4 网络加密卡的总体性能指标 276

12.2 网络数据加密卡FPGA选型 277

12.3 网络数据加密卡硬件电路设计 278

12.3.1 总体设计 278

12.3.2 接口设计 279

12.3.3 模块设计 282

12.3.4 电路测试 285

第13章 网络加密卡PCI设备驱动开发 287

13.1 WDM设备驱动开发基础 287

13.1.1 网络加密卡硬件框图 287

13.1.2 Windows NT内部结构 288

13.1.3 开发Windows内核驱动的基础知识 289

13.1.4 DriverStudio驱动开发环境搭建 293

13.2 DriverEntry、AddDevice和StartDevice例程 293

13.2.1 DriverEntry驱动入口 293

13.2.2 AddDevice创建设备 296

13.2.3 StartDevice启动设备 297

13.3 DeviceControl设备I/O控制 298

13.3.1 IOCTL DM9000 EVENT传递事件 299

13.3.2 IOCTL DM9000 INIT初始化芯片 299

13.3.3 IOCTL DM9000 PASSWORD初始化密钥 301

13.4 StartIo、SerialRead和SerialWrite 301

13.4.1 StartIo串行处理IRP 301

13.4.2 SerialRead串行读 302

13.4.3 SerialWrite串行写 302

13.5 ISR和DPC 303

13.5.1 ISR中断服务例程 303

13.5.2 DPC延迟过程调用例程 304

13.6 内核调试和测试 305

13.6.1 驱动程序安装 305

13.6.2 内核调试工具使用 307

13.6.3 WinDbg串口调试 310

13.6.4 驱动程序测试 312

第14章 网络加密卡动态链接库开发 314

14.1 动态链接库技术 314

14.1.1 动态链接库的优点 314

14.1.2 VC动态链接库的开发 315

14.2 网络加密卡TCP/IP协议栈接口函数 315

14.2.1 以太网数据结构 315

14.2.2 ARP地址解析协议 318

14.2.3 16位CRC校验和 319

14.2.4 UDP类型的以太网帧封包 320

14.3 网络加密卡调用驱动程序接口函数 322

14.3.1 GUID打开设备 322

14.3.2 应用程序和驱动程序的通信方式 323

14.3.3 用于应用程序和驱动程序通信的函数 324

14.4 网络加密卡动态库的导出接口函数 325

14.4.1 接口的定义 325

14.4.2 接收回调函数的实现 327

14.5 网络加密卡动态链接库调试和测试 328

14.5.1 动态链接库调试 328

14.5.2 动态链接库测试 328

第15章 视频加密网络传输系统 330

15.1 视频加密网络传输系统设计 330

15.2 开发环境 330

15.2.1 设备驱动程序开发环境 331

15.2.2 应用程序开发环境 332

15.2.3 硬件开发环境 333

15.3 图像采集卡软件二次开发 335

15.3.1 图像采集卡的初始化API 336

15.3.2 图像采集卡的本地预览API 337

15.3.3 图像采集卡的编码参数配置API 338

15.3.4 图像采集卡的数据捕获API 340

15.4 H.2 64播放器二次开发 341

15.4.1 播放器开发流程 342

15.4.2 播放器初始化API 342

15.4.3 播放器设置API 343

15.4.4 播放器解码API 343

15.5 视频加密网络传输系统测试 344

15.5.1 视频加密网络传输系统的客户端软件开发 344

15.5.2 视频加密传输客户端软件的工作线程 345

15.5.3 视频加密网络传输系统的服务器软件开发 346

15.5.4 FTP网络存储 346

15.5.5 视频加密传输服务器软件的工作线程 347

15.5.6 视频加密网络传输系统测试 347

参考文献 351

名词索引 363