硬件安全技术——芯片安全设计技术4(PUF)
Posted 摆渡沧桑
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了硬件安全技术——芯片安全设计技术4(PUF)相关的知识,希望对你有一定的参考价值。
芯片安全设计技术4——PUF
一、什么是PUF
1. 物理不可克隆函数——PUF
物理不可克隆函数(即PUF:physical unclonable function)是一种芯片的数字指纹,用作半导体设备(如微处理器)的唯一身份,增强了芯片抵抗逆向的能力。
PUF通常用于密码学。物理不可克隆函数是物理结构中体现的物理实体。目前,PUF通常用集成电路来实现,通常用于对安全性要求较高的应用中。
从2010年到2013年,PUF在智能卡市场获得了关注,作为提供“硅指纹”的有前途的方式,创建了独特于个人智能卡的加密密钥。
现在,PUF成为商用FPGA中安全替代电池备份秘密密钥的存储器,如Xilinx Zynq Ultrascale ++ 和Altera。
PUF取决于其物理微结构的独特性。这种微观结构取决于制造过程中引入的随机物理因素。这些因素是不可预测和不可控制的,这使得复制或克隆结构几乎是不可能的。
但是这只是一项芯片设计模块功能,与TrustZone技术存在本质区别。
2. PUF特性
- 唯一性
每一个芯片都是随机分布的、唯一的 - 防克隆性
芯片本身就是在芯片制造过程中由于不确定因素提取出来的,无法重新复制相同的PUF值 - 不可预测性
由于芯片在制造出来之前,没有办法来预测 - 防篡改性
芯片本身PUF值无法定位修改 - 无需存储
每次芯片启动只需要在电路结构中提取,无需存储器件来存储
3. PUF结构
-
SRAM PUF
SRAM PUF利用SRAM Cell,首尾相接的反相器,在制造过程中,虽然电路架构完全一样,但是电路驱动能力有强弱之分,导致SRAM在上电时的Cell上0,1的分布是随机分布的,因此,利用这个特征可以提取出PUF -
仲裁PUF
仲裁PUF,同一个信号从起点到终点所用的时间(延迟),在制造过程中会存在误差。 -
RO PUF(环形振荡器)
环形振荡器PUF,利用环形振荡器电路,在不同芯片制造出来之后,频率产生也会存在误差 -
VIA PUF
实际设计中,VIA存在设计规则,利用设计规则,设计从小到大的孔洞,根据工艺的特性,来提取出VIA PUF
5. 与TrustZone技术的区别
TrustZone技术是一种安全执行区域概念,是芯片运行状态在共享资源、总线系统的安全态与非安全态的问题。基于TrustZone技术的TEEOS,形成一个可信执行环境,能够执行某些操作、保护某些资源。
PUF可以被用作唯一且不可篡改的设备标识符。PUF也可以用于安全密钥生成和存储以及随机源。
二、SRAM PUF特点
1. SRAM PUF
深亚微米工艺上来说,制造过程中随机因素会影响电路特性,从而导致Cell上电时,0与1随机分布,这个随机分布,基本上是固定的分布,这样可以提取出PUF值
2. SRAM PUF Key存储
PUF Key在芯片生命周期使用阶段:
-
Enrollment——QTP(One Time Process)
从SRAM PUF中提取R值,经过PUF-IP,再经过AC过程(用于纠错),然后配合上电过程完成启动 -
Key重构——每次上电都需要重新执行这个过程
R’值和之前R值是不一样的,由于芯片SRAM Cell 80%0,1值是确定的,但是也有少部分是随机变化的。通过AC纠错,可以保证每次SRAM生成的PUF Key是固定的。
前提条件:
a. AC和Key相关性是0,即从ACcode是无法推导出PUF key
b. 提取出的Key值需要达到一定的可靠性
3. SRAM PUF 产品形态
-
软件形态
-
硬件IP形态
4. SRAM PUF生命使用周期
软件的BROADKEY可以部署至各个生命周期的芯片上,
可以保障25年的生命周期
- 可靠性
- 制造型
- 安全认证
三、SRAM PUF应用
1. 生成应用Key流
与SRAM PUF流程一致
- Enrollment
- Key 重构
2. Wrap Operation
与之前一种的区别是,这次的Key值不作为应用密钥,
而是作为应用密钥的加密密钥来使用
-
Enrollment
-
Key 编程
-
Key重构
3. 防克隆的应用方案
安全固件的导入:
-
BROADKEY集成在bootloader中,含有两个内容,一个是Bootloader,另外一个为存储密钥,为固件的解密密钥。除了部件以外,还有加解密库。
-
把这个固件download到产品的flash中,然后需要通过BROADKEY把 AC code提取出来,存储到数据区
-
将BROADKEY生成Key将固件的解密密钥进行加密以后,存储到flash数据区
-
用固件的解密密钥将初始导入的加密固件解密出来,存储至可执行区域中
-
因为固件已经解密完成,因此把bootloader中的解密密钥删除,同时导入固件的加密密钥也可以删除
-
最后,用PUF Key生成MAC值,存储到数据区,以上为安全固件的导入过程
使用过程:
a. 在安装过程中,固件已经装好。
b. 芯片上电后,bootloader可以都会AC code
c. 同时生成PUF key,同时利用PUF key来对固件进行计算,同时与之前MAC值进行比较。如果正确则可以执行固件,比较错误,则会进入错误状态。
固件升级
防克隆原理
如果将芯片中固件放入另一个固件,即使两个芯片完全一样。
每次上电中,BROADKEY则会提取出PUF Key,如果芯片一旦换了之后,读取AC code进行PUF Key的提取,就会发现AC code并不是芯片本身的AC code,所以会报错。则会影响下一步的过程。因此,可以防克隆的攻击。
四、结论
SRAM PUF的特征
- 可以容易的加载PUF key的功能
- 很高的可靠性,可以保证小于10-12错误概率
- 很好的工艺适配性(7nm~.13um的工艺)
- 安全认证高
以上是关于硬件安全技术——芯片安全设计技术4(PUF)的主要内容,如果未能解决你的问题,请参考以下文章