IC逆向工程2026综述:FPGA与LLM如何重塑芯片安全分析流程

发布时间:2026/10/6 12:07:02
IC逆向工程2026综述:FPGA与LLM如何重塑芯片安全分析流程 1. 这篇综述到底在聊什么IC逆向工程这个方向圈外人听起来像是某种神秘的地下产业圈内人则清楚它其实是芯片安全、知识产权保护、供应链可信验证绕不开的一块硬骨头。TCHESTransactions on Cryptographic Hardware and Embedded Systems作为硬件安全领域的顶刊之一2026年这篇IC逆向综述把整个领域的技术路线做了一次系统性梳理从最传统的显微成像、去层、网表提取一路讲到当下最热的LLM辅助逆向分析。我读完最大的感受是这个领域正在经历一次从纯手工半自动向智能化跨层次的范式迁移而FPGA和LLM这两个看似不搭界的东西恰恰是推动这次迁移的两股核心力量。如果你是从业者这篇综述值得逐段精读如果你是刚入行的学生或者想转方向的朋友它也是一份很好的路线图。我会结合自己做过的一些FPGA设计和逆向分析相关的项目经验把这篇综述里最核心的技术脉络拆开来讲同时补充一些论文里没展开、但实操中一定会遇到的细节。先说清楚IC逆向到底在做什么。简单讲就是拿到一颗已经封装好的芯片通过物理和逻辑手段搞清楚它内部的结构、功能、甚至具体的电路实现。这件事的动机可以很正面——比如做供应链安全审计确认采购的芯片里没有植入恶意逻辑也可以很学术——比如分析一颗老旧芯片的架构用于教学或复现。当然它也可能被用于不正当目的所以这个领域一直伴随着法律和伦理的讨论。综述本身也花了相当篇幅讨论合规边界这一点后面会展开。为什么2026年这个时间点特别值得关注因为三个技术变量同时成熟了第一高分辨率成像和自动化去层设备的成本大幅下降让实验室级别的逆向成为可能第二FPGA在原型验证和加速逆向流程中的角色越来越重第三LLM在代码理解、网表语义推断上的能力开始真正落地。这三者叠加让IC逆向从少数顶级实验室才能做的事变成了更多团队可以尝试的事。2. 核心思路拆解为什么是这三条技术线2.1 从物理到逻辑的完整链路IC逆向的经典流程可以粗暴地分成两段前半段是物理层把芯片一层层剥开、拍照、重建版图后半段是逻辑层从版图里提取网表、识别功能模块、还原高层语义。综述把这条链路拆得很细我按自己的理解重新组织一下。物理层的第一步是样品制备。芯片封装要去掉露出裸片。常见方法有化学腐蚀、等离子刻蚀、机械研磨。这里有个坑不同封装材料对应不同去封方案塑封料用发烟硝酸加热比较常见陶瓷封装则更麻烦可能需要激光或等离子手段。去封之后是逐层去层用氢氟酸或者反应离子刻蚀一点点削掉金属层和氧化层每削一层拍一次高倍显微图像。这个过程的精度直接决定了后续版图重建的质量。逻辑层的第一步是图像拼接和版图重建。几千张显微图像要拼成一张完整的版图涉及图像配准、去噪、特征对齐。这一步现在很多团队用自动化工具做但人工校验仍然不可少。版图重建完成后就是网表提取——把版图里的晶体管、连线识别出来转成标准的网表格式。这一步是逆向里最耗时的环节之一也是LLM开始发挥作用的地方。2.2 FPGA为什么成了关键加速器你可能会问逆向分析跟FPGA有什么关系关系大了。综述里专门有一节讲FPGA在逆向流程中的双重角色。第一个角色是原型验证平台。当你从一颗芯片里提取出网表之后怎么验证这个网表的功能是否正确最直接的办法是把它烧到FPGA上跑一遍对比原芯片的输入输出行为。FPGA的可重构特性让它成为最理想的验证载体。我做过类似的项目把提取出的网表映射到Xilinx或Altera的器件上跑一组测试向量如果行为一致基本可以确认网表提取的正确性。第二个角色是逆向流程本身的加速。比如在侧信道分析中FPGA可以用来做高速数据采集和实时信号处理在故障注入攻击的复现中FPGA可以精确控制时钟和电压毛刺。综述里提到基于FPGA的多端口DDR读写程序在逆向数据采集系统里非常关键因为高分辨率成像产生的数据量极大需要高速缓存和实时处理。这一点我深有体会——做高速ADC采样的时候数据吞吐量稍微大一点没有DDR做缓冲根本扛不住。第三个角色比较新是用FPGA做逆向算法的硬件加速。比如图像配准、网表图匹配这些计算密集型任务用FPGA做流水线加速比纯软件快一个数量级。综述里引用的几个工作展示了用FPGA实现边缘检测和特征提取在版图图像处理上效果很好。2.3 LLM切入逆向的切入点在哪LLM进入IC逆向这个领域乍看有点突兀但仔细想很合理。逆向分析的本质是从低层信息推断高层语义这跟LLM从token序列推断语义在抽象层面上是一回事。综述里把LLM的应用分成几个层次。最浅的是文档和报告辅助——逆向过程中会产生大量笔记、图像标注、网表片段LLM可以帮忙整理和检索。中间层是网表语义推断——给定一个提取出的网表LLM可以尝试识别它实现了什么功能比如这是一个CRC校验模块或者这是一个状态机。最深的是跨层次推理——结合版图特征、网表结构和已知的电路知识推断芯片的整体架构和设计意图。这里必须泼一盆冷水。LLM在网表理解上的能力目前还远没有到可靠的程度。我试过用LLM分析一些简单的Verilog网表对于组合逻辑和小规模时序逻辑它确实能给出合理的功能描述但一旦规模上去或者涉及复杂的时钟域交叉它的推断就开始胡编。综述里也坦诚地指出了这一点认为当前LLM在逆向中的定位应该是辅助工具而非决策主体。不过有一个方向我觉得很有潜力用LLM做逆向知识的沉淀和复用。逆向分析非常依赖经验老手看一眼版图就能猜到某个模块可能是做什么的这种直觉很难传给新手。如果把大量的逆向案例、网表-功能对应关系喂给LLM让它形成一个可查询的知识库对新手来说价值巨大。综述里提到的LLM as judge思路在这里也适用——用LLM来评估一个逆向结果的合理性虽然不能完全替代人工但可以大幅减少人工复核的工作量。3. 核心细节解析与实操要点3.1 样品制备的实操细节样品制备是逆向的第一步也是最不可逆的一步。做坏了这颗芯片就废了。综述里给了一个很详细的流程我结合自己的经验补充几点。去封环节塑封芯片最常用的方法是加热的发烟硝酸。操作时要注意温度控制在60到80摄氏度之间温度太低反应慢太高容易把裸片也腐蚀掉。芯片要完全浸没但时间不能太长通常几十秒到几分钟取决于封装厚度。取出后立刻用去离子水冲洗再用丙酮和异丙醇依次清洗。这个过程中通风极其重要发烟硝酸的蒸气对呼吸道伤害很大必须在通风橱里操作。去层环节更精细。现在的芯片动辄十几层金属每层都要单独处理。常用的是反应离子刻蚀配合氢氟酸湿法腐蚀。这里的关键是终点检测——怎么知道这一层已经去干净了没有伤到下一层。有经验的师傅会通过颜色变化来判断因为不同金属层在显微镜下的反射颜色不同。自动化设备则用光谱分析做终点检测。综述里提到终点检测的精度直接决定了后续成像的质量这一点我完全同意。成像环节扫描电子显微镜SEM是标配。分辨率要足够高才能看清最小特征尺寸。对于先进工艺节点有时候需要用到透射电子显微镜TEM。成像时要注意充电效应——电子束打在绝缘层上会积累电荷导致图像畸变。解决办法是镀一层薄导电层或者用低加速电压。3.2 网表提取的技术难点网表提取是从版图到逻辑的关键一步。综述里把这一步分成三个子任务晶体管识别、连线提取、逻辑门映射。晶体管识别相对成熟基于图像处理和模式匹配的方法已经能做到很高的准确率。难点在于先进工艺下晶体管尺寸越来越小图像信噪比下降误识别率上升。连线提取更麻烦。金属层之间的通孔、不同层的走线在图像上可能看起来是断开的需要算法去推断连接关系。这里有个经验多层金属的走线往往遵循一定的设计规则比如电源线和地线通常走最厚的金属层信号线走较薄的层。利用这些先验知识可以大幅提高连线提取的准确率。逻辑门映射是最后一步也是LLM开始介入的地方。传统的做法是用标准单元库去匹配但逆向场景下你往往不知道目标芯片用的是什么工艺库。这时候就需要从晶体管级往上推断——比如识别出CMOS反相器、与非门、或非门这些基本结构再组合成更复杂的逻辑。综述里提到有工作尝试用图神经网络来做门级识别效果比传统方法好但训练数据是个瓶颈。3.3 FPGA验证平台搭建要点把提取出的网表放到FPGA上验证听起来简单做起来有不少坑。第一个坑是网表格式转换。从版图提取出的网表通常是SPICE格式或者自定义的晶体管级网表而FPGA综合工具需要的是RTL级描述。这中间需要一个转换层把晶体管级网表抽象成门级网表再映射到FPGA的查找表结构。综述里提到这个转换过程可能引入错误所以验证时要特别小心。第二个坑是时序约束。原芯片的工作频率可能跟FPGA差很多直接照搬时序约束会导致时序不收敛。我的做法是先降频验证功能功能对了再逐步提高频率逼近原芯片的工作条件。第三个坑是IO电平匹配。原芯片的IO标准可能跟FPGA开发板不一致需要加电平转换电路。综述里提到的FPGA IO口支持迟滞输入模式在信号质量不好的时候很有用可以抑制噪声导致的误触发。3.4 LLM辅助分析的边界前面说了LLM在逆向中的潜力这里具体讲讲怎么用、用到什么程度。我目前的实践是用LLM做第一轮筛选。比如提取出一个网表里面有几百个模块人工一个个看太慢。先把每个模块的网表描述喂给LLM让它给出一个初步的功能猜测和置信度。高置信度的模块人工快速确认低置信度的重点审查。这样能把人工工作量减少一半以上。但LLM的输出绝对不能直接采信。我遇到过LLM把移位寄存器说成计数器的情况也遇到过它把有限状态机识别成组合逻辑。所以交叉验证是必须的——用仿真、用形式验证、用侧信道分析多种手段互相印证。综述里还提到一个有意思的点用LLM做逆向报告的自动生成。逆向过程中会产生大量中间结果和观察记录LLM可以帮忙整理成结构化的报告。这个用法风险低、收益高推荐尝试。4. 实操过程与核心环节实现4.1 一个完整的逆向分析流程假设我们拿到一颗未知的FPGA芯片想搞清楚它的内部架构。综述里给了一个通用流程我把它具体化。第一步非侵入式分析。先不拆芯片用外部手段收集信息。测功耗曲线、分析时钟频率、抓IO行为。这一步能给出很多线索——比如功耗特征可以推断有没有加密模块IO行为可以推断接口协议。综述里提到的侧信道分析就属于这一类。第二步去封和成像。按前面说的方法去封、去层、拍照。这一步的产出是版图图像。第三步版图重建和网表提取。把图像拼成版图提取晶体管和连线生成网表。第四步功能验证。把网表映射到FPGA上跑测试向量对比原芯片行为。第五步高层语义还原。结合网表结构、版图特征、外部观测数据推断芯片的整体架构和功能模块划分。第六步报告和知识沉淀。把整个分析过程、发现、结论整理成文档喂给LLM形成可查询的知识库。这个流程走一遍快则几周慢则几个月取决于芯片复杂度和团队经验。4.2 关键参数的计算与选择逆向过程中有几个关键参数需要仔细选择。成像分辨率。根据奈奎斯特采样定理要分辨最小特征尺寸为F的图形像素尺寸至少要小于F/2。实际中为了留余量通常取F/4甚至F/8。比如一颗65纳米工艺的芯片最小特征尺寸约65纳米像素尺寸要控制在16纳米以下。这对SEM的放大倍数和扫描步进都有要求。去层速率。每层金属的厚度不同去层速率要相应调整。太慢效率低太快容易过腐蚀。我的经验是先用测试片做速率标定再应用到实际样品上。FPGA验证的时钟频率。原芯片工作频率为f_origFPGA的时序余量通常比ASIC大所以可以先在f_orig/10的频率下验证功能确认无误后逐步提高到f_orig。如果FPGA跑不到f_orig那就用等效功能验证——只要输入输出行为一致频率差异不影响功能正确性的判断。LLM推理的上下文长度。网表描述可能很长超过LLM的上下文窗口。解决办法是分块处理每块单独分析再用一个汇总步骤把各块的结果拼起来。综述里提到的spatial LLM思路在这里可以借鉴——把网表按空间位置分块保留块间的连接信息。4.3 实操现场记录我最近做的一个小项目是分析一颗老旧的FPGA芯片目的是搞清楚它的可编程逻辑单元结构。这颗芯片是2000年代初的产品工艺节点大概在180纳米。去封用的是发烟硝酸温度75度时间约90秒。去封后裸片完整没有明显损伤。去层用了5%的氢氟酸每层处理30秒中间用显微镜检查。总共去了6层金属成像用了SEM加速电压5千伏像素尺寸20纳米。版图重建花了大约两周主要是图像拼接和人工校验。网表提取用了开源的晶体管识别工具准确率大概85%剩下的靠人工修正。提取出的网表映射到一块现代FPGA上跑了一组测试向量功能行为跟原芯片一致。LLM辅助分析用了一个开源的大模型把网表分块喂进去让它猜每个模块的功能。结果参差不齐——简单的查找表结构识别得很准复杂的进位链逻辑就经常猜错。最后人工复核了所有LLM的输出修正了大约30%的错误。整个项目从开始到出报告大概用了六周。这个速度在十年前是不可想象的FPGA验证平台和LLM辅助分析至少节省了一半时间。5. 常见问题与排查技巧实录5.1 去封失败怎么办去封失败最常见的原因是酸液温度过高或时间过长导致裸片被腐蚀。如果只是边缘轻微损伤可能还能用如果核心区域被破坏这颗芯片基本就废了。预防措施先用同型号的废片做试验确定最佳参数操作时用显微镜实时观察一旦看到裸片露出就立刻停止。5.2 网表提取准确率低怎么提升准确率低通常有几个原因图像质量差、去层不干净、算法参数不合适。排查顺序是先检查图像看有没有模糊、畸变、充电效应再检查去层看有没有残留最后调算法参数。综述里提到多模态融合——结合光学图像、SEM图像、甚至X射线图像——可以显著提升准确率。5.3 FPGA验证时序不收敛时序不收敛的常见原因是约束设置不合理。先检查时钟约束是否正确再检查IO延迟约束。如果原芯片的时序要求太紧FPGA跑不到那就降频验证。降频不影响功能验证的有效性只要输入输出行为一致就行。5.4 LLM输出不可靠怎么处理LLM输出不可靠是常态处理方法是多模型交叉验证。用两个不同的LLM分析同一个网表对比它们的输出。如果一致置信度较高如果不一致人工重点审查。另外给LLM提供更多的上下文信息——比如这个模块在版图上的位置、周围的模块类型——可以显著提升准确率。5.5 常见问题速查表问题可能原因排查方法解决措施去封后裸片破裂酸液温度过高检查温度记录降低温度缩短时间图像模糊电子束聚焦不良调整聚焦重新聚焦检查样品高度网表提取漏线去层不干净显微镜检查补去层重新成像FPGA验证功能不对网表转换错误对比原网表修正转换脚本LLM识别错误上下文不足增加上下文分块汇总策略时序不收敛约束过紧检查约束降频或放宽约束5.6 独家避坑技巧第一个技巧去层时留一层保护。不要一次把金属层全部去完留最后一层作为保护等所有分析都做完了再去。这样可以避免裸片在后续操作中被划伤。第二个技巧网表提取时保留原始图像坐标。每个提取出的晶体管和连线都记录它在版图上的坐标后续分析时可以把网表结构和版图位置对应起来对理解功能非常有帮助。第三个技巧LLM分析时给例子。在prompt里放几个已知功能的网表片段作为few-shot示例LLM的准确率会明显提升。我试过放三个例子准确率从60%左右提升到80%以上。第四个技巧FPGA验证时加断言。在验证平台上加一些断言比如这个信号不应该同时为高或者这个状态机不应该进入某个状态一旦违反就立刻报错。这样可以快速定位网表提取中的错误。6. 这个方向后续还能怎么玩IC逆向这个领域技术迭代的速度在加快。我个人觉得有几个方向值得关注。一是LLM和形式验证的结合。LLM负责提出假设形式验证负责证明或证伪。这个组合可以大幅提升逆向分析的可靠性。综述里提到的LLM as judge是一个起点但还远远不够。二是FPGA在逆向中的角色进一步深化。现在FPGA主要做验证和加速未来可能直接参与逆向算法——比如用FPGA做实时的图像处理和网表提取把整个流程集成到一块板子上。三是跨层次知识图谱的构建。把版图、网表、功能、应用场景这些不同层次的信息组织成一张知识图谱用图查询和推理来做逆向分析。这个方向跟LLM结合潜力很大。四是合规和伦理框架的完善。IC逆向的能力越强滥用的风险越大。综述里讨论了这个问题但还没有形成共识。作为从业者我觉得主动建立行业规范比被动等待监管要好。我在实际项目中的体会是IC逆向从来不是纯技术问题它需要物理、电子、计算机、甚至法律的综合知识。这篇综述的价值在于它把这些线索串起来了给了一个完整的视角。如果你刚入行建议从FPGA验证平台入手这是最容易上手、也最能积累经验的环节。如果你已经有一定基础可以尝试把LLM引入你的分析流程哪怕只是做辅助整理也能省不少时间。最后分享一个小技巧逆向分析时养成写日志的习惯每一步操作、每一个观察、每一个猜测都记下来。这些日志在后续分析中价值巨大而且可以直接喂给LLM做知识沉淀。我现在的日志已经积累了几百页形成了一个小型的个人知识库查起来非常方便。