本发明属于密码学与信息安全领域,具体设计一种基于轻量级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分组密码算法的自编码查找表白盒化构造方法及系统,其特征在于,自编码查找表的构造步骤如下: