eFuse 除了作为电路保护器件外,还具备存储功能,其核心原理是利用半导体工艺中的一次性可编程特性(One-Time Programmable, OTP)。具体来说:
- 物理结构:eFuse 通常由多晶硅、金属熔丝或晶体管阵列构成,通过施加高电压或大电流使熔丝熔断(或连接),从而改变电路状态。
- 存储本质:这种状态变化是永久性的,一旦编程(熔断或连接)就无法恢复,因此 eFuse 可作为一次性存储器,用于存储固定数据。
- 存储容量:容量通常较小(从几位到几十 KB 不等),远低于 Flash 或 EEPROM,但足以存储敏感的关键数据(如密钥、序列号、配置参数等)。
将密钥(如加密密钥、认证密钥)写入 eFuse是利用其物理不可篡改和永久性存储的特性,实现敏感数据的安全保护。具体机制和意义如下:
- 一次性编程,不可逆向读取:
密钥一旦写入 eFuse,熔丝的物理状态改变无法通过软件或常规硬件手段恢复,且大多数 eFuse 架构不支持读取操作(或仅支持部分读取),从而防止密钥被窃取或篡改。
- 物理隔离与防攻击:
eFuse 位于芯片内部,与 CPU、内存等模块通过专用电路连接,外部攻击(如探针攻击、侧信道攻击)难以直接访问,符合硬件安全模块(HSM)的设计要求。
- 场景:在 MCU、SoC(如手机处理器、IoT 芯片)中,厂商将设备唯一标识符(UUID)、数字签名密钥(如 RSA、ECC 私钥)写入 eFuse。
- 作用:
- 启动时,芯片通过 eFuse 中的密钥验证固件签名,防止恶意代码植入(如防止 Bootloader 被篡改)。
- 设备制造商通过 UUID 实现产品追踪和防伪,例如汽车 ECU 的唯一身份标识。
- 场景:在加密芯片、VPN 设备、金融 IC 卡中,eFuse 存储 AES、DES 等对称加密密钥或会话密钥。
- 作用:
- 密钥永不暴露于芯片外部,甚至不存储于内存中,仅在加密运算时由硬件直接调用,避免密钥在传输或存储过程中泄露。
- 例如,银行卡芯片的主密钥(MK)存储于 eFuse,确保交易过程中的数据加密安全。
- 场景:结合物理不可克隆函数(PUF)技术,eFuse 存储基于芯片制造工艺随机差异生成的 “指纹” 密钥。
- 作用:
- 每个芯片的 eFuse 密钥唯一且不可预测,用于设备与云端的安全绑定(如防止设备被仿冒接入物联网平台)。
- 典型应用:智能家居设备、工业传感器的身份认证。
- 场景:在 ASIC、FPGA 或定制芯片中,eFuse 存储厂商自定义的配置参数或加密逻辑。
- 作用:
- 芯片出厂后,eFuse 被编程锁定,第三方无法通过逆向工程获取内部设计细节(如算法逻辑、加密协议)。
- 例如,AI 芯片的架构参数或神经网络权重存储于 eFuse,防止竞争对手复制芯片功能。
- 编程时机:
- 晶圆级编程:在芯片制造过程中(如封装前),通过激光或电子束熔断熔丝,适合大规模量产场景(如存储厂商预置的加密密钥)。
- 出厂前编程:芯片封装后,通过专用编程设备(如 JTAG 接口)写入密钥,适用于需要个性化配置的场景(如每台设备的唯一密钥)。
- 编程不可逆性:
一旦熔丝熔断,对应存储位固定为 “0” 或 “1”(取决于设计),无法通过二次编程恢复,确保密钥的永久性和安全性。
特性 | eFuse(OTP) | EEPROM/Flash |
可写性 |
一次性编程(不可擦除) |
可多次擦写 |
安全性 |
物理防篡改,适合密钥存储 |
需软件加密保护,易受攻击 |
成本 |
工艺复杂度高,成本较高 |
成熟工艺,成本低 |
容量 |
小(通常 < 1KB) |
大(从 KB 到 GB 级) |
典型用途 |
密钥、UUID、配置参数 |
固件、用户数据、缓存 |