s操作后的位置,S表示AES的S盒。
[0037] 步驟4)中,MixColumn操作每一次作用在一列上,可W用一個32X32比特的矩陣 MC乘W-個32比特的列向量來表示。如果整個MixColumn用一個表格來表示,運個表格的 大小為232X32 = 16GB。為了防止用如此之大的查找表,把MC按列分成2部分,MixColumn 操作可W用如下公式表示:
[0038]
(度)
[0039] 其中,MC為MixColumn的表格表示方式,MC。、MCi為MC的左右兩部分。 W40] 因此,MixColumns的計算可W拆分成2個16比特到32比特的變換組成,然后將2 個變換結果進行異或得到最后的MixColumn結果。
[0041] 其中,(β*,γ,Φ*)為非線性擾亂信息。運里,Φ*為一個由6多項式生成的,在絕 大多數情況下取值固定為Θ的多項式。因此可W利用運一個之前已經固定好的取值來構 造 MixColumns矩陣,使得該值在經過MixColumns操作后對原本的矩陣乘法沒有影響,即為 零元。由φ可角定的固定值θ運里同樣作為秘密信息在實現時確定。
[0042] 具體地,基于查表和擾動置亂相結合的白盒密碼非線性編碼保護方法,其內置編 碼與外置編碼同時采用非線性雙射變換實現,如圖1所示,包括如下步驟:
[0043] 1、設原始輸入為X。,。,x〇,i,x〇,2, x〇,3,均為8比特;
[0044] 2、計算 Qi (x〇, j), i = 3. . . 0, j = 0. . . 3,記結果為 Qi, i = 0. . . 3, β = F(x。,。,x。,l,x。,2,x。,3),記結果為β;
[0045] 3、計算 Ti(Qi)、巫 *(β);
[0046] 4、將步驟 3 的所有結果記為 Τ,計算 mci= MixColumns(T),i = 0. . . 5 ;
[0047] 5、將步驟4的結果分為五組,每組8比特,分別計算Q3 (me。),〇2 (mci),Qi (mc2),Υ (me 3),Q〇(mc4),結果即為下一輪的輸入。
[0048] 偽代碼如下: |;0049] Input (χ〇_;) 陽0 加 ]qi=Qi*(x〇,j)、0 = β*=Ρ(χ〇,〇,χ〇,ι,χ〇,2,χ〇,3) W51] Ti(qi)、〇*(i3)
[0052] mCi= MixColumns (Τ)
[0053] 0u1:put 〇3 (mc〇)、〇2 (mci)、Qi (mc2)、Υ (mc3)、Q〇 (mc4)。
【主權項】
1. 一種基于查表和擾動置亂相結合的白盒密碼非線性編碼保護方法,其特征在于,包 括如下步驟: 1) 密碼算法運行過程中的32比特敏感變元平均分為四組,每組8比特,即 (X。,。,x〇,i,x〇,2, x〇,3),并依次經過狂.這.這.G:非線性置亂; 2) 加入擾亂信息(0 Y,cT),運里我們選取只加入1組擾亂信息作為說明,計算= F(X。,。,卻,1,X。,2,卻,3)作為初始擾亂項,其中F為32比特到8比特的映射; 3) 將步驟1)和步驟2)的輸出依次經過Ts, Tz, Tl, T。,O*變換; 4) 修改列混淆變換(MixColumns)操作,修改后的MixColumns操作相對于原始的4個 輸入塊作用仍然相同,設及到的擾亂信息在經過MixColumns操作后消除。將3)所有輸出 結果做列混淆變換(MixColumns); 5) 將步驟4)的輸出結果依次經過Qs, 〇2, Qi, Y,Q。非線性置換,且輸出結果作為密碼算 法的下一輪迭代步驟中的輸入,即對5個密碼塊進行操作,也就是在原始密碼算法操作的 基礎上加上混亂項的個數,從而得到白盒密碼的最終輸出結果。2. 根據權利要求1所述的基于查表和擾動置亂相結合的白盒密碼非線性編碼保護方 法,其特征在于,步驟2)中計算0 *"= F(x。,。,x〇,i, x〇,2, x〇,3)作為初始擾亂項,其中F為32比 特到8比特的映射。3. 根據權利要求1所述的基于查表和擾動置亂相結合的比特白盒密碼非線性編碼保 護方法,其特征在于,步驟3)中改變原密碼算法的加解密流程中每一輪的邊界,W AES算法 為例:改變AES的輪邊界后,把AddRoun化巧和SubB^es組合在一起,運兩個步驟組合起來 可W用T-Box來表示,T-Box的計算公式如下: T;;.{x) = S(x?K[,') r-1,..,,9 /,./ = (),.,.,3 (1) 巧;片)=貨均;)貨轉(", 1,7=0,...,3 (2) 其中,Ki,/為第r輪在單元(i, j)的子密鑰,Sr (i, j)表示單元(i, j)在經過SiiftRows 操作后的位置,S表示AES的S盒。4. 根據權利要求1所述的基于查表和擾動置亂相結合的白盒密碼非線性編碼保護方 法,其特征在于,步驟4)中,MixColumn操作每一次作用在一列上,可W用一個32X32比 特的矩陣MC乘W-個32比特的列向量來表示,如果整個MixColumn用一個表格來表示, 運個表格的大小為2 32X 32 = 16GB,為了防止用如此之大的查找表,把MC按列分成2部分, MixColumn操作可W用如下公式表示: WHv--V;,)'. = (3) =MC〇 ? (.V..相)^ AfCr 巧 6 …對 其中,MC為MixColumn的表格表示方式,MC。、MCi為MC的左右兩部分, 因此,MixColumns的計算可W拆分成2個16比特到32比特的變換組成,然后將2個 變換結果進行異或得到最后的MixColumn結果。5. 根據權利要求1所述的基于查表和擾動置亂相結合的白盒密碼非線性編碼保護方 法,其特征在于,步驟W將4)的輸出結果依次經過Qs, 〇2, Qi, Y,Q。非線性置換; 其中,(e*,Y,〇*)為非線性擾亂信息,運里,o*為一個由石多項式生成的,在絕大 多數情況下取值固定為0的多項式,因此可W利用運一個之前已經固定好的取值來構造 MixColumns矩陣,使得該值在經過MixColumns操作后對原本的矩陣乘法沒有影響,即為零 元,由O可角定的固定值0運里同樣作為秘密信息在實現時確定。
【專利摘要】本發明公開了一種基于查表和擾動置亂相結合的白盒密碼非線性編碼保護方法,包括如下步驟:密碼算法運行過程中的32比特敏感變元平均分為四組,即(x0,0,x0,1,x0,2,x0,3),依次經過非線性置亂;加入擾亂信息(β*,Y,Φ*),計算β*=F(x0,0,x0,1,x0,2,x0,3)作為初始擾亂項;再將上述兩步結果依次經過T3,T2,T1,T0,Φ*變換;將輸出結果作列混淆變換;然后依次經過Q3,Q2,Q1,Y,Q0非線性置換,得到下一輪迭代的輸入變元,從而得到白盒的最終輸出結果。本發明將內、外置編碼同時采用非線性雙射變換,由于單個S盒的代數次數不超過8次,且列混淆部件和外置放射置亂編碼并不會提高代數次數,故所需的運算較小;此外,在面對外部代數插值攻擊時,不會直接恢復主密鑰,而是構建出一個等價的解密布爾系統,因此本發明的安全性更強。
【IPC分類】H04L9/08, H04L9/06
【公開號】CN105656622
【申請號】
【發明人】熊婉君, 韋永壯, 李靈琛, 丁勇
【申請人】桂林電子科技大學
【公開日】2016年6月8日
【申請日】2015年4月24日