CN113268745B - 基于Camellia加密算法的软PUF - Google Patents

基于Camellia加密算法的软PUF Download PDF

Info

Publication number
CN113268745B
CN113268745B CN202110388098.2A CN202110388098A CN113268745B CN 113268745 B CN113268745 B CN 113268745B CN 202110388098 A CN202110388098 A CN 202110388098A CN 113268745 B CN113268745 B CN 113268745B
Authority
CN
China
Prior art keywords
bit
clock cycle
output
cipher text
data
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
Application number
CN202110388098.2A
Other languages
English (en)
Other versions
CN113268745A (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.)
Wenzhou University
Original Assignee
Wenzhou 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 Wenzhou University filed Critical Wenzhou University
Priority to CN202110388098.2A priority Critical patent/CN113268745B/zh
Publication of CN113268745A publication Critical patent/CN113268745A/zh
Application granted granted Critical
Publication of CN113268745B publication Critical patent/CN113268745B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Mathematical Physics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种基于Camellia加密算法的软PUF,包括硬件平台,硬件平台为128位Camellia加密算法硬件电路,通过利用基于Camellia加密算法硬件电路中路径延迟偏差获取PUF响应数据,无需专用硬件开销,且在固定时钟频率下进行PUF响应的采集,避免了频率变化过程中导致的不稳定现象,另外PUF响应经过Camellia加密算法的多轮数据随机化,唯一性和随机性较高,且从Camellia加密算法硬件电路的输出中提取PUF响应采集难度低并且位数较多,安全性较强;优点是具有抗频率扰动能力,可靠性较高,且具有良好唯一性和随机性,安全性较高,有利于在信息安全领域的应用。

Description

基于Camellia加密算法的软PUF
技术领域
本发明涉及一种软PUF,尤其是涉及一种基于Camellia加密算法的软PUF。
背景技术
随着物联网(Internet of Things,IoT)时代的到来,如何保证设备间安全通信成为关键。传统的安全措施将密钥存储在非易失性存储器(Non-volatile Memory,NVM)中,但极易受到版图逆向工程、微探测等方式攻击造成密钥泄露。物理不可克隆函数(PhysicalUnclonable Function,PUF)利用集成电路制造过程中存在的随机工艺偏差产生可以抵抗各种物理攻击的高安全性密钥,可广泛应用于设备防伪、用户认证以及集成电路知识产权(Intellectual Property,IP)核保护等场合。
传统的PUF电路依赖特殊的硬件结构产生所需的PUF响应,通常被归为硬PUF(Hardware PUF,HPUF,又称硬件PUF)类别。例如仲裁器PUF(Arbiter PUF,APUF)比较相同两条路径的延迟偏差产生PUF响应,环形振荡器PUF(Ring Oscillator PUF,RO PUF)的响应则依赖于相同振荡器的频率差异。此类型PUF在物联网领域的应用往往因为功耗和面积开销等原因受到限制。静态随机存取存储器(Static Random-Access Memory,SRAM)PUF是解决上述问题的一种方式,静态随机存取存储器PUF通过提取SRAM单元内随机的上电状态产生PUF响应。由于存储器广泛存在于电子设备中,静态随机存取存储器PUF实现比较方便且无需消耗额外的硬件资源,但是其随机特征依赖上电循环,在不允许频繁断电的场合需要存储产生的响应,导致安全性降低。MScanPUF利用时序违例情况下触发器采样数据的不确定性产生PUF数据,解决了静态随机存取存储器PUF获取响应的问题,安全性较高,但是需要在原有扫描链结构上增加数据选择器,产生额外的成本。
微处理器PUF是近年来出现的一种不需要独立的硬件作为物理随机源的PUF,被归为软PUF(Software PUF,SPUF)类别。微处理器PUF根据建立时间约束条件,利用不同芯片在超频下多次执行指令的错误情况差异,设计特定的编码规则产生PUF响应,用于FPGA的安全认证。该微处理器PUF设计过程中将微处理本身的电路结构作为硬件平台,整个PUF机制可由软件程序实现,解决了仲裁器PUF、环形振荡器PUF及MScanPUF等硬件PUF需要专用硬件开销的问题,并且该微处理器PUF响应提取方式较简单,解决了静态随机存取存储器PUF需要上电循环的问题。
但是,在获取响应时,微处理器PUF需要在不同的时钟频率下多次执行相同的指令,并根据处理器指令执行失败情况设计一定的编码规则以获得对应的PUF响应。在改变时钟频率时,由于测试过程中频率可能发生小幅度的波动,导致相同指令可能在不同的时钟频率下执行,降低了可靠性。此外,该微处理器PUF在实施过程中,需要在一个频率范围内选取目标采样点数并在每个采样频率下重复执行指令。根据编码规则每个采样点只能产生2比特响应,由于响应位数较少,该微处理器PUF的破解难度较低,同时不利于芯片认证。根据实验结果,微处理器PUF的唯一性和随机性也较低。
发明内容
本发明所要解决的技术问题是提供一种具有抗频率扰动能力,可靠性较高,且具有良好唯一性和随机性,安全性较高的基于Camellia加密算法的软PUF。
本发明解决上述技术问题所采用的技术方案为:一种基于Camellia加密算法的软PUF,包括硬件平台,所述的硬件平台为128位Camellia加密算法硬件电路,所述的128位Camellia加密算法硬件电路具有以下几个端口:128位密钥输入端口key_in[0]-[127]、128位明文输入端口data_in[0]-[127]、时钟输入端口clk、128位密文输出端口data_out[0]-[127];所述的128位Camellia加密算法硬件电路中预存有128位子密钥k1、128位子密钥k2和时序路径信息,时序路径信息包括关键路径延迟Tpath和不同输入信号激励下激活的与128位密文输出端口data_out[0]-[127]直接相关的128条时序路径;
该128位Camellia加密算法硬件电路工作过程包括18轮加密操作,其中第1轮、第6轮、第12轮和第18轮加密操作分别需要花费两个时钟周期来完成加密操作,其他轮加密操作仅需要一个时钟周期来完成加密操作,该128位Camellia加密算法硬件电路整个工作过程需要22个时钟周期,其中,第1轮加密操作在第1个时钟周期和第2个时钟周期进行,且第1个时钟周期和第2个时钟周期分别在128位密文输出端口data_out[0]-[127]产生一个128位密文输出,第2轮加密操作在第3个时钟周期进行,在128位密文输出端口data_out[0]-[127]产生一个128位密文输出,第3轮加密操作在第4个时钟周期进行,在128位密文输出端口data_out[0]-[127]产生一个128位密文输出,第4轮加密操作在第5个时钟周期进行,在128位密文输出端口data_out[0]-[127]产生一个128位密文输出,第5轮加密操作在第6个时钟周期进行,在128位密文输出端口data_out[0]-[127]产生一个128位密文输出,第6轮加密操作在第7个时钟周期和第8个时钟周期进行,且第7个时钟周期和第8个时钟周期分别在128位密文输出端口data_out[0]-[127]产生一个128位密文输出,第7轮加密操作在第9个时钟周期进行,在128位密文输出端口data_out[0]-[127]产生一个128位密文输出,第8轮加密操作在第10个时钟周期进行,在128位密文输出端口data_out[0]-[127]产生一个128位密文输出,第9轮加密操作在第11个时钟周期进行,在128位密文输出端口data_out[0]-[127]产生一个128位密文输出,第10轮加密操作在第12个时钟周期进行,在128位密文输出端口data_out[0]-[127]产生一个128位密文输出,第11轮加密操作在第13个时钟周期进行,在128位密文输出端口data_out[0]-[127]产生一个128位密文输出,第12轮加密操作在第14个时钟周期和第15个时钟周期进行,且第14个时钟周期和第15个时钟周期分别在128位密文输出端口data_out[0]-[127]产生一个128位密文输出,第13轮加密操作在第16个时钟周期进行,在128位密文输出端口data_out[0]-[127]产生一个128位密文输出,第14轮加密操作在第17个时钟周期进行,在128位密文输出端口data_out[0]-[127]产生一个128位密文输出,第15轮加密操作在第18个时钟周期进行,在128位密文输出端口data_out[0]-[127]产生一个128位密文输出,第16轮加密操作在第19个时钟周期进行,在128位密文输出端口data_out[0]-[127]产生一个128位密文输出,第17轮加密操作在第20个时钟周期进行,在128位密文输出端口data_out[0]-[127]产生一个128位密文输出,第18轮加密操作在第21个时钟周期和第22个时钟周期进行,且第21个时钟周期和第22个时钟周期分别在128位密文输出端口data_out[0]-[127]产生一个128位密文输出;该128位Camellia加密算法硬件电路内部具有F函数、FL函数及FL-1函数,FL-1函数为FL函数的逆函数,关键路径延迟Tpath为与128位Camellia加密算法硬件电路的128位密文输出端口data_out[0]-[127]直接相关的128条时序路径中的最大路径延迟,将128位Camellia加密算法硬件电路正常工作的时钟周期长度记为Tclk,Tclk=Tpath
所述的基于Camellia加密算法的软PUF生成PUF响应的具体步骤如下:
①在时钟输入端口clk输入包含22个时钟周期并且每个时钟周期长度均为Tclk的时钟信号,在128位密钥输入端口key_in[0]-[127]输入128位密钥信号K1,在128位明文输入端口data_in[0]-[127]输入128位明文信号P1,此时与128位密文输出端口data_out[0]-[127]直接相关的128条时序路径会被激活,所述的128位密文输出端口data_out[0]-[127]在每个时钟周期内分别产生一个128位密文输出,22个时钟周期一共得到22个128位密文输出,将该22个128位密文输出分别作为22个时钟周期的128位参考输出;
②在128位密钥输入端口key_in[0]-[127]输入128位密钥信号K1和在128位明文输入端口data_in[0]-[127]输入128位明文信号P1,然后在时钟输入端口clk上输入包含22个时钟周期并且时钟周期长度大于70%Tclk且小于Tclk的任意一个时钟信号C1,最后记录该时钟信号下,每个时钟周期产生的128位密文输出,从第1个时钟周期开始,将该时钟周期产生的128位密文输出与该时钟周期的128位参考输出进行比较,如果两者相同,则进行下一个时钟周期的比较,直至两者不同,如果两者不同,则结束比较,并确定该时钟周期的位数以及所处加密操作的轮数,将该时钟周期的位数记为n,轮数记为m,然后进入步骤③进行判断及处理;
③当轮数m为1,时钟周期位数n为1时,则将128位明文信号P1与128位子密钥k1按位进行异或操作,得到第一个128位异或操作结果,然后将该第一个128位异或操作结果与第1个时钟周期的128位参考输出按位进行异或操作,得到第二个128位异或操作结果,该第二个128位异或操作结果即为PUF响应;
当轮数m为1,时钟周期位数n为2时,则将第1个时钟周期的128位密文输出的高64位数据输入到128位Camellia加密算法硬件电路的F函数中进行处理,得到64位F函数运算结果,然后将该64位F函数运算结果与第1个时钟周期的128位密文输出的低64位数据按位进行异或操作,得到64位异或操作结果,将该64位异或操作结果作为高64位数据,第1个时钟周期的128位密文输出的高64位作为低64位数据,拼接为128位密文输出,最后将128位密文输出与第2个时钟周期的128位参考输出按位进行异或操作,得到128位异或操作结果,该128位异或操作结果即为PUF响应;
当轮数m为6,时钟周期位数n为7时,则将第6个时钟周期的128位密文输出的高64位数据输入到128位Camellia加密算法硬件电路的F函数中进行处理,得到64位F函数运算结果,然后将64位F函数运算结果与第6个时钟周期的128位密文输出的低64位数据按位进行异或操作,得到64位异或操作结果,将该64位异或操作结果作为高64位数据,第6个时钟周期的128位密文输出的高64位作为低64位数据,拼接为128位密文输出,最后将该128位密文输出与第7个时钟周期的128位参考输出按位进行异或操作,得到128位异或操作结果,该128位异或操作结果即为PUF响应;
当轮数m为6,时钟周期位数n为8时,则将第7个时钟周期的128位密文输出的高64位数据输入到128位Camellia加密算法硬件电路的FL函数中,得到64位FL函数运算结果,然后将第7个时钟周期的128位密文输出的低64位数据输入到128位Camellia加密算法硬件电路的FL-1函数中,得到64位FL-1函数运算结果,将64位FL函数运算结果作为高64位数据,64位FL-1函数运算结果作为低64位数据,拼接为128位密文输出,最后将128位密文输出与第8个时钟周期的128位参考输出按位进行异或操作,得到128位异或操作结果,该128位异或操作结果即为PUF响应;
当轮数m为12,时钟周期位数n为14时,则将第13个时钟周期的128位密文输出的高64位数据输入到128位Camellia加密算法硬件电路的F函数中进行处理,得到64位F函数运算结果,然后将64位F函数运算结果与第13个时钟周期的128位密文输出的低64位数据按位进行异或操作,得到64位异或操作结果,将64位异或操作结果作为高64位数据,第13个时钟周期的128位密文输出的高64位数据作为低64位数据,拼接为128位密文输出,最后将128位密文输出与第14个时钟周期的128位参考输出按位进行异或操作,得到128位异或操作结果,该128位异或操作结果即为PUF响应;
当轮数m为12,时钟周期位数n为15时,则将第14个时钟周期的128位密文输出的高64位数据输入到128位Camellia加密算法硬件电路的FL函数中,得到64位FL函数运算结果,然后将第14个时钟周期的128位密文输出的低64位数据输入到128位Camellia加密算法硬件电路的FL-1函数中,得到64位FL-1函数运算结果,将64位FL函数运算结果作为高64位数据,64位FL-1函数运算结果作为低64位数据,拼接为128位密文输出,最后将128位密文输出与第15个时钟周期的128位参考输出按位进行异或操作,得到128位异或操作结果,该128位异或操作结果即为PUF响应;
当轮数m为18,时钟周期位数n为21时,则将第20个时钟周期的128位密文输出的高64位数据输入到128位Camellia加密算法硬件电路的F函数中进行处理,得到64位F函数运算结果,然后将64位F函数运算结果与第20个周期的128位密文输出的低64位数据按位进行异或操作,得到64位异或操作结果,将64位异或操作结果作为高64位数据,第20个时钟周期的128位密文输出的高64位数据作为低64位数据,拼接为128位密文输出,最后将128位密文输出与第21个时钟周期的128位参考输出按位进行异或操作,得到128位异或操作结果,该128位异或操作结果即为PUF响应;
当轮数m为18,时钟周期位数n为22时,则将第21个时钟周期的128位密文输出的高64位数据与128位子密钥k2的低64位数据按位进行异或操作,得到第一个64位异或操作结果,然后将第21个时钟周期的128位密文输出的低64位数据与128位子密钥k2的高64位数据按位进行异或操作,得到第二个异或操作结果,将第二个异或操作结果作为高64位数据,第一个异或操作结果作为低64位数据,拼接为128位密文输出,最后将128位密文输出与第22个时钟周期的128位参考输出按位进行异或操作,得到128位异或操作结果,该128位异或操作结果即为PUF响应;
当轮数m为2、3、4、5时,则将第m个时钟周期的128位密文输出的高64位数据输入到128位Camellia加密算法硬件电路的F函数中进行处理,得到64位F函数运算结果,然后将64位F函数运算结果与第m个时钟周期的128位密文输出的低64位数据按位进行异或操作,得到64位异或操作结果,将64位异或操作结果作为高64位数据,第m个时钟周期的128位密文输出的高64位数据作为低64位数据,拼接为128位密文输出,最后将128位密文输出与第m+1个时钟周期的128位参考输出按位进行异或操作,得到128位异或操作结果,该128位异或操作结果即为PUF响应;
当轮数m为7、8、9、10、11时,则将第m+1个时钟周期的128位密文输出的高64位数据输入到128位Camellia加密算法硬件电路的F函数中进行处理,得到64位F函数运算结果,然后将64位F函数运算结果与第m+1个时钟周期的128位密文输出的低64位数据按位进行异或操作,得到64位异或操作结果,将64位异或操作结果作为高64位数据,第m+1个时钟周期的128位密文输出的高64位数据作为低64位数据,拼接为128位密文输出,最后将128位密文输出与第m+2个时钟周期的128位参考输出按位进行异或操作,得到128位异或操作结果,该128位异或操作结果即为PUF响应;
当轮数m为13、14、15、16、17时,则将第m+2个时钟周期的128位密文输出的高64位数据输入到128位Camellia加密算法硬件电路的F函数中进行处理,得到64位F函数运算结果,然后将64位F函数运算结果与第m+2个时钟周期的128位密文输出的低64位数据按位进行异或操作,得到64位异或操作结果,将64位异或操作结果作为高64位数据,第m+2个时钟周期的128位密文输出的高64位数据作为低64位数据,拼接为128位密文输出,最后将128位密文输出与第m+3个时钟周期的128位参考输出按位进行异或操作,得到128位异或操作结果,该128位异或操作结果即为PUF响应;
当改变所述的128位密钥输入端口key_in[0]-[127]、所述的128位明文输入端口data_in[0]-[127]和所述的时钟输入端口clk中至少一个端口接入的信号,就能够改变所述的基于Camellia加密算法的软PUF生成的PUF响应。
与现有技术相比,本发明的优点在于通过利用基于Camellia加密算法硬件电路中路径延迟偏差获取PUF响应数据,无需专用硬件开销,且在固定时钟频率下进行PUF响应的采集,避免了频率变化过程中导致的不稳定现象,另外PUF响应经过Camellia加密算法的多轮数据随机化,唯一性和随机性较高,且从Camellia加密算法硬件电路的输出中提取PUF响应采集难度低并且位数较多,安全性较强,由此本发明具有抗频率扰动能力,可靠性较高,且具有良好唯一性和随机性,安全性较高,有利于在信息安全领域的应用。
附图说明
图1为本发明的基于Camellia加密算法的软PUF的随机性仿真图;
图2为本发明的基于Camellia加密算法的软PUF在输出阶段所得最终PUF响应的二维分布图;
图3为本发明的基于Camellia加密算法的软PUF 50次蒙特卡洛仿真DE PUF输出响应的HD分布图;
图4为本发明的基于Camellia加密算法的软PUF的PUF输出数据流ACF测试结果图;
图5(a)为本发明的基于Camellia加密算法的软PUF的功耗开销曲线图;
图5(b)为本发明的基于Camellia加密算法的软PUF的唯一性及随机性随时钟周期变化曲线图。
具体实施方式
以下结合附图实施例对本发明作进一步详细描述。
实施例:一种基于Camellia加密算法的软PUF,包括硬件平台,硬件平台为128位Camellia加密算法硬件电路,128位Camellia加密算法硬件电路具有以下几个端口:用于输入128位密钥信号K1(128位二进数数据)的128位密钥输入端口key_in[0]-[127]、用于输入128位明文信号P1(128位二进数数据)的128位明文输入端口data_in[0]-[127]、时钟输入端口clk、128位密文输出端口data_out[0]-[127];128位Camellia加密算法硬件电路中预存有128位子密钥k1、128位子密钥k2和时序路径信息,128位子密钥k1和128位子密钥k2分别为128位二进制数据,且128位子密钥k1和128位子密钥k2互不相同,时序路径信息包括关键路径延迟Tpath和不同输入信号激励下激活的与128位密文输出端口data_out[0]-[127]直接相关的128条时序路径;
该128位Camellia加密算法硬件电路工作过程包括18轮加密操作,其中第1轮、第6轮、第12轮和第18轮加密操作分别需要花费两个时钟周期来完成加密操作,其他轮加密操作仅需要一个时钟周期来完成加密操作,该128位Camellia加密算法硬件电路整个工作过程需要22个时钟周期,其中,第1轮加密操作在第1个时钟周期和第2个时钟周期进行,且第1个时钟周期和第2个时钟周期分别在128位密文输出端口data_out[0]-[127]产生一个128位密文输出,第2轮加密操作在第3个时钟周期进行,在128位密文输出端口data_out[0]-[127]产生一个128位密文输出,第3轮加密操作在第4个时钟周期进行,在128位密文输出端口data_out[0]-[127]产生一个128位密文输出,第4轮加密操作在第5个时钟周期进行,在128位密文输出端口data_out[0]-[127]产生一个128位密文输出,第5轮加密操作在第6个时钟周期进行,在128位密文输出端口data_out[0]-[127]产生一个128位密文输出,第6轮加密操作在第7个时钟周期和第8个时钟周期进行,且第7个时钟周期和第8个时钟周期分别在128位密文输出端口data_out[0]-[127]产生一个128位密文输出,第7轮加密操作在第9个时钟周期进行,在128位密文输出端口data_out[0]-[127]产生一个128位密文输出,第8轮加密操作在第10个时钟周期进行,在128位密文输出端口data_out[0]-[127]产生一个128位密文输出,第9轮加密操作在第11个时钟周期进行,在128位密文输出端口data_out[0]-[127]产生一个128位密文输出,第10轮加密操作在第12个时钟周期进行,在128位密文输出端口data_out[0]-[127]产生一个128位密文输出,第11轮加密操作在第13个时钟周期进行,在128位密文输出端口data_out[0]-[127]产生一个128位密文输出,第12轮加密操作在第14个时钟周期和第15个时钟周期进行,且第14个时钟周期和第15个时钟周期分别在128位密文输出端口data_out[0]-[127]产生一个128位密文输出,第13轮加密操作在第16个时钟周期进行,在128位密文输出端口data_out[0]-[127]产生一个128位密文输出,第14轮加密操作在第17个时钟周期进行,在128位密文输出端口data_out[0]-[127]产生一个128位密文输出,第15轮加密操作在第18个时钟周期进行,在128位密文输出端口data_out[0]-[127]产生一个128位密文输出,第16轮加密操作在第19个时钟周期进行,在128位密文输出端口data_out[0]-[127]产生一个128位密文输出,第17轮加密操作在第20个时钟周期进行,在128位密文输出端口data_out[0]-[127]产生一个128位密文输出,第18轮加密操作在第21个时钟周期和第22个时钟周期进行,且第21个时钟周期和第22个时钟周期分别在128位密文输出端口data_out[0]-[127]产生一个128位密文输出;该128位Camellia加密算法硬件电路内部具有F函数、FL函数及FL-1函数,FL-1函数为FL函数的逆函数,关键路径延迟Tpath为与128位Camellia加密算法硬件电路的128位密文输出端口data_out[0]-[127]直接相关的128条时序路径中的最大路径延迟,将128位Camellia加密算法硬件电路正常工作的时钟周期长度记为Tclk,Tclk=Tpath
基于Camellia加密算法的软PUF生成PUF响应的具体步骤如下:
①在时钟输入端口clk输入包含22个时钟周期并且每个时钟周期长度均为Tclk的时钟信号,在128位密钥输入端口key_in[0]-[127]输入128位密钥信号K1(用户设定),在128位明文输入端口data_in[0]-[127]输入128位明文信号P1(用户设定),此时与128位密文输出端口data_out[0]-[127]直接相关的128条时序路径会被激活,128位密文输出端口data_out[0]-[127]在每个时钟周期内分别产生一个128位密文输出,22个时钟周期一共得到22个128位密文输出,将该22个128位密文输出分别作为22个时钟周期的128位参考输出;
②在128位密钥输入端口key_in[0]-[127]输入128位密钥信号K1和在128位明文输入端口data_in[0]-[127]输入128位明文信号P1,然后在时钟输入端口clk上输入包含22个时钟周期并且时钟周期长度大于70%Tclk且小于Tclk的任意一个时钟信号C1,最后记录该时钟信号下,每个时钟周期产生的128位密文输出,从第1个时钟周期开始,将该时钟周期产生的128位密文输出与该时钟周期的128位参考输出进行比较,如果两者相同,则进行下一个时钟周期的比较,直至两者不同,如果两者不同,则结束比较,并确定该时钟周期的位数以及所处加密操作的轮数,将该时钟周期的位数记为n,轮数记为m,然后进入步骤③进行判断及处理;
③当轮数m为1,时钟周期位数n为1时,则将128位明文信号P1与128位子密钥k1按位进行异或操作,得到第一个128位异或操作结果,然后将该第一个128位异或操作结果与第1个时钟周期的128位参考输出按位进行异或操作,得到第二个128位异或操作结果,该第二个128位异或操作结果即为PUF响应;
当轮数m为1,时钟周期位数n为2时,则将第1个时钟周期的128位密文输出的高64位数据输入到128位Camellia加密算法硬件电路的F函数中进行处理,得到64位F函数运算结果,然后将该64位F函数运算结果与第1个时钟周期的128位密文输出的低64位数据按位进行异或操作,得到64位异或操作结果,将该64位异或操作结果作为高64位数据,第1个时钟周期的128位密文输出的高64位作为低64位数据,拼接为128位密文输出,最后将128位密文输出与第2个时钟周期的128位参考输出按位进行异或操作,得到128位异或操作结果,该128位异或操作结果即为PUF响应;
当轮数m为6,时钟周期位数n为7时,则将第6个时钟周期的128位密文输出的高64位数据输入到128位Camellia加密算法硬件电路的F函数中进行处理,得到64位F函数运算结果,然后将64位F函数运算结果与第6个时钟周期的128位密文输出的低64位数据按位进行异或操作,得到64位异或操作结果,将该64位异或操作结果作为高64位数据,第6个时钟周期的128位密文输出的高64位作为低64位数据,拼接为128位密文输出,最后将该128位密文输出与第7个时钟周期的128位参考输出按位进行异或操作,得到128位异或操作结果,该128位异或操作结果即为PUF响应;
当轮数m为6,时钟周期位数n为8时,则将第7个时钟周期的128位密文输出的高64位数据输入到128位Camellia加密算法硬件电路的FL函数中,得到64位FL函数运算结果,然后将第7个时钟周期的128位密文输出的低64位数据输入到128位Camellia加密算法硬件电路的FL-1函数中,得到64位FL-1函数运算结果,将64位FL函数运算结果作为高64位数据,64位FL-1函数运算结果作为低64位数据,拼接为128位密文输出,最后将128位密文输出与第8个时钟周期的128位参考输出按位进行异或操作,得到128位异或操作结果,该128位异或操作结果即为PUF响应;
当轮数m为12,时钟周期位数n为14时,则将第13个时钟周期的128位密文输出的高64位数据输入到128位Camellia加密算法硬件电路的F函数中进行处理,得到64位F函数运算结果,然后将64位F函数运算结果与第13个时钟周期的128位密文输出的低64位数据按位进行异或操作,得到64位异或操作结果,将64位异或操作结果作为高64位数据,第13个时钟周期的128位密文输出的高64位数据作为低64位数据,拼接为128位密文输出,最后将128位密文输出与第14个时钟周期的128位参考输出按位进行异或操作,得到128位异或操作结果,该128位异或操作结果即为PUF响应;
当轮数m为12,时钟周期位数n为15时,则将第14个时钟周期的128位密文输出的高64位数据输入到128位Camellia加密算法硬件电路的FL函数中,得到64位FL函数运算结果,然后将第14个时钟周期的128位密文输出的低64位数据输入到128位Camellia加密算法硬件电路的FL-1函数中,得到64位FL-1函数运算结果,将64位FL函数运算结果作为高64位数据,64位FL-1函数运算结果作为低64位数据,拼接为128位密文输出,最后将128位密文输出与第15个时钟周期的128位参考输出按位进行异或操作,得到128位异或操作结果,该128位异或操作结果即为PUF响应;
当轮数m为18,时钟周期位数n为21时,则将第20个时钟周期的128位密文输出的高64位数据输入到128位Camellia加密算法硬件电路的F函数中进行处理,得到64位F函数运算结果,然后将64位F函数运算结果与第20个周期的128位密文输出的低64位数据按位进行异或操作,得到64位异或操作结果,将64位异或操作结果作为高64位数据,第20个时钟周期的128位密文输出的高64位数据作为低64位数据,拼接为128位密文输出,最后将128位密文输出与第21个时钟周期的128位参考输出按位进行异或操作,得到128位异或操作结果,该128位异或操作结果即为PUF响应;
当轮数m为18,时钟周期位数n为22时,则将第21个时钟周期的128位密文输出的高64位数据与128位子密钥k2的低64位数据按位进行异或操作,得到第一个64位异或操作结果,然后将第21个时钟周期的128位密文输出的低64位数据与128位子密钥k2的高64位数据按位进行异或操作,得到第二个异或操作结果,将第二个异或操作结果作为高64位数据,第一个异或操作结果作为低64位数据,拼接为128位密文输出,最后将128位密文输出与第22个时钟周期的128位参考输出按位进行异或操作,得到128位异或操作结果,该128位异或操作结果即为PUF响应;
当轮数m为2、3、4、5时,则将第m个时钟周期的128位密文输出的高64位数据输入到128位Camellia加密算法硬件电路的F函数中进行处理,得到64位F函数运算结果,然后将64位F函数运算结果与第m个时钟周期的128位密文输出的低64位数据按位进行异或操作,得到64位异或操作结果,将64位异或操作结果作为高64位数据,第m个时钟周期的128位密文输出的高64位数据作为低64位数据,拼接为128位密文输出,最后将128位密文输出与第m+1个时钟周期的128位参考输出按位进行异或操作,得到128位异或操作结果,该128位异或操作结果即为PUF响应;
当轮数m为7、8、9、10、11时,则将第m+1个时钟周期的128位密文输出的高64位数据输入到128位Camellia加密算法硬件电路的F函数中进行处理,得到64位F函数运算结果,然后将64位F函数运算结果与第m+1个时钟周期的128位密文输出的低64位数据按位进行异或操作,得到64位异或操作结果,将64位异或操作结果作为高64位数据,第m+1个时钟周期的128位密文输出的高64位数据作为低64位数据,拼接为128位密文输出,最后将128位密文输出与第m+2个时钟周期的128位参考输出按位进行异或操作,得到128位异或操作结果,该128位异或操作结果即为PUF响应;
当轮数m为13、14、15、16、17时,则将第m+2个时钟周期的128位密文输出的高64位数据输入到128位Camellia加密算法硬件电路的F函数中进行处理,得到64位F函数运算结果,然后将64位F函数运算结果与第m+2个时钟周期的128位密文输出的低64位数据按位进行异或操作,得到64位异或操作结果,将64位异或操作结果作为高64位数据,第m+2个时钟周期的128位密文输出的高64位数据作为低64位数据,拼接为128位密文输出,最后将128位密文输出与第m+3个时钟周期的128位参考输出按位进行异或操作,得到128位异或操作结果,该128位异或操作结果即为PUF响应;
当改变128位密钥输入端口key_in[0]-[127]、128位明文输入端口data_in[0]-[127]和时钟输入端口clk中至少一个端口接入的信号,就能够改变基于Camellia加密算法的软PUF生成的PUF响应。
本实施例中,128位子密钥k1与128位密钥输入K1相同;128位子密钥k2通过以下方式确定:128位密钥输入K1经过4轮密钥扩展操作,产生128位密钥扩展结果,将该128位密钥扩展结果按位循环左移111位得到的128位数据,该128位数据即为k2
在台积电65nm工艺下利用IC Compiler对本发明的基于Camellia加密算法的软PUF进行布局布线,采用Calibre进行物理验证及寄生参数提取。PUF响应数据采集流程中,使用NClaunch对Camellia加密算法硬件电路进行后仿真判断Camellia加密算法硬件电路时序的正确性。选取快速模拟仿真工具CustomSim进行仿真,仿真实验结合Camellia加密算法硬件电路静态时序分析结果与所提仿真流程,提取不同输入激励下的PUF响应并进行如下安全性及开销评估分析:
一、随机性
随机性由PUF电路输出逻辑1的概率计算,理想情况下逻辑0和1概率均为0.5,随机性为100%。随机性计算公式如下:
Randomness=(1-|2P(r=1)-1|)×100% (1)
式中P(r=1)为响应中逻辑1的概率。在时钟周期减小50%情况下,本发明的基于Camellia加密算法的软PUF的随机性仿真图如图1所示,图1中(a)图为时序波形,其中以X表示未知状态,(b)图和(c)图分别为进行50次蒙特卡洛仿真模拟不同芯片间的随机工艺偏差,分别统计密钥扩展和加密过程中随机化前后两个时钟周期的响应,得到的PUF响应的逻辑0和1概率分布。分析图1可知,该时钟频率下电路分别在密钥扩展和加密过程中的第2轮发生时序违例,经过一次随机化处理后响应中逻辑0和1的分布更加均匀。
本发明的基于Camellia加密算法的软PUF在输出阶段所得最终PUF响应的二维分布如图2所示,黑白方格分别代表逻辑1和逻辑0。图中逻辑1的概率为0.5022,通过式(1)计算可得该PUF随机性为99.56%。
通过美国国家标准技术(National Institute of Standards and Technology,NIST)测试评估PUF随机性,是一种更加严格和系统的方法。NIST测试中,评估p值以量化PUF输出响应的随机性。一般认为评估数据的p值大于0.01,则密钥的随机性置信度达到99%,并且p值越高表明数据随机性的置信度越高。对本发明的基于Camellia加密算法的软PUF的PUF输出响应进行NIST测试,结果如表1所示。从表1中可知,本发明的基于Camellia加密算法的软PUF的PUF响应可以通过所有适用的NIST测试,并且测试得到的平均p值都相对较高,表明该软PUF具有较高随机性。
表1 NIST随机性测试
Figure GDA0003595655910000141
二、唯一性及自相关性
唯一性表征同类型PUF电路中任意个体间的区分度,即产生唯一标识自身数字信息的能力。通常采用统计同一类型PUF不同个体输出响应间汉明距离(Hamming Distance,HD)的方式衡量,理想情况下平均汉明距离为响应长度的50%。k个PUF的片间汉明距离均值E(HDinter)可通过式(2)计算:
Figure GDA0003595655910000142
其中,ri和rj分别表示第i和第j个PUF电路在相同激励下产生的n比特响应。
统计本发明的基于Camellia加密算法的软PUF50次蒙特卡洛仿真的PUF输出响应的HD分布如图3所示,服从数学期望μ=0.5001,标准差σ=0.0452的正态分布。通过式(2)计算唯一性为50.01%,接近理想值。电路模块处于芯片中不同的位置可能会对电路的性能产生影响,在PUF电路中则表现为生成数据与PUF单元位置呈现一定的函数关系,对PUF安全性造成威胁。因此,PUF电路生成的密钥应独立于PUF单元的位置,不受芯片内部电路布局的影响。PUF电路的空间独立性可以利用自相关函数(Auto-correlation Function,ACF)评估。对本发明的基于Camellia加密算法的软PUF的PUF输出数据流进行ACF测试,结果如图4所示。由图4可知,本发明的基于Camellia加密算法的软PUF在95%置信区间情况下σ=0.025,均值接近于0,表明本发明的基于Camellia加密算法的软PUF产生的每比特数据与相邻位数据基本独立,PUF数据与版图布局没有必然的相关性。
三、开销分析
本发明的基于Camellia加密算法的软PUF利用现有Camellia加密算法硬件电路产生PUF响应,无需额外的电路设计与硬件开销。但该PUF工作时需要提高频率,产生额外的功耗开销。因此,在不同时钟和数据信号下对该软PUF的功耗开销进行分析,所选数据输入组合见表2。当时钟周期减小幅度约40%时,算法电路在所选择输入信号激励下开始发生时序违例。因此,以该时钟周期为起点,每减少5%选取一个点进行仿真。经过测试得到本发明的基于Camellia加密算法的软PUF的功耗开销曲线如图5(a)所示,其中工作电压和温度分别为1.2V和25℃。由图5(a)可知,相同频率下功耗受输入影响较小,但随着时钟周期减小,SPUF的功耗增加明显。在不同的输入下,时钟周期减小50%情况下的平均额外功耗为829μW。
为测试本发明的基于Camellia加密算法的软PUF的安全性、功耗与时钟频率之间的关联性,对不同时钟周期下本发明的基于Camellia加密算法的软PUF的唯一性和随机性进行评估,如图5(b)所示。实验数据表明该PUF在时钟周期减小程度较低时唯一性和随机性较差,但所需额外功耗较低。当时钟周期逐渐减小时,SPUF的唯一性和随机性保持在理想值附近。
表2不同输入激励
Figure GDA0003595655910000151
Figure GDA0003595655910000161
本发明的基于Camellia加密算法的软PUF与不同类型的PUF电路性能比较如表3所示。由表3可知,本发明的基于Camellia加密算法的软PUF拥有较高的唯一性和随机性,并且无需额外硬件开销。
表3不同类型PUF性能对比
Figure GDA0003595655910000162
表3中,文献1为HE Z,CHEN W,ZHANG L,et al.A Highly Reliable Arbiter PUFwith Improved Uniqueness in FPGA Implementation Using Bit-Self-Test[J].IEEEAccess,2020,8:181751-181762.,文献2为RAHMAN M T,RAHMAN F,FORTE D,et al.AnAging-Resistant RO-PUF for Reliable Key Generation[J].IEEE Transactions onEmerging Topics in Computing,2015,4(3):335-348.;文献3为WANG S J,LIEN C H,LI KS M.Register PUF with No Power-Up Restrictions[C]//2018IEEE InternationalSymposium on Circuits and Systems(ISCAS).Florence:IEEE,2018:1-5.;文献4为MAITIA,SCHAUMONT P.A Novel Microprocessor-Intrinsic Physical Unclonable Function[C]//International Conference on Field Programmable Logic&Applications.Oslo:IEEE,2012:380-387.;文献5为AYSU A,SCHAUMONT P.Hardware/Software Co-Design ofPhysical Unclonable Function Based Authentications on FPGAs[J].Microprocessors and Microsystems,2015,39(7):589-597.。
综上所述,本发明的基于Camellia加密算法的软PUF利用Camellia算法硬件电路内部时序路径延迟偏差,通过电路延迟差异影响超频条件下时序违例情况,使得无需额外电路设计便可实现输出变化,且经过Camellia加密算法多周期迭代产生高安全性输出响应。在数字与模拟联合仿真下,采集Camellia算法硬件电路错误输出数据并比较产生PUF响应。与传统利用特殊硬件结构PUF电路相比,本发明的基于Camellia加密算法的软PUF在具有良好的安全性之外无需增加硬件成本。在同类型PUF之中,其安全性更强。实验结果表明,在时钟周期减小50%情况下,PUF响应唯一性为50.01%,随机性通过NIST测试,可广泛应用于资源受限设备的安全防护等领域。

Claims (1)

1.一种基于Camellia加密算法的软PUF,包括硬件平台,其特征在于所述的硬件平台为128位Camellia加密算法硬件电路,所述的128位Camellia加密算法硬件电路具有以下几个端口:128位密钥输入端口key_in[0]-[127]、128位明文输入端口data_in[0]-[127]、时钟输入端口clk、128位密文输出端口data_out[0]-[127];所述的128位Camellia加密算法硬件电路中预存有128位子密钥k1、128位子密钥k2和时序路径信息,时序路径信息包括关键路径延迟Tpath和不同输入信号激励下激活的与128位密文输出端口data_out[0]-[127]直接相关的128条时序路径;
该128位Camellia加密算法硬件电路工作过程包括18轮加密操作,其中第1轮、第6轮、第12轮和第18轮加密操作分别需要花费两个时钟周期来完成加密操作,其他轮加密操作仅需要一个时钟周期来完成加密操作,该128位Camellia加密算法硬件电路整个工作过程需要22个时钟周期,其中,第1轮加密操作在第1个时钟周期和第2个时钟周期进行,且第1个时钟周期和第2个时钟周期分别在128位密文输出端口data_out[0]-[127]产生一个128位密文输出,第2轮加密操作在第3个时钟周期进行,在128位密文输出端口data_out[0]-[127]产生一个128位密文输出,第3轮加密操作在第4个时钟周期进行,在128位密文输出端口data_out[0]-[127]产生一个128位密文输出,第4轮加密操作在第5个时钟周期进行,在128位密文输出端口data_out[0]-[127]产生一个128位密文输出,第5轮加密操作在第6个时钟周期进行,在128位密文输出端口data_out[0]-[127]产生一个128位密文输出,第6轮加密操作在第7个时钟周期和第8个时钟周期进行,且第7个时钟周期和第8个时钟周期分别在128位密文输出端口data_out[0]-[127]产生一个128位密文输出,第7轮加密操作在第9个时钟周期进行,在128位密文输出端口data_out[0]-[127]产生一个128位密文输出,第8轮加密操作在第10个时钟周期进行,在128位密文输出端口data_out[0]-[127]产生一个128位密文输出,第9轮加密操作在第11个时钟周期进行,在128位密文输出端口data_out[0]-[127]产生一个128位密文输出,第10轮加密操作在第12个时钟周期进行,在128位密文输出端口data_out[0]-[127]产生一个128位密文输出,第11轮加密操作在第13个时钟周期进行,在128位密文输出端口data_out[0]-[127]产生一个128位密文输出,第12轮加密操作在第14个时钟周期和第15个时钟周期进行,且第14个时钟周期和第15个时钟周期分别在128位密文输出端口data_out[0]-[127]产生一个128位密文输出,第13轮加密操作在第16个时钟周期进行,在128位密文输出端口data_out[0]-[127]产生一个128位密文输出,第14轮加密操作在第17个时钟周期进行,在128位密文输出端口data_out[0]-[127]产生一个128位密文输出,第15轮加密操作在第18个时钟周期进行,在128位密文输出端口data_out[0]-[127]产生一个128位密文输出,第16轮加密操作在第19个时钟周期进行,在128位密文输出端口data_out[0]-[127]产生一个128位密文输出,第17轮加密操作在第20个时钟周期进行,在128位密文输出端口data_out[0]-[127]产生一个128位密文输出,第18轮加密操作在第21个时钟周期和第22个时钟周期进行,且第21个时钟周期和第22个时钟周期分别在128位密文输出端口data_out[0]-[127]产生一个128位密文输出;该128位Camellia加密算法硬件电路内部具有F函数、FL函数及FL-1函数,FL-1函数为FL函数的逆函数,关键路径延迟Tpath为与128位Camellia加密算法硬件电路的128位密文输出端口data_out[0]-[127]直接相关的128条时序路径中的最大路径延迟,将128位Camellia加密算法硬件电路正常工作的时钟周期长度记为Tclk,Tclk=Tpath
所述的基于Camellia加密算法的软PUF生成PUF响应的具体步骤如下:
①在时钟输入端口clk输入包含22个时钟周期并且每个时钟周期长度均为Tclk的时钟信号,在128位密钥输入端口key_in[0]-[127]输入128位密钥信号K1,在128位明文输入端口data_in[0]-[127]输入128位明文信号P1,此时与128位密文输出端口data_out[0]-[127]直接相关的128条时序路径会被激活,所述的128位密文输出端口data_out[0]-[127]在每个时钟周期内分别产生一个128位密文输出,22个时钟周期一共得到22个128位密文输出,将该22个128位密文输出分别作为22个时钟周期的128位参考输出;
②在128位密钥输入端口key_in[0]-[127]输入128位密钥信号K1和在128位明文输入端口data_in[0]-[127]输入128位明文信号P1,然后在时钟输入端口clk上输入包含22个时钟周期并且时钟周期长度大于70%Tclk且小于Tclk的任意一个时钟信号C1,最后记录该时钟信号下,每个时钟周期产生的128位密文输出,从第1个时钟周期开始,将该时钟周期产生的128位密文输出与该时钟周期的128位参考输出进行比较,如果两者相同,则进行下一个时钟周期的比较,直至两者不同,如果两者不同,则结束比较,并确定该时钟周期的位数以及所处加密操作的轮数,将该时钟周期的位数记为n,轮数记为m,然后进入步骤③进行判断及处理;
③当轮数m为1,时钟周期位数n为1时,则将128位明文信号P1与128位子密钥k1按位进行异或操作,得到第一个128位异或操作结果,然后将该第一个128位异或操作结果与第1个时钟周期的128位参考输出按位进行异或操作,得到第二个128位异或操作结果,该第二个128位异或操作结果即为PUF响应;
当轮数m为1,时钟周期位数n为2时,则将第1个时钟周期的128位密文输出的高64位数据输入到128位Camellia加密算法硬件电路的F函数中进行处理,得到64位F函数运算结果,然后将该64位F函数运算结果与第1个时钟周期的128位密文输出的低64位数据按位进行异或操作,得到64位异或操作结果,将该64位异或操作结果作为高64位数据,第1个时钟周期的128位密文输出的高64位作为低64位数据,拼接为128位密文输出,最后将128位密文输出与第2个时钟周期的128位参考输出按位进行异或操作,得到128位异或操作结果,该128位异或操作结果即为PUF响应;
当轮数m为6,时钟周期位数n为7时,则将第6个时钟周期的128位密文输出的高64位数据输入到128位Camellia加密算法硬件电路的F函数中进行处理,得到64位F函数运算结果,然后将64位F函数运算结果与第6个时钟周期的128位密文输出的低64位数据按位进行异或操作,得到64位异或操作结果,将该64位异或操作结果作为高64位数据,第6个时钟周期的128位密文输出的高64位作为低64位数据,拼接为128位密文输出,最后将该128位密文输出与第7个时钟周期的128位参考输出按位进行异或操作,得到128位异或操作结果,该128位异或操作结果即为PUF响应;
当轮数m为6,时钟周期位数n为8时,则将第7个时钟周期的128位密文输出的高64位数据输入到128位Camellia加密算法硬件电路的FL函数中,得到64位FL函数运算结果,然后将第7个时钟周期的128位密文输出的低64位数据输入到128位Camellia加密算法硬件电路的FL-1函数中,得到64位FL-1函数运算结果,将64位FL函数运算结果作为高64位数据,64位FL-1函数运算结果作为低64位数据,拼接为128位密文输出,最后将128位密文输出与第8个时钟周期的128位参考输出按位进行异或操作,得到128位异或操作结果,该128位异或操作结果即为PUF响应;
当轮数m为12,时钟周期位数n为14时,则将第13个时钟周期的128位密文输出的高64位数据输入到128位Camellia加密算法硬件电路的F函数中进行处理,得到64位F函数运算结果,然后将64位F函数运算结果与第13个时钟周期的128位密文输出的低64位数据按位进行异或操作,得到64位异或操作结果,将64位异或操作结果作为高64位数据,第13个时钟周期的128位密文输出的高64位数据作为低64位数据,拼接为128位密文输出,最后将128位密文输出与第14个时钟周期的128位参考输出按位进行异或操作,得到128位异或操作结果,该128位异或操作结果即为PUF响应;
当轮数m为12,时钟周期位数n为15时,则将第14个时钟周期的128位密文输出的高64位数据输入到128位Camellia加密算法硬件电路的FL函数中,得到64位FL函数运算结果,然后将第14个时钟周期的128位密文输出的低64位数据输入到128位Camellia加密算法硬件电路的FL-1函数中,得到64位FL-1函数运算结果,将64位FL函数运算结果作为高64位数据,64位FL-1函数运算结果作为低64位数据,拼接为128位密文输出,最后将128位密文输出与第15个时钟周期的128位参考输出按位进行异或操作,得到128位异或操作结果,该128位异或操作结果即为PUF响应;
当轮数m为18,时钟周期位数n为21时,则将第20个时钟周期的128位密文输出的高64位数据输入到128位Camellia加密算法硬件电路的F函数中进行处理,得到64位F函数运算结果,然后将64位F函数运算结果与第20个周期的128位密文输出的低64位数据按位进行异或操作,得到64位异或操作结果,将64位异或操作结果作为高64位数据,第20个时钟周期的128位密文输出的高64位数据作为低64位数据,拼接为128位密文输出,最后将128位密文输出与第21个时钟周期的128位参考输出按位进行异或操作,得到128位异或操作结果,该128位异或操作结果即为PUF响应;
当轮数m为18,时钟周期位数n为22时,则将第21个时钟周期的128位密文输出的高64位数据与128位子密钥k2的低64位数据按位进行异或操作,得到第一个64位异或操作结果,然后将第21个时钟周期的128位密文输出的低64位数据与128位子密钥k2的高64位数据按位进行异或操作,得到第二个异或操作结果,将第二个异或操作结果作为高64位数据,第一个异或操作结果作为低64位数据,拼接为128位密文输出,最后将128位密文输出与第22个时钟周期的128位参考输出按位进行异或操作,得到128位异或操作结果,该128位异或操作结果即为PUF响应;
当轮数m为2、3、4、5时,则将第m个时钟周期的128位密文输出的高64位数据输入到128位Camellia加密算法硬件电路的F函数中进行处理,得到64位F函数运算结果,然后将64位F函数运算结果与第m个时钟周期的128位密文输出的低64位数据按位进行异或操作,得到64位异或操作结果,将64位异或操作结果作为高64位数据,第m个时钟周期的128位密文输出的高64位数据作为低64位数据,拼接为128位密文输出,最后将128位密文输出与第m+1个时钟周期的128位参考输出按位进行异或操作,得到128位异或操作结果,该128位异或操作结果即为PUF响应;
当轮数m为7、8、9、10、11时,则将第m+1个时钟周期的128位密文输出的高64位数据输入到128位Camellia加密算法硬件电路的F函数中进行处理,得到64位F函数运算结果,然后将64位F函数运算结果与第m+1个时钟周期的128位密文输出的低64位数据按位进行异或操作,得到64位异或操作结果,将64位异或操作结果作为高64位数据,第m+1个时钟周期的128位密文输出的高64位数据作为低64位数据,拼接为128位密文输出,最后将128位密文输出与第m+2个时钟周期的128位参考输出按位进行异或操作,得到128位异或操作结果,该128位异或操作结果即为PUF响应;
当轮数m为13、14、15、16、17时,则将第m+2个时钟周期的128位密文输出的高64位数据输入到128位Camellia加密算法硬件电路的F函数中进行处理,得到64位F函数运算结果,然后将64位F函数运算结果与第m+2个时钟周期的128位密文输出的低64位数据按位进行异或操作,得到64位异或操作结果,将64位异或操作结果作为高64位数据,第m+2个时钟周期的128位密文输出的高64位数据作为低64位数据,拼接为128位密文输出,最后将128位密文输出与第m+3个时钟周期的128位参考输出按位进行异或操作,得到128位异或操作结果,该128位异或操作结果即为PUF响应;
当改变所述的128位密钥输入端口key_in[0]-[127]、所述的128位明文输入端口data_in[0]-[127]和所述的时钟输入端口clk中至少一个端口接入的信号,就能够改变所述的基于Camellia加密算法的软PUF生成的PUF响应。
CN202110388098.2A 2021-04-12 2021-04-12 基于Camellia加密算法的软PUF Active CN113268745B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110388098.2A CN113268745B (zh) 2021-04-12 2021-04-12 基于Camellia加密算法的软PUF

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110388098.2A CN113268745B (zh) 2021-04-12 2021-04-12 基于Camellia加密算法的软PUF

Publications (2)

Publication Number Publication Date
CN113268745A CN113268745A (zh) 2021-08-17
CN113268745B true CN113268745B (zh) 2022-06-21

Family

ID=77228707

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110388098.2A Active CN113268745B (zh) 2021-04-12 2021-04-12 基于Camellia加密算法的软PUF

Country Status (1)

Country Link
CN (1) CN113268745B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115659886B (zh) * 2022-12-27 2023-04-07 南京航空航天大学 基于超频状态dec电路时序错误的软件puf配置方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103198268A (zh) * 2013-03-18 2013-07-10 宁波大学 一种可重构多端口物理不可克隆函数电路
CN104318181A (zh) * 2014-09-22 2015-01-28 宁波大学 基于阈值偏差延迟的物理不可克隆函数电路
CN105119595A (zh) * 2015-08-14 2015-12-02 宁波大学 基于预充电型puf电路的blake算法
CN106888093A (zh) * 2017-01-05 2017-06-23 宁波大学 一种nmos零温度系数点的多端口puf电路
CN107769910A (zh) * 2017-11-15 2018-03-06 东南大学 一种基于Latch PUF的抗边信道攻击DES防护方法及电路

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101576408B1 (ko) * 2011-12-22 2015-12-09 미쓰비시덴키 가부시키가이샤 디바이스 고유 정보 생성 장치 및 디바이스 고유 정보 생성 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103198268A (zh) * 2013-03-18 2013-07-10 宁波大学 一种可重构多端口物理不可克隆函数电路
CN104318181A (zh) * 2014-09-22 2015-01-28 宁波大学 基于阈值偏差延迟的物理不可克隆函数电路
CN105119595A (zh) * 2015-08-14 2015-12-02 宁波大学 基于预充电型puf电路的blake算法
CN106888093A (zh) * 2017-01-05 2017-06-23 宁波大学 一种nmos零温度系数点的多端口puf电路
CN107769910A (zh) * 2017-11-15 2018-03-06 东南大学 一种基于Latch PUF的抗边信道攻击DES防护方法及电路

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
《面向密码算法IP固核的状态混淆研究》;潘钊;《中国优秀硕士学位论文全文数据库》;20200615;全文 *
A Reliable Strong PUF Based on Switched-Capacitor Circuit;He Zhangqing;《 IEEE Transactions on Very Large Scale Integration (VLSI) Systems》;20180630;全文 *
Robustness Analysis of a Memristive Crossbar PUF Against Modeling Attacks;Uddin Mesbah;《IEEE Transactions on Nanotechnology》;20170331;全文 *
基于微胶囊技术对油脂包埋的研究进展;王慧梅等;《现代食品科技》;20180908(第10期);全文 *

Also Published As

Publication number Publication date
CN113268745A (zh) 2021-08-17

Similar Documents

Publication Publication Date Title
Ma et al. A machine learning attack resistant multi-PUF design on FPGA
Gao et al. PUF-FSM: a controlled strong PUF
CA2971212C (en) Reliability enhancement methods for physically unclonable function bitstring generation
He et al. A highly reliable arbiter PUF with improved uniqueness in FPGA implementation using bit-self-test
Majzoobi et al. Techniques for design and implementation of secure reconfigurable PUFs
Koteshwara et al. Key-based dynamic functional obfuscation of integrated circuits using sequentially triggered mode-based design
Hou et al. A lightweight LFSR-based strong physical unclonable function design on FPGA
Yu et al. Can deep learning break a true random number generator?
Chatterjee et al. Theory and application of delay constraints in arbiter PUF
Sami et al. POCA: First power-on chip authentication in untrusted foundry and assembly
Naveenkumar et al. Design and evaluation of XOR arbiter physical unclonable function and its implementation on FPGA in hardware security applications
Nassar et al. CaPUF: Cascaded PUF structure for machine learning resiliency
CN113268745B (zh) 基于Camellia加密算法的软PUF
Yu et al. Profiled deep learning side-channel attack on a protected arbiter PUF combined with bitstream modification
Nguyen et al. Lightweight and secure PUFs: A survey
Yu et al. Why deep learning makes it difficult to keep secrets in FPGAs
Tripathy et al. MARPUF: physical unclonable function with improved machine learning attack resistance
Gong et al. Hardware Trojan side-channels based on physical unclonable functions
Chung et al. An improved DPA countermeasure based on uniform distribution random power generator for IoT applications
Xu et al. Post-silicon validation and calibration of hardware security primitives
Yayla et al. 32-bit and 64-bit CDC-7-XPUF Implementation on a Zynq-7020 SoC
Chhabra et al. Hardware Obfuscation of AES IP Core Using PUFs and PRNG: A Secure Cryptographic Key Generation Solution for Internet-of-Things Applications
Garipcan et al. FPGA modeling of a novel fully-synthesizable and secure TRNG based on key-dependent s-box
Paul et al. Rihann: Remote iot hardware authentication with intrinsic identifiers
Yu et al. On designing PUF-based TRNGs with known answer tests

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
GR01 Patent grant
GR01 Patent grant
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20210817

Assignee: NINGBO XUNGAO INTELLIGENT SCIENCE AND TECHNOLOGY Co.,Ltd.

Assignor: Wenzhou University

Contract record no.: X2022330000627

Denomination of invention: Soft PUF Based on Camellia Encryption Algorithm

Granted publication date: 20220621

License type: Common License

Record date: 20221025

EE01 Entry into force of recordation of patent licensing contract