CN107391896B - 一种低开销的fpga硬件木马设计方法 - Google Patents
一种低开销的fpga硬件木马设计方法 Download PDFInfo
- Publication number
- CN107391896B CN107391896B CN201710857862.XA CN201710857862A CN107391896B CN 107391896 B CN107391896 B CN 107391896B CN 201710857862 A CN201710857862 A CN 201710857862A CN 107391896 B CN107391896 B CN 107391896B
- Authority
- CN
- China
- Prior art keywords
- lut
- fpga
- trojan horse
- hardware trojan
- hardware
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/34—Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/392—Floor-planning or layout, e.g. partitioning or placement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/398—Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Architecture (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
- Logic Circuits (AREA)
Abstract
本发明公开了一种低开销的FPGA硬件木马设计方法,属于硬件安全技术领域,目的在于减少在FPGA上实现硬件木马所需的资源开销,增加硬件木马的隐蔽性。本发明充分利用了FPGA中一个LUT可以实现两个不同布尔函数的特性,大幅度降低硬件木马植入带来的开销,尤其当木马逻辑完全由LUT实现的时候,开销降低效果更加明显。
Description
技术领域
本发明属于硬件安全技术领域,具体涉及一种低开销的FPGA硬件木马设计方法的设计。
背景技术
近年来FPGA(Field-Programmable Gate Array,现场可编程门阵列)在各个领域的大量应用使得其安全问题日益成为研究重点。硬件木马作为黑客攻击硬件安全的重要技术手段,也被实现于FPGA设计中,影响其运行可信性与可靠性。
现有的FPGA硬件木马设计大多数都是在RTL(Register Transfer Level,寄存器传输层次)级,通过硬件描述语言直接添加硬件木马模块而得,例如在Digilent BASYSSpartan-3FPGA开发板上实现了8种不同的针对加密模块的RTL级硬件木马,或者通过添加和修改VHDL(Very-High-Speed Integrated Circuit Hardware Description Language,超高速集成电路硬件描述语言)在Leon3处理器中加入非法内存访问和影子模式等恶意功能。在FPGA设计流程中,对代码的任何微小修改都会导致整个设计的重新综合与布局布线,因此,除非对原始代码进行优化来减少开销,否则使用这种方法设计的硬件木马增加总资源开销是无法避免的。
现有的另一种RTL级与布局级共同实现硬件木马植入的方法,需要先在RTL级修改原始设计得到含有硬件木马的完整设计,再从布局级去掉硬件木马与原始设计之间的连线。该方法规避了设计重新综合布局的不确定性,但硬件木马占用的资源开销也是无法避免的。
另一类设计FPGA硬件木马的技术则是完全在布局级实现硬件木马的植入,例如在布局布线完成的原始设计中,通过FPGA Editor工具,添加恶意硬件木马逻辑,或者利用RapidSmith API实现FPGA布局级的硬件木马植入。以上方法的硬件木马逻辑开销大小取决于设计者对木马的优化程度,但也都使用了新的片上逻辑资源。
发明内容
本发明的目的是为了减少在FPGA上实现硬件木马所需的资源开销,增加硬件木马的隐蔽性,提出了一种低开销的FPGA硬件木马设计方法。
本发明的技术方案为:一种低开销的FPGA硬件木马设计方法,包括以下步骤:
S1、对不含木马的FPGA设计进行综合与布局布线,得到该FPGA设计的原始设计网表。
S2、构建硬件木马触发机制与预期实现的恶意功能,并采用FPGA支持的基本元件(LUT、寄存器和进位链逻辑等)搭建硬件木马逻辑。
S3、寻找FPGA中可用于木马植入的LUT资源。
S4、根据香农展开定理分解硬件木马逻辑的布尔函数。
S5、将分解后的布尔函数全部分配到可用于木马植入的LUT资源中。
S6、判断硬件木马电路中所有LUT逻辑是否都在FPGA中实现,若是则进入步骤S7,否则返回步骤S4。
S7、得到植入硬件木马的网表文件。
本发明的有益效果是:本发明充分利用了FPGA中一个LUT可以实现两个不同布尔函数的特性,大幅度降低硬件木马植入带来的开销,尤其当木马逻辑完全由LUT实现的时候,开销降低效果更加明显。
附图说明
图1所示为本发明实施例提供的一种低开销的FPGA硬件木马设计方法流程图。
图2所示为本发明实施例提供的实现6输入布尔函数的LUT示意图。
图3所示为本发明实施例提供的实现2输入布尔函数的LUT示意图。
图4所示为本发明实施例提供的硬件木马逻辑在可利用的LUT中的实现效果示意图。
具体实施方式
现在将参考附图来详细描述本发明的示例性实施方式。应当理解,附图中示出和描述的实施方式仅仅是示例性的,意在阐释本发明的原理和精神,而并非限制本发明的范围。
本发明实施例提供了一种低开销的FPGA硬件木马设计方法,如图1所示,包括以下步骤S1-S7:
S1、对不含木马的FPGA设计进行综合与布局布线,得到该FPGA设计的原始设计网表。
S2、构建硬件木马触发机制(触发器)与预期实现的恶意功能(有效载荷),并采用FPGA支持的基本元件(LUT、寄存器和进位链逻辑等)搭建硬件木马逻辑(暂不嵌入FPGA中)。
针对原始设计的功能,攻击者可以设计不同的木马激活方式以及恶意功能攻击原始设计。FPGA设计与一般的数字电路设计不同的地方在于,通过LUT实现门电路相应的逻辑函数,因此在设计硬件木马时,虽然采取通常的组合、时序逻辑电路设计原理分别对触发器和有效载荷进行实现,但需要将门电路逻辑通过LUT表示。
LUT(Look-Up-Table,查找表)是FPGA中最基本的组成元素,可以用于实现任何N个布尔变量的逻辑函数,其中N为LUT输入引脚数。本发明实施例中以Xilinx FPGA为例,Xilinx FPGA一般由6输入LUT组成,一个LUT包含6个输入引脚A1~A6和两个独立输出引脚O5、O6。一个LUT可实现:
(1)任意一个6输入布尔函数,如图2所示。图2中A1~A6为输入引脚,O6为输出引脚。
(2)任意两个5输入布尔函数,要求两个函数具有共同的输入,引脚A6置‘1’。
(3)任意两个3输入与2输入,或更少输入的布尔函数,引脚A6置‘1’。
通过利用上述特性,一个LUT可以实现两个布尔函数,本发明得以降低硬件木马的LUT开销。
S3、寻找FPGA中可用于木马植入的LUT资源。
步骤S3具体包括以下分步骤S31-S33:
S31、根据步骤S1得到的原始设计网表信息,获取原始电路占用的LUT集合A。
S32、删除集合A中不能被木马利用的LUT资源,得到可用于木马植入的LUT集合C。
其中,不能被木马利用的LUT资源包括输出引脚已完全被占用的LUT集合B1、输入引脚已经完全被占用的LUT集合B2以及输入引脚只有一个未被占用的LUT集合B3,因此C=A-B1-B2-B3。
S33、对集合C进行标记,作为可用于木马植入的LUT资源。
S4、根据香农展开定理分解硬件木马逻辑的布尔函数。
从可用于木马植入的LUT资源中任意选取一个硬件木马电路的LUT逻辑fj(1≤j≤n,n为实现硬件木马所需的LUT数量),根据香农展开定理对其所包含的布尔函数进行分解,表示为若干子函数的和,使得每个子函数的变量个数减少;重复上述分解步骤,直至每个子函数的变量个数pi小于等于4(1≤pi≤4,1≤i≤m,m为子函数的个数)。
硬件木马的组合逻辑电路都是由6输入LUT搭建而成的,其布尔函数为f(x1,x2,x3,x4,x5,x6)。由香农展开定理,任何一个逻辑函数f(x1,x2,…,xi-1,xi,xi+1,…,xn),都可以表示为:
根据该定理,可以将布尔函数分解为若干个子函数的和,使得每个子函数变量个数都小于等于4。
本发明实施例中,假设在硬件木马电路中选取的LUT函数为:根据香农展开定理,该硬件木马逻辑的布尔函数可以被分解为F3=N3+N2+N1,其中,F1、F2、F3即为三个子函数。
S5、将分解后的布尔函数全部分配到可用于木马植入的LUT资源中。
对步骤S4分解得到的任一子函数fi,在集合C中随机选取一个剩余引脚数大于等于pi的LUT,在原始设计网表上修改该LUT的真值表,在其未使用的输出端实现子函数fi的输出,同时将该LUT从集合C删除;重复该步骤直至所有的子函数都被分配到FPGA可用于木马植入的LUT资源中。
本发明实施例中,以步骤S4中的一个子函数F3=N3+N2+N1为例,变量数p3=3,在集合C中随机选取一个2输入布尔函数的LUT,剩余4个引脚,如图3所示。图3中A4、A5为输入引脚,O6为输出引脚。在原始设计网表上修改该LUT真值表,使O5实现子函数F3输出,实现效果如图4所示。图4中实现了两个布尔函数,引脚A6置‘1’,引脚A4、A5、O6为原始设计中的2输入布尔函数,引脚A1~A3、O5实现的是子函数F3。
S6、判断硬件木马电路中所有LUT逻辑是否都在FPGA中实现,若是则进入步骤S7,否则返回步骤S4。
S7、选取FPGA中的其它逻辑元件(寄存器和进位链逻辑等)实现硬件木马的其余逻辑,使这些逻辑元件同木马LUT之间的汉明距离之和最短,再通过最短路径算法对硬件木马逻辑进行布线,使其与原始FPGA设计相关联,能够实施恶意功能,得到植入硬件木马的网表文件。
根据本发明的方法,将硬件木马的设计技术通过Vivado 2016.4软件,实现在VC707开发板上,FPGA芯片型号为xc7vx485tffg1761-2。本发明实施例中,采用的原始设计为一个对32位明文数据加密的RSA模块,仅设计硬件木马的触发部分,不实现木马的恶意功能,足以说明本发明木马设计技术的有效性。该硬件木马在输入明文第八次为32’h01fa0301时被触发。表1为加入木马前、普通的布局级设计木马方法(在布局布线完成的原始设计中,通过FPGA Editor工具,添加恶意硬件木马逻辑)、本发明的方法设计木马的资源开销比较。
表1
无木马设计 | 普通方法 | 本发明方法 | |
LUT | 669 | 680 | 669 |
寄存器 | 645 | 649 | 649 |
通过对比可以看出,采用普通的布局级设计木马方法的硬件木马LUT开销为11个,寄存器开销为4个,而采用本发明方法设计的硬件木马LUT开销为0个,寄存器开销为4个。因此,本发明在很大程度上节省了实现硬件木马所需要的LUT资源开销。
本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本发明的原理,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。本领域的普通技术人员可以根据本发明公开的这些技术启示做出各种不脱离本发明实质的其它各种具体变形和组合,这些变形和组合仍然在本发明的保护范围内。
Claims (4)
1.一种低开销的FPGA硬件木马设计方法,其特征在于,包括以下步骤:
S1、对不含木马的FPGA设计进行综合与布局布线,得到该FPGA设计的原始设计网表;
S2、构建硬件木马触发机制与预期实现的恶意功能,并采用FPGA支持的基本元件搭建硬件木马逻辑;
S3、寻找FPGA中可用于木马植入的LUT资源;
S4、根据香农展开定理分解所述硬件木马逻辑的布尔函数;
S5、将分解后的布尔函数全部分配到所述可用于木马植入的LUT资源中;
S6、判断硬件木马电路中所有LUT逻辑是否都在FPGA中实现,若是则进入步骤S7,否则返回步骤S4;
S7、得到植入硬件木马的网表文件;
所述步骤S3具体包括以下分步骤:
S31、根据步骤S1得到的原始设计网表信息,获取原始电路占用的LUT集合A;
S32、删除集合A中不能被木马利用的LUT资源,得到可用于木马植入的LUT集合C;
S33、对集合C进行标记,作为可用于木马植入的LUT资源;
所述步骤S4具体为:
从所述可用于木马植入的LUT资源中任意选取一个硬件木马电路的LUT逻辑fj,1≤j≤n,n为实现硬件木马所需的LUT数量,根据香农展开定理对其所包含的布尔函数进行分解,表示为若干子函数的和,使得每个子函数的变量个数减少;重复上述分解步骤,直至每个子函数的变量个数pi小于等于4,即1≤pi≤4,1≤i≤m,m为子函数的个数;
所述步骤S5具体为:
对步骤S4分解得到的任一子函数fi,在集合C中随机选取一个剩余引脚数大于等于pi的LUT,在原始设计网表上修改该LUT的真值表,在其未使用的输出端实现子函数fi的输出,同时将该LUT从集合C删除;重复该步骤直至所有的子函数都被分配到FPGA可用于木马植入的LUT资源中;
所述步骤S7具体为:
选取FPGA中的其它逻辑元件实现硬件木马的其余逻辑,使这些逻辑元件同木马LUT之间的汉明距离之和最短,并通过最短路径算法对硬件木马逻辑进行布线,使其与原始FPGA设计相关联,能够实施恶意功能,得到植入硬件木马的网表文件。
2.根据权利要求1所述的FPGA硬件木马设计方法,其特征在于,所述步骤S2中FPGA支持的基本元件包括LUT、寄存器和进位链逻辑。
3.根据权利要求1所述的FPGA硬件木马设计方法,其特征在于,所述步骤S32中不能被木马利用的LUT资源包括输出引脚已完全被占用的LUT集合B1、输入引脚已经完全被占用的LUT集合B2以及输入引脚只有一个未被占用的LUT集合B3。
4.根据权利要求1所述的FPGA硬件木马设计方法,其特征在于,所述其它逻辑元件包括寄存器和进位链逻辑。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710857862.XA CN107391896B (zh) | 2017-09-21 | 2017-09-21 | 一种低开销的fpga硬件木马设计方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710857862.XA CN107391896B (zh) | 2017-09-21 | 2017-09-21 | 一种低开销的fpga硬件木马设计方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107391896A CN107391896A (zh) | 2017-11-24 |
CN107391896B true CN107391896B (zh) | 2019-12-24 |
Family
ID=60350609
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710857862.XA Active CN107391896B (zh) | 2017-09-21 | 2017-09-21 | 一种低开销的fpga硬件木马设计方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107391896B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108268801A (zh) * | 2018-01-19 | 2018-07-10 | 电子科技大学 | 基于逆向工程的Xilinx FPGA固核IP破解方法 |
CN108667822B (zh) * | 2018-04-23 | 2020-09-01 | 电子科技大学 | 一种用于检验片上网络硬件安全的方法 |
CN110674610B (zh) * | 2019-04-25 | 2021-03-30 | 电子科技大学 | 面向fpga硬件后门检测的内嵌ron优化布局方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103886118A (zh) * | 2012-12-21 | 2014-06-25 | 中国科学院微电子研究所 | 一种针对集成电路异质型逻辑单元的重综合方法 |
CN104239616A (zh) * | 2014-09-02 | 2014-12-24 | 工业和信息化部电子第五研究所 | 集成电路的设计方法及硬件木马检测方法 |
CN105138870A (zh) * | 2015-10-08 | 2015-12-09 | 浪潮(北京)电子信息产业有限公司 | 一种芯片合法性鉴别方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10326448B2 (en) * | 2013-11-15 | 2019-06-18 | Scientific Concepts International Corporation | Code partitioning for the array of devices |
-
2017
- 2017-09-21 CN CN201710857862.XA patent/CN107391896B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103886118A (zh) * | 2012-12-21 | 2014-06-25 | 中国科学院微电子研究所 | 一种针对集成电路异质型逻辑单元的重综合方法 |
CN104239616A (zh) * | 2014-09-02 | 2014-12-24 | 工业和信息化部电子第五研究所 | 集成电路的设计方法及硬件木马检测方法 |
CN105138870A (zh) * | 2015-10-08 | 2015-12-09 | 浪潮(北京)电子信息产业有限公司 | 一种芯片合法性鉴别方法及装置 |
Non-Patent Citations (2)
Title |
---|
宽函数的布尔匹配及其在FPGA重综合中的应用;张峰 等;《华南理工大学学报(自然科学版)》;20130531;正文第34-42页 * |
数字类型的硬件木马设计实现与分析;李振;《中国优秀硕士学位论文全文数据库 信息科技辑》;20160315;正文第5-35页 * |
Also Published As
Publication number | Publication date |
---|---|
CN107391896A (zh) | 2017-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Patnaik et al. | Obfuscating the interconnects: Low-cost and resilient full-chip layout camouflaging | |
Wu et al. | TPAD: Hardware Trojan prevention and detection for trusted integrated circuits | |
CN107391896B (zh) | 一种低开销的fpga硬件木马设计方法 | |
Gören et al. | Partial bitstream protection for low-cost FPGAs with physical unclonable function, obfuscation, and dynamic partial self reconfiguration | |
US20110148457A1 (en) | Protecting electronic systems from counterfeiting and reverse-engineering | |
Kolhe et al. | On custom lut-based obfuscation | |
Johnson et al. | Remote dynamic partial reconfiguration: A threat to Internet-of-Things and embedded security applications | |
US20220327271A1 (en) | Integrated circuit with peek and poke protection circuitry for multi-tenant usage model | |
Islam et al. | High-level synthesis of key based obfuscated RTL datapaths | |
Lozach et al. | FPGA design of an open-loop true random number generator | |
Ling et al. | FPGA logic synthesis using quantified boolean satisfiability | |
Zhang et al. | Innovative orderly programmable in‐plane majority gates using trapezoid shape nanomagnet logic devices | |
EP4256705A1 (en) | Efficient muller c-element implementation for high bit-width asynchronous applications | |
Maslennikow | Approaches to Designing and Examples of Digital Circuits Based on the Current-Mode Gates | |
Lemberski | LUT‐oriented dual‐rail quasi‐delay‐insensitive logic synthesis | |
Miketic et al. | Phasecamouflage: Leveraging adiabatic operation to thwart reverse engineering | |
US10249219B2 (en) | Chip and method for operating a processing circuit | |
Adetomi | Dynamic reconfiguration frameworks for high-performance reliable real-time reconfigurable computing | |
CN112368701A (zh) | 用于可编程逻辑器件的密钥供应系统和方法 | |
Emmert et al. | THx2 Programmable Logic Block Architecture for Clockless Asynchronous FPGAs | |
Veeranna et al. | Hardware trojan avoidance and detection for dynamically re-configurable FPGAs | |
JP3488105B2 (ja) | 動作解析を防止する論理回路および論理回路装置 | |
US20230126961A1 (en) | Systems And Methods For Securing Input/Output Data | |
Bai et al. | A multiple-valued reconfigurable VLSI architecture using binary-controlled differential-pair circuits | |
Roshan et al. | Developing Attack Resilience in Y86 Processor using Logic Locking |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |