ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

TCHES 2026 IC逆向综述解读:从网表提取到LLM辅助的工程实践

TCHES 2026 IC逆向综述解读:从网表提取到LLM辅助的工程实践 1. 从TCHES 2026这篇IC逆向综述说起为什么值得花时间读如果你在芯片安全、硬件可信或者EDA工具链这条线上做过几年大概率会有一种感觉IC逆向Integrated Circuit Reverse Engineering这个方向工程实践跑得比学术综述快得多。很多团队已经在用半自动化的方式做网表提取、版图比对、IP识别但公开文献里能把这些流程串起来讲清楚的文章并不多。TCHES 2026这篇IC逆向综述恰好补上了这块拼图。TCHES全称IACR Transactions on Cryptographic Hardware and Embedded Systems是硬件安全领域公认的顶会级刊物。它发的综述通常有一个特点不是简单罗列文献而是把领域内的技术路线、工具链、攻防博弈梳理成一张可操作的地图。这篇IC逆向综述的核心价值在于它把从物理样品到网表netlist、再到高层功能理解的完整链路拆开了讲同时覆盖了FPGA和ASIC两条主线。这篇文章适合谁看三类人最应该花时间第一类是做硬件安全的工程师需要理解逆向攻击的威胁模型来设计防护第二类是做芯片验证和失效分析的从业者逆向手段本身就是他们日常工具的一部分第三类是做EDA和IP核开发的团队了解逆向的边界在哪里才能知道自己的保护措施是否到位。哪怕你只是做FPGA项目实战理解逆向思路也能帮你更好地做设计复用和调试。我读下来的整体感受是这篇综述没有停留在某某技术能做到什么的层面而是深入到了为什么这样做在什么条件下会失效工程上怎么权衡这些真正影响落地的问题。下面我按自己的理解把这篇综述的核心内容拆开结合我在FPGA和IC项目中的实际经验把关键点讲透。2. IC逆向的技术栈拆解从样品到网表的完整链路2.1 逆向的三个层次物理、结构、功能很多人一提到IC逆向脑子里浮现的就是用显微镜看芯片、一层层剥开金属层拍照。这只是最底层的工作。实际上IC逆向可以分成三个层次每个层次的目标和手段完全不同。物理层逆向关注的是芯片的物理结构。去封装、逐层剥离、扫描电镜成像、聚焦离子束FIB切割这些都是物理层的手段。这个阶段的目标是获取版图图像和材料信息。工程上最头疼的问题是样品制备一层层剥的时候很容易把下层结构破坏掉尤其是先进工艺节点下金属层多达十几层每层的刻蚀选择比都要精确控制。结构层逆向是在物理图像的基础上提取出版图连接关系进而生成网表。这一步的核心挑战是图像分割和连线追踪。先进工艺下特征尺寸已经逼近光刻极限SEM图像的信噪比很差自动提取的误判率很高。实际项目中通常是自动工具加人工复核一个中等规模的模块可能要花几周时间。功能层逆向是最高层次目标是从网表理解电路的功能。这一步越来越依赖LLM和机器学习方法。综述里提到现在有研究用图神经网络对网表做子图匹配识别出加法器、乘法器、状态机等标准结构。但功能层逆向的准确率仍然受限于训练数据的覆盖范围遇到非标准设计就容易翻车。这三个层次不是严格串行的实际项目中经常需要来回迭代。比如功能层识别出某个模块可能是AES加密核就需要回到结构层去确认密钥调度逻辑的具体连接再回到物理层去定位关键寄存器。2.2 网表提取自动化工具的能力边界网表netlist是IC逆向的核心中间产物。从版图图像到网表的提取过程综述里花了很大篇幅讨论。目前主流的自动化工具能做到什么程度我结合自己的使用经验来说。对于成熟工艺节点比如180nm以上自动化网表提取的准确率可以做到95%以上标准单元库匹配基本没问题。但到了28nm以下情况就复杂了。FinFET结构让晶体管边界变得模糊金属层数增加导致连线追踪的搜索空间爆炸自动工具的误报率会显著上升。综述里提到一个关键数据在16nm节点纯自动提取的网表需要人工修正的比例大约在15%到30%之间具体取决于设计密度和布线复杂度。这个数字和我在实际项目中看到的情况基本吻合。所以工程上从来不是跑一遍工具就完事而是自动提取人工复核交叉验证的三步走。交叉验证有一个很实用的技巧用不同工具跑同一块区域对比结果差异。差异集中的地方就是需要重点复核的区域。这个方法虽然笨但比盲目信任单一工具靠谱得多。2.3 FPGA在逆向研究中的特殊角色综述里专门有一节讲FPGA在IC逆向中的角色这一点很值得展开。FPGA在逆向领域有两个身份一个是被逆向的对象另一个是逆向研究的工具平台。作为被逆向对象FPGA的比特流bitstream逆向是一个独立的研究方向。FPGA的配置比特流包含了逻辑单元、布线资源、IO配置的全部信息。如果能完整逆向出比特流到网表的映射关系就可以从比特流恢复出设计网表。综述里提到对于较老的FPGA系列比如Xilinx 7系列之前比特流格式已经被研究得比较透彻逆向可行性较高。但新一代FPGA的比特流加密和混淆机制越来越强逆向难度大幅提升。作为研究工具FPGA被用来加速逆向过程中的计算密集型任务。比如图像分割、连线追踪、网表匹配这些任务都可以用FPGA做硬件加速。综述里引用了一项工作用FPGA加速网表子图匹配相比CPU实现有数量级的提升。这个思路很实用逆向本身是计算密集的用硬件加速硬件分析逻辑上很自洽。我在实际项目里也用过类似思路。做FPGA项目实战时如果需要分析大量网表数据用FPGA做预处理确实能省很多时间。但前提是算法要能映射到硬件流水线上不是所有逆向算法都适合。3. LLM进入IC逆向哪些环节真的被改变了3.1 LLM在网表功能识别中的实际表现综述里关于LLM的部分是我最关注的。LLM大语言模型进入IC逆向领域最直接的应用是网表功能识别。传统方法靠子图匹配和规则库遇到非标准设计就束手无策。LLM的优势在于它可以从网表的文本表示中学习到更高层的语义模式。具体怎么做把网表转换成某种文本序列比如按拓扑排序展开的门级描述然后让LLM做分类或生成任务。综述里提到几种做法一种是直接用LLM做few-shot分类给几个已知功能的网表片段作为示例让模型判断新片段的功能另一种是把LLM和GNN结合GNN提取图结构特征LLM做语义推理。实际效果如何综述给出的数据是在标准模块加法器、乘法器、FIFO、状态机上LLM方法的准确率可以到90%以上比传统子图匹配高10到15个百分点。但在非标准模块上准确率会掉到60%到70%。这个表现说明LLM确实有用但还不能完全替代人工。我自己的体会是LLM在逆向中的价值更多体现在辅助理解而不是自动决策。比如面对一个陌生的网表模块让LLM生成一段功能描述工程师可以快速判断这个描述是否合理从而决定下一步的逆向方向。这比从零开始分析要快得多。3.2 知识库与RAG让LLM记住领域知识综述里有一个很重要的观点通用LLM在IC逆向任务上的表现远不如经过领域知识增强的LLM。这就引出了RAG检索增强生成和知识库的构建问题。IC逆向涉及大量领域知识标准单元库的电气特性、常见IP核的结构特征、不同工艺节点的设计规则、历史逆向案例的经验总结。这些知识如果全部塞进LLM的参数里既不现实也不经济。RAG的思路是把领域知识存在外部知识库里LLM在推理时检索相关片段再结合检索结果生成答案。综述里提到一个具体的实现方案构建一个IC逆向领域的wiki知识库包含网表片段、功能描述、工艺信息、工具配置等结构化数据。然后用RAG框架把LLM和知识库连接起来。在实际测试中这种方案在网表功能问答任务上的准确率比纯LLM提升了20%以上。这个思路和现在流行的LLM wiki知识库构建方法是一致的。关键难点在于知识库的质量控制网表片段怎么标注、功能描述怎么标准化、不同来源的知识怎么对齐。这些工程问题比模型选择更影响最终效果。3.3 LLM辅助逆向的局限与风险综述没有回避LLM的局限这一点很务实。主要问题有三个。第一是幻觉问题。LLM在网表功能识别时可能会生成看似合理但完全错误的功能描述。如果工程师盲目信任会导致逆向方向跑偏。综述建议的做法是LLM的输出必须经过形式化验证或人工复核不能直接作为最终结论。第二是数据泄露风险。如果把真实的芯片网表数据传给云端LLM存在知识产权泄露的风险。综述里提到有些团队选择在本地部署开源LLM或者用差分隐私技术对网表数据做脱敏处理。但脱敏会损失信息影响识别准确率这是一个需要权衡的问题。第三是可解释性不足。LLM给出功能判断时很难解释为什么这么判断。在逆向工程中理解判断依据往往比判断结果本身更重要因为工程师需要根据依据来调整逆向策略。综述里提到把LLM的注意力权重可视化或者让LLM生成推理链可以在一定程度上缓解这个问题但还没有根本解决。4. FPGA逆向的独特挑战比特流、IP核与防护机制4.1 比特流逆向的技术路线FPGA逆向和ASIC逆向最大的区别在于FPGA的功能不是固化在硅片上的而是由比特流配置决定的。所以FPGA逆向的核心目标是从比特流恢复出设计网表。综述里把比特流逆向的技术路线分成两类基于文档的方法和基于差分的方法。基于文档的方法依赖厂商提供的配置手册。比如Xilinx的UG系列文档里详细描述了配置帧的格式、逻辑单元的编码方式。有了这些信息理论上可以逐位解析比特流。但厂商文档通常不完整关键细节比如布线资源的编码往往缺失需要结合实验来推断。基于差分的方法更实用设计两个只有微小差异的电路分别生成比特流对比差异位置从而推断出特定配置位对应的功能。这种方法不需要完整的文档但需要大量的实验。综述里提到有研究团队用这种方法花了几年时间才把某个FPGA系列的布线资源逆向清楚。我在FPGA项目实战中的体会是比特流逆向的工作量被严重低估了。一个中等复杂度的设计比特流可能有几百万位每一位都可能影响功能。没有自动化工具辅助纯手工分析几乎不可能完成。4.2 IP核识别与保护机制的博弈FPGA设计里大量使用IP核比如DDR控制器、PCIe控制器、DSP核等。逆向的一个重要目标是识别出设计中使用了哪些IP核以及IP核的配置参数。综述里提到IP核识别主要靠指纹匹配每个IP核在网表中有独特的结构特征比如特定的模块层次、信号命名规则、资源使用模式。提取这些特征作为指纹就可以在未知网表中搜索匹配。但厂商也在加强保护。比如Microchip FPGA的CoreEDAC IP在更新配置时会引入混淆逻辑让指纹匹配变得困难。综述里专门讨论了这种更新与配置优化带来的逆向挑战每次IP更新指纹都会变化逆向工具需要重新训练。这其实是一个持续的攻防博弈。逆向方在提升识别能力防护方在增加混淆强度。综述的判断是短期内逆向方仍有优势因为混淆逻辑本身也会引入可识别的特征。但长期来看随着防护机制越来越复杂逆向的成本会持续上升。4.3 FPGA逆向在安全评估中的实际应用FPGA逆向不只是攻击手段也是安全评估的重要工具。综述里举了几个应用场景。一是供应链安全验证。采购的FPGA板卡或IP核是否包含未声明的功能通过逆向可以检查网表中是否有可疑的逻辑模块。这在关键基础设施领域尤其重要。二是设计复用与迁移。老项目使用的FPGA型号停产了需要迁移到新平台。如果原始设计文件丢失逆向是恢复设计的唯一途径。综述里提到有团队用逆向方法成功把基于老款FPGA的设计迁移到了新一代平台上。三是教学与研究。FPGA逆向是理解FPGA架构的绝佳方式。通过逆向一个简单的设计可以直观地看到逻辑单元、布线资源、IO块是如何协同工作的。综述建议把逆向实验引入FPGA课程帮助学生建立对架构的深层理解。5. 逆向与防护的工程权衡从综述到落地5.1 防护策略的选择逻辑综述的最后部分讨论了逆向防护。这部分对做芯片设计和FPGA开发的团队很有参考价值。防护策略不是越强越好而是要在安全性、成本、性能之间找平衡。逻辑混淆是最常用的防护手段。在设计中插入额外的逻辑门或状态机让网表结构变得复杂增加逆向难度。但混淆逻辑会占用资源、增加功耗、影响时序。综述里给出的经验值是轻度混淆增加5%到10%的面积开销重度混淆可能增加30%以上。比特流加密是FPGA防护的核心手段。新一代FPGA基本都支持比特流加密密钥存储在芯片内部的非易失性存储器中。没有密钥就无法配置FPGA逆向也就无从谈起。但加密本身也有攻击面比如侧信道攻击可能泄露密钥信息。物理防护包括屏蔽层、传感器、自毁电路等。这些手段主要针对物理层逆向成本很高通常只用于高安全等级的场景。综述的建议是根据威胁模型选择防护策略。如果攻击者只是业余爱好者轻度混淆就够了如果面对的是有资源的专业团队就需要多层防护叠加。5.2 逆向成本的计算模型综述里有一个很实用的内容逆向成本的计算模型。这个模型可以帮助评估防护措施的有效性。成本主要分三块时间成本、设备成本、人力成本。时间成本取决于逆向的层次和精度要求设备成本包括显微镜、FIB、探针台等人力成本取决于工程师的经验水平。综述给出的参考数据逆向一个中等复杂度的ASIC设计比如一个加密协处理器从去封装到功能理解大约需要3到6个月设备投入在50万到200万美元之间需要2到3名有经验的工程师。这个成本对于大多数攻击者来说是难以承受的所以防护的重点应该是提高逆向的边际成本而不是追求绝对不可逆向。这个思路很务实。绝对安全的系统不存在但可以让攻击成本远高于收益。比如把密钥存储和加密逻辑分散在芯片的不同区域攻击者需要同时逆向多个区域才能恢复完整功能成本就大幅上升了。5.3 从综述看未来方向综述的结尾部分提到几个值得关注的方向。一是AI驱动的逆向自动化用LLM和强化学习来自动化逆向流程中的决策环节。二是跨层次逆向把物理层、结构层、功能层的分析打通形成端到端的逆向流水线。三是逆向与防护的协同设计在设计阶段就考虑逆向的难度把防护措施嵌入到设计流程中。这些方向都有道理但我个人更关注的是工程落地的问题。综述里提到的很多方法在实验室环境下有效但到了真实项目中样品质量、工具兼容性、数据管理这些问题往往比算法本身更影响效率。希望后续能有更多关于工程实践的分享。6. 我在实际项目中踩过的坑和总结的经验6.1 网表提取的常见陷阱做IC逆向项目网表提取是最容易出问题的环节。我踩过的坑主要有几个。第一个坑是过度信任自动工具。有一次做一个28nm的设计逆向自动工具提取的网表在仿真时功能不对。排查了很久才发现工具把两个相邻的金属层连线搞混了导致一个关键信号接错了位置。这种错误在自动提取结果里很隐蔽因为网表结构看起来是合理的。后来我养成了一个习惯对关键模块一定要用不同工具交叉验证或者手工复核关键路径。第二个坑是忽略工艺偏差。不同批次的芯片即使设计相同物理结构也可能有细微差异。这些差异在SEM图像上表现为线宽变化、对准偏移等。如果提取工具的参数没有针对具体批次调整误判率会上升。综述里也提到了这个问题建议在提取前先做工艺标定。第三个坑是数据管理混乱。逆向项目会产生大量图像、网表、分析报告。如果没有好的数据管理方案很容易出现版本混乱、数据丢失的问题。我现在用Git管理网表和分析脚本用专门的图像数据库管理SEM图像虽然前期投入一些时间但后期省了很多麻烦。6.2 LLM辅助逆向的实操建议如果你打算在逆向项目里引入LLM我有几个实操建议。先从辅助任务开始。不要一上来就让LLM做功能判断先从文档整理、报告生成、代码注释这些低风险任务开始。等积累了经验再逐步扩展到功能识别。本地部署优先。如果项目涉及敏感数据尽量在本地部署开源LLM。现在7B到13B参数量的模型在消费级显卡上就能跑效果虽然不如云端大模型但数据安全有保障。建立验证机制。LLM的输出必须经过验证才能采纳。验证方式可以是形式化方法、仿真测试、或者人工复核。不要跳过这一步否则错误会累积。持续更新知识库。LLM的效果很大程度上取决于知识库的质量。每次项目结束后把新的案例、新的经验整理进知识库下次用的时候效果会更好。6.3 FPGA逆向实验的环境搭建如果你想自己动手做FPGA逆向实验环境搭建是关键。我分享一下我的配置。硬件方面需要一块目标FPGA开发板、一个逻辑分析仪、一个JTAG调试器。如果要做比特流分析还需要一台性能足够的服务器来做数据处理。软件方面厂商的EDA工具是必须的用来生成参考比特流和网表。另外需要一些开源工具做辅助分析比如用于网表解析的脚本工具、用于图像处理的Python库。实验设计上建议从最简单的设计开始比如一个计数器或状态机。先逆向出网表再对比原始设计验证逆向的准确性。逐步增加设计复杂度直到能处理包含IP核的设计。这个过程很耗时但收获也很大。你对FPGA架构的理解会从知道变成真正理解。
返回列表