层次化的FPGA硬件脆弱性分析方法研究
摘要 | 第5-6页 |
abstract | 第6-7页 |
第一章 绪论 | 第11-16页 |
1.1 研究背景与意义 | 第11-12页 |
1.2 国内外研究进展 | 第12-14页 |
1.3 本文的工作及创新点 | 第14页 |
1.4 本文的章节组织架构 | 第14-16页 |
第二章 FPGA硬件脆弱性的分析方法研究 | 第16-23页 |
2.1 逆向工程 | 第16-17页 |
2.2 漏洞挖掘 | 第17-21页 |
2.2.1 FPGA硬件脆弱性源 | 第17-18页 |
2.2.2 软件的漏洞挖掘方法 | 第18-19页 |
2.2.3 FPGA硬件的漏洞挖掘方法 | 第19-21页 |
2.2.3.1 仿真软件 | 第19-20页 |
2.2.3.2 模型检验 | 第20-21页 |
2.3 FPGA硬件脆弱性分析的整体架构 | 第21-22页 |
2.4 本章小结 | 第22-23页 |
第三章 基于Verilog代码提取伪状态机 | 第23-48页 |
3.1 伪状态机 | 第23-25页 |
3.1.1 定义 | 第23-25页 |
3.1.2 提取伪状态机总体流程图 | 第25页 |
3.2 词法分析 | 第25-30页 |
3.2.1 分析工具Flex | 第26-27页 |
3.2.2 编写Verilog的词法规则 | 第27-29页 |
3.2.3 实验结果 | 第29-30页 |
3.3 语法分析 | 第30-41页 |
3.3.1 分析工具Bison | 第30-32页 |
3.3.2 编写Verilog的语法规则 | 第32-34页 |
3.3.3 构建抽象语法树 | 第34-40页 |
3.3.3.1 一般节点 | 第34-36页 |
3.3.3.2 数字节点 | 第36-37页 |
3.3.3.3 条件语句节点 | 第37-38页 |
3.3.3.4 分支语句节点 | 第38-39页 |
3.3.3.5 节点nodetype | 第39-40页 |
3.3.4 实验结果 | 第40-41页 |
3.4 语义分析 | 第41-45页 |
3.4.1 转移条件分类 | 第41-43页 |
3.4.1.1 条件表达式 | 第41-42页 |
3.4.1.2 赋值表达式 | 第42-43页 |
3.4.2 转移条件提取 | 第43-44页 |
3.4.3 提取伪状态机算法 | 第44-45页 |
3.5 程序测试结果 | 第45-47页 |
3.6 本章小结 | 第47-48页 |
第四章 基于伪状态机识别有限状态机 | 第48-65页 |
4.1 伪状态机的分析方法 | 第48页 |
4.2 转移条件的回溯过程 | 第48-58页 |
4.2.1 回溯过程的起点 | 第49页 |
4.2.2 回溯间隔 | 第49-50页 |
4.2.3 回溯过程的表示 | 第50-53页 |
4.2.4 状态循环 | 第53-54页 |
4.2.5 回溯过程的终点 | 第54-55页 |
4.2.6 超维树的生成算法 | 第55-58页 |
4.3 转移条件的判断算法 | 第58-62页 |
4.3.1 深度优先与广度优先 | 第58-59页 |
4.3.2 判断子平面状态的算法 | 第59-60页 |
4.3.3 判断平面状态的算法 | 第60-61页 |
4.3.4 判断转移条件的算法 | 第61-62页 |
4.4 程序测试结果 | 第62-64页 |
4.5 本章小结 | 第64-65页 |
第五章 基于FSM评估FPGA硬件脆弱性 | 第65-76页 |
5.1 有限状态机的设计缺陷 | 第65-67页 |
5.1.1 二义性 | 第65-66页 |
5.1.2 死机状态 | 第66-67页 |
5.2 设计缺陷分析算法 | 第67-71页 |
5.2.1 二义性分析 | 第67-69页 |
5.2.2 死机状态分析 | 第69-71页 |
5.3 FPGA硬件脆弱性评估算法 | 第71-72页 |
5.4 程序测试结果 | 第72-75页 |
5.5 本章小结 | 第75-76页 |
第六章 总结与展望 | 第76-78页 |
6.1 工作总结 | 第76页 |
6.2 未来展望 | 第76-78页 |
致谢 | 第78-79页 |
参考文献 | 第79-82页 |
攻读硕士学位期间取得的成果 | 第82页 |