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

技术编号:38042274 阅读:18 留言:0更新日期:2023-06-30 11:08
本发明专利技术公开一种基于轻量级Piccolo分组密码算法的自编码查找表白盒化构造方法及系统,本发明专利技术将Piccolo

【技术实现步骤摘要】
一种基于轻量级Piccolo分组密码算法的自编码查找表白盒化构造方法及系统


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

技术介绍

[0002]Shibutani K等学者在2011年的International Workshop on Cryptographic Hardware and Embedded Systems(国际密码硬件和嵌入式系统会议)中的论文“Piccolo:anultra

lightweightblock cipher”里提出了Piccolo算法,该算法具有相应的安全性和硬件消耗能力,是分组密码算法中较为轻量级的算法。
[0003]专利文献(申请公布号:CN 103731257A公开日:2014年4月16日)公开了一种Piccolo算法硬件实现方法,该专利技术通过重复调用轮函数与模块复用,在一定程度上节省了硬件实现面积,但是未考虑白盒环境下的安全性问题。
[0004]通过对以上文献的分析可以得知,Piccolo

80算法主要针对硬件实现,其占用内存小、硬件开销少,适用于射频卡等受限的硬件设备环境。但由于此类环境可完全被敌手获知内部数据,被视作白盒攻击环境,因此有必要设计并部署白盒化后可完全公开的Piccolo

80算法,有助于在白盒环境下的硬件设备上安全的保存密钥信息等关键数据。

技术实现思路

[0005]本专利技术通过设计自编码的查找表,对经典的轻量级分组密码算法Piccolo

80进行了白盒化设计。通过上述设计,能够有效提升Piccolo

80算法的白盒安全性,作为主要针对硬件实现的轻量级分组密码算法,所部署的硬件设备大都可视作不安全的白盒环境,通过白盒化设计,能够保障算法更好的抵抗各类白盒攻击。
[0006]本专利技术的技术方案包括:
[0007]一种基于轻量级Piccolo分组密码算法的自编码查找表白盒化构造方法及系统,包括以下步骤:
[0008]步骤S1:预置Piccolo

80算法的4个分支寄存器,每个分支寄存器为16比特,将64比特的明文数据分割为4个部分,记为X0,X1,X2,X3,分别进入不同的分支寄存器进行运算。
[0009]步骤S2:为保持白盒化算法的兼容性与一致性,利用原始Piccolo

80算法的密钥生成算法进行白化密钥wk
i
(i=0,1,2,3)与轮密钥rk
i
(i=0,1,

,49)的生成,采用数据置换的模式进行密钥扩展,初始密钥K为80比特,拆分为K0,K1,K2,K3,K4后,结合给定的轮常数与异或操作,可生成加解密所需的密钥信息。密钥扩展方式与原算法一致,轮常数为:
[0010][0011]其中,||为字符串连接符,c
i
表示将i记为长度为5比特的二进制数据。
[0012]步骤S3:将步骤S2中生成的白化密钥与轮密钥参与至加密运算当中,其中,首轮加密的第一分支寄存器与第三分支寄存器的16比特数据分别与wk0和wk1进行异或,再进入F函
数变换后与轮密钥进行异或。此处F函数包含S盒变换与M矩阵变换,记为SMS,与原始算法相同,M矩阵变换通过基于有限域GF(24)上的既约多项式f(x)=x4+x+1实现。
[0013]S:{E,4,B,2,3,8,0,9,1,A,7,F,6,C,5,D}
[0014][0015]步骤S4:设经过F函数、轮密钥异或后的第二分支寄存器与第四分支寄存器的16比特输出值分别为T2与T4,将每一轮运算后所有的输入输出可能的值,根据其映射关系制作为一张查找表,每一轮制作2张查找表,Piccolo

80算法共25轮迭代,共需制作50张查找表。基于T2与T4的查找表包含运算的密钥信息,且不影响进入RP轮置换步骤的数值。
[0016]步骤S5:将上一轮的输出值进入轮置换步骤,并进行下一轮迭代,运算25轮后,得到加密的64比特密文数据值。解密时采用的轮密钥顺序与加密时相反,且通过查表操作可获取原始密钥信息,保障解密密钥的安全性。
[0017]一种基于轻量级Piccolo分组密码算法的自编码查找表白盒化构造方法及系统,自编码查找表的构造步骤如下:
[0018]步骤S1:以首轮第一分支寄存器的输入值X0为例,X0=(m||n||p||q),其中m,n,p,q均为4比特数据块。记N=(α||β||γ||δ),其中α,β,γ,δ均为4比特数据块。
[0019]步骤S2:对α,β,γ,δ分别进行运算,数据流转过程如下:
[0020]α

S(α)β

S(β)γ

S(γ)δ

S(δ);
[0021]S

=S(α)||S(β)||S(γ)||S(δ);
[0022][0022]为矩阵与向量间的乘法运算符号。
[0023]步骤S3:将的输入输出可能值制作为查找表,制作时采用自编码格式,即根据映射关系生成的查找表数据,对应的输入值与输出值以自适应编码的特定格式表示。如:
[0024]给定的映射关系:θ

Y,在查找表中隐藏了从θ映射至Y所需的密钥信息,若映射关系匹配,则在查找表的对应位置加入正确映射关系数据标记编码,在查找表储存时一并被转化为二进制文件。解密过程查表时,根据数据标记进行解码,找到正确的映射关系,恢复出加密使用的密钥信息。若映射关系不匹配,则在查找表的对应位置加入非正确映射数据标记编码,在查找表储存时一并被转化为二进制文件,查表时解码也获取不到相对应的密钥信息。
[0025]与现有技术相比,本专利技术的有益效果如下:
[0026]第一,解决了现有硬件设备部署的Piccolo

80密码算法不能抵抗白盒攻击的问题,现有的硬件设备可视作不安全的白盒环境,通过白盒化构造,能够提升原始算法的白盒安全性,使之更有效的部署于不受信任的硬件设备终端。
[0027]第二,设计了新的自编码查找表构造方法,该方法占用内存小,与原始算法兼容性高,在不影响原始算法输入值与输出值的情况下,采用新的查找表构造方式,有效保障了密
钥信息的安全性。
附图说明
[0028]图1是本专利技术所述构造方法的整体运算步骤;
[0029]图2是本专利技术所述自编码查找表构造流程;
[0030]图3是本专利技术所述白盒化后Piccolo

80算法的首轮轮函数。
具体实施方式
[0031]下面结合附图与实例对本专利技术实施过程进行进一步说明,但不以任何方式限制本专利技术的应用范围。
[0032]参照图1,对本专利技术的实现步骤作进一步描述。...

【技术保护点】

【技术特征摘要】
1.一种基于轻量级Piccolo分组密码算法的自编码查找表白盒化构造方法及系统,其特征在于,包括以下步骤:步骤S1:预置Piccolo

80算法的4个分支寄存器,每个分支寄存器为16比特,将64比特的明文数据分割为4个部分,记为X0,X1,X2,X3,分别进入不同的分支寄存器进行运算。步骤S2:为保持白盒化算法的兼容性与一致性,利用原始Piccolo

80算法的密钥生成算法进行白化密钥wk
i
(i=0,1,2,3)与轮密钥rk
i
(i=0,1,

,49)的生成,采用数据置换的模式进行密钥扩展,初始密钥K为80比特,拆分为K0,K1,K2,K3,K4后,结合给定的轮常数与异或操作,可生成加解密所需的密钥信息。密钥扩展方式与原算法一致,轮常数为:(con
2i
,con
2i+1
)

(c
i+1
||c0||c
i+1
||{00}2||c
i+1
||c0||c
i+1
)

{0f1e2d3c}
16
.其中,||为字符串连接符,c
i
表示将i记为长度为5比特的二进制数据。步骤S3:将步骤S2中生成的白化密钥与轮密钥参与至加密运算当中,其中,首轮加密的第一分支寄存器与第三分支寄存器的16比特数据分别与wk0和wk1进行异或,再进入F函数变换后与轮密钥进行异或。此处F函数包含S盒变换与M矩阵变换,记为SMS,与原始算法相同,M矩阵变换通过基于有限域GF(24)上的既约多项式f(x)=x4+x+1实现。S:{E,4,B,2,3,8,0,9,1,A,7,F,6,C,5,D}步骤S4:设经过F函数、轮密钥异或后的第二分支寄存器与第四分支寄存器的16比特输出值分别为T2与T4,将每一轮运算后所有的输入输出可能的值,根据其映射关系制作为一张查找表,每一轮制作2张查找表,Piccolo

80算法...

【专利技术属性】
技术研发人员:杨亚涛董辉
申请(专利权)人:北京电子科技学院
类型:发明
国别省市:

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

1