CN103188075B - 一种密钥和真随机数发生器及生成密钥和真随机数的方法 - Google Patents

一种密钥和真随机数发生器及生成密钥和真随机数的方法 Download PDF

Info

Publication number
CN103188075B
CN103188075B CN201310041627.7A CN201310041627A CN103188075B CN 103188075 B CN103188075 B CN 103188075B CN 201310041627 A CN201310041627 A CN 201310041627A CN 103188075 B CN103188075 B CN 103188075B
Authority
CN
China
Prior art keywords
response
key
bit
random number
true random
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.)
Expired - Fee Related
Application number
CN201310041627.7A
Other languages
English (en)
Other versions
CN103188075A (zh
Inventor
邹候文
彭俊好
唐春明
董军武
张世渡
龚征
苏胡双
黄东亮
刘炜炜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
HANGZHOU SHENGYUAN CHIP TECHNIQUE CO Ltd
Qishan Guangzhou Electronic Technology Co Ltd
Shenzhen Viewat Technology Co Ltd
South China University of Technology SCUT
South China Normal University
Guangzhou University
Original Assignee
Guangzhou Qishantang Electronic Technology Co ltd
HANGZHOU SYNOCHIP TECHNOLOGIES CO LTD
Shenzhen Viewat Technology Co ltd
South China University of Technology SCUT
South China Normal University
Guangzhou University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guangzhou Qishantang Electronic Technology Co ltd, HANGZHOU SYNOCHIP TECHNOLOGIES CO LTD, Shenzhen Viewat Technology Co ltd, South China University of Technology SCUT, South China Normal University, Guangzhou University filed Critical Guangzhou Qishantang Electronic Technology Co ltd
Priority to CN201310041627.7A priority Critical patent/CN103188075B/zh
Publication of CN103188075A publication Critical patent/CN103188075A/zh
Priority to PCT/CN2014/071464 priority patent/WO2014117695A1/zh
Application granted granted Critical
Publication of CN103188075B publication Critical patent/CN103188075B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种密钥和真随机数发生器及生成密钥和真随机数的方法,发生器包括双仲裁器物理不可克隆模块DAPUF、触发信号产生寄存器TReg、应答采集寄存器RReg、微控器、LFSR、Hash引擎、易失存储器和非易失存储器。本发明的另一目的是提供密钥和真随机数的生成方法,包括(1)密钥初始化过程;(2)密钥重建过程;(3)真随机数初始化过程;(4)真随机数产生过程。本发明通过利用DAPUF的应答结合所提的步骤生成密钥和真随机数:1)生成密钥的误码率由DAPUF的噪声和多数选举法的选举次数决定,可以不受限制地降低生成密钥的误码率;2)N次更新LFSR使随机种子成为一个不确定的熵源,由不确定熵源作为挑战产生的应答经Hash处理后使输出的真随机数满足伪随机性。

Description

一种密钥和真随机数发生器及生成密钥和真随机数的方法
技术领域
本发明涉及信息安全中的密码芯片安全领域,特别涉及高安全等级的密码芯片的密钥和真随机数生成方法。
背景技术
密钥安全是密码芯片安全的先决条件,一旦泄密,则导致密码芯片被彻底攻破。传统的密码芯片把密钥存放在无防护措施的存储器中,这使得密钥容易被Torrance等人在论文TJ09“Thestate-of-the-artinICreverseengineering”(IC逆向工程的技术发展水平)中的逆向工程方法窃取。通过增强存储区中密钥的安全性可以增加窃取密钥的难度,但由于这样做的代价太高,而不适用于大多数密码芯片的应用场合。已有的攻击例子表明,即使存储器采用昂贵的防护措施也不足以抵抗装备精良的攻击者。例如国际可信联盟TCG推荐的“具有高度安全性”的英飞凌的可信平台模块TPM被Tarnovsky在论文T10“Deconstructinga‘Secure’Processor”(解剖一个’安全’的处理器)中攻破,Tarnovsky通过物理入侵攻击—“桥映射”(bridgemap)方法绕过芯片无数的防御网络,然后用极为细小的探针接入数据总线而不被芯片的入侵检测电路发觉且不引起芯片自毁,然后读出芯片中存储的数据,包括加密密钥和唯一的制造信息,从而可克隆TPM,这一事件导致如日中天的国际芯片巨头英飞凌迅速湮灭。Skorobogatov在论文S10“FlashMemory'Bumping'Attack”(Flash存储器的’撞击’攻击)中通过半入侵的撞击(Bumping)从“高安全”的Flash中提取秘密,该攻击的受害者是Actel(原全球第三大FPGA供应商)的A3P250FPGA,找到了整个系列FPGA的主密钥及后门,导致董事会未经股东讨论就匆匆卖掉公司,并最终致使Actel消亡。
物理不可克隆模块(PUF)是解决密钥安全问题的有效手段。PUF是一个拥有秘密参数的单向函数,该秘密参数由生产过程中无法控制的因素引入,致使PUF天然拥有独一性、随机性和不可克隆性。因此,PUF能够更安全地产生和更新密钥,而且密钥仅在需要时才以数字形式出现,这使得逆向工程难以起作用。此外,采用适当的协议和芯片内部结构设计,可令攻击者难以甄别出PUF产生密钥的电路,探测产生密钥的电路则导致PUF损坏,从而有效地提高密钥的安全性。
用PUF产生密钥必须满足可靠性和安全性要求。可靠性要求是指PUF的噪声要低于某个值,例如噪声<1e-9,或者误码率低于1e-6。安全性要求是指PUF应当具备优异的抗攻击能力。Maes等人在论文MV10“Physicallyunclonablefunctions:Astudyonthestateoftheartandfutureresearchdirections”(物理不可克隆模块:发展现状及其将来的研究方向)中指出,现有的硅PUF的噪声通常在0.01%-12%之间,用PUF生成密钥必须采用适当的方法降低噪声。Dodis等人在论文DRS04“Fuzzyextractors:Howtogeneratestrongkeysfrombiometricsandothernoisydata”(模糊提取:如何从生物特征和其它带噪声数据中生成强壮的密钥)中,提出了从带噪声数据中获得密钥的方法—模糊提取(Fuzzyextraction),该方法包含初始化(generation)和重建(reproduction)两个过程,重建时使用纠错码(ECC)降低噪声。等人在论文BGSST08“EfficienthelperdatakeyextractoronFPGAs”(基于FPGA的高效的密钥提取辅助数据)中,使用ECC降低PUF的噪声。Maes等人在论文MTV09“Low-overheadimplementationofasoftdecisionhelperdataalgorithmforSRAMPUFs”(基于SRAM_PUF的软判决辅助数据法的低开销实现)中,采用软判决辅助数据法改善实现效率。Yu等人在论文YD10“Secureandrobusterrorcorrectionforphysicalunclonablefunctions”(安全强健的物理不可克隆模块纠错法)中,提出用IBS方法改善可靠性,然后使用ECC把噪声降到1e-9。Maes等人在论文MVV12“PUFKY:AFullyFunctionalPUF-BasedCryptographicKeyGenerator”(PUFKY:一种具有完全功能的基于PUF的密钥生成器)中,提出基于PUF的密钥生成器(PUFKY),也使用了ECC降低噪声。ECC虽然解决了PUF的可靠性问题,但却需要昂贵的资源开销,更重要的是引入了新的安全问题:ECC易受旁路攻击(ECC-SCA)—Karakoyunlu等人在论文KS10“DifferentialtemplateattacksonPUFenabledcryptographicdevices”(基于PUF的密码器件的差分模板攻击)中提出ECC的SCA问题。
Armknecht等人在论文AMSST09“Memoryleakage-resilientencryptionbasedonphysicallyunclonablefunctions”(基于物理不可克隆模块加密的抗存储器泄露方案)中,采用多数投票法(TemporalMajorityVoting)并丢弃模糊比特(DarkBit)(TMV-DB)来提高SRAM-PUF的可靠性。然而,TMV-DB方法仅在初始化过程丢弃模糊比特,无法丢弃或改正重建过程中出现的模糊比特。此外,确定模糊比特需要大量的实验测试,这使初始化成为一项开销巨大的工作。Majzoobi等人在论文MKD10“FPGAPUFusingprogrammabledelaylines”(FPGA上基于可编程延时路径的PUF)中,也采用多数投票法提高APUF的可靠性,采用重复输入挑战选出最大可能的结果作为应答,使得温度高达75度时噪声不超过2%。Maiti和Schaumont在论文MS11“ImprovedringoscillatorPUF:anFPGA-friendlysecureprimitive”(改进的振荡环PUF:一种易于FPGA实现的安全基元)中,采用可配置的振荡环(CRO)技术使ROPUF产生接近100%可靠的应答。虽然CRO技术可以产生接近100%可靠的应答比特,但其挑战应答对数量不多限制了应用范围,且接近100%可靠也并不意味着能满足密钥的可靠性要求。
中国发明专利(申请号为201210013772.X)公开了“一种密码芯片系统及密钥提取方法”,该技术方案利用DAPUF的正负仲裁异或结果定位并改正重建中发生的错误,结合安全多方计算无需ECC即可满足密钥的可靠性要求。然而,该方法仍存在一些不足,例如,当电压降低超过2%或环境温度超过40度时,其产生密钥时使用安全多方计算的概率高于1e-6,而安全多方计算的代价极为高昂。
综上所述,考虑电压和温度变化较大时,现有的PUF方案只有借助ECC方可有效满足密钥的可靠性要求,而ECC易受旁路攻击,从而严重影响密钥的安全性。
发明内容
本发明的目的在于克服现有技术的缺点与不足,提供一种密钥和真随机数发生器,无需纠错码即可满足密钥的可靠性要求,从而规避基于PUF的密钥生成器的纠错码旁路攻击问题。
本发明的第二目的在于,提供一种密钥和真随机数生成器生成密钥的方法,从而有效地增强密钥在产生和使用过程中的安全性,并有效地改善在穷搜克隆、碰撞克隆、半入侵探测和建模攻击之下的安全性,以及有效地增强密码芯片抵抗物理入侵攻击的能力。
本发明的第三目的在于,提供一种密钥和真随机数生成器生成真随机数的方法,从而有效地改善密钥和真随机数生成器的实现效率,所述的实现效率包括运算速度和占用的芯片面积。
为了达到上述第一目的,本发明采用以下技术方案:
本发明一种密钥和真随机数生成器,包括双仲裁器物理不可克隆模块DAPUF、触发信号产生寄存器TReg、应答采集寄存器RReg、微控器Controller、线性反馈移位寄存器LFSR、Hash引擎、易失存储器RAM和非易失存储器ROM;
所述双仲裁器物理不可克隆模块DAPUF由敏感电路和仲裁电路组成;所述敏感电路包含n个选择器,所述选择器包含上下两个输入端、一个控制端以及上下两个输出端,n个选择器按顺序排列,前一个选择器的上下两个输出端与后一个选择器的上下两个输入端相连接,每个选择器的控制端与LFSR中的一比特寄存器相连接;当选择器的控制端输入为0或者1时,选择器上输入端与上输出端连通以及下输入端与下输出端连通,或者上输入端与下输出端连通以及下输入端与上输出端连通;所述仲裁电路包含正负两个仲裁器,每个仲裁器均拥有上下两个输入端和一个输出端;敏感电路的第n个选择器的上下两个输出端分别与正仲裁器的上下两个输入端相连接,正负两个仲裁器的两个输入端交叉连接;DAPUF的n个选择器的控制端接收LFSR传送过来的挑战C,DAPUF的第一个选择器的两个输入端接收触发信号产生寄存器TReg传送过来的上升沿触发信号;LFSR传送过来的挑战C决定了敏感电路的上下两路信号的一种特定通路状态,两路上升沿触发信号沿着这种特定通路状态的两条通路最终送到正仲裁器和负仲裁器;正负两个仲裁器根据上下两路上升沿触发信号到达的先后顺序决定其输出,如果某个仲裁器的上输入端的上升沿比下输入端的上升沿先到达,则该仲裁器输出1,否则输出0;称DAPUF的输出为应答,正负两个仲裁器的应答存入应答采集寄存器RReg中;
所述触发信号产生寄存器TReg由两比特寄存器组成,其中一比特寄存器连接DAPUF敏感电路的第一个选择器的上输入端,另一比特寄存器连接DAPUF敏感电路第一个选择器的下输入端,在微控器Controller的控制下向TReg写入00和写入11,从而为DAPUF的敏感电路提供上升沿触发信号;
所述应答采集寄存器RReg由两比特寄存器组成,一比特寄存器接收DAPUF的正仲裁应答,另一比特寄存器接收DAPUF的负仲裁应答,RReg所采集的应答交给微控器Controller处理;
所述微控器Controller用于读取存放在非易失存储器ROM中的辅助数据中的挑战C写入LFSR、控制LFSR线性反馈移位产生DAPUF的挑战、控制触发信号产生寄存器TReg产生DAPUF的上升沿触发信号、从应答采集寄存器RReg读取并处理DAPUF的应答、控制Hash引擎运算并读写易失存储器RAM和非易失存储器ROM,密钥和真随机数的产生也在微控器Controller的控制下完成;
所述线性反馈移位寄存器LFSR用于存放微控器Controller送来的挑战C,并在微控器的控制下线性反馈移位产生DAPUF的挑战;
所述Hash引擎包含4个参数,所述每个参数均是一个任意随机数,其中第一参数与DAPUF的应答运算后由Hash引擎处理产生辅助数据中的应答单向结果HR,第二参数与DAPUF的应答运算后由Hash引擎处理产生密钥,第三参数与DAPUF的应答运算后由Hash引擎处理产生和更新随机种子Seed,第四参数与DAPUF的应答运算后经Hash引擎处理,所得的结果用于更新真随机数初始向量IV以及作为真随机数使用;所述参数的运算是异或或者连接运算,当用加密算法构造Hash引擎时,则所述参数的运算是指参数作为密钥或者明文参与加密运算;
所述易失存储器RAM用于存储微控器Controller运算过程中的临时变量;
所述非易失存储器ROM用于存储生成密钥所需要的辅助数据和产生真随机数的初始向量IV。
为了达到上述第二发明目的,本发明采用以下技术方案:
本发明密钥和真随机数生成器生成密钥的方法,包括下述步骤:
S11、执行密钥初始化,产生生成密钥的辅助数据并且把辅助数据保存在非易失存储器ROM中;
S12、由密钥重建过程产生密钥,密钥重建过程基于密钥初始化时产生并保存的辅助数据中的挑战C找到多数选举法所需要的应答,然后通过多数选举法选举出重建应答,输出重建应答与第二参数运算后的Hash结果作为密钥。
优选的,步骤S11中,初始化具体为:测量多个挑战的DAPUF应答,每一个挑战对应正仲裁应答和负仲裁应答各一比特,以及一比特正负仲裁异或结果K_DAXOR;多个挑战中的第一个挑战C由微控器Controller写入LFSR中,从第二个挑战开始由LFSR线性反馈移位产生,一直到产生足够的有效比特为止,所述的有效比特是指K_DAXOR为1时对应的正仲裁应答;密钥初始化时需要产生Len*(K+1)比特有效应答,所述的Len是所产生密钥的长度,K是多数选举法的选举次数,K是一个基数;有效应答分成K+1组,其中第一组分别与第二到第K+1组异或,所得的K组异或结果形成分组异或结果GXR;密钥初始化后需要把(C,K_DAXOR,GXR)作为辅助数据保存在非易失存储器ROM中。
优选的,步骤S12中,密钥重建过程首先将辅助数据中的挑战C写入LFSR,然后根据K_DAXOR找到第Len+1号有效比特对应的挑战,整个密钥重建过程仅测量和记录第Len+1号到Len*(K+1)号有效应答;将密钥重建过程得到的Len*K比特应答分成K组与辅助数据中的GXR异或,所得到的K组候选数据通过多数选举法产生重建应答;所述的多数选举法是指候选数据中的顺序号为Len*0+1,Len*1+1,…,Len*K+1对应的值中,如果0出现的次数多则重建应答的第1比特为0,否则重建应答的第1比特为1,如此类推产生第2到第Len比特重建应答;输出Len比特重建应答与第二参数运算后的Hash结果作为密钥并结束重建过程。
优选的,步骤S11中的GXR除包含有效正仲裁应答的异或结果,也包含对应的有效负仲裁应答的异或结果;此外,将第1到第Len比特有效正仲裁应答与参数1运算后的Hash结果HR作为辅助数据,从而使得辅助数据变成(C,K_DAXOR,GXR,HR);步骤S12中用多数选举法选举出有效正仲裁应答和有效负仲裁应答,选举后并不直接结束重建过程,而是再进一步降低噪声,其具体步骤如下:
S21:如果有效正仲裁应答与第一参数运算后的Hash结果与辅助数据中的HR相等,则有效正仲裁应答与第二参数运算后的Hash结果作为密钥并结束重建过程;
S22:选举出的有效正仲裁应答和有效负仲裁应答异或,得到Len比特正负仲裁异或结果DAXOR,DAXOR中为0的比特意味着要么对应位置的有效正仲裁应答出错,要么对应位置的有效负仲裁应答出错;设DAXOR中有g比特为0,则有效正仲裁应答可能在DAXOR为0相应的位置出现g比特错误,由此可以得到并记录2g种有效正仲裁应答的可能取值,对每一种可能取值,与第一参数运算后的Hash结果如果等于HR,则将该可能取值与第二参数运算的Hash结果作为密钥并结束重建过程;
S23:对步骤S22中记录的每一种可能的有效正仲裁应答,每次取反其中的一比特得到FLR,把每一个FLR与第一参数运算后计算其Hash结果,将Hash结果与辅助数据中的HR比较,相等则将FLR与第二参数运算的Hash结果作为密钥并结束重建过程;
S24:输出重建失败提示信息。
优选的,K_DAXOR中包含多个比特0和1,为0时对应无效挑战和无效应答,为1时对应有效挑战和有效应答,对K_DAXOR中的每一比特LFSR都线性反馈移位一次;当K_DAXOR中某一比特为1时,有效挑战序号加1;当有效挑战序号一直加到Len+1时,LFSR中的值就是第Len+1号有效比特对应的挑战。
优选的,在步骤S11所述的密钥初始化中,其辅助数据的K_DAXOR中包含多个比特0和1,计算K_DAXOR的比特总顺序号和有效顺序号;对K_DAXOR中的每一比特,无论其值为0还是为1,总顺序号均加1;K_DAXOR中为1的比特为有效比特,对每一比特有效比特,有效顺序号均加1;令有效顺序号为Len+1之前的比特的总顺序号为TNO,丢弃K_DAXOR前面的TNO比特,仅从有效顺序号为Len+1的位置开始保存K_DAXOR,并且保存TNO作为辅助数据,所需要保存的辅助数据为(C,K_DAXOR,GXR,HR,TNO)。
优选的,在步骤S12所述的密钥重建中,微控器Controller将辅助数据中的挑战C写入LFSR中,统计LFSR的线性反馈移位次数,当线性反馈移位的次数等于辅助数据中的TNO时,此时LFSR中的值就是重建过程需要获取的第一比特有效应答所对应的挑战。
为了达到上述第三发明目的,本发明采用以下技术方案:
本发明密钥和真随机数生成器生成真随机数的方法,包括下述步骤:
S31、真随机数初始化过程利用ROM中的真随机数初始向量IV产生种子应答和真随机数种子,并用第四参数与种子应答运算的Hash结果更新IV;
S32、由真随机数产生过程利用真随机数种子产生真随机数,真随机数产生过程需要更新真随机数种子。
优选的,步骤S31中,微控器从非易失存储器中读取IV并写入LFSR中作为挑战产生并记录一比特应答,然后LFSR线性反馈移位产生下一个挑战和记录下一个应答,当产生应答的位数与LFSR的位数一致时,微控器把所记录的应答写入LFSR中;反复N次把记录的应答写入LFSR后,连续产生RLen比特种子应答,种子应答与第四参数运算的Hash结果更新非易失存储器中的IV,种子应答与第三参数运算后的Hash结果存在易失存储器的seed单元中作为真随机数的种子,所述RLen是一个变量,通常RLen取值为n,其中n是DAPUF的阶段数,取64较为合适。N则通常需要大于10000,以使IV具有足够高的不确定性,通过降低芯片的供电电压可以有效地减少N值的同时确保IV具有足够高的不确定性。
优选的,步骤S32中,微控器首先检查易失存储器中的seed单元中是否保存了真随机数种子,如果没有则调用真随机数初始化过程,否则将seed单元写入LFSR中产生一比特应答,然后LFSR线性反馈移位,一直产生RLen比特随机应答;随机应答与第三参数异或后的Hash结果更新易失存储器中的seed单元,随机应答与第四参数运算后的Hash结果输出作为真随机数。
本发明相对于现有技术具有如下的优点及效果:
(1)因省去了ECC电路而减少了电路面积。
(2)因多数选举法的运算比ECC快而提高了速度。
(3)无需ECC而规避了ECC的旁路攻击问题。
(4)当PUF用于产生密钥时,其安全性问题不容忽视。Lee等人在论文LLGSVD04“Atechniquetobuildacryptographickeyinintegratedcircuitsforidentificationandauthenticationapplications”(一种在集成电路中产生密钥用于鉴别和认证的技术方案)中讨论APUF的安全性时,提到APUF能有效地抵抗穷搜克隆、碰撞克隆、半入侵探测等攻击。本发明的DAPUF继承了APUF的优点并改善了独一性,因此,APUF能够抵抗的攻击,本发明基于DAPUF构造的密钥和真随机数发生器DAPUFKR同样也能够抵抗。
DAPUFKR还能有效地抵抗以下威胁:
a)非入侵建模攻击:Rührmair等人在论文RSS10“Modelingattacksonphysicalunclonablefunctions”(物理不可克隆模块的建模攻击)中,提出收集足够的挑战应答对,通过建立模型可预测APUF和ROPUF的应答。DAPUFKR的输出经过Hash函数处理,攻击者由于无法计算Hash函数的逆而无法建立模型,因此无法通过非入侵建模预测DAPUFKR的输出。
b)辅助数据泄露:Yu等人在论文YD10中,指出辅助数据可能会泄露应答的部分信息而降低安全性。DAPUFKR的辅助数据包含C、K_DAXOR、GXR和HR。GXR是两组有效应答的异或结果,HR是Hash结果,均不会泄露有效信息。K_DAXOR为0时,其对应的比特为无效比特。因此DAPUF的辅助数据不会泄露有效信息。
c)SCA:Karakoyunlu等人在论文KS10中,指出PUF存在ECC-SCA问题。DAPUFKR无需使用ECC,因此不存在ECC-SCA问题。虽然DAPUFKR使用的Hash函数也可能会存在Hash-SCA问题,但DAPUF的Hash函数可使用密码芯片上的密码模块构造,一旦密码芯片本身的密码模块具备抵抗SCA的能力,则DAPUF也可消除Hash-SCA问题。DAPUFKR拥有完全对称的结构,在处理有效应答的过程中保持汉明重量不变,这有效地降低了旁路信息泄露。例如,在算法4中,DAPUFKR需要将同一个应答与另外五个应答异或,但每一个应答中的有效比特均用01表示0,10表示1,这种双轨结构能有效地减少旁路信息泄露。
d)物理入侵攻击:敌手通过物理入侵在Hash函数之前搭线窃听DAPUF的仲裁结果,然后通过建立模型预测DAPUF的仲裁结果,进而可预测辅助数据中挑战C对应的密钥。物理入侵攻击在理论上可攻破一切密码芯片,然而,DAPUFKR仍然能够以低开销为代价有效地提高这种攻击的难度。首先,DAPUF的电路可以方便地和芯片的逻辑电路混在一起,这使得物理入侵攻击者难以找到窃听点。第二,将DAPUF中各个选择器之间的连线缠绕在芯片的表面,把窃听点包围起来,这使得物理入侵攻击者难以连接窃听点,损坏选择器之间的连线将会损坏PUF。第三,基于下一代三维芯片技术,DAPUFKR易于实现Gassend等人在论文GDCTD08“Controlledphysicalrandomfunctionsandapplications”(控制物理不可克隆模块及其应用)中提出的控制PUF结构,例如用多路并行的DAPUF的选择器和连线形成笼子,把仲裁器、关键的运算控制电路和关键的窃听点包围在笼子中间,这将进一步增加物理入侵攻击的难度。
根据Maes等人在论文MV10中的结论,在忽略非入侵建模攻击的情况下,硅PUF中的APUF和ROPUF的安全性更好;此外,他们也认为O-PUF和C-PUF拥有抗篡改特性(TamperEvident),其中O-PUF由Pappu等人在论文PRTG02“Physicalone-wayfunctions”(物理不可克隆模块)中提出,C-PUF则由Tuyls等人在论文TSSVVW06“Read-proofhardwarefromprotectivecoatings”(基于覆盖层防护的抗读取硬件)中提出。DAPUF继承了APUF的所有优点,因引入了Hash函数而能有效地抵抗非入侵建模攻击。另外,根据前述第4)点的讨论,我们认为DAPUFKR拥有良好的抗篡改特性。考虑现有的密码芯片均用硅工艺产生,当用PUF产生密钥时,在上述威胁模型之下,我们认为DAPUFKR的抗篡改特性并不会比O-PUF和C-PUF差。
表1列出了几种PUF方案在作为密码芯片的密钥生成器时的安全性。√表示具备该项能力,×表示该项能力不足,?则表示未知是否拥有该项能力。表中的“抗SCA”以密码芯片采用恰当的抗SCA措施作为前提。下表中,Maiti等人在论文MS12“ARobustPhysicalUnclonableFunctionWithEnhancedChallenge-ResponseSet”(一种拥有大量挑战应答对的强壮物理不可克隆模块)中提出CROM方案。
表1PUF作为密钥生成器时的安全性
附图说明
图1是本发明基于DAPUF的密钥和真随机数发生器结构图。
具体实施方式
下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。
实施例
本实施例基于DAPUF设计了如图1所示的密钥和真随机数发生器(DAPUFKR),包括双仲裁器物理不可克隆模块DAPUF、触发信号产生寄存器TReg、应答采集寄存器RReg、微控器、移位寄存器LFSR、Hash引擎、易失存储器RAM和非易失存储器ROM;所述双仲裁器物理不可克隆模块DAPUF由敏感电路和仲裁电路组成,用于接收LFSR传送来的挑战和触发信号产生寄存器送来的上升沿触发信号,并产生相应的正仲裁应答和负仲裁应答存入应答采集寄存器中。
所述触发信号产生寄存器由两比特寄存器组成,一比特寄存器连接DAPUF敏感电路的第一个选择器的上路输入,另一比特寄存器连接DAPUF敏感电路第一个选择器的下路输入,在微控器控制下先写入00再写入11,从而为DAPUF提供上升沿触发信号。
所述应答采集寄存器由两比特寄存器组成,一比特寄存器接收DAPUF的正仲裁应答,另一比特寄存器接收DAPUF的负仲裁应答,应答采集寄存器所采集得到的应答交给控制器处理。
所述微控器用于控制LFSR线性移位产生DAPUF的挑战、控制触发信号产生寄存器产生DAPUF的上升沿触发信号、从应答采集寄存器读取并处理应DAPUF的应答、控制Hash引擎运算并读写RAM和ROM,密钥和真随机数的产生也在控制器的控制下完成。
所述易失存储器用于存储产生真随机数的初始变量。
所述非易失存储器用于存储生成密钥所需要的辅助数据。
图1中的多个选择器、正仲裁器D1和负仲裁器D2组成DAPUF,TReg是激励寄存器,RReg是接收应答的寄存器,LFSR是存放/产生挑战的线性反馈移位寄存器(LFSR),用于完成算法3和算法4的Hi(C)运算,Controller是一个通过裁剪邹等人在论文ZLWT06“通用密码处理器在FPGA中的实现”中提出的GCP得到的微控器,所有指令均占用1个时钟周期,最高时钟频率可超过100MHz。密钥初始化时,Controller把挑战C写入LFSR后,产生正仲裁和负仲裁应答存入RReg中,然后LFSR反馈移位产生下一个挑战Hi(C),一直到产生足够有效应答为止;最后存储C、K_DAXOR、GXR和HR作为辅助数据。密钥重建时,Controller写入C,根据K_DAXOR丢弃无效Hi(C),仅收集有效Hi(C)的应答,并按算法4和算法2重建密钥。实验中设定DAPUF每采集一比特应答的时间为100ns,Controller则以50MHz或100MHz运行。
DAPUF的初始化和重建
初始化时输入挑战C得到应答R,计算DAXOR并得到有效应答,以及有效应答的Hash结果(HR),记录三元组(C,DAXOR,HR)作为辅助数据。
重建时,根据辅助数据的DAXOR选择性地重建有效应答,然后计算应答的Hash结果并与辅助数据中的HR比较,相等则重建成功并结束重建过程。不相等则通过计算DAXOR与辅助数据的DAXOR比较确定重建出错的位置,根据出错位置信息搜索并改正错误,一旦某个应答的Hash结果与辅助数据的HR相等则结束重建过程。虽然出现DAE的概率很低,但一旦出现,则导致DAXOR不能发现这种错误。为进一步提高重建成功的概率,可以再穷搜并改正一比特DAE,使得只有出现2或以上比特DAE时才会导致重建失败。
算法1:GEN(C)初始化过程
R=DAPUF(C)
LR=LeftHalf(R);RR=RightHalf(R);//分离正仲裁和负仲裁应答
//保存辅助数据(C,DAXOR,HR)
算法2:REP(C,DAXOR,OWFR)应答重建过程
算法2中DifferentBits返回初始化和重建时的DAXOR不相等的比特数,SetDifBit则根据出错位置改动该位置的值,Length获取比特串的长度,H1和H2则为不同参数的同一个Hash函数.这些运算中仅有Hash函数为复杂运算。H1的作用是判断重建是否有错误,H2仅执行1次,起均匀化作用。
设重建噪声为p,DAE的概率为pd,应答的长度为Len。重建时,通过DAXOR判断出错的比特数,对每个错误位置,要么在LR1出错,要么在RR1出错。假定DAXOR判断有g个位置出错,则算法2的步骤S2中H1执行最多不超过2g次,根据式子(1),g个位置出错的概率为因此,步骤S2中H1的复杂度为如果没有出现DAE,则在步骤S2中必然能找到初即化时的应答并结束重建过程。出现1比特DAE时,需要执行步骤S3,其概率为1-(1-pd)Len,S3中执行H1的复杂度为: ( 1 - ( 1 - pd ) Len ) &CenterDot; [ Len &CenterDot; &Sigma; i = 0 Len 2 i C Len i p i ( 1 - p ) Len - i ]
因此,算法2中H1的复杂度为:
{ 1 + Len &CenterDot; [ 1 - ( 1 - pd ) Len ] } &CenterDot; &Sigma; i = 0 Len 2 i C Len i p i ( 1 - p ) Len - i - - - ( 1 )
只有重建时出现2或以上比特DAE时才会执行S4,所以,算法2重建一组长度为Len的应答失败的概率(误码率pc)为
1 - &Sigma; i = 0 1 C Len i pd i ( 1 - pd ) Len - i
= 1 - [ ( 1 - pd ) Len + Len &CenterDot; pd &CenterDot; ( 1 - pd ) Len - 1 ] - - - ( 2 )
在误码率pc的基础上,根据下式可推测出重建噪声pRep的大小:
1-(1-pRep)Len=pc(3)
当Len=128且pd>1.11e-5时,根据式子(2)算得误码率已经高于1e-6,因此算法1和算法2只适用于pd<1.11e-5的情形。虽然算法2可以通过穷搜2比特DAE进一步降低误码率且不会明显增加H1的平均复杂度,但在极端的情况下H1的运算次数可能会高达Len2次。
根据后面给出的式子(4),多数选举法MV能够有效地降低噪声,而论文MKD10中采用MV只能把噪声降低到大约2%。这是因为式子(4)需要以独立噪声为前提,论文MKD10中的MV重复输入相同的挑战使得同一挑战应答对(CRPs)的噪声不独立。
相同CRPs的噪声不独立,但不同CRPs的噪声却相对独立,一旦噪声满足独立性,则多数选举法K-MV能有效地降低噪声。当pd>1.11e-5时,算法2的可靠性会受到影响,此时,可借助基于不同CRPs选举的K-MV降低噪声。
约定组长度为Len,选举次数为K。K-MV的初始化如算法3所示,算法首先产生Len*(K+1)比特有效应答,接着用第1组有效应答分别与第2到第(K+1)组有效应答异或,得到分组异或结果(GXR),然后输出挑战、K-DAXOR和GXR作为辅助数据。
K-MV的重建如算法4所示,根据K_DAXOR产生第2到第K+1组有效应答,分别与辅助数据的GXR异或,然后选举出重建应答。
算法3:K-MV初始化
输入:挑战C,应答的组长度Len,选举次数K
输出:挑战C、K_DAXOR和GXR
算法4:K-MV重建
输入:挑战C、K_DAXOR和GXR,应答的组长度Len
输出:重建所得应答的Hash值
对于DAPUF来说,算法4和算法2可以组合使用,当组合使用时,算法3需要增加负仲裁应答RR的GXR作为辅助数据,算法4则需要增加RR的选举,选举后并不直接返回而是交给算法2进一步降低噪声。因此,算法4和算法2组合使用时,辅助数据变成(C,K_DAXOR,GXR,HR)。根据在型号为xc5vlx50-2ff324的FPGA中的实验结果,64阶段DAPUF的最高无效比特率接近30%,因此,单独使用算法4需要的辅助数据空间大约为Length(C)+2.3*K*Len+1.3Len比特,组合使用算法4和算法2则需要Length(C)+3.3K*Len+2.3Len比特,其中Length(C)是指挑战的长度,K为多数选举法的选举次数,LEN为密钥的长度。为进一步减少辅助数据占用的存储空间,K_DAXOR可以从有效比特序号为Len+1的位置开始保存,并另外保存有效比特序号为Len+1的位置的前一比特的比特序号,只需要对算法3和算法4略为修改即可节约辅助数据占用的存储空间,考虑修改不大,在此省略修改后的算法。
设K=2k+1,pe是DAPUF的噪声,则算法4获得的密钥的噪声为:
p = &Sigma; j = k + 1 K C K i p e j ( 1 - p e ) K - j - - - ( 4 )
用p替换式子(3)中的pRep,则算法4相应的误码率可由式子(3)计算。
表2列出了DAPUF的实验统计结果,由表2(c)可以看出,当温度超过40℃时,DAPUF有效应答的噪声p达到4.12e-3,DAE的噪声pd则达到1.35e-5。对于128比特应答,根据式子(2)和(1)计算,采用算法2重建的误码率已经高达1.48e-6,H1的平均运算次数也接近2.1次。显然,温度进一步上升将导致算法2的性能严重下降,在这种情况下必须采用算法4重建,或者组合采用算法4和算法2重建。例如,假定DAPUF的噪声由于电压和温度的影响达到10%时,采用选举次数为7次的算法4降低噪声,然后采用算法2重建128比特应答,则仍可使重建误码率低于1e-6,此时辅助数据占用空间为3316bits。单独采用算法4则需要35次选举方可达到类似的可靠性,其辅助数据占用空间高达10535比特。
表2:DAPUF的实验统计结果
统计样本数:5到26摄氏度环境在xc5vlx50/xc5vlx30器件上共采集64比特/组*107
(a)DAPUF的独一性和噪声
(b)DAPUF重建64比特应答的噪声和开销
(c)DAPUF在不同温度、电压下的噪声(40℃采集2.56*107比特,其它点仅采集少量样本)
论文MV10综述了PUF的发展情况,并通过表格列出了各种PUF的噪声,分别在0.01%到25.25%之间。事实上,所有PUF都能够通过如算法4所述的多数选举法MV把噪声降低到1e-9,但存在以下问题:
a)对于APUF,由于应答中存在偏差,这使得辅助数据中的分组异或结果会泄露大量的有效信息。DAPUF丢弃了偏差,且所有应答均经过Hash函数处理,因此辅助数据中的分组异或结果不会泄露有效信息。
b)对于ROPUF,测量应答需要很长时间(Maes等人在论文MVV12中,用87微秒测量一次应答),而且产生大量噪声独立的挑战应答对会消耗很大的芯片面积。DAPUF测量应答的时间很短(Lee等人在论文LLGSVD04中使用50纳秒测量一次APUF应答,DAPUF与APUF的测量应答的时间没有差别),只需要少量芯片面积即可产生大量噪声独立的挑战应答对。
c)对于SRAM-PUF,如果采用论文AMSST09中的TMV-DB,则每块PUF在初始化时均需要测量超百万次方可有效去除DarkBits,采用算法4无需复杂的初始化,但却需要大量的SRAM单元。
C-PUF存在与SRAM-PUF类似的问题,O-PUF则由于自身噪声太高而使算法4降噪的成本很高。因此,对于现有的PUF来说,ECC是把噪声降低到1e-9的首选。就算法4和ECC比较而言,算法4的运算比ECC简单,但所需的辅助数据大于ECC。本实施例的DAPUF无需ECC就能够高效地满足密钥的可靠性要求,其原因在于:
1)DAPUF的对称结构能有效地降低因环境差异引起的噪声,根据实验结果,DAPUF的有效应答噪声约为APUF的应答噪声的二分之一;
2)考虑极端环境,通过算法4把DAPUF有效应答的噪声降低到3e-3以下;
3)通过对称的仲裁结构发现并改正除DAE以外的所有重建错误;
4)穷搜一比特DAE,只有重建一组应答同时出现两或以上比特DAE才会导致重建失败。
DAPUFKR除了可以产生密钥以外,也可用于产生真随机数,产生真随机数前需要先初始化存放在RAM中的初始变量(IV):
Controller把IV写入LFSR中,然后用106次D2的应答更新LFSR,整个更新过程大约耗时0.1秒,接着把最后采集到的应答写入IV中完成初始化。初始化后,输出H3(DAPUF(IV))作为真随机数并用H4(DAPUF(IV))更新IV。产生真随机数时,PAPUF相当于一个带密钥的单向函数,总共对初始值为IV的变量更新接近1.6万次,期间由于噪声的影响随机地改动输入大约2460(106*p,其中64阶段PAPUF的噪声p为2.46e-3)比特。
IV经过初始化后变成一个不确定的熵源,H3(DAPUF(IV))不可预测并满足伪随机特性,因此我们认为DAPUFKR产生的随机数是真随机数。
表5列出了本实施例的DAPUFKR和Maes等人的PUFKY的面积、速度、可靠性和辅助数据大小等数据,两者均考虑极端环境(120℃&电压-10%)下的噪声小于1e-9。DAPUFFR采用64阶段的DAPUF,用选举次数为5次的算法4结合算法2重建应答。为了公平地比较PUFKY和本实施方案的DAPUFKR的实现效率,我们借用了PUFKY采用的Hash函数。在测试中我们使用AES构造Hash函数,也就是说,AES既承担密码芯片的密码运算,也承担PUF的可靠性运算和均匀化运算。从共用的角度看,我们的DAPUFKR在可靠性和均匀化上不占用硬件开销,因此不会因为可靠性和均匀化而引入SCA风险。而PUFKY则需要ECC方可满足密钥的可靠性要求,所以PUFKY存在如论文KS10所述的ECC-SCA问题。
表5:DAPUFKR和PUFKY的比较
(a)面积消耗(单位:Slices)
(b)速度(单位Cycles)
(c)可靠性/噪声和辅助数据大小
从表6可以看出,基于DAPUF的DAPUFKR除了辅助数据较大外,在可靠性/噪声、速度和面积上均优于PUFKY。此外,DAPUFKR比PUFKY增加了真随机数产生功能。
DAPUFKR速度比PUFKY快的原因在于:
1)PUFKY采用ROPUF,其每次测量应答耗时87us,用部分并行的方法测量2226比特应答,产生128比特密钥耗时4.59ms。而DAPUF每次测量应答仅需100ns(在TSMC0.18um中则为50ns),用串行方式在50MHz下,约需要0.54ms即可通过选举次数为5次的K-MV产生128比特DAPUF应答,在100MHz下则只需要0.33ms。
2)PUFKY需要使用ECC和Hash函数(SPONGENT-128),ECC耗时50831周期,Hash函数耗时3990周期,合计54821周期。而DAPUF仅需使用大约2.51次Hash即可,平均消耗10015周期。
DAPUFKR比PUFKY面积更小的原因在于:
3)DAPUF比ROPUF占用更小的电路面积。事实上,DAPUFKR中的PUF面积已经包含了DAPUF、Controller和LFSR等部分电路。
4)DAPUF省去了ECC电路。
更重要的是,PUFKY使用的ECC容易受到旁路攻击(攻击方法请参考论文KS10),而DAPUFKR由于无需ECC而避免了这个问题。
表6列出了几种经过降噪处理的PUF方案的实现效率。从表中可以看出,DAPUFKR在独一性、可靠性、CRPs、面积和速度等多个方面均表现优异。
表6几种PUF方案的实现效率比较
*表示方案中有Hash,但没有用Hash作均匀化处理。?表示未知是否达到均匀化效果,不知是否能够抵抗建模攻击。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

Claims (11)

1.一种密钥和真随机数生成器,其特征在于,包括双仲裁器物理不可克隆模块DAPUF、触发信号产生寄存器TReg、应答采集寄存器RReg、微控器Controller、线性反馈移位寄存器LFSR、Hash引擎、易失存储器RAM和非易失存储器ROM;
所述双仲裁器物理不可克隆模块DAPUF由敏感电路和仲裁电路组成;所述敏感电路包含n个选择器,所述选择器包含上下两个输入端、一个控制端以及上下两个输出端,n个选择器按顺序排列,前一个选择器的上下两个输出端与后一个选择器的上下两个输入端相连接,每个选择器的控制端与LFSR中的一比特寄存器相连接;当选择器的控制端输入为0或者1时,选择器上输入端与上输出端连通以及下输入端与下输出端连通,或者上输入端与下输出端连通以及下输入端与上输出端连通;所述仲裁电路包含正负两个仲裁器,每个仲裁器均拥有上下两个输入端和一个输出端;敏感电路的第n个选择器的上下两个输出端分别与正仲裁器的上下两个输入端相连接,正负两个仲裁器的两个输入端交叉连接;DAPUF的n个选择器的控制端接收LFSR传送过来的挑战C,DAPUF的第一个选择器的两个输入端接收触发信号产生寄存器TReg传送过来的上升沿触发信号;LFSR传送过来的挑战C决定了敏感电路的上下两路信号的一种特定通路状态,两路上升沿触发信号沿着这种特定通路状态的两条通路最终送到正仲裁器和负仲裁器;正负两个仲裁器根据上下两路上升沿触发信号到达的先后顺序决定其输出,如果某个仲裁器的上输入端的上升沿比下输入端的上升沿先到达,则该仲裁器输出1,否则输出0;称DAPUF的输出为应答,正负两个仲裁器的应答存入应答采集寄存器RReg中;
所述触发信号产生寄存器TReg由两比特寄存器组成,其中一比特寄存器连接DAPUF敏感电路的第一个选择器的上输入端,另一比特寄存器连接DAPUF敏感电路第一个选择器的下输入端,在微控器Controller的控制下向TReg先写入00再写入11,从而为DAPUF的敏感电路提供上升沿触发信号;
所述应答采集寄存器RReg由两比特寄存器组成,一比特寄存器接收DAPUF的正仲裁应答,另一比特寄存器接收DAPUF的负仲裁应答,RReg所采集的应答交给微控器Controller处理;
所述微控器Controller用于读取存放在非易失存储器ROM中的辅助数据中的挑战C写入LFSR、控制LFSR线性反馈移位产生DAPUF的挑战、控制触发信号产生寄存器TReg产生DAPUF的上升沿触发信号、从应答采集寄存器RReg读取并处理DAPUF的应答、控制Hash引擎运算并读写易失存储器RAM和非易失存储器ROM,密钥和真随机数的产生也在微控器Controller的控制下完成;
所述线性反馈移位寄存器LFSR用于存放微控器Controller送来的挑战C,并在微控器的控制下线性反馈移位产生DAPUF的挑战;
所述Hash引擎存储有4个参数,所述每个参数均是一个任意随机数,其中第一参数与DAPUF的应答运算后由Hash引擎处理产生辅助数据中的应答单向结果HR,第二参数与DAPUF的应答运算后由Hash引擎处理产生密钥,第三参数与DAPUF的应答运算后由Hash引擎处理产生和更新随机种子Seed,第四参数与DAPUF的应答运算后经Hash引擎处理,所得的结果用于更新真随机数初始向量IV以及作为真随机数使用;所述参数的运算是异或或者连接运算,当用加密算法构造Hash引擎时,则所述参数的运算是指参数作为密钥或者明文参与加密运算;
所述易失存储器RAM用于存储微控器Controller运算过程中的临时变量;
所述非易失存储器ROM用于存储生成密钥所需要的辅助数据和产生真随机数的初始向量IV。
2.根据权利要求1所述的密钥和真随机数生成器生成密钥的方法,其特征在于,包括下述步骤:
S11、执行密钥初始化,产生生成密钥的辅助数据并且把辅助数据保存在非易失存储器ROM中;
S12、由密钥重建过程产生密钥,密钥重建过程基于密钥初始化时产生并保存的辅助数据中的挑战C找到多数选举法所需要的应答,然后通过多数选举法选举出重建应答,输出重建应答与第二参数运算后的Hash结果作为密钥。
3.根据权利要求2所述的密钥和真随机数生成器生成密钥的方法,其特征在于,步骤S11中,初始化具体为:测量多个挑战的DAPUF应答,每一个挑战对应正仲裁应答和负仲裁应答各一比特,以及一比特正负仲裁异或结果K_DAXOR;多个挑战中的第一个挑战C由微控器Controller写入LFSR中,从第二个挑战开始由LFSR线性反馈移位产生,一直到产生足够的有效比特为止,所述的有效比特是指K_DAXOR为1时对应的正仲裁应答;密钥初始化时需要产生Len*(K+1)比特有效应答,所述的Len是所产生密钥的长度,K是多数选举法的选举次数,K是一个基数;有效应答分成K+1组,其中第一组分别与第二到第K+1组异或,所得的K组异或结果形成分组异或结果GXR;密钥初始化后需要把(C,K_DAXOR,GXR)作为辅助数据保存在非易失存储器ROM中。
4.根据权利要求3所述的密钥和真随机数生成器生成密钥的方法,其特征在于,步骤S12中,密钥重建过程首先将辅助数据中的挑战C写入LFSR,然后根据K_DAXOR找到第Len+1号有效比特对应的挑战,整个密钥重建过程仅测量和记录第Len+1号到Len*(K+1)号有效应答;将密钥重建过程得到的Len*K比特应答分成K组与辅助数据中的GXR异或,所得到的K组候选数据通过多数选举法产生重建应答;所述的多数选举法是指候选数据中的顺序号为Len*0+1,Len*1+1,…,Len*K+1对应的值中,如果0出现的次数多则重建应答的第1比特为0,否则重建应答的第1比特为1,如此类推产生第2到第Len比特重建应答;输出Len比特重建应答与第二参数运算后的Hash结果作为密钥并结束重建过程。
5.根据权利要求4所述的密钥和真随机数生成器生成密钥的方法,其特征在于,步骤S11中的GXR除包含有效正仲裁应答的异或结果,也包含对应的有效负仲裁应答的异或结果;此外,将第1到第Len比特有效正仲裁应答与参数1运算后的Hash结果HR作为辅助数据,从而使得辅助数据变成(C,K_DAXOR,GXR,HR);步骤S12中用多数选举法选举出有效正仲裁应答和有效负仲裁应答,选举后并不直接结束重建过程,而是再进一步降低噪声,其具体步骤如下:
S21:如果有效正仲裁应答与第一参数运算后的Hash结果与辅助数据中的HR相等,则有效正仲裁应答与第二参数运算后的Hash结果作为密钥并结束重建过程;
S22:选举出的有效正仲裁应答和有效负仲裁应答异或,得到Len比特正负仲裁异或结果DAXOR,DAXOR中为0的比特意味着要么对应位置的有效正仲裁应答出错,要么对应位置的有效负仲裁应答出错;设DAXOR中有g比特为0,则有效正仲裁应答可能在DAXOR为0相应的位置出现g比特错误,由此可以得到并记录2g种有效正仲裁应答的可能取值,对每一种可能取值,与第一参数运算后的Hash结果如果等于HR,则将该可能取值与第二参数运算的Hash结果作为密钥并结束重建过程;
S23:对步骤S22中记录的每一种可能的有效正仲裁应答,每次取反其中的一比特得到FLR,把每一个FLR与第一参数运算后计算其Hash结果,将Hash结果与辅助数据中的HR比较,相等则将FLR与第二参数运算的Hash结果作为密钥并结束重建过程;
S24:输出重建失败提示信息。
6.根据权利要求5所述的密钥和真随机数生成器生成密钥的方法,其特征在于,K_DAXOR中包含多个比特0和1,为0时对应无效挑战和无效应答,为1时对应有效挑战和有效应答,对K_DAXOR中的每一比特LFSR都线性反馈移位一次;当K_DAXOR中某一比特为1时,有效挑战序号加1;当有效挑战序号一直加到Len+1时,LFSR中的值就是第Len+1号有效比特对应的挑战。
7.权利要求6所述的密钥和真随机数生成器生成密钥的方法,其特征在于,在步骤S11所述的密钥初始化中,其辅助数据的K_DAXOR中包含多个比特0和1,计算K_DAXOR的比特总顺序号和有效顺序号;对K_DAXOR中的每一比特,无论其值为0还是为1,总顺序号均加1;K_DAXOR中为1的比特为有效比特,对每一比特有效比特,有效顺序号均加1;令有效顺序号为Len+1之前的比特的总顺序号为TNO,丢弃K_DAXOR前面的TNO比特,仅从有效顺序号为Len+1的位置开始保存K_DAXOR,并且保存TNO作为辅助数据,所需要保存的辅助数据为(C,K_DAXOR,GXR,HR,TNO)。
8.根据权利要求7所述的密钥和真随机数生成器生成密钥的方法,其特征在于,在步骤S12所述的密钥重建中,微控器Controller将辅助数据中的挑战C写入LFSR中,统计LFSR的线性反馈移位次数,当线性反馈移位的次数等于辅助数据中的TNO时,此时LFSR中的值就是重建过程需要获取的第一比特有效应答所对应的挑战。
9.根据权利要求1所述的密钥和真随机数生成器生成真随机数的方法,其特征在于,包括下述步骤:
S31、真随机数初始化过程利用ROM中的真随机数初始向量IV产生种子应答和真随机数种子,并用第四参数与种子应答运算的Hash结果更新IV;
S32、由真随机数产生过程利用真随机数种子产生真随机数,真随机数产生过程需要更新真随机数种子。
10.根据权利要求9所述的密钥和真随机数生成器生成真随机数的方法,其特征在于,步骤S31中,微控器从非易失存储器中读取IV并写入LFSR中作为挑战产生,并记录一比特应答,然后LFSR线性反馈移位产生下一个挑战和记录下一个应答,当产生应答的位数与LFSR的位数一致时,微控器把所记录的应答写入LFSR中;反复N次把记录的应答写入LFSR后,连续产生RLen比特种子应答,种子应答与第四参数运算的Hash结果更新非易失存储器中的IV,种子应答与第三参数运算后的Hash结果存在易失存储器的seed单元中作为真随机数的种子。
11.根据权利要求10所述的密钥和真随机数生成器生成真随机数的方法,其特征在于,步骤S32中,微控器首先检查易失存储器中的seed单元中是否保存了真随机数种子,如果没有则调用真随机数初始化过程,否则将seed单元的内容写入LFSR中产生一比特应答,然后LFSR线性反馈移位,一直产生RLen比特随机应答;随机应答与第三参数异或后的Hash结果更新易失存储器中的seed单元,随机应答与第四参数运算后的Hash结果输出作为真随机数。
CN201310041627.7A 2013-02-01 2013-02-01 一种密钥和真随机数发生器及生成密钥和真随机数的方法 Expired - Fee Related CN103188075B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201310041627.7A CN103188075B (zh) 2013-02-01 2013-02-01 一种密钥和真随机数发生器及生成密钥和真随机数的方法
PCT/CN2014/071464 WO2014117695A1 (zh) 2013-02-01 2014-01-26 一种密钥和真随机数发生器及生成密钥和真随机数的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310041627.7A CN103188075B (zh) 2013-02-01 2013-02-01 一种密钥和真随机数发生器及生成密钥和真随机数的方法

Publications (2)

Publication Number Publication Date
CN103188075A CN103188075A (zh) 2013-07-03
CN103188075B true CN103188075B (zh) 2016-01-06

Family

ID=48679048

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310041627.7A Expired - Fee Related CN103188075B (zh) 2013-02-01 2013-02-01 一种密钥和真随机数发生器及生成密钥和真随机数的方法

Country Status (2)

Country Link
CN (1) CN103188075B (zh)
WO (1) WO2014117695A1 (zh)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103188075B (zh) * 2013-02-01 2016-01-06 广州大学 一种密钥和真随机数发生器及生成密钥和真随机数的方法
KR102198499B1 (ko) * 2013-12-31 2021-01-05 주식회사 아이씨티케이 홀딩스 디지털 값 처리 장치 및 방법
CN103778374B (zh) * 2014-02-19 2017-06-06 邹候文 可信终端、双信道卡、抗克隆芯片、芯片指纹和抗信道攻击的方法
US9495111B2 (en) * 2014-10-10 2016-11-15 The Boeing Company System and method for reducing information leakage from memory
JP2016085337A (ja) * 2014-10-24 2016-05-19 株式会社メガチップス 半導体装置、半導体記憶装置、及び半導体装置の信頼性テスト方法
FR3036203B1 (fr) 2015-05-13 2017-05-19 Inside Secure Procede de securisation d’une comparaison de donnees lors de l’execution d’un programme
CN105007285B (zh) * 2015-08-19 2018-07-24 南京万道电子技术有限公司 一种基于物理不可克隆函数的密钥保护方法和安全芯片
EP3374913A4 (en) * 2015-11-13 2019-07-24 Badge Inc. BIOMETRIC AUTHENTICATION SYSTEM WITH PUBLIC / PRIVATE KEY
CN106209457B (zh) * 2016-07-14 2019-03-12 北京工业大学 应对智能家居环境中旁路攻击的隐私保护方法及系统
CN106411507A (zh) * 2016-09-23 2017-02-15 杭州华三通信技术有限公司 一种密钥生成方法及装置
CN106656473B (zh) * 2016-12-29 2023-04-18 北京握奇智能科技有限公司 一种安全的des算法的mac计算方法及系统
JP6588048B2 (ja) * 2017-03-17 2019-10-09 株式会社東芝 情報処理装置
EP3407335B1 (en) * 2017-05-22 2023-07-26 Macronix International Co., Ltd. Non-volatile memory based physically unclonable function with random number generator
CN109039591B (zh) * 2017-06-08 2022-04-01 佛山芯珠微电子有限公司 基于fpga的物联网络信息加密系统的实现方法
CN109818745B (zh) * 2017-11-21 2022-04-01 佛山芯珠微电子有限公司 物联网信息安全芯片
CN110519210A (zh) * 2018-05-22 2019-11-29 中国科学院苏州纳米技术与纳米仿生研究所 密钥分发方法及终端设备
CN109714307B (zh) * 2018-06-12 2024-04-12 广东工业大学 一种基于国密算法的云平台客户端数据加解密系统及方法
US10797064B2 (en) * 2018-09-19 2020-10-06 Ememory Technology Inc. Single-poly non-volatile memory cell and operating method thereof
TWI706355B (zh) * 2019-08-13 2020-10-01 張英輝 要求端密碼可選之挑戰響應身份認證之方法
CN110730068A (zh) * 2019-09-25 2020-01-24 中国电子科技集团公司第五十八研究所 一种基于sram-puf的密钥提取方法
CN110928523B (zh) * 2019-12-04 2021-11-19 中体彩科技发展有限公司 用于彩票行业的随机数获取方法及系统
CN111404943B (zh) * 2020-03-18 2021-10-26 腾讯科技(深圳)有限公司 数据的处理方法、装置、电子设备及计算机可读存储介质
US11804971B2 (en) * 2020-08-05 2023-10-31 Analog Devices, Inc. Correcting physical unclonable function errors based on short integers solutions to lattice problems
CN112015119B (zh) * 2020-09-02 2021-11-12 南京英锐创电子科技有限公司 调试控制电路和调试控制方法
CN114384969B (zh) * 2020-12-31 2024-04-16 广东国腾量子科技有限公司 一种高速真随机数的产生系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011018414A2 (en) * 2009-08-14 2011-02-17 Intrinsic Id B.V. Physically unclonable function with tamper prevention and anti-aging system
CN102393890A (zh) * 2011-10-09 2012-03-28 广州大学 一种抗物理入侵和旁路攻击的密码芯片系统及其实现方法
CN102521538A (zh) * 2011-12-07 2012-06-27 浙江大学 基于多频率段的物理不可克隆函数结构
CN102546149A (zh) * 2012-01-16 2012-07-04 华南理工大学 一种密码芯片系统及密钥提取方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103583013B (zh) * 2011-06-02 2016-04-13 三菱电机株式会社 密钥信息生成装置以及密钥信息生成方法
CN102663863B (zh) * 2012-03-23 2014-10-29 广州大学 抗信道木马攻击的金融pos系统及其抗攻击的实现方法
CN103188075B (zh) * 2013-02-01 2016-01-06 广州大学 一种密钥和真随机数发生器及生成密钥和真随机数的方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011018414A2 (en) * 2009-08-14 2011-02-17 Intrinsic Id B.V. Physically unclonable function with tamper prevention and anti-aging system
CN102393890A (zh) * 2011-10-09 2012-03-28 广州大学 一种抗物理入侵和旁路攻击的密码芯片系统及其实现方法
CN102521538A (zh) * 2011-12-07 2012-06-27 浙江大学 基于多频率段的物理不可克隆函数结构
CN102546149A (zh) * 2012-01-16 2012-07-04 华南理工大学 一种密码芯片系统及密钥提取方法

Also Published As

Publication number Publication date
CN103188075A (zh) 2013-07-03
WO2014117695A1 (zh) 2014-08-07

Similar Documents

Publication Publication Date Title
CN103188075B (zh) 一种密钥和真随机数发生器及生成密钥和真随机数的方法
Majzoobi et al. Slender PUF protocol: A lightweight, robust, and secure authentication by substring matching
Yin et al. Design and implementation of a group-based RO PUF
CA2971212C (en) Reliability enhancement methods for physically unclonable function bitstring generation
US9628272B2 (en) PUF authentication and key-exchange by substring matching
EP2359520B1 (en) Distributed puf
Li et al. Efficient quantum blockchain with a consensus mechanism QDPoS
CN105723651A (zh) 可验证装置
CN102546149B (zh) 一种密码芯片系统及密钥提取方法
EP1497863A2 (en) Authentication of integrated circuits
CN111027102B (zh) 一种高安全性可配置ro-puf电路结构
CN106030605A (zh) 数字值处理装置及方法
Hussain et al. BIST-PUF: Online, hardware-based evaluation of physically unclonable circuit identifiers
CN105933108A (zh) 一种对sm4算法实现破解的方法
Danger et al. PUFs: Standardization and evaluation
CN107733655A (zh) 一种基于多项式重构的apuf安全认证方法
Kurra et al. A secure arbiter physical unclonable functions (PUFs) for device authentication and identification
Williams et al. Mc-PUF: Memory-based and machine learning resilient strong PUF for device authentication in Internet of Things
Hou et al. A lightweight and secure-enhanced Strong PUF design on FPGA
Yin et al. Obtaining statistically random information from silicon physical unclonable functions
Alimohammadi et al. Secure hardware key based on physically unclonable functions and artificial neural network
Bai et al. PUF‐based encryption method for IC cards on‐chip memories
Gao et al. A challenge obfuscation method for thwarting model building attacks on PUFs
Alibrahim OCCRA: overt-covert challenge-response authentication using device-centric primitives
Wang et al. PUF-PassSE: A PUF based password strength enhancer for IoT applications

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20140709

Address after: 510006 Guangdong City, Guangzhou Province University, West Ring Road, No. 230

Applicant after: Guangzhou University

Applicant after: South China University of Technology

Applicant after: Shenzhen Viewat Technology Co., Ltd.

Applicant after: South China Normal University

Applicant after: Hangzhou Shengyuan Chip Technique Co., Ltd.

Applicant after: Qishan Guangzhou Electronic Technology Co., Ltd.

Address before: 510006 Guangdong City, Guangzhou Province University, West Ring Road, No. 230

Applicant before: Guangzhou University

Applicant before: Shenzhen Viewat Technology Co., Ltd.

Applicant before: South China Normal University

Applicant before: Zou Houwen

C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160106

Termination date: 20180201

CF01 Termination of patent right due to non-payment of annual fee