一种基于轻量级Piccolo分组密码算法的自编码查找表白盒化构造方法及系统

文档序号:34593967发布日期:2023-06-28 19:36阅读:114来源:国知局
一种基于轻量级Piccolo分组密码算法的自编码查找表白盒化构造方法及系统

本发明属于密码学与信息安全领域,具体设计一种基于轻量级piccolo分组密码算法的自编码查找表白盒化构造方法及系统。


背景技术:

1、shibutani k等学者在2011年的international workshop on cryptographichardware and embedded systems(国际密码硬件和嵌入式系统会议)中的论文“piccolo:anultra-lightweightblock cipher”里提出了piccolo算法,该算法具有相应的安全性和硬件消耗能力,是分组密码算法中较为轻量级的算法。

2、专利文献(申请公布号:cn 103731257a公开日:2014年4月16日)公开了一种piccolo算法硬件实现方法,该发明通过重复调用轮函数与模块复用,在一定程度上节省了硬件实现面积,但是未考虑白盒环境下的安全性问题。

3、通过对以上文献的分析可以得知,piccolo-80算法主要针对硬件实现,其占用内存小、硬件开销少,适用于射频卡等受限的硬件设备环境。但由于此类环境可完全被敌手获知内部数据,被视作白盒攻击环境,因此有必要设计并部署白盒化后可完全公开的piccolo-80算法,有助于在白盒环境下的硬件设备上安全的保存密钥信息等关键数据。


技术实现思路

1、本发明通过设计自编码的查找表,对经典的轻量级分组密码算法piccolo-80进行了白盒化设计。通过上述设计,能够有效提升piccolo-80算法的白盒安全性,作为主要针对硬件实现的轻量级分组密码算法,所部署的硬件设备大都可视作不安全的白盒环境,通过白盒化设计,能够保障算法更好的抵抗各类白盒攻击。

2、本发明的技术方案包括:

3、一种基于轻量级piccolo分组密码算法的自编码查找表白盒化构造方法及系统,包括以下步骤:

4、步骤s1:预置piccolo-80算法的4个分支寄存器,每个分支寄存器为16比特,将64比特的明文数据分割为4个部分,记为x0,x1,x2,x3,分别进入不同的分支寄存器进行运算。

5、步骤s2:为保持白盒化算法的兼容性与一致性,利用原始piccolo-80算法的密钥生成算法进行白化密钥wki(i=0,1,2,3)与轮密钥rki(i=0,1,…,49)的生成,采用数据置换的模式进行密钥扩展,初始密钥k为80比特,拆分为k0,k1,k2,k3,k4后,结合给定的轮常数与异或操作,可生成加解密所需的密钥信息。密钥扩展方式与原算法一致,轮常数为:

6、

7、其中,||为字符串连接符,ci表示将i记为长度为5比特的二进制数据。

8、步骤s3:将步骤s2中生成的白化密钥与轮密钥参与至加密运算当中,其中,首轮加密的第一分支寄存器与第三分支寄存器的16比特数据分别与wk0和wk1进行异或,再进入f函数变换后与轮密钥进行异或。此处f函数包含s盒变换与m矩阵变换,记为sms,与原始算法相同,m矩阵变换通过基于有限域gf(24)上的既约多项式f(x)=x4+x+1实现。

9、s:{e,4,b,2,3,8,0,9,1,a,7,f,6,c,5,d}

10、

11、步骤s4:设经过f函数、轮密钥异或后的第二分支寄存器与第四分支寄存器的16比特输出值分别为t2与t4,将每一轮运算后所有的输入输出可能的值,根据其映射关系制作为一张查找表,每一轮制作2张查找表,piccolo-80算法共25轮迭代,共需制作50张查找表。基于t2与t4的查找表包含运算的密钥信息,且不影响进入rp轮置换步骤的数值。

12、步骤s5:将上一轮的输出值进入轮置换步骤,并进行下一轮迭代,运算25轮后,得到加密的64比特密文数据值。解密时采用的轮密钥顺序与加密时相反,且通过查表操作可获取原始密钥信息,保障解密密钥的安全性。

13、一种基于轻量级piccolo分组密码算法的自编码查找表白盒化构造方法及系统,自编码查找表的构造步骤如下:

14、步骤s1:以首轮第一分支寄存器的输入值x0为例,x0=(m||n||p||q),其中m,n,p,q均为4比特数据块。记n=(α||β||γ||δ),其中α,β,γ,δ均为4比特数据块。

15、步骤s2:对α,β,γ,δ分别进行运算,数据流转过程如下:

16、α→s(α)β→s(β)γ→s(γ)δ→s(δ);

17、s’=s(α)||s(β)||s(γ)||s(δ);

18、为矩阵与向量间的乘法运算符号。

19、步骤s3:将的输入输出可能值制作为查找表,制作时采用自编码格式,即根据映射关系生成的查找表数据,对应的输入值与输出值以自适应编码的特定格式表示。如:

20、给定的映射关系:θ→y,在查找表中隐藏了从θ映射至y所需的密钥信息,若映射关系匹配,则在查找表的对应位置加入正确映射关系数据标记编码,在查找表储存时一并被转化为二进制文件。解密过程查表时,根据数据标记进行解码,找到正确的映射关系,恢复出加密使用的密钥信息。若映射关系不匹配,则在查找表的对应位置加入非正确映射数据标记编码,在查找表储存时一并被转化为二进制文件,查表时解码也获取不到相对应的密钥信息。

21、与现有技术相比,本发明的有益效果如下:

22、第一,解决了现有硬件设备部署的piccolo-80密码算法不能抵抗白盒攻击的问题,现有的硬件设备可视作不安全的白盒环境,通过白盒化构造,能够提升原始算法的白盒安全性,使之更有效的部署于不受信任的硬件设备终端。

23、第二,设计了新的自编码查找表构造方法,该方法占用内存小,与原始算法兼容性高,在不影响原始算法输入值与输出值的情况下,采用新的查找表构造方式,有效保障了密钥信息的安全性。



技术特征:

1.一种基于轻量级piccolo分组密码算法的自编码查找表白盒化构造方法及系统,其特征在于,包括以下步骤:

2.一种基于轻量级piccolo分组密码算法的自编码查找表白盒化构造方法及系统,其特征在于,自编码查找表的构造步骤如下:


技术总结
本发明公开一种基于轻量级Piccolo分组密码算法的自编码查找表白盒化构造方法及系统,本发明将Piccolo‑80分组密码算法进行白盒化构造,以适应白盒攻击模型下不安全的硬件部署环境。Piccolo‑80算法适用于轻量级的硬件设备实现,通过将算法F函数与轮密钥运算部分的非线性映射变换表示为查找表,再进行自编码存储,可有效提升算法的白盒安全性。F函数中的混淆矩阵与固定S盒映射的对应运算以及后续与轮密钥的异或过程被表示为二进制查找表后,再结合新的自适应编码方式进行存储,可将密钥信息隐藏其中。经白盒化构造以后,能提升算法的整体安全性,且不影响原始的输入输出值,具有良好的兼容性。

技术研发人员:杨亚涛,董辉
受保护的技术使用者:北京电子科技学院
技术研发日:
技术公布日:2024/1/13
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1