FPGA 系统中核心隔离与安全互联技术解析
1. 引言
在 FPGA 系统设计里,多个核心在同一芯片上运行时,数据安全和核心隔离是关键问题。例如一个包含两个处理器核心和一个共享 AES 加密核心的 FPGA 系统,每个核心都要访问片外内存来存储和检索数据。此时,如何防止一个处理器窃取另一个处理器的加密密钥就变得尤为重要。因为这类系统缺乏虚拟内存,CAD 工具生成的电路是由门和电线构成的复杂迷宫,所以需要有效的技术来实现核心的隔离和安全通信。
2. 分离概念
分离是计算机安全的基本概念,它融合了隔离和受控共享的思想。像加密设备等密码系统最早就需要强大的隔离技术,因为红色线路传输的机密明文必须与黑色线路传输的密文分开。完全隔离意味着将主体分隔到不同的区域,区域之间无法进行信息或控制的流动。然而,如果系统的所有组件都完全隔离,系统的功能会大幅降低,所以需要一种技术来实现组件间的数据受控共享。在 FPGA 系统中,采用“护城河(moats)”来实现隔离,用“吊桥(drawbridges)”来实现精确的共享。
3. 利用护城河实现物理隔离
由于综合工具以性能为目标函数来优化设计布局,导致生成的电路逻辑元件和互连纠缠在一起。对于拥有 30K 个开关盒的 FPGA,对比特流进行静态分析在计算上是不可行的。为了保护核心数据并防止对核心操作的干扰,可以使用“护城河”来确保核心的隔离。
4. 构建护城河的方法
通过对设计工具施加轻微约束,“护城河”能够在空间上隔离核心以增强安全性。设计工具如 Xilinx 的 PlanAhead 可让设计师精细控制核心的放置。构建“护城河”有两种方法:
-