一種sm4算法抗能量攻擊的掩碼方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及信息安全技術(shù)領(lǐng)域,具體地,涉及一種SM4算法抗能量攻擊的掩碼方 法和裝置。
【背景技術(shù)】
[0002] 隨著信息化和數(shù)字化社會的發(fā)展,人們對信息安全和保密重要性的認識不斷提 高。加密技術(shù)可使一些重要數(shù)據(jù)存儲在不安全的計算機上,或在不安全的信道上傳送,只有 持有合法密鑰的一方才可以獲得明文。SM4算法是國內(nèi)官方于2006年2月公布的第一個商 用分組密碼算法,是中國無線局域網(wǎng)安全標準推薦使用的分組算法。
[0003] 加密系統(tǒng)設(shè)計人員通常認為秘密信息是在一個封閉可信賴的計算環(huán)境中進行處 理,因此都將注意力集中在協(xié)議和數(shù)學算法的安全性上。不幸的是,現(xiàn)實中的計算操作并不 一定是在安全可靠的環(huán)境中,在實際使用中加密電路運行時會泄露一些旁路信息如電路消 耗的能量、運行時間、電磁輻射等,利用這些泄露的信息來攻擊加密電路的方法稱為旁路攻 擊。與傳統(tǒng)的攻擊方法相比,旁路攻擊方法效率高、可行性強,對信息安全產(chǎn)品構(gòu)成了嚴重 的安全威脅。
[0004] 能量攻擊是旁路攻擊中的一種方法,它的攻擊原理是密碼設(shè)備的能量消耗跟密碼 算法的中間值有一定的相關(guān)性,通過多次測量密碼設(shè)備的能量消耗然后進行統(tǒng)計分析,進 而獲得密鑰信息。對于SM4算法來說,能量攻擊主要是對算法的第1輪、第2輪和第31輪、 第32輪進行攻擊。掩碼技術(shù)是當前常用于抵抗能量攻擊的方法之一,通過在明文或密鑰上 增加隨機的掩碼,加密算法的中間值是不可預(yù)知的,從而達到抵抗能量攻擊的目的。圖1所 示是現(xiàn)有的針對SM4算法的掩碼方法。
[0005] 現(xiàn)有技術(shù)雖然引入了掩碼隱藏了加密算法的中間值,但每一輪的中間結(jié)果,尤其 是前兩輪和最后兩輪的中間結(jié)果,都使用了相同的掩碼值。如果攻擊者對帶有相同掩碼值 的兩個中間結(jié)果進行異或,就可以消去隨機掩碼值的影響,那么該技術(shù)依然不能有效抵抗 差分能量攻擊。
【發(fā)明內(nèi)容】
[0006] 本發(fā)明是為了克服現(xiàn)有技術(shù)中SM4算法利用普通掩碼方法仍然會泄露密碼信息 的缺陷,根據(jù)本發(fā)明的一個方面,提出一種SM4算法抗能量攻擊的掩碼方法。
[0007] 根據(jù)本發(fā)明實施例的一種SM4算法抗能量攻擊的掩碼方法,包括:獲取第一隨機 掩碼,且第一隨機掩碼與第1輪密鑰進行異或運算;在原第1輪S盒基礎(chǔ)上、根據(jù)第一隨機 掩碼確定第1輪修正S盒,第1輪修正S盒取代原第1輪S盒;根據(jù)第一隨機掩碼確定第一 修正掩碼,第一修正掩碼與L線性移位的輸出進行異或運算;第2至32輪的算法流程與第 1輪算法流程相同,每輪引入相同或不同的隨機掩碼,且確定相應(yīng)的修正S盒與修正掩碼。
[0008] 優(yōu)選的,第一隨機掩碼與在第2輪引入的第二隨機掩碼不相同,且第1輪修正S盒 與第2輪修正S盒不相同,第一修正掩碼與第2輪的第二修正掩碼不相同。
[0009] 優(yōu)選的,在第31輪引入的第三隨機掩碼與在第32輪引入的第四隨機掩碼不相同, 且第31輪修正S盒與第32輪修正S盒不相同,第31輪的第三修正掩碼與第32輪的第四 修正掩碼不相同。
[0010] 優(yōu)選的,在第3輪至第30輪引入的隨機掩碼相同,且第3輪至第30輪的修正S盒 相同、修正掩碼相同。
[0011] 本發(fā)明的一種SM4算法抗能量攻擊的掩碼方法,通過每輪引入相同或不同的掩 碼,使易受攻擊的輪運算中間結(jié)果所帶的掩碼值不同,從而輪運算的敏感信息不會泄露,能 夠有效抵抗能量攻擊。
[0012] 本發(fā)明是為了克服現(xiàn)有技術(shù)中SM4算法利用普通掩碼方法仍然會泄露密碼信息 的缺陷,根據(jù)本發(fā)明的另一個方面,提出一種SM4算法抗能量攻擊的裝置。
[0013] 根據(jù)本發(fā)明實施例的SM4算法抗能量攻擊的裝置,包括:
[0014] 隨機掩碼引入模塊,用于獲取第一隨機掩碼,且第一隨機掩碼與第1輪密鑰進行 異或運算;
[0015] 修正S盒生成模塊,用于在原第1輪S盒基礎(chǔ)上、根據(jù)第一隨機掩碼確定第1輪修 正S盒,第1輪修正S盒取代原第1輪S盒;
[0016] 掩碼修正模塊,根據(jù)第一隨機掩碼確定第一修正掩碼,第一修正掩碼與L線性移 位的輸出進行異或運算;
[0017] 隨機掩碼引入模塊還用于在第2至32輪引入相同或不同的隨機掩碼;修正S盒生 成模塊還用于在第2至32輪確定相應(yīng)的修正S盒;掩碼修正模塊還用于在第2至32輪確 定相應(yīng)的修正掩碼。
[0018] 優(yōu)選的,隨機掩碼引入模塊引入的第一隨機掩碼與隨機掩碼引入模塊在第2輪引 入的第二隨機掩碼不相同,且修正S盒生成模塊生成的第1輪修正S盒與修正S盒生成模 塊生成的第2輪修正S盒不相同,掩碼修正模塊確定的第一修正掩碼與掩碼修正模塊確定 的第2輪的第二修正掩碼不相同。
[0019] 優(yōu)選的,隨機掩碼引入模塊在第31輪引入的第三隨機掩碼與隨機掩碼引入模塊 在第32輪引入的第四隨機掩碼不相同,且修正S盒生成模塊生成的第31輪修正S盒與修 正S盒生成模塊生成的第32輪修正S盒不相同,掩碼修正模塊確定的第31輪的第三修正 掩碼與掩碼修正模塊確定的第32輪的第四修正掩碼不相同。
[0020] 優(yōu)選的,隨機掩碼引入模塊在第3輪至第30輪引入的隨機掩碼相同,且修正S盒 生成模塊生成的第3輪至第30輪的修正S盒相同,掩碼修正模塊確定的第3輪至第30輪 的修正掩碼相同。
[0021] 本發(fā)明的一種SM4算法抗能量攻擊的裝置,通過每輪引入相同或不同的掩碼,使 易受攻擊的輪運算中間結(jié)果所帶的掩碼值不同,從而輪運算的敏感信息不會泄露,能夠有 效抵抗能量攻擊。
[0022] 本發(fā)明的其它特征和優(yōu)點將在隨后的說明書中闡述,并且,部分地從說明書中變 得顯而易見,或者通過實施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點可通過在所寫的說明 書、權(quán)利要求書、以及附圖中所特別指出的結(jié)構(gòu)來實現(xiàn)和獲得。
[0023] 下面通過附圖和實施例,對本發(fā)明的技術(shù)方案做進一步的詳細描述。
【附圖說明】
[0024] 附圖用來提供對本發(fā)明的進一步理解,并且構(gòu)成說明書的一部分,與本發(fā)明的實 施例一起用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的限制。在附圖中:
[0025] 圖1為現(xiàn)有技術(shù)中的引入掩碼的SM4算法流程示意圖;
[0026] 圖2為本發(fā)明實施例中SM4算法抗能量攻擊的掩碼方法流程圖;
[0027] 圖3為本發(fā)明實施例中SM4算法抗能量攻擊的算法流程示意圖;
[0028] 圖4為實施例一中SM4算法抗能量攻擊的算法流程示意;
[0029] 圖5為本發(fā)明實施例中SM4算法抗能量攻擊的裝置結(jié)構(gòu)示意圖。
【具體實施方式】
[0030] 下面結(jié)合附圖,對本發(fā)明的【具體實施方式】進行詳細描述,但應(yīng)當理解本發(fā)明的保 護范圍并不受【具體實施方式】的限制。
[0031]SM4算法是一種分組密碼算法,其分組長度和密鑰長度均為128bit。加密算法與 密鑰擴展算法都采用32輪非線性迭代結(jié)構(gòu)。解密算法與加密算法的結(jié)構(gòu)相同,只是輪密鑰 的使用順序相反,解密輪密鑰是加密輪密鑰的逆序。
[0032] 根據(jù)本發(fā)明實施例,提供了一種SM4算法抗能量攻擊的掩碼方法,參見圖2所示, 本發(fā)明實施例中SM4算法抗能量攻擊的掩碼方法流程如下:
[0033] 步驟101:獲取第一隨機掩碼,且第一隨機掩碼與第1輪密鑰進行異或運算。
[0034] 該第一隨機掩碼是由隨機數(shù)發(fā)生器產(chǎn)生的32bit的隨機數(shù),隨機數(shù)發(fā)生器可以利 用線性反饋移位寄存器產(chǎn)生偽隨機數(shù),也可以通過采集自然界中的物理模擬信號噪聲,將 模擬信號噪聲轉(zhuǎn)換為數(shù)字信號,進而獲得真隨機數(shù)。通過對第1輪子密鑰與第一隨機掩碼 進行異或運算,可以為第1輪子密鑰引入掩碼,從而在第1輪掩碼子密鑰之前的中間值不存 在掩碼,而第1輪掩碼子密鑰之后的中間值存在掩碼,因此攻擊者即使對上述兩個中間值 帶進行異或,仍然不能消去掩碼的影響。
[0035] 步驟102:在原第1輪S盒基礎(chǔ)上、根據(jù)第一隨機掩碼確定第1輪修正S盒,且第1 輪修正S盒取代原第1輪S盒。
[0036] 本發(fā)