公钥基础设施PKI利用SRAM物理不可克隆函数PUF实现芯片标识唯一性
下面给出PKI利用SRAM PUF实现芯片标识唯一性的方法思路:
PKI利用SRAM PUF实现芯片标识唯一性的方式
(1)使用PUF原因
物理上不可克隆函数利用硅制造的自然变化来产生每个芯片统计上唯一的不可预测的值。这种芯片底层物理结构的差异是完全随机的,而且不可能消除,即使在最先进的生产线上,同一片晶圆上的芯片也会存在内部的结构差异。这些差异就相当于每一块芯片天生的“DNA”或“指纹”,是这块芯片唯一的身份认证。
(2)PUF实现芯片标识唯一性的切入口
通过技术手段,将芯片生产过程的差异提取出来作为加密算法的密钥。 也就是说,每一块芯片本身即是密钥。从底层物理结构的角度来看,世界上没有完全相同的两块芯片,也就保证了密钥的随机性和唯一性。而且,无需保存提取出来的密钥,使用过后随即消失,需要使用时再对芯片做密钥提取即可。不保存密钥,黑客也就无从攻击或窃取,也解决了密钥安全性的问题。
(3)SRAM PUF产生密钥-1
SRAM物理上不可clonable Function (SRAM- puf)是一种新的密钥存储机制,称为Quiddikey-Flex。 在所有具有SRAM-PUF特性的SmartFusion2和IGLOO2 fpga(Mirosemi公司的)中,Microsemi在设备制造期间注册了一个384位工厂专用ECC PUF私钥(SKFP)。 具有椭圆曲线加密(ECC)硬件加速器和Quiddikey SRAM-PUF的设备中,SRAM-PUF登记了一个完全随机的每个设备的384位专用ECC私钥(SKFP)。而ECC公钥(PKFP)与私钥计算相关。
(4)SRAM PUF产生密钥-2
第一次使用SRAM-PUF时,在注册的过程中确定一个特定的密钥。为了能够在接下来的每个通电周期中确定完全相同的密钥,尽管有bit-level的接通到接通噪声,一个基础激活码-(有效奇偶校验数据)被存储在eNVM块的一个专用的读和写保护区域。 在随后的启动周期中,Quiddikey逻辑读取SRAM启动值并应用基本激活代码来重新生成PUF密钥。在这个场景中,有一个与人的指纹非常相似的地方。每次扫描指纹时,由于噪音的影响,测量结果略有不同,但仍然足够接近和独特,能够识别指纹。
(5)SRAM PUF产生密钥-3
由于相关私钥的安全性植根于SRAM-PUF(类似于硅生物特征识别),因此用户可以以非常高的保证级别证明设备证书和设备本身是一起的。这个过程是使用密钥确认协议实现的(key confirmation protocol)– 对于SmartFusion2和IGLOO2 fpga设备有内置的在线询问-响应型密钥确认协议。这可以用来让设备证明它“知道”一个特定的密钥,而不用在协议中使用的外部通信中公开密钥的值。
(6)PUF生产密钥结合PKI
由PUF创建的不可仿制的元件身份私有密钥,在不可仿制元件身份的基础上会形成一信任链,让每个系统整合者/操作人员可以对自己独立的公钥基础设施(PKI)利用获得的元件公钥如ECC公钥(PKFP)对PUF生成的私钥认证,实现芯片标识的唯一性。
公钥基础设施PKI利用SRAM物理不可克隆函数PUF实现芯片标识唯一性的更多相关文章
- [转帖]公钥基础设施(PKI)/CFSSL证书生成工具的使用
公钥基础设施(PKI)/CFSSL证书生成工具的使用 weilovepan520关注1人评论84344人阅读2018-05-26 12:22:20 https://blog.51cto.com/liu ...
- PKI(公钥基础设施)基础知识笔记
数字签名 数字签名(又称公钥数字签名.电子签章)是一种类似写在纸上的普通的物理签名,可是使用了公钥加密领域的技术实现.用于鉴别数字信息的方法. 一套数字签名通常定义两种互补的运算.一个用于签名,还有一 ...
- PKI公钥基础设施简介
PKI(Public Key Infrastructure)公钥基础设施是提供公钥加密和数字签名服务的系统或平台,目的是为了管理密钥和证书.一个机构通过采用PKI 框架管理密钥和证书可以建立一个安全的 ...
- JS的深度克隆,利用构造函数原型深度克隆
我爱撸码,撸码使我感到快乐!大家好,我是Counter.今天来写写,JS中的深度克隆,这个在笔面试中,考的还是比较多的,主要是对象与数组的赋值,如果直接赋值的话,那么得到的是对象或者数组在堆里的地址, ...
- 公钥基础设施体系和EJBCA的一些概念
最近一段时间的在公司做的事情是: 1. 为公司的一些线上系统启用https(使用nginx反向代理的方式来实现,之前的应用无需做改动) 2.为符合规则的用户颁发数字证书(自建CA来实现,目前的用途是给 ...
- 结构-行为-样式-Javascript 深度克隆函数(转)
突然想到有一回面试的时候有一个问题一直挂在心头,于是乎在网上找了找,这个比较好: //深度克隆 function deepClone(obj) { var result, oClass = isCla ...
- Flex中如何利用FocusManager类的setFocus函数设置TextInput的焦点的例子
参考:https://blog.csdn.net/liruizhuang/article/details/5876455 <?xml version="1.0" encodi ...
- Oracle中,利用sql语句中的函数实现保留两位小数和四舍五入保留两位小数
Oracle中,利用sql语句中的函数实现保留两位小数和四舍五入保留两位小数: select trunc(1.23856789,2) from dual round(m,n) 可以四舍五入 trunc ...
- javascript深度克隆函数deepClone
javascript深度克隆函数deepClone function deepClone(obj) { var _toString = Object.prototype.toString; // nu ...
随机推荐
- 1561: (More) Multiplication
Description Educators are always coming up with new ways to teach math to students. In 2011, an educ ...
- AcWing 247. 亚特兰蒂斯 (线段树,扫描线,离散化)
题意:给你\(n\)个矩形,求矩形并的面积. 题解:我们建立坐标轴,然后可以对矩形的横坐标进行排序,之后可以遍历这些横坐标,这个过程可以想像成是一条线从左往右扫过x坐标轴,假如这条线是第一次扫过矩形的 ...
- Distinct Substrings SPOJ - DISUBSTR 后缀数组
Given a string, we need to find the total number of its distinct substrings. Input T- number of test ...
- Codeforces Round #655 (Div. 2) A. Omkar and Completion (构造)
题意:构造一个长度为\(n\)的序列,要求所有元素总和不大于\(1000\),并且任意两项的和不等于另外一项. 题解:全构造\(1\)就好了. 代码: int t; int n; int main() ...
- Educational Codeforces Round 91 (Rated for Div. 2) C. Create The Teams (模拟)
题意:有\(n\)个队员,每个队友都有一个能力值,构造队伍,要求队伍人数*队伍中最低能力值不小于\(x\),求能构造的最大队伍数. 题解:大水题,排个序,倒着模拟就行了. 代码: int t; int ...
- net core启动报错Unable to configure HTTPS endpoint. No server certificate was specified
这是因为net core2.1默认使用的https,如果使用Kestrel web服务器的话没有安装证书就会报这个错 其实仔细看他的错误提示,其中有一句叫你执行一个命令安装证书的语句: dotnet ...
- 2020ICPC·小米 网络选拔赛第一场
2020ICPC·小米 网络选拔赛第一场 C-Smart Browser #include <string> #include <iostream> std::string s ...
- Ruby on Rails
Ruby on Rails 是一个可以使你开发,部署,维护 web 应用程序变得简单的框架.在2004年7月,由Rails的创始人大卫·海纳梅尔·韩森从37signals公司的项目管理工具Baseca ...
- C++ part9
1.静态多态和动态多态 静态多态:函数重载,模板.编译期间完成. 动态多态:虚函数.运行期间实现. 2.模板的实现和优缺点 函数模板的代码并不能直接编译成二进制代码,而是要实例出一个模板实例.写了模板 ...
- Community Cloud零基础学习(五)Topic(主题)管理
我们以前讲过 Service Cloud 零基础(三)Knowledge浅谈,我们日常可以看见很多得文章或者帖子,我们可以将其通过data category / group进行管理.但是一个系统中得文 ...