一種多變量二次方程的亂序加密方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及信息安全技術(shù)領(lǐng)域,尤其涉及一種多變量二次方程的亂序加密方法。
【背景技術(shù)】
[0002] MQ問題(MQ problem)是指在一個(gè)有限域上求解一組多變量二次方程的問題,一般 來說該問題是NP困難的。MQ問題在密碼學(xué)上是一個(gè)非常有研究前景的難題,大量的密碼算 法基于MQ問題被設(shè)計(jì)出來,主要包括多變量公鑰密碼算法(MPKC)、流密碼算法QUAD和身份 認(rèn)證算法等。其中,多變量二次方程可以表示如下:
[0003] Q(x) = Σ i<i<j<naijXiXj+ Σ i<i<n0ijXi+ J
[0004] 側(cè)信道攻擊(side channel attack簡稱SCA),又稱旁路攻擊,是一種針對(duì)加密電 子設(shè)備在運(yùn)行過程中的時(shí)間消耗、功率消耗或電磁輻射之類的側(cè)信道信息泄露而對(duì)加密設(shè) 備進(jìn)行攻擊的方法。這種攻擊方法給密碼設(shè)備帶來了嚴(yán)重的威脅。
[0005] 但是,現(xiàn)有技術(shù)均未考慮多變量二次方程的側(cè)信道泄露問題。加密時(shí),直接按照相 同順序?qū)Χ鄠€(gè)多變量二次方程中的每一個(gè)單項(xiàng)式進(jìn)行計(jì)算,再把每個(gè)單項(xiàng)式的計(jì)算結(jié)果累 加后暫存于寄存器中。攻擊者通過對(duì)每個(gè)多變量二次方程相應(yīng)寄存器存儲(chǔ)操作的功耗進(jìn)行 分析,即可獲得密鑰或明文信息(a^或者&的信息),進(jìn)而攻破密碼算法。
【發(fā)明內(nèi)容】
[0006 ]本發(fā)明實(shí)施例提出一種多變量二次方程的亂序加密方法,能夠有效提高密鑰的安 全性,抵御側(cè)行道攻擊。
[0007] 本發(fā)明實(shí)施例提供一種多變量二次方程的亂序加密方法,包括:
[0008] 在計(jì)算每個(gè)多變量二次方程時(shí),亂序生成n(n+l)/2個(gè)單項(xiàng)式下標(biāo)值(i,j); I < i < j < η;
[0009] 按照單項(xiàng)式下標(biāo)值(i,j)生成的順序,依次計(jì)算所述多變量二次方程的η個(gè)單項(xiàng)式 CXijXiXj ;其中,Qij為明文,Xi為密鑰,或者,Qij為密鑰,Xi為明文;
[0010]將所述η個(gè)單項(xiàng)式印累加后寫入到寄存器中,獲得密文。
[0011] 進(jìn)一步地,所述在計(jì)算每個(gè)多變量二次方程時(shí),亂序生成η(η+1 )/2個(gè)單項(xiàng)式下標(biāo) 值(i,j),具體包括:
[0012] S11、在計(jì)算每個(gè)多變量二次方程時(shí),隨機(jī)生成單項(xiàng)式下標(biāo)初始值i = is, j = js;l < is < js < η;
[0013] S12、判斷j是否為η,若是,則執(zhí)行步驟S13,若否,則執(zhí)行步驟S14;
[0014] S13、判斷i是否為η,若是,則執(zhí)行步驟S15,若否,則執(zhí)行步驟S16;
[0015] S14、將j賦值為j+Ι,并繼續(xù)執(zhí)行步驟S17;
[0016 ] S15、將i和j均賦值為1,并繼續(xù)執(zhí)行步驟S17;
[0017] S16、將i賦值為i+Ι,將j賦值為i+Ι,并繼續(xù)執(zhí)行步驟S17;
[0018] S17、判斷i是否為is,且j是否為js_l,若是,則所述多變量二次方程中單項(xiàng)式下標(biāo) 值生成完畢,若否,則繼續(xù)執(zhí)行步驟S12。
[0019] 進(jìn)一步地,所述將每個(gè)單項(xiàng)式aljXlXj累加后寫入到寄存器中,獲得密文,具體包 括:
[0020] 按照單項(xiàng)式α設(shè)兩的計(jì)算順序,依次將每個(gè)單項(xiàng)式aijX兩累加到寄存器中,所述寄 存器中累加后的值即為密文。
[0021 ]進(jìn)一步地,臟每個(gè)多變量二次方程相應(yīng)的密文為
[0022] 實(shí)施本發(fā)明實(shí)施例,具有如下有益效果:
[0023] 本發(fā)明實(shí)施例提供的多變量二次方程的亂序加密方法,能夠在計(jì)算每個(gè)多變量二 次方程時(shí),采用亂序生成單項(xiàng)式下標(biāo)值的方式來生成n(n+l)/2個(gè)單項(xiàng)式下標(biāo)值(i,j),并按 照單項(xiàng)式下標(biāo)值(i,j)的生成順序,依次計(jì)算n(n+l)/2個(gè)單項(xiàng)式a ljXlXj,使不同多變量二次 方程中單項(xiàng)式的計(jì)算順序各不相同,最后,將多變量二次方程中每個(gè)單項(xiàng)式累加到寄存器 中,實(shí)現(xiàn)對(duì)密鑰的加密,通過打亂各個(gè)單項(xiàng)式的計(jì)算順序,使相同的明文或密鑰信息在不同 時(shí)刻出現(xiàn),從而抵御側(cè)行道攻擊,有效提高密鑰的安全性。
【附圖說明】
[0024] 圖1是本發(fā)明提供的多變量二次方程的亂序加密方法的第一個(gè)實(shí)施例的流程示意 圖;
[0025] 圖2是本發(fā)明提供的多變量二次方程的亂序加密方法中步驟Sl的一個(gè)實(shí)施例的流 程不意圖;
[0026] 圖3是本發(fā)明提供的多變量二次方程的亂序加密方法的第二個(gè)實(shí)施例的流程示意 圖。
【具體實(shí)施方式】
[0027]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完 整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;?本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他 實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0028] 參見圖1,是本發(fā)明提供的多變量二次方程的亂序加密方法的一個(gè)實(shí)施例的流程 示意圖,包括:
[0029] S1、在計(jì)算每個(gè)多變量二次方程時(shí),亂序生成n(n+l)/2個(gè)單項(xiàng)式下標(biāo)值(i,j);l < i < j < η ;
[0030] S2、按照單項(xiàng)式下標(biāo)值(i,j)生成的順序,依次計(jì)算所述多變量二次方程的η個(gè)單 項(xiàng)式aijXiXj;其中,CJij為明文,X i為密鑰,或者,CXij為密鑰,Xi為明文;
[0031] S3、將所述η個(gè)單項(xiàng)式aljXlXj累加后寫入到寄存器中,獲得密文。
[0032] 需要說明的是,在有限域上計(jì)算具有r個(gè)方程的多變量二次方程組 來實(shí)現(xiàn)對(duì)密鑰、明文的加密。其中,若Ctij為明文,則Xi為密鑰; 若Ctij為密鑰,則Xi為明文。在計(jì)算多變量二次方程組中的每個(gè)多變量二次方程時(shí),隨機(jī)打亂 每個(gè)多變量二次方程中的各個(gè)單項(xiàng)式aljXlXj的計(jì)算順序,使不同多變量二次方程中的單項(xiàng) 式CXijXiXj的計(jì)算順序各不相同。
[0033] 在分別計(jì)算每個(gè)多變量二次方程時(shí),亂序生成n(n+l )/2個(gè)單項(xiàng)式下標(biāo)值(i,j),即 將多變量二次方程的單項(xiàng)式下標(biāo)值重新進(jìn)行排序,使每個(gè)多變量二次方程的單項(xiàng)式下標(biāo)值 的順序各不相同。其中,n(n+l)/2個(gè)單項(xiàng)式下標(biāo)值(i,j)涵蓋多變量二次方程中的所有單項(xiàng) 式下標(biāo)值。每個(gè)多變量二次方程按照其各自的單項(xiàng)式下標(biāo)值生成順序,計(jì)算各個(gè)單項(xiàng)式a 。在計(jì)算每個(gè)多變量二次方程時(shí),每計(jì)算一個(gè)單項(xiàng)式,則將單項(xiàng)式累加到寄存器中,在 累加完所有單項(xiàng)式后,即可獲得該多變量二次方程相應(yīng)的密文。多變量二次方程組中的r個(gè) 方程的計(jì)算結(jié)果分別相應(yīng)寫入到r個(gè)寄存器中。
[0034] 每個(gè)多變量二次方程中具有n(n+l )/2項(xiàng)單項(xiàng)式,單項(xiàng)式計(jì)算順序打亂后,攻擊者 若想通過對(duì)r個(gè)寄存器的功耗分析來獲取密鑰信息,則需要考慮A(n(n+l)/2,n(n+l)/2) = (n(n+l)/2)!種可能性來進(jìn)行分析,從而難以實(shí)現(xiàn)對(duì)側(cè)信道的攻擊。
[0035] 需要說明的是,本發(fā)明實(shí)施例提供的多變量二次方程的亂序加密方法一般應(yīng)用在 智能卡中,明文、密鑰通過多變量二次方程的算法進(jìn)行加密后存儲(chǔ)到智能卡的存儲(chǔ)器中。其 中,每