CN111291523A - 一种基于动态可重构技术实现puf的***及方法 - Google Patents
一种基于动态可重构技术实现puf的***及方法 Download PDFInfo
- Publication number
- CN111291523A CN111291523A CN202010051513.0A CN202010051513A CN111291523A CN 111291523 A CN111291523 A CN 111291523A CN 202010051513 A CN202010051513 A CN 202010051513A CN 111291523 A CN111291523 A CN 111291523A
- Authority
- CN
- China
- Prior art keywords
- ring oscillator
- reconfigurable
- signal
- configuration
- puf
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Logic Circuits (AREA)
Abstract
本发明提出一种基于动态可重构技术实现PUF的***及方法,本发明通过FPGA实现PUF结构,利用FPGA动态可重构技术,让FPGA在运行期间部分的被重新配置,而不中断其余部分的工作。本发明将CRO区域作为重构区域,同时保持其他部分的功能不变,可以部分地更换CRO区域中的RO结构,以此改变电路的延迟特性。本发明可以在增加产生的激励响应对数量的同时减少硬件资源消耗,并且还能提高建模攻击的难度。
Description
技术领域
本发明涉及可重构环形振荡器物理不可克隆函数领域,尤其是一种基于动态可重构技术实现PUF的***及方法。
背景技术
随着物联网(IOT)的迅速发展,数以十亿计的节点被连接起来。虽然这为我们交换信息创造了极大的便利,但同时也带来了严重的安全和隐私问题,这对物联网行业是一个巨大的挑战。与传统的软件安全相比,硬件安全会增加攻击的成本和难度,且更适用于资源受限的物联网设备,这促使物理不可克隆函数(PUF)的发展。PUF是一种用于从集成电路(IC)中提取独特的数字指纹的电路。任意两个芯片,即便它们的结构完全相同,由于制造差异它们之间也会存在细微的差别。PUF利用这些差异为每个芯片生成唯一的身份标识,由于这些差异都是随机的,因此这些标识是无法克隆的。
至今为止,已经有大量的PUF电路结构被提出,其中仲裁器PUF,SRAM-PUF,RO PUF以及它们的变体是最受欢迎的。但是,并不是所有类型的PUF都适合在FPGA上实现。基于环形振荡器(RO)的PUF设计是一种更适于FPGA的结构。然而,由于RO阵列中的每一个RO只能输出一个频率,为了产生足够的响应,需要实现大量的RO,因此这种设计将占用大量的硬件资源,且利用效率很低。
发明内容
发明目的:为克服现有技术的不足,本发明提出一种基于动态可重构技术实现PUF的***及方法,可以在增加产生的激励响应对数量的同时减少硬件资源消耗,并且还能提高建模攻击的难度。
技术方案:为实现上述目的,本发明提出以下技术方案:
一种基于动态可重构技术实现PUF的***,包括:存储器和FPGA模块;
存储器用于存储FPGA整体结构配置文件和不同类型的可重构环形振荡器结构设计配置文件;
FPGA模块用于实现PUF结构,包括:编程***、控制模块、可重构环形振荡器、计数器和比较器,控制模块、可重构环形振荡器、计数器和比较器组成PUF,所述PUF中的可重构环形振荡器为可配置区域,由编程***加载存储在存储器中的可重构环形振荡器结构设计配置文件并进行配置实现;
控制模块产生使能信号和能够形成有效震荡的配置信号并发送给配置好的可重构环形振荡器,同时,控制模块产生计数器的定时控制信号,用于控制计数器的计数时间;
可重构环形振荡器根据配置信号和使能信号产生具有唯一频率的振荡信号,计数器统计设定时间内的振荡次数;最后通过比较器比较连续两次计数器上传的计数值来获得比特输出,也就是响应信号;相邻的两次计数值有以下产生方式:
对于不同结构的可重构环形振荡器,控制模块产生同一配置信号,计数器分别对两次震荡信号进行统计,得到两次计数值;
对于不同结构的可重构环形振荡器,控制模块产生不同配置信号,计数器分别对两次震荡信号进行统计,得到两次计数值;
对于相同结构的可重构环形振荡器,控制模块产生不同配置信号,计数器分别对两次震荡信号进行统计,得到两次计数值。
具体的,所述可重构环形振荡器的结构包括:CRO结构、RRO结构和XRRO结构。
本发明还提出一种基于动态可重构技术实现PUF的方法,所述方法基于所述***实现,包括步骤:
(1)预先生成FPGA整体结构配置文件和不同类型的可重构环形振荡器结构设计配置文件,并存储在存储器中;
(2)激活***后,编程***从存储器加载FPGA整体结构配置文件和任意一个可重构环形振荡器结构设计配置文件,然后根据可重构环形振荡器结构设计配置文件实现可重构环形振荡器,同时根据FPGA整体结构配置文件在其他区域上实现PUF的其余模块;
(3)控制模块产生使能信号和配置信号发送给可重构环形振荡器,并同时产生计数器的定时控制信号发送给计数器;计数器统计设定时间内的振荡次数,发送给比较器;
(4)编程***重新加载一个不同的可重构环形振荡器结构设计配置文件实现可重构环形振荡器,控制模块产生与上一次相同或不同的使能信号和配置信号,通过新的可重构环形振荡器产生震荡信号,通过计数器统计设定时间内的振荡次数,发送给比较器;
或,
保持上一次加载的可重构环形振荡器结构不便,控制模块产生与上一次不同的配置信号,通过可重构环形振荡器产生震荡信号,通过计数器统计设定时间内的振荡次数,发送给比较器;
(5)比较器比较连续两次计数器的计数值来获得响应信号;
(6)重复执行步骤(4)到(5),直至产生足够的响应信号。
进一步的,所述方法还包括步骤:
当同一个可重构环形振荡器结构通过不同配置信号产生响应的次数达到阈值C时,所述编程***重新加载新的可重构环形振荡器结构设计配置文件;所述阈值C用于避免攻击者通过获取足够次数的响应信号预测PUF的输出
有益效果:与现有技术相比,本发明具有以下优势:
1、与现有的PUF结构相比,消耗的硬件资源更少且产生的CRP数量更多;
2、增加建模攻击的难度,具有更好的安全性。
附图说明
图1为本发明的动态重构机制的框图;
图2为本发明的实施例中在重构区域中实现的RO结构;
图3为两个不同类型的可重构环形振荡器结构在FPGA上的配置过程;
图4为本发明的整体流程图。
具体实施方式
下面结合附图和具体实施例对本发明作更进一步的说明。
本发明提出一种基于动态可重构技术实现PUF的***,如图1所示包括:存储器和FPGA模块;
存储器用于存储FPGA整体结构配置文件和不同类型的可重构环形振荡器结构设计配置文件;
FPGA模块用于实现PUF结构,包括:编程***、控制模块、可重构环形振荡器、计数器和比较器,控制模块、可重构环形振荡器、计数器和比较器组成PUF,所述PUF中的可重构环形振荡器为可配置区域,由编程***加载存储在存储器中的可重构环形振荡器结构设计配置文件并进行配置实现;
控制模块产生使能信号和能够形成有效震荡的配置信号并发送给配置好的可重构环形振荡器,同时,控制模块产生计数器的定时控制信号,用于控制计数器的计数时间;
可重构环形振荡器根据配置信号和使能信号产生具有唯一频率的振荡信号,计数器统计设定时间内的振荡次数;最后通过比较器比较连续两次计数器上传的计数值来获得比特输出,也就是响应信号;相邻的两次计数值有以下产生方式:
对于不同结构的可重构环形振荡器,控制模块产生同一配置信号,计数器分别对两次震荡信号进行统计,得到两次计数值;
对于不同结构的可重构环形振荡器,控制模块产生不同配置信号,计数器分别对两次震荡信号进行统计,得到两次计数值;
对于相同结构的可重构环形振荡器,控制模块产生不同配置信号,计数器分别对两次震荡信号进行统计,得到两次计数值。
本发明还提出一种基于动态可重构技术实现PUF的方法,所述方法基于所述***实现,包括步骤:
(1)预先生成FPGA整体结构配置文件和不同类型的可重构环形振荡器结构设计配置文件,并存储在存储器中;
(2)激活***后,编程***从存储器加载FPGA整体结构配置文件和任意一个可重构环形振荡器结构设计配置文件,然后根据可重构环形振荡器结构设计配置文件实现可重构环形振荡器,同时根据FPGA整体结构配置文件在其他区域上实现PUF的其余模块;
(3)控制模块产生使能信号和配置信号发送给可重构环形振荡器,并同时产生计数器的定时控制信号发送给计数器;计数器统计设定时间内的振荡次数,发送给比较器;
(4)编程***重新加载一个不同的可重构环形振荡器结构设计配置文件实现可重构环形振荡器,控制模块产生与上一次相同或不同的使能信号和配置信号,通过新的可重构环形振荡器产生震荡信号,通过计数器统计设定时间内的振荡次数,发送给比较器;
或,
保持上一次加载的可重构环形振荡器结构不便,控制模块产生与上一次不同的配置信号,通过可重构环形振荡器产生震荡信号,通过计数器统计设定时间内的振荡次数,发送给比较器;
(5)比较器比较连续两次计数器的计数值来获得响应信号;
(6)重复执行步骤(4)到(5),直至产生足够的响应信号。
本发明利用动态可重构技术,可以让FPGA在运行期间部分的被重新配置,而不中断其余部分的工作。虽然不同的可重构RO PUF设计具有不同的逻辑可重构RO结构,但是它们都具有相同的计数器,比较器和数据接口。本发明将CRO区域作为重构区域,同时保持其他部分的功能不变,如图1所示,其可以部分地更换CRO区域中的RO结构,以此改变电路的延迟特性。
下面通过具体实施例对本发明进行进一步阐述。
实施例:
在图1中,CRO区域可以通过加载不同类型的配置文件实现不同的可重构RO设计,本实施例给出如图2所示的CRO,RRO和XRRO,图中的s0到sn为配置信号。CRO由两个反相器和一个多路选择器组成,可配置信号用于选择环中的反相器。基于相同的可配置基元,RRO使用可配置信号来选择多路选择器内部的数据传输路径以提取工艺差异。与CRO和RRO不同,XRRO利用异或门作为可配置基元,并且异或门的一个输入用作配置信号,用来控制异或门的工作状态逻辑等效为反相器或为缓冲器。本实施例虽未给出现有的其他可重构RO设计,但所有可重构RO设计也应包含在本发明的保护范围中。
PUF的整体结构设计和不同类型的可重构RO设计存储在外部存储器中。编程***(PS)可以访问外部存储器,可以配置和重新配置FPGA。激活***后,PS将可重构RO设计从外部存储器加载到CRO区域,同时在其他区域上实现PUF的其余模块。通常,RO PUF的激励和响应是一对一的,但是本发明所提出的PUF结构可以实现一个激励对应于多个不同的响应。通过改变在CRO区域中实施的可重构RO类型或布置位置,可以在不改变激励的情况下产生不同的响应。而且在此PUF结构受到建模攻击的攻击时,构建目标PUF模型的难度将大大增加,因为攻击者很难判断目前正在使用的是哪种可重构RO结构。
图3显示了两个FPGA上的重新配置过程。对于两个FPGA上的相同PUF或同一FPGA上的不同PUF,可重构RO可能具有不同的频率。在图3中,颜色较暗的CLB表示在此处实现的可重构RO的频率较高。横向来看,当相同区域中的可重构RO结构被动态重构为另一种结构时,两次实现结果的频率可能并不相同,因此产生的PUF响应也会随之改变。
图4说明了动态可重构过程的详细过程。在启动***后,通过编程***随机地从外部存储器中选择一个配置文件配置FPGA,并向PUF输入激励信号。每当激励改变时,都会输出一次响应,同时对输出的次数进行计数。对于攻击者来说,必须要采集足够多的激励响应对才能有效的预测PUF的输出,当采集的样本数量小于阈值C的时候,可以保证PUF是安全的。因此当同一个RO结构产生响应的次数达到阈值C时,及时地将这个结构弃用,并从外部存储器中选择未使用过的配置文件重新配置FPGA,并且一直重复这个过程。
以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (4)
1.一种基于动态可重构技术实现PUF的***,其特征在于,包括:存储器和FPGA模块;
存储器用于存储FPGA整体结构配置文件和不同类型的可重构环形振荡器结构设计配置文件;
FPGA模块用于实现PUF结构,包括:编程***、控制模块、可重构环形振荡器、计数器和比较器,控制模块、可重构环形振荡器、计数器和比较器组成PUF,所述PUF中的可重构环形振荡器为可配置区域,由编程***加载存储在存储器中的可重构环形振荡器结构设计配置文件并进行配置实现;
控制模块产生使能信号和能够形成有效震荡的配置信号并发送给配置好的可重构环形振荡器,同时,控制模块产生计数器的定时控制信号,用于控制计数器的计数时间;
可重构环形振荡器根据配置信号和使能信号产生具有唯一频率的振荡信号,计数器统计设定时间内的振荡次数;最后通过比较器比较连续两次计数器上传的计数值来获得比特输出,也就是响应信号;相邻的两次计数值有以下产生方式:
对于不同结构的可重构环形振荡器,控制模块产生同一配置信号,计数器分别对两次震荡信号进行统计,得到两次计数值;
对于不同结构的可重构环形振荡器,控制模块产生不同配置信号,计数器分别对两次震荡信号进行统计,得到两次计数值;
对于相同结构的可重构环形振荡器,控制模块产生不同配置信号,计数器分别对两次震荡信号进行统计,得到两次计数值。
2.根据权利要求1所述的一种基于动态可重构技术实现PUF的***,其特征在于,所述可重构环形振荡器的结构包括:CRO结构、RRO结构和XRRO结构。
3.一种基于动态可重构技术实现PUF的方法,其特征在于,所述方法基于权利要求1至2任意一项所述***实现,包括步骤:
(1)预先生成FPGA整体结构配置文件和不同类型的可重构环形振荡器结构设计配置文件,并存储在存储器中;
(2)激活***后,编程***从存储器加载FPGA整体结构配置文件和任意一个可重构环形振荡器结构设计配置文件,然后根据可重构环形振荡器结构设计配置文件实现可重构环形振荡器,同时根据FPGA整体结构配置文件在其他区域上实现PUF的其余模块;
(3)控制模块产生使能信号和配置信号发送给可重构环形振荡器,并同时产生计数器的定时控制信号发送给计数器;计数器统计设定时间内的振荡次数,发送给比较器;
(4)编程***重新加载一个不同的可重构环形振荡器结构设计配置文件实现可重构环形振荡器,控制模块产生与上一次相同或不同的使能信号和配置信号,通过新的可重构环形振荡器产生震荡信号,通过计数器统计设定时间内的振荡次数,发送给比较器;
或,
保持上一次加载的可重构环形振荡器结构不便,控制模块产生与上一次不同的配置信号,通过可重构环形振荡器产生震荡信号,通过计数器统计设定时间内的振荡次数,发送给比较器;
(5)比较器比较连续两次计数器的计数值来获得响应信号;
(6)重复执行步骤(4)到(5),直至产生足够的响应信号。
4.根据权利要求3所述的一种基于动态可重构技术实现PUF的方法,其特征在于,还包括步骤:
当同一个可重构环形振荡器结构通过不同配置信号产生响应的次数达到阈值C时,所述编程***重新加载新的可重构环形振荡器结构设计配置文件;所述阈值C用于避免攻击者通过获取足够次数的响应信号预测PUF的输出。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010051513.0A CN111291523A (zh) | 2020-01-16 | 2020-01-16 | 一种基于动态可重构技术实现puf的***及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010051513.0A CN111291523A (zh) | 2020-01-16 | 2020-01-16 | 一种基于动态可重构技术实现puf的***及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111291523A true CN111291523A (zh) | 2020-06-16 |
Family
ID=71029084
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010051513.0A Pending CN111291523A (zh) | 2020-01-16 | 2020-01-16 | 一种基于动态可重构技术实现puf的***及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111291523A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104200180A (zh) * | 2014-07-17 | 2014-12-10 | 南京航空航天大学 | 基于可重构环形振荡器的物理不可克隆函数及其产生方法 |
CN105760786A (zh) * | 2016-02-06 | 2016-07-13 | 中国科学院计算技术研究所 | 一种cpu+fpga集成芯片的强puf认证方法及*** |
CN105807263A (zh) * | 2016-03-28 | 2016-07-27 | 北京航空航天大学 | 一种fpga部分重构在雷达信号处理中的结构及其实现方法 |
CN109005040A (zh) * | 2018-09-10 | 2018-12-14 | 湖南大学 | 动态多密钥混淆puf结构及其认证方法 |
US10177922B1 (en) * | 2015-03-25 | 2019-01-08 | National Technology & Engineering Solutions Of Sandia, Llc | Repeatable masking of sensitive data |
-
2020
- 2020-01-16 CN CN202010051513.0A patent/CN111291523A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104200180A (zh) * | 2014-07-17 | 2014-12-10 | 南京航空航天大学 | 基于可重构环形振荡器的物理不可克隆函数及其产生方法 |
US10177922B1 (en) * | 2015-03-25 | 2019-01-08 | National Technology & Engineering Solutions Of Sandia, Llc | Repeatable masking of sensitive data |
CN105760786A (zh) * | 2016-02-06 | 2016-07-13 | 中国科学院计算技术研究所 | 一种cpu+fpga集成芯片的强puf认证方法及*** |
CN105807263A (zh) * | 2016-03-28 | 2016-07-27 | 北京航空航天大学 | 一种fpga部分重构在雷达信号处理中的结构及其实现方法 |
CN109005040A (zh) * | 2018-09-10 | 2018-12-14 | 湖南大学 | 动态多密钥混淆puf结构及其认证方法 |
Non-Patent Citations (1)
Title |
---|
张磊: "可重构物理不可克隆技术电路结构的研究", 《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Liu et al. | XOR-based low-cost reconfigurable PUFs for IoT security | |
CN109167664B (zh) | 一种基于异或门的可重构环形振荡器puf电路 | |
WO2019222866A1 (zh) | 一种具有检测校正功能的真随机数产生方法与装置 | |
EP1667326B1 (en) | Output reporting techniques for hard intellectual property blocks | |
US7602219B2 (en) | Inverting cell | |
CN113672199A (zh) | 一种具备物理不可克隆函数功能的多熵源随机数发生器 | |
CN107025092A (zh) | 一种基于latch 结构真随机数发生器的随机数提取方法 | |
CN111835525B (zh) | 一种基于fpga的可配置ro puf | |
US9858042B1 (en) | Configurable ring oscillator | |
CN111027102A (zh) | 一种高安全性可配置ro-puf电路结构 | |
JP2018112861A (ja) | 乱数生成装置、集積回路 | |
CN103514134B (zh) | 一种芯片原型验证报文随机传输方法 | |
KR101623109B1 (ko) | Fpga에서 물리적 복제 방지 함수 회로를 구현하기 위한 장치 | |
Amsaad et al. | A dynamic area-efficient technique to enhance ROPUFs security against modeling attacks | |
CN107423256A (zh) | 可重构处理器及可重构处理器的时序控制方法 | |
CN111291523A (zh) | 一种基于动态可重构技术实现puf的***及方法 | |
Amsaad et al. | Reliable and reproducible PUF based cryptographic keys under varying environmental conditions | |
US10340898B1 (en) | Configurable latch circuit | |
CN112073062B (zh) | 一种基于fpga开关矩阵的可编程环形振荡器及puf结构 | |
US11489681B2 (en) | Multifunctional physically unclonable function device based on hybrid Boolean network | |
WO2022027325A1 (zh) | 一种可重构随机数发生器及其实现方法 | |
KR102170985B1 (ko) | 난수 생성기 | |
Sahoo et al. | Fault tolerant implementations of delay-based physically unclonable functions on FPGA | |
Zhang et al. | Multi-incentive delay-based (MID) PUF | |
US8693616B1 (en) | IC and a method for flexible integer and fractional divisions |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200616 |