一种多变量二次方程的掩码加密装置的制作方法

文档序号:13675148阅读:134来源:国知局
技术领域本发明涉及信息安全技术领域,尤其涉及一种多变量二次方程的掩码加密装置。

背景技术:
MQ问题(MQproblem)是指在一个有限域上求解一组多变量二次方程的问题,一般来说该问题是NP困难的。MQ问题在密码学上是一个非常有研究前景的难题,大量的密码算法基于MQ问题被设计出来,主要包括多变量公钥密码算法(MPKC)、流密码算法QUAD和身份认证算法等。其中,多变量二次方程可以表示如下:Q(x)=∑1≤i≤j≤nαijxixj+∑1≤i≤nβijxi+γ侧信道攻击(sidechannelattack简称SCA),又称旁路攻击,是一种针对加密电子设备在运行过程中的时间消耗、功率消耗或电磁辐射之类的侧信道信息泄露而对加密设备进行攻击的方法。这种攻击方法给密码设备带来了严重的威胁。但是,现有技术均未考虑多变量二次方程的侧信道泄露问题。加密时,直接按照顺序逐项计算多变量二次方程中的每一个单项式,再把每个单项式的计算结果累加后暂存于寄存器中。攻击者通过对寄存器存储操作的功耗进行分析,即可获得密钥或明文信息(aij或者xj的信息),进而攻破密码算法。

技术实现要素:
本发明实施例提出一种多变量二次方程的掩码加密装置,能够有效提高密钥的安全性,抵御侧行道攻击。本发明实施例提供一种多变量二次方程的加密装置,包括:第一掩码生成器,用于随机生成n个掩码;n≥1;第一异或计算器,用于将所述n个掩码与n个密钥一一对应进行异或加密;第一掩码型乘法器,用于根据加密后的n个密钥、所述n个掩码和明文,采用掩码算法,计算获得多变量二次方程中n个单项式的加密值;以及,第一累加器,用于将所述n个单项式的加密值依次累加到寄存器中,获得密文。进一步地,所述掩码为mi;所述密钥为xi;1≤i≤n;所述第一异或计算器具体用于将所述n个掩码与n个密钥一一对应进行异或加密,获得每个密钥的掩码型密钥进一步地,所述明文为αij;1≤i≤j≤n;所述第一掩码型乘法器具体包括:第一乘法器,用于分别计算和mi×mj;第二乘法器,用于将αij分别乘以和mi×mj,获得和αij×mi×mj;第二异或计算器,用于将mj与αij×mi×mj进行异或操作,获得(αij×mi×mj)⊕mj;第三异或计算器,用于将(αij×mi×mj)⊕mj与进行异或操作,获得(αij×xjm×mi)⊕((αij×mi×mj)⊕mj);]]>第四异或计算器,用于将(αij×xjm×mi)⊕((αij×mi×mj)⊕mj)]]>与进行异或操作,获得(αij×xim×mj)⊕((αij×xjm×mi)⊕((αij×mi×mj)⊕mj));]]>第五异或计算器,用于将(αij×xim×mj)⊕((αij×xjm×mi)⊕((αij×mi×mj)⊕mj))]]>与进行异或操作,获得每个单项式的加密值(αij×xi×xj)⊕mj;(αij×xi×mj)⊕mj=(αij×xim×mjm)⊕((αij×xim×mj)⊕((αij×xim×mi)⊕((αij×mi×mj)⊕mj))).]]>进一步地,所述第一累加器采用累加方法获取密文;所述累加方法具体包括:在将第j个单项式的加密值(αij×xi×xj)⊕mj累加到所述寄存器时,读取所述寄存器中的值Qj-1;将Qj-1与第j-1个单项式的加密值所采用的掩码mj-1进行异或操作,获得Qj-1⊕mj-1;将(αij×xi×xj)⊕mj与Qj-1⊕mj-1进行累加,获得Qj-1⊕mj-1+(αij×xi×xj)⊕mj;将Qj-1⊕mj-1+(αij×xi×xj)⊕mj写入所述寄存器中,使所述寄存器中的值为Qj=Qj-1⊕mj-1+(αij×xi×xj)⊕mj;在将第n个单项式的加密值累加到所述寄存器后,读取所述寄存器中的值Qn;将Qn与第n个单项式的加密值所采用的掩码mn进行异或操作,获得Qn⊕mn即为所述密文。相应地,本发明实施例还提供一种多变量二次方程的掩码加密装置,包括:第二掩码生成器,用于随机生成n个掩码;n≥1;第六异或计算器,用于将所述n个掩码与n个明文一一对应进行异或加密;第二掩码型乘法器,用于根据加密后的n个明文、所述n个掩码和密钥,采用掩码算法,计算获得多变量二次方程中n个单项式的加密值;以及,第二累加器,用于将所述n个单项式的加密值依次累加到寄存器中,获得密文。进一步地,所述掩码为mi;所述明文为xi;其中,1≤i≤n;所述第四异或计算器具体用于将所述n个掩码与n个明文一一对应进行异或加密,获得每个明文的掩码型明文进一步地,所述密钥为αij;1≤i≤j≤n;所述第二掩码型乘法器具体包括:第三乘法器,用于分别计算和mi×mj;第四乘法器,用于将αij分别乘以和mi×mj,获得和αij×mi×mj;第七异或计算器,用于将mj与αij×mi×mj进行异或操作,获得(αij×mi×mj)⊕mj;第八异或计算器,用于将(αij×mi×mj)⊕mj与进行异或操作,获得(αij×xjm×mi)⊕((αij×mi×mj)⊕mj);]]>第九异或计算器,用于将(αij×xjm×mi)⊕((αij×mi×mj)⊕mj)]]>与进行异或操作,获得(αij×xim×mj)⊕((αij×xjm×mi)⊕((αij×mi×mj)⊕mj));]]>以及,第十异或计算器,用于将(αij×xim×mj)⊕((αij×xjm×mi)⊕((αij×mi×mj)⊕mj))]]>与进行异或操作,获得每个单项式的加密值(αij×xi×xj)⊕mj;(αij×xi×mj)⊕mj=(αij×xim×xjm)⊕((αij×xim×mj)⊕((αij×xim×mi)⊕((αij×mi×mj)⊕mj))).]]>进一步地,所述第二累加器采用累加方法获取密文;所述累加方法具体包括:在将第j个单项式的加密值(αij×xi×xj)⊕mj累加到所述寄存器时,读取所述寄存器中的值Qj-1;将Qj-1与第j-1个单项式的加密值所采用的掩码mj-1进行异或操作,获得Qj-1⊕mj-1;将(αij×xi×xj)⊕mj与Qj-1⊕mj-1进行累加,获得Qj-1⊕mj-1+(αij×xi×xj)⊕mj;将Qj-1⊕mj-1+(αij×xi×xj)⊕mj写入所述寄存器中,使所述寄存器中的值为Qj=Qj-1⊕mj-1+(αij×xi×xj)⊕mj;在将第n个单项式的加密值累加到所述寄存器后,读取所述寄存器中的值Qn;将Qn与第n个单项式的加密值所采用的掩码mn进行异或操作,获得Qn⊕mn即为所述密文。实施本发明实施例,具有如下有益效果:本发明实施例提供的多变量二次方程的掩码加密装置,能够在计算多变量二次方程时,对多变量二次方程中的变量,即密钥或明文采用随机化的掩码进行异或加密,进而对多变量二次方程的中间结果,即每个单项式均被加密,避免在每个单项式写入寄存器时的侧信道泄露,从而抵御侧行道攻击,有效提高密钥的安全性。附图说明图1是本发明提供的多变量二次方程的掩码加密装置的第一个实施例的结构示意图;图2是本发明提供的多变量二次方程的掩码加密装置中第一掩码型乘法器的第一个实施例的结构示意图;图3是本发明提供的多变量二次方程的掩码加密装置中第一掩码型乘法器的第二个实施例的结构示意图;图4是本发明提供的多变量二次方程的掩码加密装置的第二个实施例的结构示意图;图5是本发明提供的多变量二次方程的掩码加密装置的第三个实施例的结构示意图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。参见图1,是本发明提供的多变量二次方程的掩码加密装置的第一个实施例的结构示意图,包括:第一掩码生成器11,用于随机生成n个掩码;n≥1;第一异或计算器12,用于将所述n个掩码与n个密钥一一对应进行异或加密;第一掩码型乘法器13,用于根据加密后的n个密钥、所述n个掩码和明文,采用掩码算法,计算获得多变量二次方程中n个单项式的加密值;以及,第一累加器14,用于将所述n个单项式的加密值依次累加到寄存器中,获得密文。需要说明的是,在有限域上计算具有r个方程的多变量二次方程组Q1(x)=Σ1≤i≤j≤nαij1xixj+γ1......Qr(x)=Σ1≤i≤j≤nαijrxixj+γr]]>来实现对密钥、明文的加密。其中,αij为明文,xi、xj为密钥。在本发明实施例中,在分别计算每个多变量二次方程时,第一掩码生成器11随机产生n个掩码,第一异或计算器12采用第一掩码生成器11产生的n个掩码对n个密钥一一对应地进行异或加密,输出n个掩码性密钥,即加密后的密钥。第一掩码型乘法器13接收第一掩码生成器11产生的n个掩码、第一异或计算器12输出的n个掩码性密钥和明文,采用掩码算法,逐一输出多变量二次方程中的每个单项式的加密值,即掩码后的单项式。最后,第一累加器14将第一掩码型乘法器13中逐一输出的单项式的加密值依次累加到寄存器中,并对寄存器中的值进行处理,即可获得多变量二次方程所需的正确运算结果,即密文。其中,第一累加器14在将每个单项式的加密值依次累加到寄存器时,写入寄存器中的值均为被掩码的值,而掩码为一个随机化的值,使得攻击者无法通过寄存器的功耗分析来获取密钥信息,从而难以实现对侧信道的攻击。需要说明的是,本发明实施例提供的多变量二次方程的掩码加密装置一般应用在智能卡中,密钥通过多变量二次方程的算法进行加密后存储到智能卡的存储器中。其中,每个多变量二次方程中各个单项式均采用掩码加密,累加到存储器中的值也为掩码后的加密值,从而防止攻击者通过对存储器进行功耗分析而获取密钥信息。进一步地,所述掩码为mi;所述密钥为xi;1≤i≤n;所述第一异或计算器具体用于将所述n个掩码与n个密钥一一对应进行异或加密,获得每个密钥的掩码型密钥其中,n个掩码为M={m1,...,mi,...,mj,...,mn
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1