Towards Precise and Explainable Hardware Trojan Localization at LUT Level
文章
《Towards Precise and Explainable Hardware Trojan Localization at LUT Level》 TCAD’2025
《LUT层次的精细可解释木马定位》
期刊介绍
《IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems》(TCAD)是集成电路与系统计算机辅助设计领域的顶级期刊,由IEEE出版,属于CCF-A类期刊。该期刊2022年影响因子为2.9,在中科院分区中属于工程技术大类2区,专注于电子与电气领域的核心研究。TCAD涵盖EDA(电子设计自动化)工具开发、集成电路设计算法、验证与测试技术、物理设计优化、低功耗设计方法,以及人工智能在EDA中的应用等前沿方向,是学术界和工业界研究人员发表创新性理论与技术成果的重要平台。
研究背景
硬件特洛伊木马(Trojans)对硬件安全和信任构成严重威胁。现有的硬件特洛伊木马检测技术多在寄存器传输级(RTL)或门级网表进行,通常需要高质量的测试向量、断言属性或穷尽的验证工作,并且在覆盖范围、精度和可扩展性方面存在限制。此外,大多数机器学习方法依赖于专家知识和手动特征提取,缺乏对神经网络决策过程的可解释性。本研究旨在通过在查找表(LUT)级利用可解释图神经网络(GNN)来解决硬件特洛伊木马的检测和定位问题。
核心技术与思想
- 可解释图神经网络(GNN):通过自动提取LUT级丰富的结构和行为特征,训练可解释的GNN模型来分类FPGA网表中的设计节点并识别受特洛伊木马感染的节点。
- 自动化标签分配算法:基于电路结构和切换概率分析的算法,自动生成训练样本中每个节点的类别标签,无需手动标记。
- Granger因果理论:用于分析每个节点的因果贡献,为GNN模型的决策机制提供可解释性。
核心贡献
- 提出了一种全新的基于可解释GNN模型的硬件特洛伊木马定位方法,针对FPGA网表。
- 开发了自动化标签分配算法,消除了手动节点标记过程。
- 训练了一个包含自注意图池化和读出层的GNN模型,能够提取扇入锥分析中的特征信息。
- 提供了基于Granger因果理论的解释,使GNN模型的决策过程可解释。
解决的问题
- 硬件特洛伊木马检测精度低:通过在LUT级进行特征提取和分类,提高了硬件特洛伊木马的检测精度。
- 手动特征提取和标记:开发了自动化标签分配算法,减少了人工干预,提高了检测效率。
- 决策过程的可解释性:通过Granger因果理论分析因果贡献,为GNN模型的决策机制提供了可解释性。
论文内容章节概要
研究背景
硬件特洛伊木马(Trojans)对硬件安全和信任构成严重威胁。现有的硬件特洛伊木马检测技术多在寄存器传输级(RTL)或门级网表进行,通常需要高质量的测试向量、断言属性或穷尽的验证工作,并且在覆盖范围、精度和可扩展性方面存在限制。此外,大多数机器学习方法依赖于专家知识和手动特征提取,缺乏对神经网络决策过程的可解释性。本研究旨在通过在查找表(LUT)级利用可解释图神经网络(GNN)来解决硬件特洛伊木马的检测和定位问题。
威胁模型
我们遵循在预硅硬件特洛伊木马设计和检测研究中广泛采用的威胁模型。主要威胁是恶意设计修改由不受信任的第三方进行。我们旨在检测和定位预硅阶段的特洛伊木马,并假设我们可以将IP核从RTL代码或门级网表综合为LUT网络,而无需了解特洛伊触发逻辑或有效负载的实现细节。
硬件特洛伊木马定位方法
节点标签分配算法
我们开发了一种基于电路结构和切换概率分析的标签分配算法,自动生成FPGA网表中每个节点的类别标签。对于从RTL代码生成的FPGA网表,我们根据电路结构分析为每个设计节点分配标签。从RTL代码开始,其中包含语义信息和特洛伊设计逻辑已知。我们首先分析RTL代码,并用1和0分别标记受特洛伊木马感染和未受感染的信号。例如,在Trust-Hub AES-T1000基准中,特洛伊触发模块中的触发信号Tj Trig被标记为1。我们搜索在FPGA综合中名称未更改的每个信号,并分配与RTL代码中相同的标签。这些带有标签的信号作为根节点。我们使用深度优先搜索遍历FPGA网表,并根据其根节点的标签为剩余节点分配标签。如果在FPGA综合中所有信号名称都已更改,我们将使用基于切换概率分析的标签分配方法。
####### LUT级节点图表示
我们开发了一种基于扇入锥分析的自动节点图提取方法。其核心思想是,很少被触发的特洛伊逻辑将被综合为LUT的级联,其连接和初始化向量将表征电路结构、功能和切换行为。图1显示了我们节点图表示方法的设计流程。我们首先分析综合的FPGA网表,并构建一个由节点和边组成的有向图。然后,我们进行遍历分析,通过网表的结构分析构建节点图表示。具体来说,我们向主输入追溯几级并为每个节点提取扇入锥。在分析中,我们发现追溯四级足以表征一个特洛伊节点。最后,我们为每个节点分配一个唯一标签和类型标签,以表示其身份和类型。我们开发了一个脚本来解析FPGA网表并自动化此过程,该过程生成基于唯一和类型标签的邻接矩阵和节点嵌入。
图神经网络(GNN)模型
我们使用SAGPooling机制[12]和读出层训练一个GNN模型,用于硬件特洛伊木马分类和定位。图2说明了GNN模型的主要结构。第一步包括三层图卷积和激活,用于计算节点嵌入。SAGPooling通过自注意力机制实现分层图池化,该机制在池化过程中同时考虑节点特征和拓扑结构,以提高分类性能。读出层连接SAGPooling层中选择的节点特征的平均值和最大值,这有助于聚合提取的图表示中的特征信息。最后,节点嵌入通过三个全连接层和Softmax激活进行处理,将电路节点v分类为受特洛伊木马感染或未受感染
由于受特洛伊木马感染和未受感染的数据集分布通常不平衡,例如,对于Trust-Hub RS232-T100基准,比例为5:126,我们采用先进的基于有效样本数的成本敏感类平衡(CB)焦损函数,在GNN模型训练中为少数类分配更大的权重,以解决类不平衡问题。
后处理技术
我们进一步进行后处理以减少GNN模型引入的假阳性。后处理的流程图如图3所示。后处理的流程主要包括三个步骤:网络连通性分析(NCA)、LUT连通性分析和临界路径分析。其背后的思路是,很少被激活的特洛伊触发逻辑通常由FPGA网表中的LUT扇入锥生成。
解释方法
我们基于Granger因果理论开发了解释GNN模型的方法,其中我们执行因果贡献分析以解释分类结果背后的机制。通过计算并排名图G中节点的因果贡献值,我们获得了一个由前k个排名节点组成的紧凑子图,这解释了GNN模型的决策机制。
实验结果
我们使用183个硬件特洛伊木马基准测试进行GNN模型训练和节点分类。实验结果显示,我们的方法成功地定位了受特洛伊木马感染的节点,平均真正例率(TPR)、准确率和接收者操作特性曲线下面积(AUC)分别为95.14%、95.71%和95.46%。

解释结果
我们通过格兰杰因果分析展示了GNN模型解释结果。我们按计算的因果贡献值排名图中的节点,并选择前k个排名的节点,随后在解释子图上使用训练有素的GNN模型评估解释方法的特洛伊特征表征能力。
比较与分析
表IV总结了我们的解决方案与现有基于机器学习的硬件特洛伊木马定位技术的比较。与那些在RTL或门级执行特洛伊检测的现有工作不同,我们以LUT为目标,其具有丰富的显式结构和行为特征。一些相关工作[7]–[10]报告了特洛伊定位结果,具有优越的真正例率(TPR)或准确率。然而,通过比较实验设置,我们发现这些论文中使用的特洛伊基准测试的数量和类型相对较小。例如,Zhang等[10]在其性能评估中使用了7个特洛伊基准测试,所有特洛伊均植入到RS232中。这项工作创建了一个更大的数据集,包含183个基准测试,并报告了多次运行的平均结果。

相关文章:
Towards Precise and Explainable Hardware Trojan Localization at LUT Level
文章 《Towards Precise and Explainable Hardware Trojan Localization at LUT Level》 TCAD’2025 《LUT层次的精细可解释木马定位》 期刊介绍 《IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems》(TCAD)是集成电路…...
Python实现鼠标点击获取窗口进程信息
最近遇到挺无解的一个问题:电脑上莫名其妙出现一个白色小方块,点击没有反应,关也关不掉,想知道它和哪个软件有关还是显卡出了问题,也找不到思路,就想着要不获取一下它的进程号看看。 于是写了一个Python脚本…...
Mac安装jdk教程
在Mac上安装JDK(Java Development Kit)的步骤如下: 一、下载JDK安装包 访问Oracle官网: 打开浏览器,访问Oracle JDK下载页面。 选择JDK版本: 根据你的开发需求选择合适的JDK版本。例如,JDK 11…...
【HeadFirst系列之HeadFirst设计模式】第14天之与设计模式相处:真实世界中的设计模式
与设计模式相处:真实世界中的设计模式 设计模式是软件开发中的经典解决方案,它们帮助我们解决常见的设计问题,并提高代码的可维护性和可扩展性。在《Head First设计模式》一书中,作者通过生动的案例和通俗的语言,深入…...
JDBC 完全指南:掌握 Java 数据库交互的核心技术
JDBC 完全指南:掌握 Java 数据库交互的核心技术 一、JDBC 是什么?为什么它如此重要? JDBC(Java Database Connectivity)是 Java 语言中用于连接和操作关系型数据库的标准 API。它允许开发者通过统一的接口访问不同的数…...
Vue父子组件传递笔记
Vue父子组件传递笔记 props 父组件向子组件进行传值 (1)在父组件APP.vue <template><div> <!-- 给子组件Child.vue传递以msg的信号,传递的信息内容为messages --><Child :msg"messages"></Child>…...
文件上传漏洞与phpcms漏洞安全分析
目录 1. 文件上传漏洞简介 2. 文件上传漏洞的危害 3. 文件上传漏洞的触发条件 1. 文件必须能被服务器解析执行 2. 上传目录必须支持代码执行 3. 需要能访问上传的文件 4. 例外情况:非脚本文件也可能被执行 4. 常见的攻击手法 4.1 直接上传恶意文件 4.2 文件…...
【deepseek】辅助思考生物学问题:ICImapping构建遗传图谱gap较大
基于ICImapping构建遗传图谱的常见问题与解答 问题一:染色体两端标记间遗传距离gap较大 答疑一 标记密度不足(如芯片设计时分布不均)重组概率低基因组结构变异软件算法限制 Deepseek的解释 #### 1. **染色体末端的重组率较低** - **现象*…...
linux磁盘非lvm分区
linux磁盘非lvm分区 类似于windows划分C盘、D盘,并且不需要多个磁盘空间合一 图形化直接分区 通过gparted 这个提供直观的图形化分区,类似windows的磁盘管理工具 下载方式: 乌班图/debian系列: sudo apt install gparted红帽…...
Windows下sql server2012安装流程
准备工作 确认系统要求:确保 Windows 系统为 Windows 7 或更高版本,且为 64 位操作系统,CPU 在 2GHz 以上,内存 4GB 或更高。 下载安装包:从微软官方网站或其他可靠渠道下载 SQL Server 2012 安装包。 关闭相关软件&am…...
css之英文换行样式
在 CSS 中,要实现英文文本自动换行但不从单词中间断开的效果,可以使用 word-wrap 或 overflow-wrap 属性。以下是相关的 CSS 属性和它们的配置: 使用 overflow-wrap 或 word-wrap /* This property is used to handle word breaking */ .wo…...
绝美焦糖暖色调复古风景画面Lr调色教程,手机滤镜PS+Lightroom预设下载!
调色教程 通过 Lr 软件丰富的工具和功能,对风景照片在色彩、影调等方面进行调整。例如利用基本参数调整选项,精准控制照片亮度、对比度、色温、色调等基础要素;运用 HSL 面板可对不同色彩的色相、饱和度以及明亮度进行单独调节;利…...
文件解析:doc、docx、pdf
1.doc解析 ubuntu/debian系统应先安装工具 apt-get install python-dev libxml2-dev libxslt1-dev antiword unrtf poppler-utils pstotext tesseract-ocr \ flac ffmpeg lame libmad0 libsox-fmt-mp3 sox libjpeg-dev swig pip install textract解析: import te…...
计算机网络基础:VLAN(虚拟局域网)
1. VLAN 虚拟局域网:可以用来隔离广播 广播和广播域: arp 出不了路由器,只能攻击内网 路由器可以隔离广播(物理隔离)缺点是成本高、不灵活 2. VLAN 隔离广播 静态VLAN:基于交换机端口号划分 动态VLAN&am…...
C++学习笔记(十一)——循环结构
循环结构的作用 循环结构用于重复执行某一代码块,直到满足特定条件后退出循环。 C 提供了以下三种循环结构: for 循环(确定次数的循环)while 循环(条件控制的循环)do-while 循环(至少执行一次的…...
【C++】二叉树相关算法题
一、根据二叉树创建字符串 题目描述: 给你二叉树的根节点 root ,请你采用前序遍历的方式,将二叉树转化为一个由括号和整数组成的字符串,返回构造出的字符串。 空节点使用一对空括号对 “()” 表示,转化后需要省略所有…...
物联网IoT系列之MQTT协议基础知识
文章目录 物联网IoT系列之MQTT协议基础知识物联网IoT是什么?什么是MQTT?为什么说MQTT是适用于物联网的协议?MQTT工作原理核心组件核心机制 MQTT工作流程1. 建立连接2. 发布和订阅3. 消息确认4. 断开连接 MQTT工作流程图MQTT在物联网中的应用 …...
【大学生体质】智能 AI 旅游推荐平台(Vue+SpringBoot3)-完整部署教程
智能 AI 旅游推荐平台开源文档 项目前端地址 ☀️项目介绍 智能 AI 旅游推荐平台(Intelligent AI Travel Recommendation Platform)是一个利用 AI 模型和数据分析为用户提供个性化旅游路线推荐、景点评分、旅游攻略分享等功能的综合性系统。该系统融合…...
【Node.js入门笔记1---初始Node.js)】
Node.js入门笔记1 初始Node.js1.Node.js简介2.Node.js中js的运行环境3.Node.js 可以做什么4.Node.js 怎么学 初始Node.js 1.Node.js简介 Node.js 是一个基于 Chrome V8 引擎 的 JavaScript 运行时环境,用于在服务器端运行 JavaScript 代码。它让开发者可以用 Java…...
自学Java-JavaSE基础加强(多线程)
自学Java-JavaSE基础加强(多线程) 一、创建线程1、方式一:继承Thread类小结 2、方式二:实现Runnable接口小结 3、方式三:实现Callable接口4、小结 二、线程的常用方法三、线程安全1、认识线程安全2、模拟线程安全问题3…...
【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型
摘要 拍照搜题系统采用“三层管道(多模态 OCR → 语义检索 → 答案渲染)、两级检索(倒排 BM25 向量 HNSW)并以大语言模型兜底”的整体框架: 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后,分别用…...
2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面
代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口(适配服务端返回 Token) export const login async (code, avatar) > {const res await http…...
【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)
升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点,但无自动故障转移能力,Master宕机后需人工切换,期间消息可能无法读取。Slave仅存储数据,无法主动升级为Master响应请求ÿ…...
用机器学习破解新能源领域的“弃风”难题
音乐发烧友深有体会,玩音乐的本质就是玩电网。火电声音偏暖,水电偏冷,风电偏空旷。至于太阳能发的电,则略显朦胧和单薄。 不知你是否有感觉,近两年家里的音响声音越来越冷,听起来越来越单薄? —…...
智能AI电话机器人系统的识别能力现状与发展水平
一、引言 随着人工智能技术的飞速发展,AI电话机器人系统已经从简单的自动应答工具演变为具备复杂交互能力的智能助手。这类系统结合了语音识别、自然语言处理、情感计算和机器学习等多项前沿技术,在客户服务、营销推广、信息查询等领域发挥着越来越重要…...
基于TurtleBot3在Gazebo地图实现机器人远程控制
1. TurtleBot3环境配置 # 下载TurtleBot3核心包 mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src git clone -b noetic-devel https://github.com/ROBOTIS-GIT/turtlebot3.git git clone -b noetic https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git git clone -b noetic-dev…...
算法:模拟
1.替换所有的问号 1576. 替换所有的问号 - 力扣(LeetCode) 遍历字符串:通过外层循环逐一检查每个字符。遇到 ? 时处理: 内层循环遍历小写字母(a 到 z)。对每个字母检查是否满足: 与…...
A2A JS SDK 完整教程:快速入门指南
目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库ÿ…...
Vue 3 + WebSocket 实战:公司通知实时推送功能详解
📢 Vue 3 WebSocket 实战:公司通知实时推送功能详解 📌 收藏 点赞 关注,项目中要用到推送功能时就不怕找不到了! 实时通知是企业系统中常见的功能,比如:管理员发布通知后,所有用户…...
webpack面试题
面试题:webpack介绍和简单使用 一、webpack(模块化打包工具)1. webpack是把项目当作一个整体,通过给定的一个主文件,webpack将从这个主文件开始找到你项目当中的所有依赖文件,使用loaders来处理它们&#x…...
