本發(fā)明涉及分組加密算法防攻擊的技術(shù)領(lǐng)域,具體地,涉及一種分組加密算法防攻擊的掩碼方法和裝置。
背景技術(shù):
隨著計算機網(wǎng)絡(luò)技術(shù)和通信技術(shù)迅速發(fā)展,信息安全問題日益突出,解決這一問題的有效手段之一是使用現(xiàn)代密碼技術(shù),各種密碼算法不斷出現(xiàn)。分組密碼算法是一種最常用的加密手段,具有速度快、易于標(biāo)準(zhǔn)化和便于軟硬件實現(xiàn)等特點。目前比較流行的分組密碼算法有DES算法、AES算法等。
隨著測量技術(shù)和攻擊技術(shù)的不斷進(jìn)步,對密碼算法的各種分析和攻擊方法不再局限于算法本身,出現(xiàn)了許多針對密碼算法實現(xiàn)載體的攻擊方法,側(cè)信道攻擊是其中威脅性較強的一種方法。攻擊者利用密碼設(shè)備在運行過程中泄露的側(cè)信息如功耗、時間、電磁輻射等,對密碼系統(tǒng)進(jìn)行攻擊和分析。掩碼方法是目前抵抗側(cè)信道攻擊比較常用的一種方法,通過對加密操作的中間值進(jìn)行掩蓋使得攻擊變得困難。
現(xiàn)有防側(cè)信道攻擊的掩碼技術(shù)在同一輪運算的不同位置會出現(xiàn)相同的掩碼,或者第一輪運算與最后一輪運算帶的掩碼是相同的,如果攻擊者對這兩個帶有相同掩碼值的運算位置進(jìn)行異或,可以消去掩碼的影響進(jìn)而實施有效的高階攻擊。
技術(shù)實現(xiàn)要素:
本發(fā)明是為了克服現(xiàn)有掩碼技術(shù)不能有效防止側(cè)信道攻擊中的高階攻擊的缺陷,根據(jù)本發(fā)明的一個方面,提出一種分組加密算法防攻擊的掩碼方法。
本發(fā)明實施例提供的一種分組加密算法防攻擊的掩碼方法,包括:將獲取的明文與第一掩碼M1進(jìn)行異或運算,將引入第一掩碼M1的明文作為第1輪運算的輸入值,并執(zhí)行第1輪運算;在執(zhí)行第i輪運算之前,將獲取的第i-1輪的運算結(jié)果與掩碼Mi進(jìn)行異或運算,再與抵消掩碼Mi-1’進(jìn)行異或運算,將兩次異或運算后的結(jié)果作為第i輪運算的輸入值,其中,2≤i≤n,n為分組 加密算法的輪數(shù);抵消掩碼Mi-1’用于抵消第i-1輪的運算結(jié)果中引入的一個掩碼;在執(zhí)行完第n輪運算之后,將第n輪的運算結(jié)果與抵消掩碼Mn’進(jìn)行異或運算,并將異或運算結(jié)果作為分組加密算法的密文輸出;抵消掩碼Mn’用于抵消第n輪的運算結(jié)果中引入的所有掩碼。
在上述技術(shù)方案中,在將獲取的明文與第一掩碼M1進(jìn)行異或運算步驟之后,還包括:將引入第一掩碼M1的明文存入寄存器中。
在上述技術(shù)方案中,在將引入第一掩碼M1的明文存入寄存器中步驟之后,還包括:將從寄存器中讀取的引入第一掩碼M1的明文與掩碼m進(jìn)行異或運算,第1輪運算的輸入值為引入第一掩碼M1和掩碼m的明文。
在上述技術(shù)方案中,該方法還包括:在第1輪運算中引入隨機數(shù)R1,且在第i輪運算中引入隨機數(shù)Ri。
在上述技術(shù)方案中,抵消掩碼Mi-1’還用于抵消第i-1輪的運算結(jié)果中引入的隨機數(shù)Ri-1;抵消掩碼Mn’還用于抵消第n輪的運算結(jié)果中引入的隨機數(shù)Rn。
本發(fā)明是為了克服現(xiàn)有掩碼技術(shù)不能有效防止側(cè)信道攻擊中的高階攻擊的缺陷,根據(jù)本發(fā)明的一個方面,提出一種分組加密算法防攻擊的掩碼裝置。
本發(fā)明實施例提供的一種分組加密算法防攻擊的掩碼裝置,包括:
第一掩碼模塊,用于將獲取的明文與第一掩碼M1進(jìn)行異或運算,將引入第一掩碼M1的明文作為第1輪運算的輸入值,并執(zhí)行第1輪運算;
掩碼處理模塊,用于在執(zhí)行第i輪運算之前,將獲取的第i-1輪的運算結(jié)果與掩碼Mi進(jìn)行異或運算,再與抵消掩碼Mi-1’進(jìn)行異或運算,將兩次異或運算后的結(jié)果作為第i輪運算的輸入值,其中,2≤i≤n,n為分組加密算法的輪數(shù);抵消掩碼Mi-1’用于抵消第i-1輪的運算結(jié)果中引入的一個掩碼;
抵消掩碼模塊,用于在執(zhí)行完第n輪運算之后,將第n輪的運算結(jié)果與抵消掩碼Mn’進(jìn)行異或運算,并將異或運算結(jié)果作為分組加密算法的密文輸出;抵消掩碼Mn’用于抵消第n輪的運算結(jié)果中引入的所有掩碼。
在上述技術(shù)方案中,該裝置還包括:寄存模塊;
寄存模塊用于在第一掩碼模塊在將獲取的明文與第一掩碼M1進(jìn)行異或運算之后,將引入第一掩碼M1的明文存入寄存器中。
在上述技術(shù)方案中,該裝置還包括:第二掩碼模塊;
第二掩碼模塊用于在寄存模塊將引入第一掩碼M1的明文存入寄存器中之后,將從寄存器中讀取的引入第一掩碼M1的明文與掩碼m進(jìn)行異或運算,且第1輪運算的輸入值為引入第一掩碼M1和掩碼m的明文。
在上述技術(shù)方案中,該裝置還包括:
隨機數(shù)模塊,用于在第1輪運算中引入隨機數(shù)R1,且在第i輪運算中引入隨機數(shù)Ri。
在上述技術(shù)方案中,抵消掩碼Mi-1’還用于抵消第i-1輪的運算結(jié)果中引入的隨機數(shù)Ri-1;抵消掩碼Mn’還用于抵消第n輪的運算結(jié)果中引入的隨機數(shù)Rn。
本發(fā)明實施例提供的一種分組加密算法防攻擊的掩碼方法和裝置,采用了多值掩碼的方法,每輪運算中有互相不同的掩碼參與運算,每個運算位置保證了不同掩碼,可以避免對相同掩碼的高階攻擊,使加密算法更安全可靠。通過對明文引入掩碼m,進(jìn)一步可以保證運算位置至少有兩個不同掩碼,進(jìn)一步提高安全性,更加有效抵抗對相同掩碼的高階攻擊。
本發(fā)明的其它特征和優(yōu)點將在隨后的說明書中闡述,并且,部分地從說明書中變得顯而易見,或者通過實施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點可通過在所寫的說明書、權(quán)利要求書、以及附圖中所特別指出的結(jié)構(gòu)來實現(xiàn)和獲得。
下面通過附圖和實施例,對本發(fā)明的技術(shù)方案做進(jìn)一步的詳細(xì)描述。
附圖說明
附圖用來提供對本發(fā)明的進(jìn)一步理解,并且構(gòu)成說明書的一部分,與本發(fā)明的實施例一起用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的限制。在附圖中:
圖1為本發(fā)明實施例中分組加密算法防攻擊的掩碼方法的流程圖;
圖2為本發(fā)明實施例中掩碼方法的流程示意圖;
圖3為實施例一中分組加密算法防攻擊的掩碼方法的流程圖;
圖4為實施例一中掩碼方法的流程示意圖;
圖5為本發(fā)明實施例中分組加密算法防攻擊的掩碼裝置的第一結(jié)構(gòu)示意圖;
圖6為本發(fā)明實施例中分組加密算法防攻擊的掩碼裝置的第二結(jié)構(gòu)示 意圖。
具體實施方式
下面結(jié)合附圖,對本發(fā)明的具體實施方式進(jìn)行詳細(xì)描述,但應(yīng)當(dāng)理解本發(fā)明的保護(hù)范圍并不受具體實施方式的限制。
根據(jù)本發(fā)明實施例,提供了一種分組加密算法防攻擊的掩碼方法,圖1為該方法的流程圖,具體包括:
步驟101:將獲取的明文與第一掩碼M1進(jìn)行異或運算,將引入第一掩碼M1的明文作為第1輪運算的輸入值,并執(zhí)行第1輪運算。
優(yōu)選的,在步驟101中的將獲取的明文與第一掩碼M1進(jìn)行異或運算步驟之后,還包括:將引入第一掩碼M1的明文存入寄存器中。即明文在存入寄存器之前執(zhí)行了與第一掩碼M1進(jìn)行異或運算的步驟,從而寄存器中所存儲的明文引入了第一掩碼M1,從而保護(hù)了寄存器中的數(shù)據(jù),可有效抵抗?jié)h明距離攻擊。
優(yōu)選的,在上述將引入第一掩碼M1的明文存入寄存器中步驟之后,還包括:將從寄存器中讀取的引入第一掩碼M1的明文與掩碼m進(jìn)行異或運算。第1輪運算的輸入值為引入第一掩碼M1和掩碼m的明文。
通過再與掩碼m進(jìn)行異或運算,從而可以使第一輪運算的輸入值引入有兩個不同的掩碼,使每輪的運算位置保證至少有兩個不同的掩碼,可以進(jìn)一步提高安全性。該步驟的具體作用將在下面進(jìn)行詳細(xì)闡述。
步驟102:在執(zhí)行第i輪運算之前,將獲取的第i-1輪的運算結(jié)果與掩碼Mi進(jìn)行異或運算,再與抵消掩碼Mi-1’進(jìn)行異或運算,將兩次異或運算后的結(jié)果作為第i輪運算的輸入值,其中,2≤i≤n,n為分組加密算法的輪數(shù);抵消掩碼Mi-1’用于抵消第i-1輪的運算結(jié)果中引入的一個掩碼。
本發(fā)明實施例中,抵消掩碼也是一種掩碼,通過與引入掩碼的運算結(jié)果進(jìn)行異或,從而可以消除其他掩碼(例如M1、M2等)的作用。具體的,參見圖2所示,在步驟102中,每次執(zhí)行第i輪運算之前,先引入一個掩碼Mi,然后再通過引入抵消掩碼Mi-1’來抵消第i-1輪的運算結(jié)果中引入的一個掩碼。即在每一輪運算之前先加入新的掩碼,再退掉一個舊的掩碼,從而保證每輪運算均包含掩碼且每輪運算中引入的掩碼并不完全相同,從而可以有效抵抗高階攻擊。
例如,在執(zhí)行第2輪運算之前(即i=2),將第1輪的運算結(jié)果先與掩碼M2進(jìn)行異或,再與抵消掩碼M1’進(jìn)行異或;此時由于第1輪的運算結(jié)果中只引入了第一掩碼M1,因此抵消掩碼M1’用來抵消第一掩碼M1的作用。此時,第2輪運算的輸入值只引入了掩碼M2。同理,第i輪運算引入了掩碼Mi,若n個掩碼M1-Mn互不相同,則每一輪運算引入的掩碼也不相同;根據(jù)具體情況可以設(shè)置M1-Mn互不相同,或M1-Mn部分相同、部分不相同。
同時,執(zhí)行完每一輪運算后,需要將運算存入寄存器。由于每一輪的運算結(jié)果均引入了一個掩碼,從而同樣可以保護(hù)寄存器中的數(shù)據(jù),可有效抵抗?jié)h明距離攻擊。
步驟103:在執(zhí)行完第n輪運算之后,將第n輪的運算結(jié)果與抵消掩碼Mn’進(jìn)行異或運算,并將異或運算結(jié)果作為分組加密算法的密文輸出;抵消掩碼Mn’用于抵消第n輪的運算結(jié)果中引入的所有掩碼。
如上,第n輪的運算結(jié)果中引入了掩碼Mn,通過抵消掩碼Mn’可以抵消該掩碼Mn的作用,從而最終輸出不帶掩碼的密文。
本發(fā)明實施例提供的一種分組加密算法防攻擊的掩碼方法,采用了多值掩碼的方法,每輪運算中有互相不同的掩碼參與運算,每個運算位置保證了不同掩碼,可以避免對相同掩碼的高階攻擊,使加密算法更安全可靠。
優(yōu)選的,本發(fā)明實施例提供的一種分組加密算法防攻擊的掩碼方法還包括:在第1輪運算中引入隨機數(shù)R1,且在第i輪運算中引入隨機數(shù)Ri。在每一輪運算中引入新的隨機數(shù),結(jié)合已經(jīng)帶有的掩碼,可以進(jìn)一步提高加密算法的安全性,使攻擊者更難獲得想要的結(jié)果。
其中,當(dāng)每一輪運算過程中引入隨機數(shù)時,抵消掩碼Mi-1’還用于抵消第i-1輪的運算結(jié)果中引入的隨機數(shù)Ri-1;抵消掩碼Mn’還用于抵消第n輪的運算結(jié)果中引入的隨機數(shù)Rn。
下面通過一個實施例詳細(xì)介紹該掩碼方法的流程。
實施例一
在實施例一中,為第1輪運算引入第一掩碼M1和掩碼m,且每一輪運算中引入隨機數(shù)。方法流程具體如圖3和圖4所示:
步驟301:將獲取的明文與第一掩碼M1進(jìn)行異或運算。
步驟302:將引入第一掩碼M1的明文存入寄存器中。
圖4中,Reg代表寄存器。
步驟303:將從寄存器中讀取的引入第一掩碼M1的明文與掩碼m進(jìn)行異或運算,異或運算的結(jié)果作為第1輪運算的輸入值。
步驟304:執(zhí)行第1輪運算,引入隨機數(shù)R1,并將運算結(jié)果存入寄存器中。
步驟305:在執(zhí)行第i輪運算之前,將獲取的第i-1輪的運算結(jié)果與掩碼Mi進(jìn)行異或運算,再與抵消掩碼Mi-1’進(jìn)行異或運算,將兩次異或運算后的結(jié)果作為第i輪運算的輸入值。
其中,2≤i≤n,n為分組加密算法的輪數(shù);抵消掩碼Mi-1’用于抵消第i-1輪的運算結(jié)果中引入的一個掩碼。
當(dāng)每一輪運算中沒有引入隨機數(shù)時,仍然以第2輪運算之前為例。第1輪的運算結(jié)果引入了第一掩碼M1和掩碼m,抵消掩碼M1’用于抵消第一掩碼M1的作用或抵消掩碼m的作用。在實施例一中,以先引入先抵消的原則抵消前一輪中引入的掩碼;即,由于掩碼引入的順序為M1→m→M2→M3→…→Mn,則Mi-1’依次抵消M1、m、M2…Mn的掩碼效果。
第1運算結(jié)果與掩碼M2異或后,引入三個掩碼(M1、m和M2),再與抵消掩碼M1’異或后,引入了兩個掩碼(m和M2),即第2輪運算的輸入值引入了掩碼m和M2。
相應(yīng)的,抵消掩碼M2’用于抵消掩碼m的作用,所以第3輪運算的輸入值引入了掩碼M2和M3。之后的第4輪至第n輪,每一輪的運算均引入了兩個掩碼,且第n輪運算的輸入值引入了掩碼Mn-1和Mn。
而在實施例一中,由于每一輪引入了隨機數(shù)。此時抵消掩碼Mi-1’還用于抵消第i-1輪的運算結(jié)果中引入的隨機數(shù)Ri-1。具體的,以第2輪運算之前(即i=2)為例。抵消掩碼M1’除了用于抵消掩碼M1的作用,還用于抵消隨機數(shù)R1的作用。
步驟306:執(zhí)行第i輪運算,引入隨機數(shù)Ri,并將運算結(jié)果存入寄存器中。
步驟307:在執(zhí)行完第n輪運算之后,將第n輪的運算結(jié)果與抵消掩碼Mn’進(jìn)行異或運算,并將異或運算結(jié)果作為分組加密算法的密文輸出。
在實施例一中,第n輪的運算結(jié)果引入了掩碼Mn-1、Mn和隨機數(shù)Rn,抵消掩碼Mn’用于抵消第n輪的運算結(jié)果中引入的所有掩碼(即掩碼Mn-1和 Mn),同時還用于抵消第n輪的運算中中引入的隨機數(shù)Rn。最終密文不帶有掩碼和隨機數(shù)。
需要說明的是,在實施例一中,抵消掩碼采用先引入先抵消的原則抵消前一輪中引入的掩碼,即抵消掩碼Mi-1’用于抵消第i-1輪的運算結(jié)果中在先引入的一個掩碼,這樣可以保證每一輪運算時、每輪之間均引入了兩個不同的掩碼(第一輪引入了M1和m,第二輪引入了m和M2,第三輪引入了M2和M3……)。
而如果不采用先引入先抵消的原則,則可能某些輪運算中并不能保證有兩個不同的掩碼,但能保證每輪運算之間至少有一個不同的掩碼。例如,采用后引入先抵消的原則,即抵消掩碼Mi-1’用于抵消第i-1輪的運算結(jié)果中在后引入的一個掩碼(如,第一輪運算中先引入M1,后引入m,則M1’抵消m的作用),這樣能保證每輪運算過程中引入了兩個掩碼,但是輪運算之間引入只有一個掩碼是不同的(此時,第一輪引入了M1和m,第二輪引入了M1和M2,第三輪引入了M1和M3……)。
因此,實施例一中采用先引入先抵消的原則抵消前一輪中引入的掩碼是最優(yōu)的實施例;但是只要抵消掩碼Mi-1’可以抵消第i-1輪的運算結(jié)果中引入的一個掩碼,則也可以保證每輪運算之間至少有一個不同的掩碼參與了運算。
本發(fā)明實施例提供的一種分組加密算法防攻擊的掩碼方法,采用了多值掩碼的方法,每輪運算中有互相不同的掩碼參與運算,每個運算位置保證了不同掩碼,可以避免對相同掩碼的高階攻擊,使加密算法更安全可靠。通過對明文引入掩碼m,進(jìn)一步可以保證運算位置至少有兩個不同掩碼,進(jìn)一步提高安全性,更加有效抵抗對相同掩碼的高階攻擊。
以上詳細(xì)介紹了掩碼方法的具體流程,該方法也可以通過裝置實現(xiàn),下面詳細(xì)介紹該裝置的結(jié)構(gòu)和功能。
本發(fā)明實施例提供的一種分組加密算法防攻擊的掩碼裝置,參見圖5所示,包括:第一掩碼模塊501、掩碼處理模塊502和抵消掩碼模塊503。
第一掩碼模塊501,用于將獲取的明文與第一掩碼M1進(jìn)行異或運算,將引入第一掩碼M1的明文作為第1輪運算的輸入值,并執(zhí)行第1輪運算;
掩碼處理模塊502,用于在執(zhí)行第i輪運算之前,將獲取的第i-1輪的運算結(jié)果與掩碼Mi進(jìn)行異或運算,再與抵消掩碼Mi-1’進(jìn)行異或運算,將兩次 異或運算后的結(jié)果作為第i輪運算的輸入值,其中,2≤i≤n,n為分組加密算法的輪數(shù);抵消掩碼Mi-1’用于抵消第i-1輪的運算結(jié)果中引入的一個掩碼;
抵消掩碼模塊503,用于在執(zhí)行完第n輪運算之后,將第n輪的運算結(jié)果與抵消掩碼Mn’進(jìn)行異或運算,并將異或運算結(jié)果作為分組加密算法的密文輸出;抵消掩碼Mn’用于抵消第n輪的運算結(jié)果中引入的所有掩碼。
優(yōu)選的,參見圖6所示,本發(fā)明實施例提供的掩碼裝置還包括:寄存模塊504。
寄存模塊504用于在第一掩碼模塊501在將獲取的明文與第一掩碼M1進(jìn)行異或運算之后,將引入第一掩碼M1的明文存入寄存器中。
優(yōu)選的,參見圖6所示,該掩碼裝置還包括:第二掩碼模塊505。
第二掩碼模塊505用于在寄存模塊504將引入第一掩碼M1的明文存入寄存器中之后,將從寄存器中讀取的引入第一掩碼M1的明文與掩碼m進(jìn)行異或運算,且第1輪運算的輸入值為引入第一掩碼M1和掩碼m的明文。
優(yōu)選的,參見圖6所示,該掩碼裝置還包括:隨機數(shù)模塊506。
隨機數(shù)模塊506用于在第1輪運算中引入隨機數(shù)R1,且在第i輪運算中引入隨機數(shù)Ri。
其中,抵消掩碼Mi-1’還用于抵消第i-1輪的運算結(jié)果中引入的隨機數(shù)Ri-1;抵消掩碼Mn’還用于抵消第n輪的運算結(jié)果中引入的隨機數(shù)Rn。
本發(fā)明實施例提供的一種分組加密算法防攻擊的掩碼方法和裝置,采用了多值掩碼的方法,每輪運算中有互相不同的掩碼參與運算,每個運算位置保證了不同掩碼,可以避免對相同掩碼的高階攻擊,使加密算法更安全可靠。通過對明文引入掩碼m,進(jìn)一步可以保證運算位置至少有兩個不同掩碼,進(jìn)一步提高安全性,更加有效抵抗對相同掩碼的高階攻擊。
本發(fā)明能有多種不同形式的具體實施方式,上面以圖1-圖6為例結(jié)合附圖對本發(fā)明的技術(shù)方案作舉例說明,這并不意味著本發(fā)明所應(yīng)用的具體實例只能局限在特定的流程或?qū)嵤├Y(jié)構(gòu)中,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)了解,上文所提供的具體實施方案只是多種優(yōu)選用法中的一些示例,任何體現(xiàn)本發(fā)明權(quán)利要求的實施方式均應(yīng)在本發(fā)明技術(shù)方案所要求保護(hù)的范圍之內(nèi)。
最后應(yīng)說明的是:以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,盡管參照前述實施例對本發(fā)明進(jìn)行了詳細(xì)的說明,對于本領(lǐng)域的 技術(shù)人員來說,其依然可以對前述各實施例所記載的技術(shù)方案進(jìn)行修改,或者對其中部分技術(shù)特征進(jìn)行等同替換。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。