一種多變量二次方程的掩碼加密方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及信息安全技術(shù)領(lǐng)域,尤其涉及一種多變量二次方程的掩碼加密方法。
【背景技術(shù)】
[0002] MQ問題(MQ problem)是指在一個有限域上求解一組多變量二次方程的問題,一般 來說該問題是NP困難的。MQ問題在密碼學上是一個非常有研究前景的難題,大量的密碼算 法基于MQ問題被設(shè)計出來,主要包括多變量公鑰密碼算法(MPKC)、流密碼算法QUAD和身份 認證算法等。其中,多變量二次方程可以表示如下:
[0003] Q(x) = 2 i<i<j<naijXiXj+ 2 i<i<n0ijXi+ y
[0004] 側(cè)信道攻擊(side channel attack簡稱SCA),又稱旁路攻擊,是一種針對加密電 子設(shè)備在運行過程中的時間消耗、功率消耗或電磁輻射之類的側(cè)信道信息泄露而對加密設(shè) 備進行攻擊的方法。這種攻擊方法給密碼設(shè)備帶來了嚴重的威脅。
[0005] 但是,現(xiàn)有技術(shù)均未考慮多變量二次方程的側(cè)信道泄露問題。加密時,直接按照順 序逐項計算多變量二次方程中的每一個單項式,再把每個單項式的計算結(jié)果累加后暫存于 寄存器中。攻擊者通過對寄存器存儲操作的功耗進行分析,即可獲得密鑰或明文信息(3"或 者&的信息),進而攻破密碼算法。
【發(fā)明內(nèi)容】
[0006] 本發(fā)明實施例提出一種多變量二次方程的掩碼加密方法,能夠有效提高密鑰的安 全性,抵御側(cè)行道攻擊。
[0007] 本發(fā)明實施例提供一種多變量二次方程的掩碼加密方法,包括:
[0008] 隨機生成n個掩碼;1;
[0009] 將所述n個掩碼與n個密鑰--對應進行異或加密;
[0010] 根據(jù)加密后的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] 相應地,本發(fā)明實施例還提供一種多變量二次方程的掩碼加密方法,包括:
[0032] 隨機生成n個掩碼;n之1;
[0033] 將所述n個掩碼與n個明文--對應進行異或加密;
[0034] 根據(jù)加密后的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] 實施本發(fā)明實施例,具有如下有益效果:
[0056] 本發(fā)明實施例提供的多變量二次方程的掩碼加密方法,能夠在計算多變量二次方 程時,對多變量二次方程中的變量,即密鑰或明文采用隨機化的掩碼進行異或加密,進而對 多變量二次方程的中間結(jié)果,即每個單項式均被加密,避免在每個單項式寫入寄存器時的 側(cè)信道泄露,從而抵御側(cè)行道攻擊,有效提高密鑰的安全性。
【附圖說明】
[0057] 圖1是本發(fā)明提供的多變量二次方程的掩碼加密方法的第一個實施例的流程示意 圖;
[0058] 圖2是本發(fā)明提供的多變量二次方程的掩碼加密方法的第二個實施例的流程示意 圖;
[0059] 圖3是本發(fā)明提供的多變量二次方程的掩碼加密方法的第三個實施例的流程示意 圖。
【具體實施方式】
[0060] 下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完 整地描述,顯然,所描述的