CN106020771B - 一种基于puf的伪随机序列发生器 - Google Patents
一种基于puf的伪随机序列发生器 Download PDFInfo
- Publication number
- CN106020771B CN106020771B CN201610373538.6A CN201610373538A CN106020771B CN 106020771 B CN106020771 B CN 106020771B CN 201610373538 A CN201610373538 A CN 201610373538A CN 106020771 B CN106020771 B CN 106020771B
- Authority
- CN
- China
- Prior art keywords
- module
- variable
- pseudo
- random sequence
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
- G06F7/582—Pseudo-random number generators
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Storage Device Security (AREA)
Abstract
本发明提供一种基于PUF的伪随机序列发生器,包括:基于PUF的熵提取模块、实例化模块、重播种模块和伪随机序列发生模块。本发明首先通过PUF方式产生一个真随机数,作为熵输入,再根据需要产生的伪随机序列的特性选择不同的PUF实现方法产生伪随机序列。当序列的位数不能满足要求时,本发明会通过生成重播种变量V’和重播种常量C’继续进行迭代运算,直至生成的伪随机序列的位数达到要求。本发明所公开的基于PUF的伪随机序列发生器充分利用了PUF不可克隆的特性,通过提取真随机数作为种子,再利用哈希算法的不可逆性产生伪随机序列。相比现有的伪随机序列发生器,本发明产生的伪随机序列成本开销低,而随机性和安全性更有保证。
Description
技术领域
本发明涉及信息安全领域,特别涉及一种伪随机序列发生器。
背景技术
统计学在生活中应用越来越广泛,尤其是随机序列,它已广泛应用于密码学、扩频通讯、导航、集成电路的可测性设计、现代战争中的电子对抗技术等许多重要领域。随机数的出现无疑使统计学的独立性更高,因此,国内外对随机数发生器的研究也越来越重视。随机数发生器也被政府,各大金融机构确立为重要的研究方向。伪随机序列的伪随机性表现为预先的可确定性、可重复产生与处理。伪随机序列虽然不是真正的随机序列,但是当伪随机序列周期足够长时,它便具有与随机序列相同的良好统计特性。虽然伪随机序列可以做到良好的随机性,但如果攻击者设备性能足够好的话还是有方法攻破的。这使得伪随机序列的安全性很难保证。尤其在集成电路和通信等领域中,当测试样本足够大,大到覆盖整个序列周期时,伪随机序列的随机性就会大打折扣,很难模拟出集成电路和通信领域中真实的运行情况。
目前,随机序列的生成很多都是采用纯软件的方法,纯软件设计的方法虽然比较方便,也可能有较好的统计特性,但是必须面对这个事实:任何纯软件生成的序列都不可能是真正的随机序列。它的输出可准确预测,因此输出的序列必然具有伪随机性。而使用PUF(Physical Unclonable Function,物理不可克隆函数)的物理不可克隆特性就可以比较好的避免这个问题的发生。PUF设计的主要思路是通过物理实体的内在物理构造来唯一地标识单个物理实体,实现有效认证。PUF通过对一个物理实体输入一个激励,利用物理实体不可避免的内在物理构造的随机差异输出一个不可预测的响应,形成一个物理不可克隆的函数。利用PUF的特性可以获取自然界的真随机数作为种子,使得伪随机序列发生器在应用上可以产生随机性和安全性更高的伪随机序列。
而现有的伪随机序列随机性不足,现有的伪随机信号发生器容易被攻破,无法满足使用中对伪随机序列发生器性能方面的需求。
发明内容
为了克服上述所指的现有技术的不足之处,本发明提出一种基于PUF的伪随机序列发生器。本发明所述的伪随机序列发生器通过PUF产生真随机数种子,改变了现有伪随机序列发生器随机性不足、容易被攻破的情况,提高了伪随机序列发生器的性能。
为了实现上述目的,本发明提供一种基于PUF的伪随机序列发生器,包括:
基于PUF的熵提取模块、实例化模块、重播种模块和伪随机序列发生模块;基于PUF的熵提取模块通过PUF方式产生熵输入(entropy input)信号;实例化模块同时接收输入的个性化数据、安全强度数据以及基于PUF的熵提取模块产生的熵输入信号,通过哈希算法生成变量V和常量C,并将生成的变量V和常量C发送至伪随机序列发生模块;同时,重播种模块一并接收基于PUF的熵提取模块产生的熵输入信号以及实例化模块生成的变量V,通过哈希算法生成重播种变量V’和重播种常量C’,并将生成的重播种变量V’和重播种常量C’发送至伪随机序列发生模块;伪随机序列发生模块同时接收位宽数据、实例化模块产生的变量V、常量C、重播种模块生成的重播种变量V’和重播种常量C’,伪随机序列发生模块先根据位宽数据、实例化模块产生的变量V和常量C通过哈希算法生成伪随机序列,当变量V和常量C的寿命用尽时(即,需要增加伪随机序列的位数时,或者使用变量V计算的次数达到设定值时),伪随机序列发生模块向重播种模块发送重播种请求,再根据重播种模块生成的重播种变量V’和重播种常量C’继续通过哈希算法迭代生成伪随机序列,直至生成的伪随机序列的位数达到位宽数据的要求时输出伪随机序列,同时输出运行成功信号。
根据PUF技术物理上的不可克隆的特性,基于PUF的熵提取模块可以产生一个真随机数,作为熵输入(entropy input),以满足对生成数据随机性的要求。根据实际的需求标准不同,可以选择不同的PUF实现方法。而重播种模块会在输出的伪随机序列达不到位宽数据要求的时候,即变量V和常量C寿命用尽时,根据重播种请求,生成新的重播种变量V’和重播种常量C’以替代原先的变量V和常量C,保证系统的安全性。
各模块具体设计如下:
其中,所述的基于PUF的熵提取模块根据安全需求选用仲裁器PUF、环形振荡器PUF、触发器PUF、锁存PUF或SRAM-PUF方法产生熵输入信号,并将熵输入信号发送至实例化模块和重播种模块。
进一步地,所述的基于PUF的熵提取模块包括:PUF实现方法选择模块和PUF实现电路;PUF实现方法选择模块根据实际的安全需求选择不同的PUF实现方法。若安全需求较高,则使用数字电路PUF。具体而言,数字电路PUF可分为利用数字信号传播延时变化的数字电路PUF,如仲裁器PUF、环形振荡器PUF;以及利用数字电路存储特性的数字电路PUF,如触发器PUF、锁存PUF。基于PUF的熵提取模块根据PUF实现方法选择模块所选择的PUF实现方法,使用相应的PUF实现电路实现PUF,生成随机数作为后续电路的熵输入。
其中,所述的实例化模块包括顺序连接的熵输入获取模块、材料数据获取模块、第一哈希函数模块、第二哈希函数模块;其中材料数据获取模块首先根据输入的个性化数据、安全强度数据得到本模块所需的最小长度、最大长度、最小熵输入参数,并向熵输入获取模块发送所需的最小长度、最大长度、最小熵输入参数;熵输入获取模块接收基于PUF的熵提取模块输出的熵输入信号以及材料数据获取模块发送的最小长度、最大长度、最小熵输入参数,并根据最小长度、最大长度、最小熵输入参数的要求将合适大小的熵输入信号发送至材料数据获取模块;材料数据获取模块随后根据获取的合适大小的熵输入信号、安全强度数据以及个性化数据生成材料数据,并将材料数据发送至第一哈希函数模块;第一哈希函数模块接收材料数据并通过哈希算法生成固定长度数据作为变量V;第二哈希函数模块接收第一哈希函数模块生成的变量V并通过哈希算法生成常量C,当变量V和常量C都成功生成后则输出成功标志,并将变量V和常量C发送至伪随机序列发生模块。
其中,所述的重播种模块包括顺序连接的熵输入获取模块、材料数据获取模块、第一哈希函数模块、第二哈希函数模块;其中材料数据获取模块首先根据重播种请求接收安全强度数据、附加输入数据和实例化模块输出的变量V,得到本模块所需的最小长度、最大长度、最小熵输入参数,并向熵输入获取模块发送所需的最小长度、最大长度、最小熵输入参数;熵输入获取模块接收基于PUF的熵提取模块输出的熵输入信号以及材料数据获取模块发送的最小长度、最大长度、最小熵输入参数,并根据最小长度、最大长度、最小熵输入参数的要求将合适大小的熵输入信号发送至材料数据获取模块;材料数据获取模块随后根据重播种信号以及接收到的合适大小的熵输入信号、安全强度数据、附加输入、变量V生成重播种材料数据,并将重播种材料数据发送至第一哈希函数模块;第一哈希函数模块接收到重播种材料数据后通过哈希算法生成重播种固定长度数据作为重播种变量V’,并将重播种变量V’与实例化模块输出的变量V比较,若不同则将重播种变量V’发送至哈希函数2模块,否则重新计算;第二哈希函数模块接收到第一哈希函数模块发送的重播种变量V’后,通过哈希算法生成重播种常量C’,当重播种变量V’和重播种常量C’都成功生成后输出成功标志,并将重播种变量V’和重播种常量C’发送至伪随机序列发生模块。
其中,所述的伪随机序列发生模块,包括顺序连接的哈希算法模块和重播计数模块;若哈希算法模块接收的是实例化模块的变量V和常量C,则按照伪随机序列长度的要求通过哈希算法生成伪随机序列;若哈希算法模块接收的是重播种模块传输的重播种变量V’、重播种常量C’和附加输入,则按照伪随机序列长度和附加输入的要求通过哈希算法生成伪随机序列;哈希算法模块在成功生成伪随机序列后发送运行成功信号,同时向重播种计数模块发送伪随机序列生成信号,重播种计数模块在接收到伪随机序列生成信号后将重播种计数器加1,当重播种计数器计数达到设定值时,重播种计数模块向重播种模块发送重播种请求信号。
其中,所述的哈希算法模块包括附加输入数据处理模块、伪随机序列迭代生成模块和变量Vp处理模块;哈希算法模块生成伪随机序列的步骤如下:
第1步,若附加输入数据处理模块接收到的是实例化模块的变量V,则处理变量V与附加输入,并将处理过的数据和变量V相加得到哈希变量Vp,当附加输入为空时,哈希变量Vp与变量V相同;若附加输入数据处理模块接收到的是重播种模块传输的重播种变量V’则用重播种变量V’取代上述的变量V进行处理,将处理过的数据和变量V’相加得到哈希变量Vp;
第2步,将哈希变量Vp发送至伪随机序列迭代生成模块,伪随机序列迭代生成模块接收哈希变量Vp后,通过迭代算法每次生成256位的伪随机序列,直至输出的伪随机序列满足位宽数据的要求;其中,每次迭代后都将变量Vp的值加1;
第3步,当生成相应位宽的伪随机序列后,输出运行成功信号和伪随机序列生成信号,并将伪随机序列生成信号发送至重播种计数模块;变量Vp处理模块处理哈希变量Vp之后得到第二变量Vr,将第二变量Vr与常量C相加,并用相加的值作为输入更新变量V。
区别于现有技术,本发明具有如下有益效果:
本发明首次开创性地利用PUF方法产生的真随机数作为种子。PUF方法是利用存储器掉电后节点所产生的不可预测的震荡而产生随机数,具有物理不可克隆特性。由于真随机数具有无法预测的特性,而随后对熵输入进行处理的哈希算法具有不可逆性,因而本发明所生成的伪随机序列难以预测。相较于目前通常采用的利用伪随机数作种子而产生伪随机序列的方法,本发明生成的伪随机序列的随机性更高。
同时,由于本发明所述的伪随机序列发生器中设有重播种模块,重播种模块会在需要增加伪随机序列的位数时,通过重播种模块生成的重播种变量V’和重播种常量C’更新发送至伪随机序列发生模块的变量V和常量C从而更新伪随机序列。由此,伪随机序列发生模块生成伪随机序列的参数得以更新,进而可以降低伪随机序列的可预测性,保证了系统的安全性。通过基于PUF的熵提取模块提取熵输入,实例化模块接受熵输入并按照关于长度和安全强度的要求生成变量V和常量C;伪随机序列发生模块获取变量V和常量C以后通过哈希算法产生伪随机序列。
进一步地,本发明同时也会在重播计数器达到设定的参数值时,即变量V和常量C的寿命用尽时,用重播种变量V’和重播种常量C’更新变量V和常量C。通过定期更新生成伪随机序列的参数,本发明可以进一步降低伪随机序列的可预测性,进一步保证系统的安全性。
而且,根据对所产生的伪随机序列的安全性的不同需求,本发明还可以在基于PUF的熵提取模块中选择不同的PUF实现方法。如安全需求较高时,则可以选择数字电路PUF,具体可选择仲裁器PUF、环形振荡器PUF、触发器PUF或锁存PUF。通过选择不同的PUF实现电路来实现PUF,生成随机数作为后续电路的熵输入。这样就能保证本发明所述的伪随机序列发生器可以满足使用中对伪随机序列的不同安全需求。
附图说明
图1为本发明提供的基于PUF的伪随机序列发生器系意图。
图2为本发明提供的基于PUF的伪随机序列发生器中的实例化模块具体结构示意图。
图3为本发明提供的基于PUF的伪随机序列发生器中的伪随机序列发生模块具体结构示意图。
图4为本发明提供的基于PUF的伪随机序列发生器中的重播种模块具体结构示意图。
图5为本发明提供的基于PUF的伪随机序列发生器中的伪随机序列发生模块中哈希算法模块的具体结构示意图。
具体实施方式
下面依据附图详细描述本发明的实施方式
图1为本发明提供的基于PUF的伪随机序列发生器示意图。
如图1所示的基于PUF的伪随机序列发生器,包括:基于PUF的熵提取模块、实例化模块、重播种模块和伪随机序列发生模块。其中,基于PUF的熵提取模块通过PUF方式(具体而言,采用SRAM-PUF方式)产生熵输入信号,并将熵输入信号发送至实例化模块和重播种模块。应用中,基于PUF的熵提取模块也可以根据不同的安全需求选择诸如仲裁器PUF、环形振荡器PUF、触发器PUF、锁存PUF或此处的SRAM-PUF方法来产生熵输入信号。
图1中的实例化模块同时接收输入的个性化数据、安全强度数据以及基于PUF的熵提取模块产生的熵输入信号,通过哈希算法生成变量V和常量C,并将生成的变量V和常量C发送至伪随机序列发生模块。同时,实例化模块在生成变量V和常量C的同时也会输出成功标志至伪随机序列发生模块。
重播种模块负责在变量V和常量C寿命用尽时,根据安全强度、位宽数据、当前变量V以及熵输入信号的值生成新的重播种变量V’和重播种常量C’。重播种模块生成重播种变量V’和重播种常量C’的步骤与实例化模块生成变量V和常量C的过程类似。生成重播种变量V’和重播种常量C’后,将生成的重播种变量V’和重播种常量C’发送至伪随机序列发生模块。
伪随机序列发生模块同时接收位宽数据、实例化模块产生的变量V、常量C、重播种模块生成的重播种变量V’和重播种常量C’,伪随机序列发生模块先根据位宽数据、实例化模块产生的变量V和常量C通过哈希算法生成伪随机序列,当需要增加伪随机序列的位数时,伪随机序列发生模块向重播种模块发送重播种请求,再根据重播种模块生成的重播种变量V’和重播种常量C’继续通过哈希算法迭代生成伪随机序列,直至生成的伪随机序列的位数达到位宽数据的要求时输出伪随机序列,同时输出运行成功信号。
图2为本发明提供的基于PUF的伪随机序列发生器中的实例化模块具体结构示意图。实例化模块包括顺序连接的熵输入获取模块、材料数据获取模块、第一哈希函数模块、第二哈希函数模块。其中材料数据获取模块首先根据输入的个性化数据、安全强度数据得到本模块所需的最小长度、最大长度、最小熵输入参数,并向熵输入获取模块发送所需的最小长度、最大长度、最小熵输入参数。熵输入获取模块接收基于PUF的熵提取模块输出的熵输入信号以及材料数据获取模块发送的最小长度、最大长度、最小熵输入参数,并根据最小长度、最大长度、最小熵输入参数的要求将合适大小的熵输入信号发送至材料数据获取模块。材料数据获取模块随后根据获取的合适大小的熵输入信号、安全强度数据以及个性化数据生成材料数据,并将材料数据发送至第一哈希函数模块;第一哈希函数模块接收材料数据并通过哈希算法生成固定长度数据作为变量V;第二哈希函数模块接收第一哈希函数模块生成的变量V并通过哈希算法生成常量C,当变量V和常量C都成功生成后则输出成功标志,并将变量V和常量C发送至伪随机序列发生模块。
图3为本发明提供的基于PUF的伪随机序列发生器中的伪随机序列发生模块具体结构示意图。伪随机序列发生模块,包括顺序连接的哈希算法模块和重播计数模块。若哈希算法模块接收的是实例化模块的变量V和常量C,则按照伪随机序列长度的要求通过哈希算法生成伪随机序列;若哈希算法模块接收的是重播种模块传输的重播种变量V’、重播种常量C’和附加输入,则按照伪随机序列长度和附加输入的要求通过哈希算法生成伪随机序列;哈希算法模块在成功生成伪随机序列后发送运行成功信号,同时向重播种计数模块发送伪随机序列生成信号,重播种计数模块在接收到伪随机序列生成信号后将重播种计数器加1,当重播种计数器计数达到设定值时,即表示变量V和常量C的寿命用尽,需要用重播种变量V’、重播种常量C’对原先的变量V和常量C进行更新。重播种计数模块向重播种模块发送重播种请求信号。重播种计数器计数的设定值可以根据实际应用的需求设置。选取较小的设定值可以使得变量V和常量C经常得到更新,使产生的伪随机序列的随机性更好。
图4为本发明提供的基于PUF的伪随机序列发生器中的重播种模块具体结构示意图。重播种模块包括顺序连接的熵输入获取模块、材料数据获取模块、第一哈希函数模块、第二哈希函数模块。其中材料数据获取模块首先根据重播种请求接收安全强度数据、附加输入数据和实例化模块输出的变量V,得到本模块所需的最小长度、最大长度、最小熵输入参数,并向熵输入获取模块发送所需的最小长度、最大长度、最小熵输入参数;熵输入获取模块接收基于PUF的熵提取模块输出的熵输入信号以及材料数据获取模块发送的最小长度、最大长度、最小熵输入参数,并根据最小长度、最大长度、最小熵输入参数的要求将合适大小的熵输入信号发送至材料数据获取模块;材料数据获取模块随后根据重播种信号以及接收到的合适大小的熵输入信号、安全强度数据、附加输入、变量V生成重播种材料数据,并将重播种材料数据发送至第一哈希函数模块;第一哈希函数模块接收到重播种材料数据后通过哈希算法生成重播种固定长度数据作为重播种变量V’,并将重播种变量V’与实例化模块输出的变量V比较,若不同则将重播种变量V’发送至哈希函数2模块,否则重新计算;第二哈希函数模块接收到第一哈希函数模块发送的重播种变量V’后,通过哈希算法生成重播种常量C’,当重播种变量V’和重播种常量C’都成功生成后输出成功标志,并将重播种变量V’和重播种常量C’发送至伪随机序列发生模块。
图5为本发明提供的伪随机序列发生模块中使用的哈希算法模块的具体结构示意图。实例化模块和重播种模块中的第二哈希函数模块、第二哈希函数模块也都会使用到哈希函数。只是实例化模块和重播种模块中所使用的哈希函数主要是采用已经公开的哈希算法对数据进行单向压缩。而图5所示的哈希计算需要先对数据进行预处理,预处理之后再对数据进行单向压缩。本模块主要包括附加输入数据处理模块、伪随机序列迭代生成模块和变量Vp处理模块。哈希算法模块生成伪随机序列的步骤如下:
第1步,若附加输入数据处理模块接收到的是实例化模块的变量V,则将变量V置于低位,将附加输入置于高位进行拼接处理,并将拼接处理后的数据通过哈希算法进行处理。将经过哈希算法处理过的数据和变量V相加得到哈希变量Vp,当附加输入为空时,哈希变量Vp与变量V相同;若附加输入数据处理模块接收到的是重播种模块传输的重播种变量V’则用重播种变量V’取代上述的变量V进行处理,将处理过的数据和变量V’相加得到哈希变量Vp;
第2步,将哈希变量Vp发送至伪随机序列迭代生成模块,伪随机序列迭代生成模块接收哈希变量Vp后,通过迭代算法每次生成256位的伪随机序列,直至输出的伪随机序列满足位宽数据的要求;其中,每次迭代后都将变量Vp的值加1,以此保证每次迭代时变量Vp的值都不同。
第3步,当生成相应位宽的伪随机序列后,输出运行成功信号和伪随机序列生成信号,并将伪随机序列生成信号发送至重播种计数模块;变量Vp处理模块利用哈希算法对Vp进行处理,再将处理后的数据与变量Vp相加,得到第二变量Vr,将第二变量Vr与常量C相加,并用相加的值作为输入更新变量V
实施例所提供的基于PUF的伪随机序列发生器,通过PUF物理不可克隆的原理,大大提高了伪随机序列发生器种子的安全性;通过PUF的可产生真随机数的原理可以得到真随机的种子,这样使得伪随机序列发生器的随机性大大提高,而且利用哈希算法的不可逆性,使得本系统有着很高的安全性。
本领域普通技术人员可以理解:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (5)
1.一种基于PUF的伪随机序列发生器,其特征在于,包括:
基于PUF的熵提取模块、实例化模块、重播种模块和伪随机序列发生模块;其中,基于PUF的熵提取模块通过PUF方式产生熵输入信号;实例化模块同时接收输入的个性化数据、安全强度数据以及基于PUF的熵提取模块产生的熵输入信号,通过哈希算法生成变量V和常量C,并将生成的变量V和常量C发送至伪随机序列发生模块;伪随机序列发生模块同时接收位宽数据、实例化模块产生的变量V、常量C,接收后先根据位宽数据、实例化模块产生的变量V和常量C通过哈希算法生成伪随机序列,当变量V和常量C的寿命用尽时,伪随机序列发生模块向重播种模块发送重播种请求,重播种模块同时接收基于PUF的熵提取模块产生的熵输入信号以及实例化模块生成的变量V,通过哈希算法生成重播种变量V’和重播种常量C’,并将生成的重播种变量V’和重播种常量C’发送至伪随机序列发生模块,再用重播种变量V’和重播种常量C’代替变量V和常量C,由伪随机序列发生模块生成伪随机序列;当生成的伪随机序列的位数达到位宽数据的要求时输出伪随机序列和输出运行成功信号;
其中,所述的实例化模块包括顺序连接的熵输入获取模块、材料数据获取模块、第一哈希函数模块、第二哈希函数模块;其中材料数据获取模块首先根据输入的个性化数据、安全强度数据得到本模块所需的最小长度、最大长度、最小熵输入参数,并发送至熵输入获取模块;熵输入获取模块根据接收到的自基于PUF的熵提取模块的熵输入信号以及来自材料数据获取模块的最小长度、最大长度、最小熵输入参数,生成合适大小的熵输入信号并发送至材料数据获取模块;材料数据获取模块接收熵输入获取模块发送的合适大小的熵输入信号后生成材料数据,并将材料数据发送至第一哈希函数模块;第一哈希函数模块接收材料数据并通过哈希算法生成固定长度数据作为变量V;第二哈希函数模块接收第一哈希函数模块生成的变量V并通过哈希算法生成常量C,当变量V和常量C都成功生成后则输出成功标志,并将变量V和常量C发送至伪随机序列发生模块。
2.根据权利要求1所述的基于PUF的伪随机序列发生器,其特征在于,所述的基于PUF的熵提取模块选用仲裁器PUF、环形振荡器PUF、触发器PUF、锁存PUF或SRAM-PUF方法产生熵输入信号。
3.根据权利要求1所述的基于PUF的伪随机序列发生器,其特征在于,所述的重播种模块包括顺序连接的熵输入获取模块、材料数据获取模块、第一哈希函数模块、第二哈希函数模块;其中材料数据获取模块首先根据重播种请求接收安全强度数据、附加输入数据和实例化模块输出的变量V,得到本模块所需的最小长度、最大长度、最小熵输入参数,并发送至熵输入获取模块;熵输入获取模块接收基于PUF的熵提取模块输出的熵输入信号并根据材料数据获取模块发送的最小长度、最大长度、最小熵输入参数的要求将合适大小的熵输入信号发送至材料数据获取模块;材料数据获取模块随后根据重播种信号、来自熵输入获取模块的合适大小的熵输入信号以及安全强度数据、附加输入、变量V生成重播种材料数据,并将重播种材料数据发送至第一哈希函数模块;第一哈希函数模块接收到重播种材料数据后通过哈希算法生成重播种固定长度数据作为重播种变量V’,并将重播种变量V’与实例化模块输出的变量V比较,若重播种变量V’与变量V不同则将重播种变量V’发送至第二哈希函数模块,若重播种变量V’与变量V相同则重新计算重播种变量V’;第二哈希函数模块接收到第一哈希函数模块发送的重播种变量V’后,通过哈希算法生成重播种常量C’,当重播种变量V’和重播种常量C’都成功生成后输出成功标志,并将重播种变量V’和重播种常量C’发送至伪随机序列发生模块。
4.根据权利要求1所述的基于PUF的伪随机序列发生器,其特征在于,所述的伪随机序列发生模块,包括顺序连接的哈希算法模块和重播计数模块;若哈希算法模块接收的是实例化模块的变量V和常量C,则按照伪随机序列长度和附加输入的要求通过哈希算法生成伪随机序列;若哈希算法模块接收的是重播种模块输出的重播种变量V’、重播种常量C’,则用重播种变量V’取代变量V,用重播种常量C’取代常量C进行计算,生成伪随机序列;哈希算法模块在成功生成伪随机序列后发送运行成功信号,同时向重播种计数模块发送伪随机序列生成信号,重播种计数模块在接收到伪随机序列生成信号后将重播种计数器加1,当重播种计数器计数达到设定值时,重播种计数模块向重播种模块发送重播种请求信号。
5.根据权利要求4所述的基于PUF的伪随机序列发生器,其特征在于,所述的哈希算法模块包括附加输入数据处理模块、伪随机序列迭代生成模块和变量Vp处理模块;哈希算法模块生成伪随机序列的步骤如下:
第1步,若附加输入数据处理模块接收到的是实例化模块的变量V,则将变量V与附加输入进行拼接,并将拼接后的数据通过哈希算法进行处理,将经过哈希算法处理过的数据与变量V相加得到哈希变量Vp,当附加输入为空时,哈希变量Vp与变量V相同;若附加输入数据处理模块接收到的是重播种模块传输的重播种变量V’则用重播种变量V’取代上述的变量V进行处理得到哈希变量Vp;
第2步,将哈希变量Vp发送至伪随机序列迭代生成模块,伪随机序列迭代生成模块接收哈希变量Vp后,通过迭代算法每次生成256位的伪随机序列,直至输出的伪随机序列满足位宽数据的要求;其中,每次迭代后都将变量Vp的值加1;
第3步,当生成相应位宽的伪随机序列后,输出运行成功信号和伪随机序列生成信号,并将伪随机序列生成信号发送至重播种计数模块;变量Vp处理模块处理哈希变量Vp之后生成第二变量Vr,将第二变量Vr与常量C相加,并用相加的值取代变量V。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610373538.6A CN106020771B (zh) | 2016-05-31 | 2016-05-31 | 一种基于puf的伪随机序列发生器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610373538.6A CN106020771B (zh) | 2016-05-31 | 2016-05-31 | 一种基于puf的伪随机序列发生器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106020771A CN106020771A (zh) | 2016-10-12 |
CN106020771B true CN106020771B (zh) | 2018-07-20 |
Family
ID=57092860
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610373538.6A Active CN106020771B (zh) | 2016-05-31 | 2016-05-31 | 一种基于puf的伪随机序列发生器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106020771B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107256370B (zh) * | 2017-05-27 | 2019-12-10 | 东南大学 | 一种基于sram-puf的模糊保险箱的密钥存储方法 |
EP3454318B1 (en) | 2017-09-12 | 2022-05-11 | eMemory Technology Inc. | Security system with entropy bits generated by a puf |
CN108681441B (zh) * | 2018-04-25 | 2021-06-01 | 东南大学 | 一种基于br-puf的随机数生成器 |
CN109040067B (zh) * | 2018-08-02 | 2020-12-11 | 广东工业大学 | 一种基于物理不可克隆技术puf的用户认证设备及认证方法 |
US11294640B2 (en) * | 2019-03-13 | 2022-04-05 | Ememory Technology Inc. | Random number generator |
CN110134369B (zh) * | 2019-04-15 | 2023-05-30 | 深圳市纽创信安科技开发有限公司 | 随机数发生器、随机数发生方法及芯片 |
US11662978B2 (en) | 2020-06-04 | 2023-05-30 | PUFsecurity Corporation | Modular operation circuit adopting iterative calculations |
TWI782540B (zh) * | 2020-06-04 | 2022-11-01 | 熵碼科技股份有限公司 | 基於物理不可複製功能的真隨機數產生器以及用於產生真隨機數的方法 |
WO2023211314A1 (ru) * | 2022-04-29 | 2023-11-02 | Общество с ограниченной ответственностью "Бора" (ООО "Бора") | Генератор псевдослучайных последовательностей приемника сигналов глобальных навигационных спутниковых систем |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012136763A2 (en) * | 2011-04-05 | 2012-10-11 | Intrinsic Id B.V. | Random number generating system based on memory start-up noise |
CN103544410A (zh) * | 2013-09-30 | 2014-01-29 | 华中科技大学 | 一种嵌入式微处理器非可克隆函数密钥认证系统和方法 |
CN104836669A (zh) * | 2015-05-08 | 2015-08-12 | 东南大学 | 一种基于sram puf的安全认证方法及一种终端、认证系统 |
-
2016
- 2016-05-31 CN CN201610373538.6A patent/CN106020771B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012136763A2 (en) * | 2011-04-05 | 2012-10-11 | Intrinsic Id B.V. | Random number generating system based on memory start-up noise |
CN103544410A (zh) * | 2013-09-30 | 2014-01-29 | 华中科技大学 | 一种嵌入式微处理器非可克隆函数密钥认证系统和方法 |
CN104836669A (zh) * | 2015-05-08 | 2015-08-12 | 东南大学 | 一种基于sram puf的安全认证方法及一种终端、认证系统 |
Non-Patent Citations (7)
Title |
---|
"Efficient Implementation of True Random Number Generator Based on SRAM PUFs";Vincent van der Leest等;《Lecture Notes in Computer Science》;20121231;第6805卷;第300-318页 * |
"Lightweight PUF-Based Key and Random Number Generation";Van Herrewege A;《KU Leuven – Faculty of Engineering Science》;20150131;第1-177页 * |
"PUFKEY:A high-security and high-throughput hardware true random number generator for sensor networks";Dongfang Li等;《Sensors》;20151016;第26251-26266页 * |
"基于动态重载的RFID标签所有权转换协议研究";甘勇等;《轻工学报》;20160331;第31卷(第2期);第97-102页 * |
"嵌入式SoC片上SRAM PUF的设计与实现";刘客;《中国优秀硕士学位论文全文数据库 信息科技辑》;20140615;第2014年卷(第6期);I135-197 * |
"物理非克隆函数后处理加密系统开发与研究";余小娟;《中国优秀硕士学位论文全文数据库 信息科技辑》;20150315;第2015年卷(第3期);I136-215 * |
Tim Güneysu等."Cryptanalytic Tools".《Ruhr-Universität Bochum》.2015,第1-95页. * |
Also Published As
Publication number | Publication date |
---|---|
CN106020771A (zh) | 2016-10-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106020771B (zh) | 一种基于puf的伪随机序列发生器 | |
US8746363B2 (en) | System for conducting remote biometric operations | |
CN109921894B (zh) | 数据传输加密方法、装置及存储介质、服务器 | |
JP7399975B2 (ja) | マルチソースエントロピーのランダム性の集約および配布ネットワーク | |
US7813503B2 (en) | Method and system for generation of cryptographic keys for use in cryptographic systems | |
CN102461063B (zh) | 基于硬件的加密技术 | |
US9553722B2 (en) | Generating a key based on a combination of keys | |
CN109005040A (zh) | 动态多密钥混淆puf结构及其认证方法 | |
CN104168264B (zh) | 一种低成本、高安全性物理不可克隆函数电路 | |
CN103916236B (zh) | 面向aes算法的抗功耗攻击方法及电路实现 | |
CN104378196A (zh) | 加解密算法的安全执行方法和装置 | |
CN103560876A (zh) | 一种使用基于混沌的随机时钟的加密方法及装置 | |
CN109981249A (zh) | 基于拉链式动态散列和nlfsr的加密解密方法及装置 | |
CN109787745A (zh) | 一种基于多推断利用的分组密码容错代数旁路分析方法 | |
WO2006060410A2 (en) | Generation of cryptographic keys and the like | |
US20060002550A1 (en) | Method and system for generation of cryptographic keys and the like | |
GB2498063A (en) | Checking acceptance of a string by automaton | |
CN103607275A (zh) | 一种安全性适应速度变化的加密方法及装置 | |
CN107171797A (zh) | 一种数据加密方法及装置 | |
CN106062749A (zh) | 使用查询数据提供流行率信息 | |
CN106372529B (zh) | 一种文件加解密的方法和系统 | |
CN106502627B (zh) | 一种伪随机数种子生成方法 | |
CN115208550A (zh) | 一种应用于智能电网中的动态交叉混沌加密方法和系统 | |
CN104461452A (zh) | 片上系统中生成真随机数的方法及装置 | |
Riyadi et al. | Real-time testing on improved data transmission security in the industrial control system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |