硬件安全技术——芯片安全设计技术4(PUF)

Posted 摆渡沧桑

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了硬件安全技术——芯片安全设计技术4(PUF)相关的知识,希望对你有一定的参考价值。

一、什么是PUF

1. 物理不可克隆函数——PUF

物理不可克隆函数(即PUF:physical unclonable function)是一种芯片的数字指纹,用作半导体设备(如微处理器)的唯一身份,增强了芯片抵抗逆向的能力。

PUF通常用于密码学。物理不可克隆函数是物理结构中体现的物理实体。目前,PUF通常用集成电路来实现,通常用于对安全性要求较高的应用中。

从2010年到2013年,PUF在智能卡市场获得了关注,作为提供“硅指纹”的有前途的方式,创建了独特于个人智能卡的加密密钥。

现在,PUF成为商用FPGA中安全替代电池备份秘密密钥的存储器,如Xilinx Zynq Ultrascale ++ 和Altera。

PUF取决于其物理微结构的独特性。这种微观结构取决于制造过程中引入的随机物理因素。这些因素是不可预测和不可控制的,这使得复制或克隆结构几乎是不可能的。

但是这只是一项芯片设计模块功能,与TrustZone技术存在本质区别。

2. PUF特性

  1. 唯一性
    每一个芯片都是随机分布的、唯一的
  2. 防克隆性
    芯片本身就是在芯片制造过程中由于不确定因素提取出来的,无法重新复制相同的PUF值
  3. 不可预测性
    由于芯片在制造出来之前,没有办法来预测
  4. 防篡改性
    芯片本身PUF值无法定位修改
  5. 无需存储
    每次芯片启动只需要在电路结构中提取,无需存储器件来存储
3. PUF结构

  1. SRAM PUF
    SRAM PUF利用SRAM Cell,首尾相接的反相器,在制造过程中,虽然电路架构完全一样,但是电路驱动能力有强弱之分,导致SRAM在上电时的Cell上0,1的分布是随机分布的,因此,利用这个特征可以提取出PUF

  2. 仲裁PUF
    仲裁PUF,同一个信号从起点到终点所用的时间(延迟),在制造过程中会存在误差。

  3. RO PUF(环形振荡器)
    环形振荡器PUF,利用环形振荡器电路,在不同芯片制造出来之后,频率产生也会存在误差

  4. 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在芯片生命周期使用阶段:

  1. Enrollment——QTP(One Time Process)

    从SRAM PUF中提取R值,经过PUF-IP,再经过AC过程(用于纠错),然后配合上电过程完成启动

  2. Key重构——每次上电都需要重新执行这个过程
    R’值和之前R值是不一样的,由于芯片SRAM Cell 80%0,1值是确定的,但是也有少部分是随机变化的。通过AC纠错,可以保证每次SRAM生成的PUF Key是固定的。

    前提条件

    a. AC和Key相关性是0,即从ACcode是无法推导出PUF key
    b. 提取出的Key值需要达到一定的可靠性

3. SRAM PUF 产品形态
  1. 软件形态

  2. 硬件IP形态

4. SRAM PUF生命使用周期

软件的BROADKEY可以部署至各个生命周期的芯片上,

可以保障25年的生命周期

  1. 可靠性
  2. 制造型
  3. 安全认证

三、SRAM PUF应用

1. 生成应用Key流

与SRAM PUF流程一致

  1. Enrollment
  2. Key 重构
2. Wrap Operation

与之前一种的区别是,这次的Key值不作为应用密钥,
而是作为应用密钥的加密密钥来使用

  1. Enrollment

  2. Key 编程

  3. Key重构

3. 防克隆的应用方案

安全固件的导入:

  1. BROADKEY集成在bootloader中,含有两个内容,一个是Bootloader,另外一个为存储密钥,为固件的解密密钥。除了部件以外,还有加解密库。

  2. 把这个固件download到产品的flash中,然后需要通过BROADKEYAC code提取出来,存储到数据区

  3. 将BROADKEY生成Key将固件的解密密钥进行加密以后,存储到flash数据区

  4. 用固件的解密密钥将初始导入的加密固件解密出来,存储至可执行区域中

  5. 因为固件已经解密完成,因此把bootloader中的解密密钥删除,同时导入固件的加密密钥也可以删除

  6. 最后,用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的特征

  1. 可以容易的加载PUF key的功能
  2. 很高的可靠性,可以保证小于10-12错误概率
  3. 很好的工艺适配性(7nm~.13um的工艺)
  4. 安全认证高

以上是关于硬件安全技术——芯片安全设计技术4(PUF)的主要内容,如果未能解决你的问题,请参考以下文章

硬件安全技术——芯片安全设计技术4(PUF)

硬件安全技术——芯片安全设计技术2

硬件安全技术——芯片安全设计技术2

硬件安全技术——芯片安全设计技术2

硬件安全技术——芯片安全设计技术3

硬件安全技术——芯片安全设计技术3