当前位置: 首页 > 专利查询>温州大学专利>正文

基于Camellia加密算法的软PUF制造技术

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

【技术实现步骤摘要】
基于Camellia加密算法的软PUF
本专利技术涉及一种软PUF,尤其是涉及一种基于Camellia加密算法的软PUF。
技术介绍
随着物联网(InternetofThings,IoT)时代的到来,如何保证设备间安全通信成为关键。传统的安全措施将密钥存储在非易失性存储器(Non-volatileMemory,NVM)中,但极易受到版图逆向工程、微探测等方式攻击造成密钥泄露。物理不可克隆函数(PhysicalUnclonableFunction,PUF)利用集成电路制造过程中存在的随机工艺偏差产生可以抵抗各种物理攻击的高安全性密钥,可广泛应用于设备防伪、用户认证以及集成电路知识产权(IntellectualProperty,IP)核保护等场合。传统的PUF电路依赖特殊的硬件结构产生所需的PUF响应,通常被归为硬PUF(HardwarePUF,HPUF,又称硬件PUF)类别。例如仲裁器PUF(ArbiterPUF,APUF)比较相同两条路径的延迟偏差产生PUF响应,环形振荡器PUF(RingOscillatorPUF,ROPUF)的响应则依赖于相同振荡器的频率差异。此类型PUF在物联网领域的应用往往因为功耗和面积开销等原因受到限制。静态随机存取存储器(StaticRandom-AccessMemory,SRAM)PUF是解决上述问题的一种方式,静态随机存取存储器PUF通过提取SRAM单元内随机的上电状态产生PUF响应。由于存储器广泛存在于电子设备中,静态随机存取存储器PUF实现比较方便且无需消耗额外的硬件资源,但是其随机特征依赖上电循环,在不允许频繁断电的场合需要存储产生的响应,导致安全性降低。MScanPUF利用时序违例情况下触发器采样数据的不确定性产生PUF数据,解决了静态随机存取存储器PUF获取响应的问题,安全性较高,但是需要在原有扫描链结构上增加数据选择器,产生额外的成本。微处理器PUF是近年来出现的一种不需要独立的硬件作为物理随机源的PUF,被归为软PUF(SoftwarePUF,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个时钟周期进行,在本文档来自技高网
...

【技术保护点】
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位子密钥k

【技术特征摘要】
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个时...

【专利技术属性】
技术研发人员:汪鹏君陈佳李方强李刚张会红
申请(专利权)人:温州大学
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1