[发明专利]基于Camellia加密算法的软PUF有效
申请号: | 202110388098.2 | 申请日: | 2021-04-12 |
公开(公告)号: | CN113268745B | 公开(公告)日: | 2022-06-21 |
发明(设计)人: | 汪鹏君;陈佳;李方强;李刚;张会红 | 申请(专利权)人: | 温州大学 |
主分类号: | G06F21/60 | 分类号: | G06F21/60;G06F21/72;H04L9/08 |
代理公司: | 宁波奥圣专利代理有限公司 33226 | 代理人: | 方小惠 |
地址: | 325000 浙江省温州市瓯海*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 camellia 加密算法 puf | ||
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响应。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于温州大学,未经温州大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110388098.2/1.html,转载请声明来源钻瓜专利网。