CN115694832A - 基于ro puf的密钥生成方法及其系统 - Google Patents
基于ro puf的密钥生成方法及其系统 Download PDFInfo
- Publication number
- CN115694832A CN115694832A CN202211247649.4A CN202211247649A CN115694832A CN 115694832 A CN115694832 A CN 115694832A CN 202211247649 A CN202211247649 A CN 202211247649A CN 115694832 A CN115694832 A CN 115694832A
- Authority
- CN
- China
- Prior art keywords
- ring oscillator
- puf
- oscillation
- key generation
- challenge
- 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
- Lock And Its Accessories (AREA)
Abstract
提供一种基于RO PUF的密钥生成方法,所述RO PUF包括N个环形振荡器,该方法包括:步骤20):随机生成用于选择第一个环形振荡器和第二个环形振荡器的挑战,确定所述第一个环形振荡器在第一时间长度内的振荡次数和所述第二个环形振荡器在第一时间长度内的振荡次数的差的绝对值大于第一阈值;步骤30):利用所述挑战按照第一预定次数重复计数所述第一个环形振荡器在第一时间长度内的振荡次数,以及所述第二个环形振荡器在第一时间长度内的振荡次数,并执行第一预定次数的比较,判断所述第一预定次数的比较结果是否相同;以及步骤40):在所述第一预定次数的比较结果都相同时,输出所述挑战和相应的比较结果。
Description
技术领域
本发明涉及数字集成电路设计以及信息安全领域,尤其涉及一种基于RO PUF的密钥生成方法及其系统。
背景技术
物理不可克隆函数(PUF)是指,对一个芯片输入一个激励,利用芯片生产制造过程中不可避免的随机工艺偏差输出一个不可预测的响应的函数。其中,PUF依赖于芯片制造过程中的不可逆误差,利用这些误差的随机性和唯一性,并将其提取作为芯片的特征。激励信号与响应信号之间的唯一对应,形成了类似于人体指纹的“芯片指纹”。PUF理念的提出极大地丰富了传统密码学的应用场景和安全性。
目前应用最广泛的是可集成的电子类PUF,例如:基于SRAM的物理不可克隆函数(SRAM PUF)、基于环形振荡器(RO)的物理不可克隆函数(RO PUF)、基于仲裁机制的物理不可克隆函数(Arbiter PUF)、以及基于SR锁存器的物理不可克隆函数(SR PUF)。其中RO PUF电路结构简单,易于在FPGA平台和ASIC平台上实现。由于每个环形振荡器的内部布线延迟存在偏差,使得每个环形振荡器所产生的频率不同。通过激励随机选择两个环形振荡器并通过比较所选择的两个环形振荡器的频率,可产生针对该芯片特有的响应,以及进一步地,产生针对该芯片的密钥。在密钥生成的过程中,无论加密还是解密,密钥中的某些位错误翻转将会导致密钥的稳定性受到影响,因此,需要降低RO PUF产生的密钥中的响应位的错误翻转,保证RO PUF的可靠性。
RO PUF的可靠性容易受到温度和元件老化的影响,生成错误的响应位。传统的纠错方法一般包括汉明码、BCH码等。使用汉明码编码需要额外的比特位存储校验位,且其无法纠正2比特以上的数据错误。BCH码纠错能力较强,但需要在生成响应位的基础上增加过多的冗余位,这在存储密文的过程中增加了存储器的硬件开销。同样的响应位数,误码率越高意味着纠错时的硬件开销越大,因此需要一种在硬件开销最小的情况下解决响应位误码问题的方法。
发明内容
基于现有技术的上述问题,本发明提出一种基于RO PUF的密钥生成方法,所述ROPUF包括N个环形振荡器,N为大于2的整数,所述方法包括:
步骤20):随机生成用于选择第一个环形振荡器和第二个环形振荡器的挑战,确定所述第一个环形振荡器在第一时间长度内的振荡次数和所述第二个环形振荡器在第一时间长度内的振荡次数的差的绝对值大于第一阈值,其中N=2M/2,M是用于选择第一个环形振荡器和第二个环形振荡器的挑战的总位数;
步骤30):利用所述挑战按照第一预定次数重复计数所述第一个环形振荡器在第一时间长度内的振荡次数,以及所述第二个环形振荡器在第一时间长度内的振荡次数,并执行第一预定次数的比较,判断所述第一预定次数的比较结果是否相同;以及
步骤40):在所述第一预定次数的比较结果都相同时,输出所述挑战和相应的比较结果。
在一个实施例中,所述步骤20)还包括:
步骤210):所述挑战用于激活第一个环形振荡器和第二个环形振荡器,基于所计数的所述第一个环形振荡器在第一时间长度内的振荡次数和所述第二个环形振荡器在第一时间长度内的振荡次数,判断所述差的绝对值是否大于第一阈值;
步骤220):如果所述差的绝对值小于或等于所述第一阈值,则重复所述步骤20)。
在一个实施例中,在所述步骤20)之前还包括:
步骤10):获得包括每个环形振荡器在第一时间长度内的振荡次数的振荡次数表;
其中,所述步骤20)还包括:
步骤210):根据所述振荡次数表,判断所述差的绝对值是否大于第一阈值;
步骤220):如果所述差的绝对值小于或等于所述第一阈值,则重复所述步骤20)。
在一个实施例中,所述步骤30)包括:
步骤310):重复计数所述第一个环形振荡器在第一时间长度内的振荡次数,以及所述第二个环形振荡器在第一时间长度内的振荡次数,并执行第二预定次数的比较;
步骤320):如果所述第二预定次数的比较结果均相同,则输出相应的比较结果并存储;
步骤330):如果所述第二预定次数的比较结果不完全相同,则返回执行步骤20);
步骤340):重复所述步骤310)-所述步骤330),直到重复次数达到第一预定次数/第二预定次数的数值。
在一个实施例中,所述方法还包括:
步骤50):重复所述步骤20)-所述步骤40),直到重复次数达到第三阈值。
在一个实施例中,所述步骤10)包括:
顺序激活环形振荡器,遍历所有的环形振荡器,测量每一个环形振荡器在第一时间长度内的振荡次数并记录在振荡次数表中。
在一个实施例中,所述挑战包括第一部分和第二部分,所述第一部分被转换成N位独热码并输入至N个环形振荡器的使能端,以激活第一个环形振荡器,
所述第二部分被转换成N位独热码并输入至N个环形振荡器的使能端,以激活第二个环形振荡器。
在一个实施例中,所述第一部分与所述第二部分的位数相同。
在一个实施例中,所述第一阈值大于5。
本发明还提供一种基于RO PUF的密钥生成系统,所述系统包括
RO PUF电路,其包括N个环形振荡器;
存储器,用于存储所述RO PUF电路所生成的比较结果;以及处理器,其被配置为实现上述基于RO PUF的密钥生成方法的步骤。
本发明的基于RO PUF的密钥生成方法及其系统,可以提升RO PUF响应位稳定性,并在硬件开销最小的情况下减小密钥的误码率,避免响应位错误反转。该方法测试所有环形振荡器在第一时间长度内的振荡次数并生成振荡次数表,基于振荡次数表选择振荡次数差大于第一阈值的两个环形振荡器,并且通过比较器多次比较并输出响应位结果,保证所选择的两个环形振荡器通过比较器输出的响应位为稳定的1或0,使得误码率降为0。
附图说明
图1是根据本发明一个实施例的RO PUF电路结构示意图。
图2示出了本发明一个实施例的基于RO PUF的密钥生成方法的流程图。
图3示出了本发明另一个实施例的基于RO PUF的密钥生成方法的流程图。
具体实施方式
为了使本发明的目的、技术方案以及优点更加清楚明白,下面将结合附图通过具体实施例对本发明作进一步详细说明。应当注意,本发明给出的实施例仅用于说明,而不限制本发明的保护范围。
图1是根据本发明一个实施例的RO PUF电路结构示意图。RO PUF电路结构包括N(N为大于2的整数)个环形振荡器RO1,RO2,…RON,数据选择器MUX,计数器CNT1,计数器CNT2以及比较器CMP。
N个环形振荡器RO1,RO2,…RON具有相同的结构,每个环形振荡器包括一个与非门和偶数个串联连接的反相器。环形振荡器RO1包括与非门101和反相器组201,反相器组201包括偶数个串联连接的反相器。与非门101包括用于接收使能信号EN1的第一输入端IN1,用于接收来自反相器组201的输出端OUT的数据的第二输入端IN2,以及用于输出运算结果的输出端OUT。反相器组201包括用于接收来自与非门101的输出端OUT的数据的输入端IN,以及用于输出运算结果的输出端OUT。当使能信号EN1为1(即逻辑高电平)时,环形振荡器RO1开始工作,并输出振荡波;当使能信号EN1为0(即逻辑低电平)时,环形振荡器RO1不工作。环形振荡器RO2…RON的结构与工作方式与环形振荡器RO1相同,在此不再赘述。图1中环形振荡器的电路结构仅为示例,实际应用中也可以使用其他结构的环形振荡器,只要环形振荡器可以由使能信号激活和去激活即可。例如环形振荡器可以仅包括奇数个串联连接的非门。环形振荡器及其功能可以例如通过硬件描述语言实现,例如可以使用FPGA上的查找表资源搭建环形振荡器。
N位使能信号EN1-ENN构成RO PUF电路的激活信号,激活信号为N位独热码,其只有一位为1,其它位均为0,即在同一时间,只有一个环形振荡器被激活并输出振荡波。通常用处理器随机生成M位二进制码的挑战(也称为激励),该M位挑战分为两部分,即高位段的第一部分,以及低位段的第二部分,第一部分和第二部分的位数相等,均为M/2位。第一部分和第二部分都可以被转换为N位独热码作为激活信号,以激活一个环形振荡器。在另一个实施例中,也可以生成两个M/2位二进制码的挑战(即生成两个挑战,每个挑战都为M/2位),两个挑战都可以被转换为N位独热码作为激活信号,以激活一个环形振荡器。其中,M和N满足等式:N=2M/2,M为大于等于4的偶数。
数据选择器MUX用于基于M位挑战的第一部分或第二部分,从N个环形振荡器中选择被激活的环形振荡器,并输出振荡波。数据选择器MUX包括用于接收N个环形振荡器RO1,RO2,…RON的输出数据的N个输入端IN1,IN2…INN,用于接收挑战的第一部分或第二部分的地址端A,以及用于将振荡波进行输出的第一输出端OUT1和第二输出端OUT2。当M位挑战的第一部分转换为N位独热码并用作激活信号时,所选择的环形振荡器开始工作,并输出振荡波,同时将该第一部分输入至数据选择器MUX的地址端A,此时数据选择器MUX将所选择的环形振荡器的振荡波输出到第一输出端OUT1;当M位挑战的第二部分转换为N位独热码并用作激活信号时,所选择的环形振荡器开始工作,并输出振荡波,同时将该第二部分输入至数据选择器MUX的地址端A,此时数据选择器MUX将所选择的环形振荡器的振荡波输出到第二输出端OUT2。
根据本发明的另一实施例,数据选择器MUX也可以包括两个数据选择器,即第一数据选择器和第二数据选择器,第一数据选择器用于基于M位挑战的第一部分从N个环形振荡器中选择被激活的环形振荡器并将振荡波输出到第一输出端OUT1;第二数据选择器用于基于M位挑战的第二部分从N个环形振荡器中选择被激活的环形振荡器并将振荡波输出到第二输出端OUT2。数据选择器MUX及其功能可以例如通过硬件描述语言实现。
计数器CNT1,CNT2用于记录并输出一段时间内的上升沿个数,为清楚起见,在本发明中将该一段时间内的上升沿个数称为“振荡次数”,振荡次数与时间的比值为频率。计数器CNT1包括用于接收来自数据选择器MUX的第一输出端OUT1的数据的输入端IN,以及用于将计数结果进行输出的输出端OUT。计数器CNT2包括用于接收来自数据选择器MUX的第二输出端OUT2的数据的输入端IN,以及用于将计数结果进行输出的输出端OUT。计数器CNT1,CNT2及其功能可以例如通过硬件描述语言实现。
比较器CMP包括用于接收来自计数器CNT1的输出端OUT的振荡次数D1的第一输入端IN1,用于接收来自计数器CNT2的输出端OUT的振荡次数D2的第二输入端IN2,以及用于将比较结果(即响应)进行输出的输出端OUT。当振荡次数D1>振荡次数D2时,输出的响应为1,当振荡次数D1<振荡次数D2时,输出的响应为0。当然,对于本领域普通技术人员来说,输出的结果也可以是相反的,即当振荡次数D1>振荡次数D2时,输出的响应为0,当振荡次数D1<振荡次数D2时,输出的响应为1。比较器CMP及其功能可以例如通过硬件描述语言实现。
由于环形振荡器的基本组成单元反相器易受到环境因素(例如温度)和器件老化因素的影响,使得环形振荡器的频率容易发生波动,产生错误响应,最终导致RO PUF可靠性降低。在实验中发现,在相同的时间长度内,当振荡次数D1和振荡次数D2较为接近(例如差值小于5)时,响应会出现0、1两种情况,且反复跳变,即容易产生错误位。在相同的时间长度内,当振荡次数D1和振荡次数D2的差值大于5时,该跳变情况出现次数迅速减少。而在相同的时间长度内,当振荡次数D1和振荡次数D2的差值大于10时,跳变的情况几乎没有出现,响应较为稳定。因此,在相同的时间长度内,振荡次数D1和振荡次数D2的差越大,则响应越稳定。
本发明提出了一种基于RO PUF的密钥生成方法,该方法选择两个振荡次数相差较大(在相同的时间长度内)的环形振荡器,并通过比较器多次输出响应,从而产生稳定的响应。为便于理解,以下以N=256,M=16为例对该方法进行详细说明,本领域技术人员应当理解,M和N的值可以有多种选择。
图2示出了根据本发明一个实施例的基于RO PUF的密钥生成方法,该方法包括如下步骤。
步骤S201:测量每个环形振荡器在第一时间长度内的上升沿个数并记录在振荡次数表中。
第一时间长度可以例如为1000个时钟周期。
在该实施例中,共有256个环形振荡器,挑战为16位二进制码。首先顺序产生8位二进制码,作为挑战的第一部分(即高8位)输入,每次输入的高8位挑战都被转换成256位独热码作为激活信号,该激活信号对256个环形振荡器的使能端进行赋值,由于独热码只有一位为1,使得所选择的环形振荡器的使能信号为1,其他环形振荡器的使能信号为0,此时所选择的环形振荡器被激活,并输出振荡波。
同时,将挑战的第一部分(即高8位)输入至数据选择器MUX的地址端A,使得数据选择器MUX将所选择的环形振荡器的振荡波输出到第一输出端OUT1。计数器CNT1接收到该振荡波,并在第一时间长度内对振荡波的上升沿进行计数,并输出振荡次数。由于每个环形振荡器内部布线延迟存在偏差,使得每个环形振荡器所产生的振荡波的频率不同,即在第一时间长度内每个环形振荡器的振荡次数不相同。顺序生成16位挑战的第一部分,以顺序激活环形振荡器,遍历所有的环形振荡器,测量每一个环形振荡器在第一时间长度内的振荡次数并记录在振荡次数表中。表1示出了在第一时间长度内256个环形振荡器的振荡次数。
表1
步骤S202:随机生成16位挑战选择第一个环形振荡器和第二个环形振荡器。挑战的第一部分(即高8位)被转换成256位独热码以选择第一个环形振荡器;挑战的第二部分(即低8位)被转换成256位独热码以选择第二个环形振荡器。
步骤S203:基于振荡次数表(即表1)判断第一个环形振荡器的振荡次数D1和第二个环形振荡器的振荡次数D2的差是否大于第一阈值。如果是则继续步骤S204,如果否,则返回步骤S202,重新生成16位挑战,重新选择两个环形振荡器。
振荡次数D1和振荡次数D2的差为绝对值,第一阈值可以例如是50,40,30,20,10,5。优选地,第一阈值大于5。
接下来,利用该挑战按照第一预定次数重复计数第一个环形振荡器在第一时间长度内的振荡次数D1,以及第二个环形振荡器在第一时间长度内的振荡次数D2,并执行多次比较。如果所述第一预定次数的比较结果不完全相同,则返回步骤S202,重新生成16位挑战,重新选择两个环形振荡器。根据本发明的一个实施例,该多次比较可以通过步骤S204-步骤S208实现。
步骤S204:重复计数两个环形振荡器的振荡次数,并执行第二预定次数的比较。第二预定次数可以例如为十次、二十次、三十次等,为便于说明,以下以十次为例进行详细说明。
在响应生成阶段,首先,挑战的第一部分(即高8位)被转换成256位独热码以激活第一个环形振荡器,同时,将挑战的第一部分(即高8位)输入至数据选择器MUX的地址端A,使得数据选择器MUX将所选择的第一个环形振荡器的振荡波输出到第一输出端OUT1。计数器CNT1接收到该振荡波,并在第一时间长度内对振荡波的上升沿进行计数,输出振荡次数D1。然后,挑战的第二部分(即低8位)被转换成256位独热码以激活第二个环形振荡器,同时,将挑战的第二部分(即低8位)输入至数据选择器MUX的地址端A,使得数据选择器MUX将所选择的第二个环形振荡器的振荡波输出到第二输出端OUT2。计数器CNT2接收到该振荡波,并在第一时间长度内对振荡波的上升沿进行计数,输出振荡次数D2。
第一次比较:在第一时间,在第一时间长度内对第一个环形振荡器输出的振荡波进行计数,得到振荡次数D1;在第二时间,在第一时间长度内对第二个环形振荡器输出的振荡波进行计数,得到振荡次数D2,比较振荡次数D1和振荡次数D2的大小;
第二次比较:在第三时间,在第一时间长度内对第一个环形振荡器输出的振荡波进行计数,得到振荡次数D1;在第四时间,在第一时间长度内对第二个环形振荡器输出的振荡波进行计数,得到振荡次数D2,比较振荡次数D1和振荡次数D2的大小;以此类推,进行十次比较。
步骤S205:判断十次比较结果是否相同。如果十次比较结果均为振荡次数D1>振荡次数D2,或者十次比较结果均为振荡次数D1<振荡次数D2,即十次比较结果相同,则继续执行步骤S206。如果十次比较结果不完全相同,则返回步骤S202,重新生成16位挑战,重新选择两个环形振荡器。
步骤S206:输出响应并存储,且重复次数增加1。
如果十次比较结果均为振荡次数D1>振荡次数D2,则响应为1,如果十次比较结果均为振荡次数D1<振荡次数D2,则响应为0。优选地,可以将响应存储到数据缓冲器FIFO中。
步骤S207:判断重复次数是否达到第二阈值,如果是则执行步骤S208,输出响应且挑战数加1;如果否则继续执行步骤S204,继续进行比较。其中,第二阈值=第一预定次数/第二预定次数,第二阈值可以例如为12800,在这种情况下,第一预定次数为128000,每次输出的响应均进行了128000次比较。
步骤S209:判断挑战数是否达到第三阈值,如果是则执行步骤S210,输出挑战和相应的响应,作为该器件的密钥存储;如果否则继续执行步骤S202,重新生成挑战。第三阈值为用户设定的值,例如128,在这种情况下,会生成128个响应,即128个挑战-响应对。表2示出了部分输出结果,其中,挑战与响应相对应,可以利用该密钥对芯片进行加密和解密。
表2
上述步骤S201-步骤S210仅为示例,本领域技术人员可以根据需要对步骤S201-步骤S210的顺序进行变化,也可以省略某些步骤。图3示出了本发明另一个实施例的基于ROPUF的密钥生成方法的流程图,其省略了步骤S201。
步骤S302:随机生成16位挑战,16位挑战的第一部分用于激活第一个环形振荡器,16位挑战的第二部分用于激活第二个环形振荡器。
步骤S303:基于所计数的第一个环形振荡器在第一时间长度内的振荡次数和所述第二个环形振荡器在第一时间长度内的振荡次数,判断第一个环形振荡器在第一时间长度内的振荡次数和第二个环形振荡器在第一时间长度内的振荡次数的差的绝对值是否大于第一阈值。如果所述差的绝对值大于第一阈值,则继续步骤S304,如果所述差的绝对值小于或等于第一阈值,则返回步骤S302。
步骤S304-步骤S310与步骤S204-步骤S210相同,在此不再赘述。
本发明还提供一种基于RO PUF的密钥生成系统,该系统包括RO PUF电路、存储器以及处理器。存储器用于存储RO PUF电路所生成的响应,处理器被配置为实现上述基于ROPUF的密钥生成方法的步骤。
本发明还提供一种计算机可读存储介质,其上包含有计算机程序,所述计算机程序可被处理器执行以实现上述基于RO PUF的密钥生成方法的步骤。
本发明还提供一种电子设备,其包括:一个或多个处理器;以及存储器,其中存储器用于存储一个或多个可执行指令;所述一个或多个处理器被配置为经由执行所述一个或多个可执行指令以实现上述基于RO PUF的密钥生成方法的步骤。
本发明的基于RO PUF的密钥生成方法及其系统,可以提升RO PUF响应位稳定性,并在硬件开销最小的情况下减小密钥的误码率,避免响应位错误反转。该方法测试所有环形振荡器在第一时间长度内的振荡次数并生成振荡次数表,基于振荡次数表选择振荡次数差大于第一阈值的两个环形振荡器,并且通过比较器多次比较并输出响应位结果,保证所选择的两个环形振荡器通过比较器输出的响应位为稳定的1或0,使得误码率降为0。
本发明的基于RO PUF的密钥生成方法避免了使用汉明码、BCH码等纠错编码,避免了增加过多冗余位,减小了密文的存储位宽,从而降低了硬件开销,降低功耗。同时该方法在硬件开销最小的情况下,减小了密钥的误码率,解决了响应位错误反转的问题,使密钥的稳定性达到最高。
虽然本发明已经通过优选实施例进行了描述,然而本发明并非局限于这里所描述的实施例,在不脱离本发明范围的情况下还包括所作出的各种改变以及变化。
Claims (10)
1.一种基于RO PUF的密钥生成方法,所述RO PUF包括N个环形振荡器,N为大于2的整数,所述方法包括:
步骤20):随机生成用于选择第一个环形振荡器和第二个环形振荡器的挑战,确定所述第一个环形振荡器在第一时间长度内的振荡次数和所述第二个环形振荡器在第一时间长度内的振荡次数的差的绝对值大于第一阈值,其中N=2M/2,M是用于选择第一个环形振荡器和第二个环形振荡器的挑战的总位数;
步骤30):利用所述挑战按照第一预定次数重复计数所述第一个环形振荡器在第一时间长度内的振荡次数,以及所述第二个环形振荡器在第一时间长度内的振荡次数,并执行第一预定次数的比较,判断所述第一预定次数的比较结果是否相同;以及
步骤40):在所述第一预定次数的比较结果都相同时,输出所述挑战和相应的比较结果。
2.根据权利要求1所述的基于RO PUF的密钥生成方法,其中,所述步骤20)还包括:
步骤210):所述挑战用于激活第一个环形振荡器和第二个环形振荡器,基于所计数的所述第一个环形振荡器在第一时间长度内的振荡次数和所述第二个环形振荡器在第一时间长度内的振荡次数,判断所述差的绝对值是否大于第一阈值;
步骤220):如果所述差的绝对值小于或等于所述第一阈值,则重复所述步骤20)。
3.根据权利要求1所述的基于RO PUF的密钥生成方法,其中,在所述步骤20)之前还包括:
步骤10):获得包括每个环形振荡器在第一时间长度内的振荡次数的振荡次数表;
其中,所述步骤20)还包括:
步骤210):根据所述振荡次数表,判断所述差的绝对值是否大于第一阈值;
步骤220):如果所述差的绝对值小于或等于所述第一阈值,则重复所述步骤20)。
4.根据权利要求1所述的基于RO PUF的密钥生成方法,其中,所述步骤30)包括:
步骤310):重复计数所述第一个环形振荡器在第一时间长度内的振荡次数,以及所述第二个环形振荡器在第一时间长度内的振荡次数,并执行第二预定次数的比较;
步骤320):如果所述第二预定次数的比较结果均相同,则输出相应的比较结果并存储;
步骤330):如果所述第二预定次数的比较结果不完全相同,则返回执行步骤20);
步骤340):重复所述步骤310)-所述步骤330),直到重复次数达到第一预定次数/第二预定次数的数值。
5.根据权利要求1所述的基于RO PUF的密钥生成方法,其中,所述方法还包括:
步骤50):重复所述步骤20)-所述步骤40),直到重复次数达到第三阈值。
6.根据权利要求3所述的基于RO PUF的密钥生成方法,其中,所述步骤10)包括:
顺序激活环形振荡器,遍历所有的环形振荡器,测量每一个环形振荡器在第一时间长度内的振荡次数并记录在振荡次数表中。
7.根据权利要求1所述的基于RO PUF的密钥生成方法,其中,
所述挑战包括第一部分和第二部分,所述第一部分被转换成N位独热码并输入至N个环形振荡器的使能端,以激活第一个环形振荡器,
所述第二部分被转换成N位独热码并输入至N个环形振荡器的使能端,以激活第二个环形振荡器。
8.根据权利要求7所述的基于RO PUF的密钥生成方法,其中,所述第一部分与所述第二部分的位数相同。
9.根据权利要求1-8中任一项所述的基于RO PUF的密钥生成方法,其中,所述第一阈值大于5。
10.一种基于RO PUF的密钥生成系统,所述系统包括
RO PUF电路,其包括N个环形振荡器;
存储器,用于存储所述RO PUF电路所生成的比较结果;以及
处理器,其被配置为实现权利要求1-9中任一项所述的基于RO PUF的密钥生成方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211247649.4A CN115694832A (zh) | 2022-10-12 | 2022-10-12 | 基于ro puf的密钥生成方法及其系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211247649.4A CN115694832A (zh) | 2022-10-12 | 2022-10-12 | 基于ro puf的密钥生成方法及其系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115694832A true CN115694832A (zh) | 2023-02-03 |
Family
ID=85064646
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211247649.4A Pending CN115694832A (zh) | 2022-10-12 | 2022-10-12 | 基于ro puf的密钥生成方法及其系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115694832A (zh) |
-
2022
- 2022-10-12 CN CN202211247649.4A patent/CN115694832A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5248328B2 (ja) | 信号発生器をベースとした装置セキュリティ | |
JP5484595B2 (ja) | ビット生成装置及びビット生成方法 | |
Yan et al. | Phase calibrated ring oscillator PUF design and implementation on FPGAs | |
US9405510B2 (en) | Random number generator | |
Zalivaka et al. | Multi-valued arbiters for quality enhancement of PUF responses on FPGA implementation | |
US11277272B2 (en) | Integrated circuit and method for challenge-response physically unclonable function | |
US9361482B2 (en) | Device specific information generation device and device specific generation method | |
Thomas et al. | The LUT-SR family of uniform random number generators for FPGA architectures | |
US9722805B2 (en) | Integrated security device and signal processing method used for an integrated security device | |
CN106919764B (zh) | 基于fpga的环形振荡器物理不可克隆函数的可靠性检测方法 | |
Fujieda | On the feasibility of TERO-based true random number generator on Xilinx FPGAs | |
JP6423270B2 (ja) | 乱数生成装置及び乱数生成方法 | |
Lee et al. | Implementing a phase detection ring oscillator PUF on FPGA | |
CN113539334A (zh) | 用于物理不可克隆函数的测量机制 | |
CN114115807A (zh) | 随机数生成器及随机数生成方法 | |
JP6379032B2 (ja) | 乱数生成装置及び乱数生成方法 | |
CN115694832A (zh) | 基于ro puf的密钥生成方法及其系统 | |
JP5356362B2 (ja) | 乱数生成回路 | |
Mandry et al. | Modular puf coding chain with high-speed reed-muller decoder | |
KR101406941B1 (ko) | Fpga 기반된 진정한 난수 생성기의 성능 향상을 위한 장치 및 방법 | |
JP6886700B2 (ja) | 乱数生成回路 | |
US20150019603A1 (en) | Method for checking an output of a random number generator | |
US20230070146A1 (en) | Digital fingerprint generator and method for generating digital fingerprint | |
US20230025153A1 (en) | Random number generating circuit for generating random number based on plurality of sampling signals, and operating method thereof | |
Antoniadis et al. | An efficient implementation of a delay-based PUF construction |
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 |