一种多变量二次方程的掩码加密方法

文档序号:9931093阅读:742来源:国知局
一种多变量二次方程的掩码加密方法
【技术领域】
[0001] 本发明涉及信息安全技术领域,尤其涉及一种多变量二次方程的掩码加密方法。
【背景技术】
[0002] MQ问题(MQ problem)是指在一个有限域上求解一组多变量二次方程的问题,一般 来说该问题是NP困难的。MQ问题在密码学上是一个非常有研究前景的难题,大量的密码算 法基于MQ问题被设计出来,主要包括多变量公钥密码算法(MPKC)、流密码算法QUAD和身份 认证算法等。其中,多变量二次方程可以表示如下:
[0003] Q(x) = 2 i<i<j<naijXiXj+ 2 i<i<n0ijXi+ y
[0004] 侧信道攻击(side channel attack简称SCA),又称旁路攻击,是一种针对加密电 子设备在运行过程中的时间消耗、功率消耗或电磁辐射之类的侧信道信息泄露而对加密设 备进行攻击的方法。这种攻击方法给密码设备带来了严重的威胁。
[0005] 但是,现有技术均未考虑多变量二次方程的侧信道泄露问题。加密时,直接按照顺 序逐项计算多变量二次方程中的每一个单项式,再把每个单项式的计算结果累加后暂存于 寄存器中。攻击者通过对寄存器存储操作的功耗进行分析,即可获得密钥或明文信息(3"或 者&的信息),进而攻破密码算法。

【发明内容】

[0006] 本发明实施例提出一种多变量二次方程的掩码加密方法,能够有效提高密钥的安 全性,抵御侧行道攻击。
[0007] 本发明实施例提供一种多变量二次方程的掩码加密方法,包括:
[0008] 随机生成n个掩码;1;
[0009] 将所述n个掩码与n个密钥--对应进行异或加密;
[0010] 根据加密后的n个密钥、所述n个掩码和明文,采用掩码算法,计算获得多变量二次 方程中n个单项式的加密值;
[0011] 将所述n个单项式的加密值依次累加到寄存器中,获得密文。
[0012] 进一步地,所述掩码为mi;所述密钥为Xi;其中,1 < i < n;
[0013] 所述将所述n个掩码与n个密钥一一对应进行异或加密,具体包括:
[0014] 将所述n个掩码与n个密钥一一对应进行异或加密,获得每个密钥的掩码型密钥 = x, ? m,.。
[0015] 进一步地,所述明文为aij; 1 < i < j < n;
[0016]所述掩码算法具体包括:
[0017] 分别计算?cf Xm7:、x;H X叫和肌 Xmj;
[0018] 将aij分别乘以.< x"v < ><ra,和叫 xmj,获得 % xxf 、% ><xf xm,:、 x ^ x:叫和a!」x mi X mj;
[0019]将mj与ctij Xmi Xmj进行异或操作,获得(ctij Xnu Xmj) ? mj;
[0020]将(〇ij XmiXmj) ? mj与 % x叫进行异或操作,获得(%><彳謂,xw7)?气,);
[0021 ]将(a^. x ,x;" x m;- ) ? x/??欠气.)?气与《rxxf x%进行异或操作,获得 x x" x Mj) ? x xj x m;) ? x mi x my) ? /?y .
[0022] 将(a" x x;H x m)) ? ((a" x x;H x 叫)?.((a" x x 气')? 相』))与x x;m x x:"进行异或 操作,获得每个单项式的加密值(aij X Xi X Xj) ? mj;
[0023] (a x a xx,)?mr =(a" x.y广 x.T:B)?((a!; x.\-「x?;; )?((ao x.y;k x% )?((a(r x;'?; xot,)?w;)))。
[0024] 进一步地,所述将所述n个单项式的加密值依次累加到寄存器中,获得密文,具体 包括:
[0025]在将第j个单项式的加密值(aijXxiXxj) ?mj累加到所述寄存器时,读取所述寄存 器中的值Qj-i;
[0026] 将Qh与第j-1个单项式的加密值所采用的掩码mj-i进行异或操作,获得Qh e mj_1;
[0027] 将(aij X Xi X xj) ? mj与Qj-i ? mj-i进行累加,获得Qj-i ? mj-i+(aij Xxi X xj) ? mj;
[0028] 将Qj-i ? mj-XXiXXj) ? mj写入所述寄存器中,使所述寄存器中的值为Qj = Qj-i ? mj-i+(aijXxiXxj) ? mj;
[0029] 在将第n个单项式的加密值累加到所述寄存器后,读取所述寄存器中的值Qn;
[0030] 将(^与第n个单项式的加密值所采用的掩码mn进行异或操作,获得为所述 密文。
[0031] 相应地,本发明实施例还提供一种多变量二次方程的掩码加密方法,包括:
[0032] 随机生成n个掩码;n之1;
[0033] 将所述n个掩码与n个明文--对应进行异或加密;
[0034] 根据加密后的n个明文、所述n个掩码和密钥,采用掩码算法,计算获得多变量二次 方程中n个单项式的加密值;
[0035] 将所述n个单项式的加密值依次累加到寄存器中,获得密文。
[0036] 进一步地,所述掩码为mi;所述明文为Xi;其中,1 < i < n;
[0037] 所述将所述n个掩码与n个明文--对应进行异或加密,具体包括:
[0038] 将所述n个掩码与n个明文--对应进行异或加密,获得每个明文的掩码型明文 ; x;w = 。
[0039] 进一步地,所述密钥为aij; 1 < i < j < n;
[0040] 所述掩码算法具体包括:
[0041 ]分别计算 xfx 气、xJxwjpmiXmj;
[0042]将叫分别乘以.<">〇-;1、.<、/~、<>^,.和1]^\1^,获得》, ;/><<><<、%><<></?/、 a., x x] x m. ^Paij X mi X mj ;
[0043]将mj与aijXmiXmj进行异或操作,获得(aijXmiXmj) ?mj;
[0044] 将(a。Xmi Xmj) ? mj与% x.x;" 进行异或操作,获得<_x~)?((% x
[0045] 将x气:)@气;)与进行异或操作,获得 (% x xf x m,) 6> ((% x x;" x '气)6> ((% x 7% x @ 7%)) ?
[0046] 将(a,7 xxf x)? ((a,7 xx)1 xm;.)?《a,7 xm,. x/~)?%))与 a" xxf x进行异或 操作,获得每个单项式的加密值(aij X Xi X Xj) ? mj;
[0047] (a^x.r,. xx.^Wj. x.vf xxfx/n; xx*'xnz. )?^(aijxmi u
[0048] 进一步地,所述将所述n个单项式的加密值依次累加到寄存器中,获得密文,具体 包括:
[0049]在将第j个单项式的加密值(aijXxiXxj) ?mj累加到所述寄存器时,读取所述寄存 器中的值Qj-i;
[0050]将Qh与第j-1个单项式的加密值所采用的掩码mj-i进行异或操作,获得Qh e mj_1; [0051 ]将(aij X Xi X xj) ? mj与Qj-1 ? mj-1进行累加,获得Qj-1 ? mj-i+(aij Xxi X xj) ? mj; [0052] 将Qj-i ? mj-XXiXXj) ? mj写入所述寄存器中,使所述寄存器中的值为Qj = Qj-i ? mj-i+(aijXxiXxj) ? mj;
[0053] 在将第n个单项式的加密值累加到所述寄存器后,读取所述寄存器中的值Qn;
[0054] 将(^与第n个单项式的加密值所采用的掩码mn进行异或操作,获得Qnemjp为所述 密文。
[0055] 实施本发明实施例,具有如下有益效果:
[0056] 本发明实施例提供的多变量二次方程的掩码加密方法,能够在计算多变量二次方 程时,对多变量二次方程中的变量,即密钥或明文采用随机化的掩码进行异或加密,进而对 多变量二次方程的中间结果,即每个单项式均被加密,避免在每个单项式写入寄存器时的 侧信道泄露,从而抵御侧行道攻击,有效提高密钥的安全性。
【附图说明】
[0057] 图1是本发明提供的多变量二次方程的掩码加密方法的第一个实施例的流程示意 图;
[0058] 图2是本发明提供的多变量二次方程的掩码加密方法的第二个实施例的流程示意 图;
[0059] 图3是本发明提供的多变量二次方程的掩码加密方法的第三个实施例的流程示意 图。
【具体实施方式】
[0060] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1