一种混合物理不可克隆函数结构及sbox掩码方法

文档序号:89587 发布日期:2021-10-08 浏览:37次 >En<

阅读说明:本技术 一种混合物理不可克隆函数结构及sbox掩码方法 (Mixed physical unclonable function structure and SBOX mask method ) 是由 郑朝霞 赵娅岐 蒋思航 徐尚成 王超 余国义 于 2021-06-16 设计创作,主要内容包括:本发明公开了一种混合物理不可克隆函数结构及SBOX掩码方法,属于数字集成电路设计以及机器人安全领域。本发明的掩码方法适用于AES、DES、SM4等使用SBOX进行非线性变换的分组加解密算法,以及对上述算法的SBOX进行参数化实现的可重构SBOX。其中,混合PUF为基本PUF以及环境感知PUF响应结果经过位拼接而成,均为基于SR锁存器的PUF结构,可根据芯片内以及片外环境特性产生唯一输出;SBOX掩码方法基于目前已有随机掩码方法,通过进一步添加混合PUF响应结果在SBOX输入与输出分别进行掩码以及补偿,从而实现不仅能够抗功耗攻击,同时还支持芯片级防伪。(The invention discloses a hybrid physical unclonable function structure and an SBOX mask method, and belongs to the field of digital integrated circuit design and robot safety. The mask method of the invention is suitable for AES, DES, SM4 and other packet encryption and decryption algorithms which use SBOX to carry out nonlinear transformation, and the reconfigurable SBOX which carries out parameterization realization on the SBOX of the algorithms. The hybrid PUF is formed by bit splicing of basic PUF and environment sensing PUF response results, is a PUF structure based on an SR latch, and can generate unique output according to the environment characteristics in a chip and outside a chip; the SBOX mask method is based on the existing random mask method, and mask and compensation are respectively carried out on SBOX input and output by further adding mixed PUF response results, so that power consumption attack resistance is achieved, and chip-level anti-counterfeiting is supported.)

一种混合物理不可克隆函数结构及SBOX掩码方法

技术领域

本发明属于数字集成电路设计以及机器人安全领域,更具体地,涉及一种混合物理不可克隆函数结构及SBOX掩码方法。

背景技术

分组加解密算法中,如AES、DES、SM4等,非线性步骤SBOX是保证过程安全的重要一环。在电路中,数据的0、1翻转操作会导致对应的电容充放电从而产生不同的功耗变化信息,于是通过大量的数据运算并统计过程中的功耗信息能够推导出加解密过程的密钥,即通过功耗攻击实现对算法的破解。目前算法的主流抗功耗攻击方案为,通过随机数对明文以及密钥进行掩码,使不同操作过程中的数据翻转概率相同,从而掩盖操作过程中的功耗特征,实现抗功耗攻击。

同时,在一些具体应用场景下,如嵌入式机器人中,通过拆除整机已报废但芯片功能依旧正常的正版设备芯片,并与一些低成本功能相似外设进行组装,可以在不破解芯片的同时进行产品伪造,并且目前还没有较好的主动防伪措施。

发明内容

针对相关技术的缺陷,本发明的目的在于提供一种混合物理不可克隆函数结构及SBOX掩码方法,旨在抵御分组密码算法的抗功耗攻击以及防止机器人芯片拆除伪造的问题。

为实现上述目的,本发明的一个方面提供了一种混合物理不可克隆函数结构,包括第一PUF阵列和第二PUF阵列;

所述第一PUF阵列包括依次连接的多级基本PUF单元,所述基本PUF单元是由与非门组成的SR锁存器;

所述第二PUF阵列包括依次连接的多级环境感知PUF单元,所述环境感知PUF单元包括第一与非门和第二与非门;

其中,第一与非门的第一输入端和第二与非门的第一输入端相连作为开关控制端,第一与非门的第二输入端与第二与非门的输出端连接,第二与非门的第二输入端与第一与非门的输出端连接;

在第一与非门和第二与非门的输出端均引出一芯片输出引脚,第一与非门和第二与非门的第二输入端均引出一芯片输入引脚。

进一步地,所述第一PUF阵列中基本PUF单元的数量与所述第二PUF阵列中环境感知PUF单元的数量相等。

进一步地,所述第一PUF阵列中基本PUF单元的数量取决于输入数据位宽。

本发明的另一方面提供了一种基于上述混合物理不可克隆函数结构的掩码方法,该掩码方法用于分组密码算法,包括以下步骤:

S1.每次轮变换中,读取所述混合物理不可克隆函数结构的响应值以产生掩码rPUFa,再与生成的随机数rRNG按位进行异或运算获取数据掩码ra

S2.由所述数据掩码ra产生行变换矩阵Rx和列变换矩阵Ry,使用随机数生成掩码矩阵MS,利用所述行变换矩阵Rx、列变换矩阵Ry和随机数矩阵MS产生新的S盒SBOXnew

对每个字节输入a,得到新的S盒变换结果SBOXnew(a^ra);

S3.对所述混合物理不可克隆函数结构进行激励获得实时响应rPUFb,再与所述随机数rRNG按位进行异或运算获取数据掩码rb;

对每个字节输入a,获取其经所述掩码矩阵MS后的变换结果MS(a^rb);

S4.将所述新的S盒变换结果以及经所述掩码矩阵MS后的变换结果进行分组密码算法的线性变换,获得第一线性变换结果L(SBOXnew(a^ra))以及第二线性变换结果L(MS(a^rb));

S5.对第一线性变换结果和第二线性变换结果进行异或,得到本次轮变换的输出。

进一步地,所述步骤S2中由所述数据掩码ra产生行变换矩阵Rx和列变换矩阵Ry包括:

将所述数据掩码ra按照ra=x·24+y分为高低四位,高四位为x,低四位为y;行变换矩阵Rx的第i行为单位矩阵的第i^x行,列变换矩阵Ry的第j列为单位矩阵的第j^y列。

进一步地,所述新的S盒SBOXnew的获得方式为:SBOXnew=Rx·SBOX·Ry^MS。

进一步地,所述步骤S1中所述混合物理不可克隆函数结构的响应值预先存储在OTP中。

进一步地,将轮变换的输出与未经SBOX掩码的结果进行比较,若一致,说明芯片未被拆卸伪造,否则运算结果出错,导致芯片密码功能失效。

通过本发明所构思的以上技术方案,与现有技术相比,能够取得以下有益效果:

(1)本发明通过掩码方法能够使分组加解密算法过程中数据0、1翻转概率相近,从而对加解密过程的功耗信息进行掩盖,实现抗功耗攻击;

(2)通过将掩码方法与混合PUF进行结合,任何对芯片进行拆卸的行为都会破坏混合PUF的唯一响应,造成加解密过程SBOX掩码补偿错误,导致算法模块功能失效,从而防止利用废弃芯片进行产品伪造,实现主动防伪。

附图说明

图1是本发明掩码方法基本流程图;

图2为本发明实施例的混合PUF电路图;

图3为以SM4算法为例的本发明掩码方法示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。

针对分组加解密算法的抗功耗攻击以及机器人芯片拆除伪造问题,本发明提出一种基于混合PUF的SBOX掩码方法,通过混合PUF将芯片引脚寄生RC信息耦合进SBOX掩码中,在实现算法抗功耗攻击同时,任何将芯片拆卸尝试进行伪造的行为都会破坏PUF响应,从而导致算法加解密结果出错,使芯片无法正常进行。本发明的掩码方法适用于使用SBOX进行非线性变换的分组加解密算法,包括AES、DES、SM4,以及对上述算法的SBOX进行参数化实现的可重构SBOX。

本发明实施例的一个方面提供了一种混合物理不可克隆函数结构,包括第一PUF阵列和第二PUF阵列;

所述第一PUF阵列包括依次连接的多级基本PUF单元,所述基本PUF单元是由与非门组成的SR锁存器;

所述第二PUF阵列包括依次连接的多级环境感知PUF单元,所述环境感知PUF单元包括第一与非门和第二与非门;

其中,第一与非门的第一输入端和第二与非门的第一输入端相连作为开关控制端,第一与非门的第二输入端与第二与非门的输出端连接,第二与非门的第二输入端与第一与非门的输出端连接;

在第一与非门和第二与非门的输出端均引出一芯片输出引脚,第一与非门和第二与非门的第二输入端均引出一芯片输入引脚。

进一步地,所述第一PUF阵列中基本PUF单元的数量与所述第二PUF阵列中环境感知PUF单元的数量相等。

进一步地,所述第一PUF阵列中基本PUF单元的数量取决于输入数据位宽。

本发明实施例的另一方面提供了一种基于上述混合物理不可克隆函数结构的掩码方法,该掩码方法用于分组密码算法,包括以下步骤:

S1.每次轮变换中,读取所述混合物理不可克隆函数结构的响应值以产生掩码rPUFa,再与生成的随机数rRNG按位进行异或运算获取数据掩码ra

S2.由所述数据掩码ra产生行变换矩阵Rx和列变换矩阵Ry,使用随机数生成掩码矩阵MS,利用所述行变换矩阵Rx、列变换矩阵Ry和随机数矩阵MS产生新的S盒SBOXnew

对每个字节输入a,得到新的S盒变换结果SBOXnew(a^ra);

S3.对所述混合物理不可克隆函数结构进行激励获得实时响应rPUFb,再与所述随机数rRNG按位进行异或运算获取数据掩码rb

对每个字节输入a,获取其经所述掩码矩阵MS后的变换结果MS(a^rb);

S4.将所述新的S盒变换结果以及经所述掩码矩阵MS后的变换结果进行分组密码算法的线性变换,获得第一线性变换结果L(SBOXnew(a^ra))以及第二线性变换结果L(MS(a^rb));

S5.对第一线性变换结果和第二线性变换结果进行异或,得到本次轮变换的输出。

进一步地,所述步骤S2中由所述数据掩码ra产生行变换矩阵Rx和列变换矩阵Ry包括:

将所述数据掩码ra按照ra=x·24+y分为高低四位,高四位为x,低四位为y;行变换矩阵Rx的第i行为单位矩阵的第i^x行,列变换矩阵Ry的第j列为单位矩阵的第j^y列。

进一步地,所述新的S盒SBOXnew的获得方式为:SBOXnew=Rx·SBOX·Ry^MS。

进一步地,所述步骤S1中所述混合物理不可克隆函数结构的响应值预先存储在OTP中。

进一步地,将轮变换的输出与未经SBOX掩码的结果进行比较,若一致,说明芯片未被拆卸伪造,否则运算结果出错,导致芯片密码功能失效。

下面结合一个优选实施例,对上述实施例中涉及的内容进行说明。

图1为本方案的大致计算流程,包括从S0~S5总共6步。

S0为加解密之前的初始化步骤,读取混合PUF存储在OTP中的响应值产生掩码rPUFa,其中rPUFa要求与加解密算法的数据位宽相同;并同时使用随机数产生器产生SBOX掩码矩阵MS;之后步骤进入加解密算法,并在每一步轮变换中进行。

S1对每8bits的输入数据产生8bits随机数rRNG并与rPUFa对应位数异或产生数据掩码ra,并通过随机数产生行变换矩阵Rx以及列变换矩阵Ry,利用Rx、Ry以及MS计算SBOXnew(简称Sn)并保存;该步骤中,ra按照高低4bits可分解为ra=x·24+y,此时Rx第i行为单位矩阵的第i^x行,Ry第j列为单位矩阵的j^y列;并且,每8bits的输入数据都会产生一个SBOXnew

S2对每8bits输入a计算SBOXnew(a^ra)得到新的变换结果。

S3对混合PUF进行激励获得实时响应rPUFb,理论上会有rPUFa=rPUFb;并将rPUFb对应位数与之前的随机数rRNG异或得到数据掩码rb;此时,使用掩码矩阵MS计算MS(a^rb)。

S4使用之前SBOXnew矩阵以及MS矩阵计算得到的结果进行算法后续的线性变换,即计算L(SBOXnew(a^ra))以及L(MS(a^rb))。

S5对两路的线性变换结果进行异或补偿之前的掩码操作,得到该轮变换的输出。若芯片没受到拆卸伪造等手段造成PUF响应改变,则此时的输出与未掩码的结果一致,电路实现通过掩码掩盖加解密过程中间信息;否则运算结果就会出错导致芯片加解密功能失效。

图2为上述混合PUF的电路图,PUF包括一个基本PUF阵列以及环境感知PUF阵列,阵列内的单元数量可根据实际数据位宽决定并且两种阵列内单元数量一致,且可预留一定冗余单元。所有PUF单元均为基于SR锁存器的结构,具体为,两个与非门构成一个PUF单元,一个与非门的输出端连接到另一个与非门的一个输入端,两个与非门的另一个输入端作为开关控制。该结构中,开关使能后信号会一直在两个与非门之间传递发生振荡;但由于实际芯片的制造误差导致两个与非门驱动能力存在差异,最后会锁存为一个固定的值。

如图2,支持环境感知的PUF在与非门输出至另一个与非门输入之间,经过芯片的引脚连接到片外PCB上,再通过另一个引脚回到片内,以此将引脚寄生RC信息耦合进PUF电路,并产生与此相关的响应。若芯片经过拆除后,必然会不可逆地改变引脚的寄生RC信息,导致PUF响应改变,进而影响到正常加解密的掩码补偿过程得到错误结果,从而起到防伪作用。

图3以SM4算法为例,对本发明基于混合PUF的SBOX掩码方法进行详细说明:

S0、读取OTP存储的混合PUF响应RPUFa,以及使用随机数产生矩阵MS。由于SM4算法中,每一轮操作数据位宽均为32bits,因此RPUFa的位宽也为32bits,分为4个8bits数据,即RPUFa=(rpufa0,rpufa1,rpufa2,rpufa3);同时,MS为16×16的矩阵,每个矩阵元素均为8bits数据。之后,进入轮变换。

输入数据Ai、Ai+1、Ai+2、Ai+3与轮密钥rki进行异或得到32bits输入A,可分为4个8bits,即A=(a0,a1,a2,a3),其中轮密钥rki产生过程也使用本发明的SBOX掩码方法进行;

S1、产生32bits随机数RRNG,也分为4个8bits,即RRNG=(rRNG0,rRNG1,rRNG2,rRNG3),并计算数据掩码Ra=RPUFa^RRNG=(ra0,ra1,ra2,ra3);此时,对于每个8bits数据掩码rai,生成Rxi、Ryi,并计算掩码后的Sni=SBOXnewi=Rxi·SBOX·Ryi^MS,由此对输入A的4个8bits输入产生了4个新的SBOX。

S2、对于A=(a0,a1,a2,a3),使用新的SBOX进行计算,即分别计算bS0=Sn0(a0^ra0)、bS1=Sn1(a1^ra1)、bS2=Sn2(a2^ra2)、bS3=Sn3(a3^ra3),得到掩码后的输入数据经过新SBOX变换后的结果BS=(bS0,bS1,bS2,bS3)。

S3、对混合PUF进行激励得到实时响应RPUFb,并与上述随机数RRNG进行异或操作得到掩码Rb=RPUFb^RRNG=(rb0,rb1,rb2,rb3)。若芯片引脚未被拆卸破坏电路工作正常,则此时存在关系RPUFa=RPUFb以及Ra=Rb。之后,对于每8bits的Rb,计算bMS0=MS(a0^rb0)、bMS1=MS(a1^rb1)、bMS2=MS(a2^rb2)、bMS3=MS(a3^rb3),得到掩码后的输入数据经掩码矩阵MS后的结果BMS=(bMS0,bMS1,bMS2,bMS3)。

S4、对于SM4,之后的线性操作为对SBOX结果进行循环移位并异或,计算L(BS)=BS^(BS<<<2)^(BS<<<10)^(BS<<<18)^(BS<<<24),以及计算L(BMS)=BMS^(BMS<<<2)^(BMS<<<10)^(BMS<<<18)^(BMS<<<24)。

S5、对BS以及BMS线性变换后的结果进行异或操作以此进行掩码补偿,即计算L(BS)^L(BMS),得到输出结果Ai+4。由于使用了芯片引脚的寄生RC进行混合PUF响应且该响应实时应用到了BMS产生过程中,若此时芯片未被进行过拆解破坏,则此时的Ai+4与原始输入Ai、Ai+1、Ai+2、Ai+3不经过SBOX掩码操作得到的结果一致,否则就会得到错误结果。

经过SBOX掩码方法,可以掩盖加解密过程的中间信息,有效实现抗功耗攻击;同时,本发明将混合PUF响应结合到SBOX掩码方法中,若片外对芯片的拆卸伪造破坏了PUF的唯一响应,就会造成加解密过程SBOX掩码补偿出错,得到错误计算结果,从而有效防止循环利用芯片进行产品伪造。

本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

9页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种多方隐私求交中的数据处理方法、装置及电子设备

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!