会员体验
专利管家(专利管理)
工作空间(专利管理)
风险监控(情报监控)
数据分析(专利分析)
侵权分析(诉讼无效)
联系我们
交流群
官方交流:
QQ群: 891211   
微信请扫码    >>>
现在联系顾问~
首页 / 专利库 / 电脑零配件 / 微处理器 / 一种基于FPGA的微处理器PUF实现系统及其方法

一种基于FPGA的微处理器PUF实现系统及其方法

阅读:315发布:2021-02-26

IPRDB可以提供一种基于FPGA的微处理器PUF实现系统及其方法专利检索,专利查询,专利分析的服务。并且本发明公开了一种基于FPGA的微处理器PUF实现系统及其方法,该实现系统包括PUF特性采集模块和数据流生成模块,该实现方法在FPGA平台上搭建ALU功能模块,在高频时钟条件下收集ALU功能模块的运算数据,以此来提取FPGA阵列上的随机时延作为该物理实体的标签。本发明克服了现有方案中需要配置适用于不同型号微处理器芯片的指令集以及时钟模块电路的缺陷,并且仅在FPGA平台上构建专用ALU单元模块,耗费资源比较少,因此对现有的微处理器PUF实现方案是一个有益的补充。,下面是一种基于FPGA的微处理器PUF实现系统及其方法专利的具体信息内容。

1.一种基于FPGA的微处理器PUF实现系统,其特征在于,包括PUF特性采集模块和数据流生成模块,其中PUF特性采集模块包括中央控制单元、时钟调整单元、ALU单元、串口通信单元,数据流生成模块包括判决单元和后处理单元;中央控制单元的输出端分别与时钟调整单元、ALU单元和串口通信单元的输入端连接,负责控制FPGA开发板上程序的运行,保证各个单元间能协调一致地工作;时钟调整单元的输出端分别与中央控制单元和ALU单元的输入端连接,负责产生PUF特性提取模块的系统时钟和ALU单元的超频时钟,并能对其进行实时调整;ALU单元的输出端与串口通信单元的输入端连接,该单元在高频时钟驱动下运行,其运行结果反映了FPGA开发板上传输线路的延时特性;串口通信单元的输出端与判决单元输入端连接,负责PUF特性采集模块和数据流生成模块间的通信;判决单元的输出端与后处理单元输入端连接,负责接收PUF特性采集模块传输的数据,并通过判决机制转换成二进制数据;后处理单元负责将接收与判决单元传输的二进制数据通过线性移位寄存器生成m序列,并输出定长二进制响应。

2.如权利要求1所述的基于FPGA的微处理器PUF实现系统,其特征在于,所述时钟调整单元产生30个时钟频率点,从400MHz至545MHz,间隔5MHz。

3.如权利要求1所述的基于FPGA的微处理器PUF实现系统,其特征在于,所述ALU单元包括加法运算单元、乘法运算单元和除法运算单元。

4.一种基于FPGA的微处理器PUF实现方法,其特征在于,包括PUF特性数据采集方法和PUF物理实体标签生成方法,其中PUF特性数据采集方法包括如下步骤:(1)初始化PUF特性数据采集模块的内部寄存器:将频率点计数器、轮数计数器、轮内次数计数器和各ALU运算单元指令执行正确次数计数器初始化为0;

(2)调整频率:根据当前频率计数器值设置相应的分频倍频系数,并进行频率的实时调整;

(3)运行ALU模块:频率调整完成后,各ALU运算单元在当前时钟频率驱动下运行6轮,每轮40次,统计每一轮指令执行正确的次数,若6轮统计数据在预设的误差范围内则将这

6个统计数据求和作为该PUF物理实体在该频率点的PUF特性数据,转入步骤(4),否则将这6个统计数据丢弃,将轮数计数器、轮内次数计数器、各ALU运算单元指令执行正确次数计数器均恢复初始值,重新运行步骤(3);

(4)传送数据:将步骤(3)中采集到的某一频率点上该PUF物理实体的PUF特性数据发送给数据流生成模块供后续数据处理,并根据当前运行频率点判断数据采集过程是否结束,若频率点计数器已计至29则结束,否则频率计数器加1,并跳转至步骤(2)继续运行;

PUF物理实体标签生成包括如下步骤:

(1)通过判决机制生成二进制数据串:接收PUF特性采集模块传送来的各频率点统计数据,并根据如下判决规则生成3串60位的定长二进制数据串:其中,k为总共运行的次数即k=240,pc为执行正确的次数即PUF特性采集模块传送的每个频率点的统计数据;

(2)进行数据后处理:将步骤(1)中3个运算单元生成的定长60位的二进制数据串作为3个级数为60的线性移位寄存器的初始值,根据如下连接多项式各自生成一个m序列:

60

f(x)=x +x+1 (2)

60

其中,x ,x,1分别表示移位寄存器序列中第60级、第1级和第0级寄存器的当前状态,f(x)则表示当前状态下m序列的输出值,即第60级、第1级和第0级寄存器当前状态的异或值;

(3)输出PUF物理实体标签:根据所需输出的序列长度n,从步骤(2)中生成的m序列的第1位开始顺序选择长度为n的序列串c1,c2,c3,计算输出序列s=c1+c2+c3(各序列对应位模二相加),即得用于识别PUF物理实体的定长为n的二进制位串。

说明书全文

一种基于FPGA的微处理器PUF实现系统及其方法

技术领域

[0001] 本发明涉及物理防克隆安全技术领域,特别是涉及一种基于FPGA的微处理器PUF实现系统及其方法。

背景技术

[0002] 微处理器PUF的基本原理是利用微处理器数据传输线及命令控制线上的传输时延变化差异实现物理防克隆函数。由于制造过程中的随机差异,每块微处理器芯片上特定路径的传输时延Tpath都不同。当微处理器在运行过程中,随着时钟频率的提升,时钟周期降低,若时钟周期小于传输时延Tpath,指令执行就会失败。研究表明这种出错状态会有一个过渡区间,即在这个区间中的频率点上,随着频率的升高,重复执行一条指令多次,其指令执行正确的次数呈现出一条下降的曲线。对于不同微处理器芯片上的某一特定的数据路径或控制路径来说,由于传输时延Tpath不一样,因此微处理器执行某一相同指令时其指令执行正确次数所对应的下降曲线都不相同,即微处理器在超频工作状态下呈现出不同的工作性能。因此通过一定的量化规则,我们可以将微处理器执行某条指令所对应的工作性能曲线转换成二进制位串输出,以此作为该芯片的身份信息。
[0003] 由于不同厂家或者不同型号的微处理器芯片支持的指令集不一样和硬件参数不同,需要配置合适该系统的时钟模块电路,应用与硬件结构相符合的指令集,这使得测试代码不具备很好的可移植性。同时,微处理器芯片功能比较完善,若仅仅只是用其作为一个标签来实现PUF的功能显然会造成资源的浪费。为此,在借鉴微处理器PUF技术原理的基础上,我们提出了基于FPGA的微处理器PUF实现方法,形成一个专用的电路模块,以较小的代价实现PUF功能以满足多种场合的应用。

发明内容

[0004] 发明目的:针对现有技术中存在的问题,本发明提供一种资源耗费代价很小且具有普遍适用性的基于FPGA的微处理器PUF实现系统及其方法。
[0005] 技术方案:本发明提出一种基于FPGA的微处理器PUF实现系统,包括PUF特性采集模块和数据流生成模块,其中PUF特性采集模块包括中央控制单元、时钟调整单元、ALU单元、串口通信单元,数据流生成模块包括判决单元和后处理单元;中央控制单元的输出端分别与时钟调整单元、ALU单元和串口通信单元的输入端连接,负责控制FPGA开发板上程序的运行,保证各个单元间能协调一致地工作;时钟调整单元的输出端分别与中央控制单元和ALU单元的输入端连接,负责产生PUF特性提取模块的系统时钟和ALU单元的超频时钟,并能对其进行实时调整;ALU单元的输出端与串口通信单元的输入端连接,该单元在高频时钟驱动下运行,其运行结果反映了FPGA开发板上传输线路的延时特性;串口通信单元的输出端与判决单元输入端连接,负责PUF特性采集模块和数据流生成模块间的通信;判决单元的输出端与后处理单元输入端连接,负责接收PUF特性采集模块传输的数据,并通过判决机制转换成二进制数据;后处理单元负责将接收与判决单元传输的二进制数据通过线性移位寄存器生成m序列,并输出定长二进制响应。
[0006] 所述时钟调整单元产生30个时钟频率点,以覆盖PUF实体集中不同PUF物理实体出错状态的频率过渡域,具体为从400MHz至545MHz,间隔5MHz。
[0007] 所述ALU单元包括加法运算单元、乘法运算单元和除法运算单元,简化电路结构的同时也减少资源耗费。
[0008] 本发明还提出一种基于FPGA的微处理器PUF实现方法,包括PUF特性数据采集方法和PUF物理实体标签生成方法,其中PUF特性数据采集方法包括如下步骤:
[0009] (1)初始化PUF特性数据采集模块的内部寄存器:将频率点计数器、轮数计数器、轮内次数计数器和各ALU运算单元指令执行正确次数计数器初始化为0;
[0010] (2)调整频率:根据当前频率计数器值设置相应的分频倍频系数,并进行频率的实时调整;
[0011] (3)运行ALU模块:频率调整完成后,各ALU运算单元在当前时钟频率驱动下运行6轮,每轮40次,统计每一轮指令执行正确的次数,若6轮统计数据在预设的误差范围内则将这6个统计数据求和作为该PUF物理实体在该频率点的PUF特性数据,转入步骤(4),否则将这6个统计数据丢弃,将轮数计数器、轮内次数计数器、各ALU运算单元指令执行正确次数计数器均恢复初始值,重新运行步骤(3);
[0012] (4)传送数据:将步骤(3)中采集到的某一频率点上该PUF物理实体的PUF特性数据发送给数据流生成模块供后续数据处理,并根据当前运行频率点判断数据采集过程是否结束,若频率点计数器已计至29则结束,否则频率计数器加1,并跳转至步骤(2)继续运行。
[0013] PUF物理实体标签生成包括如下步骤:
[0014] (1)通过判决机制生成二进制数据串:接收PUF特性采集模块传送来的各频率点统计数据,并根据如下判决规则生成3串60位的定长二进制数据串:
[0015]
[0016] 其中,k为总共运行的次数即k=240,pc为执行正确的次数即PUF特性采集模块传送的每个频率点的统计数据。
[0017] (2)进行数据后处理:将步骤(1)中3个运算单元生成的定长60位的二进制数据串作为3个级数为60的线性移位寄存器的初始值,根据如下连接多项式各自生成一个m序列:
[0018] f(x)=x60+x+1 (2)
[0019] 其中,x60,x,1分别表示移位寄存器序列中第60级、第1级和第0级寄存器的当前状态,f(x)则表示当前状态下m序列的输出值,即第60级、第1级和第0级寄存器当前状态的异或值。
[0020] (3)输出PUF物理实体标签:根据所需输出的序列长度n,从步骤(2)中生成的m序列的第1位开始顺序选择长度为n的序列串c1,c2,c3,计算输出序列s=c1+c2+c3(各序列对应位模二相加),即得用于识别PUF物理实体的定长为n的二进制位串。
[0021] 有益效果:本发明采用上述技术方案,具有以下有益效果:
[0022] 1、本发明有效克服了现有方案需要针对每个微处理器芯片确定其频率过渡域的起始点和截止点的缺陷,克服了其需要针对不同的微处理器芯片编写响应测试代码的缺陷,并且耗费的FPGA板上资源比较少,具有普遍适用性,对现有的微处理器PUF实现方案是一个有益的补充。
[0023] 2、本发明中时钟调整单元共产生30个时钟频率点,可以覆盖PUF实体集中不同PUF物理实体出错状态的频率过渡域。
[0024] 3、本发明中ALU单元分别构建实现加法、乘法、除法等功能的运算单元模块,简化电路结构的同时也减少资源耗费。
[0025] 4、本发明中后处理单元将判决单元生成的二进制数据串做进一步处理,使得能生成任意长度的定长二进制序列并且不同序列间具有较好的片间汉明距离。

附图说明

[0026] 图1为本发明实施例的系统结构图;
[0027] 图2为本发明实施例的PUF特性采集方法流程图;
[0028] 图3为本发明实施例的PUF物理实体标签生成方法流程图。

具体实施方式

[0029] 下面结合具体实施例,进一步阐明本发明,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等同变换均落于本申请权利要求所限定的范围。
[0030] 本实施例选择Xilinx的Spartan6系列中以XC6SLX16-2CSG324 FPGA为核心处理器的Siga-S16开发板作为我们所设计方案的硬件实现平台,开发板的硬件资源如下:
[0031] FPGA:XC6SLX16-2CSG324 Spartan-6系列@Xilinx
[0032] FPGA配置:8MB SPI Flash@Numonyx
[0033] Memory:板载128MB DDR2 SDRAM@Micron
[0034] 8MB SPI Flash@Numonyx
[0035] 接口资源:USB2.0高速通信,CY68013@Cypress;
[0036] USB转UART通信,CP2102@Silicon Labs;
[0037] DB9式RS232接口(母口);
[0038] 10/100M以太网RJ-45接口,采用芯片RTL8201@Realtek等。
[0039] 时钟:板载50MHz振荡器
[0040] 控制和显示:4个按键
[0041] 2路拨码开关
[0042] 4个LED
[0043] 电源:5V/2A电源适配器
[0044] DDR2电源解决方案@TI
[0045] FPGA电源解决方案@MPS
[0046] 基于FPGA的微处理器PUF实现系统如图1所示,包括两个模块:(1)PUF特性采集模块基于微处理器PUF的原理,利用FPGA逻辑阵列上由于制造工艺产生的随机时延差异,收集每块FPGA开发板在高频状态下ALU模块执行响应运算时所呈现的PUF特性数据,该功能模块在FPGA上采用硬件描述语言(Verilog HDL)实现电路的设计与输入;(2)数据流生成模块将接收到的PUF特性数据进行统计处理后按一定的规则生成二进制位串,并将这串数据作为识别该物理实体的标签,该功能模块在PC端完成,一方面减少PUF特性提取模块的计算量,以满足PUF标签的轻量级属性,另一方面在PC端更容易完成对批数据的运算和处理。
[0047] PUF特性采集模块包括中央控制单元、时钟频率调整单元、ALU单元和串口通信单元,其中中央控制单元负责控制FPGA开发板上程序的运行,保证各个单元间能协调一致地工作;时钟调整单元负责产生PUF特性提取模块的系统时钟和ALU单元的超频时钟,并能对其进行实时调整;ALU单元包括加、乘、除三个运算单元,该单元在高频时钟驱动下运行,其运行结果反映了FPGA开发板上某些传输线路上的延时特性;串口通信单元负责PUF特性采集模块和数据流生成模块间的通信,将ALU模块的统计数据传输到PC端,同时将PC端命令发送给FPGA开发板。
[0048] 数据流生成模块包括判决单元和后处理单元,其中
[0049] 判决单元负责将PUF特性采集模块输出的数据通过一定的判决机制转换成二进制数据;
[0050] 后处理单元负责将判决单元输出的二进制数据通过线性移位寄存器生成m序列,并输出定长二进制响应。
[0051] PUF特性提取模块的主要工作是通过收集ALU功能模块在不同频率点的运行状态以提取FPGA阵列上传输时延的PUF特性,即提取每块FPGA芯片所对应的FFP点集。为此,我们选择了30个时钟频率点,以覆盖不同物理实体出错状态的频率过渡域,具体为从400MHz至545MHz,间隔5MHz,并选择加法、乘法和除法三种不同的ALU运算功能模块确保能够区分不同的物理实体,另外在每个频率点上测试40次为一轮统计过程,统计其中运行正确的次数,作为该频率点的pc值。为了提高所获取数据的稳定性,减少随机性,我们在每个频率点共进行6轮统计过程,且统计的6轮数据只有在一定的误差范围内才被认为有效,否则这些数据被舍弃,重新开始统计过程,直到获取有效数据后,将其求和作为该频率点的统计值并通过串口发送模块发送至PC端,方便后续的数据处理和二进制数据流的生成,故PUF特性数据模块采集PUF特性数据的流程如图2所示:
[0052] (1)初始化PUF特性数据采集模块的内部寄存器,为了记录ALU功能模块在不同频率点的运行状态,在程序运行初始阶段,将频率点计数器,轮数计数器,轮内次数计数器以及各ALU单元指令执行正确次数计数器初始化为0。
[0053] (2)调整频率:根据当前频率计数器值设置相应的分频倍频系数并进行频率的实时调整,本实施例中共有三十个频率点,频率点计数器从0开始计数,当计至29时表明PUF特性采集模块数据采集完成。
[0054] (3)运行ALU模块:频率调整完成后,各ALU功能模块在当前时钟频率驱动下开始运行,每一次运行结果与理论值进行比较,若相等则指令执行正确次数计数器加1,由轮数计数器和轮内次数计数器控制ALU功能模块的运行次数,在每个频率点运行6轮,每轮运行40次,统计每一轮指令执行正确的次数,若6轮统计数据在一定的误差范围内,则将其求和作为PUF实体在该频率点的PUF特性数据,转入步骤(4)。若6轮统计数据误差比较大,则将统计数据丢弃,将各轮数计数器、轮内次数计数器、各ALU单元指令执行正确次数计数器均恢复初始值,重新运行步骤(3)。
[0055] (4)传送数据:将步骤(3)中采集到的某一频率点上该PUF物理实体的PUF特性数据发送给数据流生成模块,供后续进行数据处理。并根据当前运行频率点判断数据采集过程是否结束,若频率点计数器已计至29则结束PUF特性数据采集过程,否则频率计数器加1,并跳转至步骤(2)继续运行。
[0056] 数据流生成模块生成识别该PUF物理实体标签的流程如图3所示:
[0057] (1)接收PUF特性数据,并通过判决机制生成二进制串:将PUF特性采集模块传送来的各频率点统计数据根据一定的判决规则生成二进制位串,由于PUF特性采集模块统计了3个ALU运算单元在30个频率点的特性数据,每个数据可以转换成2位二进制数据,故通过如下判决机制可以得到3串60位的定长二进制数据串:
[0058]
[0059] 其中,k为总共运行的次数即k=240,pc为执行正确的次数即PUF特性采集模块传送的每个频率点的统计数据。
[0060] (2)数据后处理:将步骤(1)中3个运算单元生成的定长60位的二进制数据串作60
为3个级数为60的线性移位寄存器的初始值,根据连接多项式f(x)=x +x+1各自生成一
60
个m序列,其中x ,x,1分别表示移位寄存器序列中第60级、第1级和第0级寄存器的当前状态,f(x)则表示当前状态下的序列输出值,即第60级、第1级和第0级寄存器当前状态的异或值。
[0061] (3)输出定长二进制数据串:根据所需输出的序列长度n,从步骤(2)中生成的m序列的第1位开始顺序选择长度为n的序列串c1,c2,c3,计算输出序列s=c1+c2+c3(各序列对应位模二相加),即得到了最后输出的定长为n的二进制位串。
[0062] 基于FPGA的微处理器PUF设计方案完全采用Veriog HDL编程语言描述,并可以使用综合工具自动综合,由布局布线工具处理,无需人工干预,方便快捷,使得电路设计的的周期大大缩短,本方案PUF特性采集模块在FPGA开发板上经过编译和综合后占用开发板资源的情况如表1所示,可以看出占用资源比较少。
[0063] 表1
[0064]
[0065]
[0066] 物理防克隆函数的唯一性通常通过计算片间汉明距离的平均值来体现,具体计算公式为:
[0067]
[0068] 其中,Ri,Rj指两个不同的PUF实体i,j输出的响应,m指不同的PUF实体的总数,n是输出响应的长度。
[0069] 我们选择m=5,n=128,256,512时对5块FPGA开发板组成的PUF实体集生成的二进制序列的唯一性进行测试,测试结果如表2所示,可以看出其唯一性特征接近理想值50%,符合预期目标。
[0070] 表2
[0071]Length n=128 n=256 n=512 Average
Uniqueness 45.63% 47.81% 48.54% 47.33%
高效检索全球专利

IPRDB是专利检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,专利查询、专利分析

电话:13651749426

侵权分析

IPRDB的侵权分析产品是IPRDB结合多位一线专利维权律师和专利侵权分析师的智慧,开发出来的一款特色产品,也是市面上唯一一款帮助企业研发人员、科研工作者、专利律师、专利分析师快速定位侵权分析的产品,极大的减少了用户重复工作量,提升工作效率,降低无效或侵权分析的准入门槛。

立即试用