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

2023-11-01

一、什么是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. 安全认证高
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

硬件安全技术——芯片安全设计技术4(PUF) 的相关文章

  • mysql提取.sql备份文件中的单个表以及表数据

    背景 随着业务模块的不断在增多 数据库mysql容量也是越来越大 做测试时 整个备份还原比较耗费时间 由于有时候仅仅需要单个表或者少数几个表 要想从整个备份文件中提取指定的表以及数据 需要以下方法 说明 mysql常规备份还原后续补充 废话
  • nginx的安装和全局配置

    目录 何为nginx Nginx 功能介绍 基础特性 nginx架构 Nginx 进程结构 nginx 模块 模块分类 使用方式 编译安装nginx 第一步 获取安装包 第二步 安装依赖 第三步 创建用户nginx 第四步 解压安装包 第五
  • 【PTA】约瑟夫环之循环数组

    一 题目 n个人围成一圈 编号依次为 0 1 2 n 1 从第一个人开始报数 1 2 数到m者出列 再从下一个开始重新报数 数到m者再出列 下面的程序中 用一个循环数组来模拟环 0下标的前一个是n 1 n 1的下一个是0 数组下标表示人的编
  • react项目引入字体 (font-awsome)

    webpack config js const path require path const htmlPlugin require html webpack plugin module exports entry src index js
  • ubuntu安装ros FULL完全版

    UBUNTU安装ROS FULL完全版 1 修改安装源URL Setup your sources list Setup your computer to accept software from packages ros org sudo
  • 调用dll中的服务 提取不到数据_双枪团伙新动向,借云服务管理数十万僵尸网络...

    0x01 概述 近日 我们的域名异常监测系统 DNSMon 捕捉到域名 pro csocools com 的异常活动 根据数据覆盖度估算 感染规模超过100k 我们通过告警域名关联到一批样本和 C2 分析样本后发现是与双枪恶意程序相关的团伙
  • spring项目启动时执行任务

    在我们写代码的时候 很多时候难免碰到一些需求是需要我们在项目启动的时候来 启动线程 读取缓存 开启某个服务等等操作 这时候难免会犹豫该怎么做 究竟在哪里执行这个操作 是加载spring bean的时候 还是项目刚启动的时候 接下来我会介绍几
  • CentOS 7 基本环境设置

    1 修改虚拟机静态ip 1 编辑ifcfg ens33 文件 以root用户登陆 在终端命令窗口中输入 root hadoop101 vim etc sysconfig network scripts ifcfg ens33 TYPE Et
  • python(10):批量修改文件名

    文章目录 1 使用Python的字符串操作来去除文件名高位的多余零 说明 代码 示例 2 将文件夹中的文件重命名为递增的数字加上原始文件名的后缀 代码 运行前后 1 使用Python的字符串操作来去除文件名高位的多余零 说明 一个目录下的文
  • YUV图解 (YUV444, YUV422, YUV420, YV12, NV12, NV21)

    如果你认为本系列文章对你有所帮助 请大家有钱的捧个钱场 点击此处赞助 赞助额1元起步 多少随意 锋影 email 174176320 qq com YUV图解 YUV444 YUV422 YUV420 YV12 NV12 NV21 YUV格
  • 如果你的开发板上STM32采用外部晶振,那么就不能选择BYPASS Clock Source (旁路时钟源)模式,否则STM32将会工作不正常。

    如果你的开发板上STM32采用外部晶振 那么就不能选择BYPASS Clock Source 旁路时钟源 模式 否则STM32将会工作不正常 BYPASS Clock Source 旁路时钟源 指无需使用外部晶体时所需的芯片内部时钟驱动组件
  • 博客图片被设置防盗链接?别慌,我爆肝三晚写了这个批量图片站点转移脚本(已开源)

    我个人经常在CSDN上进行写作 前一段时间我选择自己建站 为了省事 我直接使用了CSDN上的图片地址 当你在CSDN上写作时你上传的图片会存储在CSDN的服务器中 可以直接在网页上输入URL访问 但是上周CSDN开始对图片施加防盗链接了 我
  • 渣本零基础努力自学python,半年成功上岸,良心分享学习心得和踩坑经历

    前言 写这篇文章想了很久很久 到底该怎么写 关于零基础学python 观点很多 以下每个字都是经验所得 都是站在一个零基础的人的角度写的 纯手打 网上优秀资源整合 希望大家能认真看 接下来文章会侧重在以下几方面 1 零基础如何学习pytho
  • 新买的电脑怎么装系统_u盘装系统怎么装iso文件

    导读 u盘装系统怎么装相关问题 下面191路由网小编为大家详细解答 在办公的过程的 U盘是必不可少的工具 但是也有不少用户不知道U盘还能用来重装系统 为了让大家都可以自己动手重装系统 今天就特地整理了这篇教程来教大家电脑怎么用u盘装系统 大
  • java中用while循环和for循环实现输入数字求和与求平均数

    首先我们先创建一个主方法 然后在主方法下编写实现代码 首先创建一个扫描器 来接收键盘输入数据 这里我们会用到java里的Scanner这个工具包 然后输入一下提醒用户输入数字 public static void main String a
  • 联想小新air14 降频问题

    联想小新air14 2020款 AMD版本 当CPU温度过高会锁频在0 4G 降温降功率之后好一阵才能正常运行 解决方案 AMD版本下载软件Ryzen Controller Intel卡有自己的软件throttlestop或者XTU 使用软

随机推荐

  • 【SGU 176】 Flow construction

    176 Flow construction time limit per test 0 5 sec memory limit per test 4096 KB input standard output standard You have
  • JAVA中重载和重写的区别

    重载 重载发生在同一类中 方法名一样 参数列表不同 不关心返回值类型和权限修饰符是否相同 class Test public void test 方法名相同参数列表相同 即便返回值类型不同也不是重载 会抛出异常 public int tes
  • 微信小程序 canvas服务器图片,微信小程序导出当前画布指定区域的内容并生成图片保存到本地相册(canvas)...

    最近在学小程序 在把当前画布指定区域的内容导出并生成图片保存到本地这个知识点上踩坑了 这里用到的方法是 wx canvasToTempFilePath 该方法作用是把当前画布指定区域的内容导出生成指定大小的图片 并返回文件路径 详情 看文档
  • Typora 闭合二重、三重积分不美观问题

    参考链接 知乎的二重闭曲面积分号怎么输入 Maxwell的回答 知乎 结论 1 行内公式 二重 int kern 7pt int kern 21mu bigcirc 三重 int kern 8 5pt int kern 8 5pt int
  • Git常用命令速查表

    转载来源 web项目聚集地 https mp weixin qq com s GNgmT9e8 Ps2D5ib7WR44w 名词 master 默认开发分支 origin 默认远程版本库 Index Stage 暂存区 Workspace
  • Git第四讲 中文乱码解决

    解决GIT中文乱码问题 ls不能显示中文目录 解决办法 在git git completion bash中增加一行 alias ls ls show control chars color auto git commit不能提交中文注释 解
  • linux内核网络子系统初探2---socket层

    linux内核网络子系统初探2 socket层 一 内核网络socket层相关 接着上文 从这章开始 将按照五层网络模型的顺序逐层分析内核代码 linux1 0网络协议栈部分代码如下 root localhost linux 1 0 ls
  • 操作系统-基础

    目录 1 冯诺依曼体系推导与介绍 2 外存与内存 3 操作系统 什么是进程 进程控制块 PCB 调度算法 并发与并行 1 冯诺依曼体系推导与介绍 计算机的作用就是为了解决人的问题 而要解决问题 首先需要将数据或是问题输入到计算机当中 所以计
  • 微信小程序 检测返回事件 左上角返回按钮

    微信小程序 检测返回事件 微信小程序暂时来说没有相对应的检测左上角的返回按钮的事件 不过可以利用app js和onShow事件来完成这个小功能 1 主要就是在app js里面为页面设置相对应的值 例如a页面跳到b页面 然后从b页面返回a页面
  • 【python 2】python 进阶

    文章目录 一 函数 1 函数的参数 2 全局变量和局部变量 3 内部函数 4 闭包 5 匿名函数 6 系统自带的函数 7 递归函数 二 文件操作 三 os 模块 1 os path 2 os 里边的函数 四 异常 五 推导式 1 列表推导式
  • 安卓平板标注pdf,坚果云+zotero+xodo

    问题描述 之前买了个平板 但是使用zotero编辑pdf会出现不能保存等问题 也就是无法实现安卓平板标注pdf且能够多平台同步 WPS是保存到本地一个副本 福昕阅读器提示只能另存或者放弃编辑 静读天下直接就没有保存 这里指的是坚果云app里
  • c++ oop面向对象

    定义基类 基类通常都应该定义一个虚析构函数 即使该函数不执行任何实际操作也是如此 基类必须将它的两种成员函数区分开来 一种是基类希望其派生类进行覆盖的函数 既虚函数 使用virtual关键字 一种是基类希望派生类直接继承而不要改变的函数 c
  • 深度学习基础篇之卷积神经网络(CNN)

    一 CNN的基本结构 首先我们来看CNN的解百纳结构 一个常见的图像识别CNN模型如下图 从图中可以看出最左边的图像就是模型的输入层 在计算机中就是若干个矩阵 这点与DNN类似 接着是卷积层 Convolution Layer 这个层是CN
  • VUE之高德地图轨迹绘制与轨迹回放

    步骤 安装依赖 npm install vue amap S main js中注册 import AMap from vue amap Vue use AMap AMap initAMapApiLoader key 你申请的key plug
  • mysql到sqlite数据传输

    在实际的工作中需要将mysql数据库表中的数据同步到sqlite对应的表中 主要有两种方法 第一种是使用Navicat里的数据传输 第二种是使用程序来实现 第一种 程序实现 1 添加sqlite驱动 本项目是通过maven管理 在pom x
  • kali linux eth0网卡消失解决方法

    eth0网卡消失 不知道什么原因 kali的eth0网卡突然不见了 ifconfig 发现eth0网卡不见了之后可以使用 ifconfig eth0 up 但是 eth0没有ipv4地址 还是没有办法上网 然后我们打开interfaces修
  • WebSocket 详解教程

    概述 WebSocket 是什么 WebSocket 是一种网络通信协议 RFC6455 定义了它的通信标准 WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议 为什么需要 WebSocket 了解
  • Jmeter学习

    个人学习笔记 接口测试分类 接口架构 接口测试要点 接口测试工具 一 接口测试分类 内部接口 1 被测系统各个子模块之间的接口 或被测系统提供给内部使用的接口 外部接口 1 被测系统调用外部接口 2 系统对外提供的接口 二 接口架构 1 基
  • 13款经典JavaScript图形和图表绘制工具

    IT168 技术 如今 在互联网上发布在线免费的Javascript图形和图表绘制工具越来越多 作者此前在一家网站从事复杂的图形学方面的工作 使用highchart 在那期间 没有大量的插件工具可供选择 不像现在 我们可以轻易地找到非常有用
  • 硬件安全技术——芯片安全设计技术4(PUF)

    芯片安全设计技术4 PUF 一 什么是PUF 1 物理不可克隆函数 PUF 2 PUF特性 3 PUF结构 5 与TrustZone技术的区别 二 SRAM PUF特点 1 SRAM PUF 2 SRAM PUF Key存储 3 SRAM