Sm3密碼算法的側(cè)信道能量分析方法及裝置的制造方法
【專利摘要】本發(fā)明提供了一種SM3密碼算法的側(cè)信道能量分析方法及裝置。所述方法適用于基于SM3密碼算法的動態(tài)令牌,包括:向所述動態(tài)令牌輸入消息組M;對所述消息組M中的每條消息執(zhí)行以下操作,以獲得所述動態(tài)令牌密鑰中第N個字節(jié)的數(shù)據(jù):對所述第一數(shù)據(jù)的第N個字節(jié)的數(shù)據(jù)進行猜測,獲得第一猜測數(shù)據(jù);計算與所述第一猜測數(shù)據(jù)對應(yīng)的中間值,并建立中間值矩陣;將所述中間值矩陣映射成對應(yīng)的仿真能量消耗矩陣;計算所述仿真能量消耗矩陣與所采集到的能量消耗矩陣之間的線性相關(guān)系數(shù),獲得線性相關(guān)系數(shù)矩陣;將所獲取的線性相關(guān)系數(shù)中的最大值對應(yīng)的第一猜測數(shù)據(jù)作為所述動態(tài)令牌密鑰中第N個字節(jié)的數(shù)據(jù)。應(yīng)用所述方法可以獲取動態(tài)令牌的密鑰。
【專利說明】
SM3密碼算法的側(cè)信道能量分析方法及裝置
技術(shù)領(lǐng)域
[0001] 本發(fā)明涉及數(shù)據(jù)分析技術(shù)領(lǐng)域,特別涉及一種SM3密碼算法的側(cè)信道能量分析方 法及裝置。
【背景技術(shù)】
[0002] 密碼雜湊算法被廣泛應(yīng)用于數(shù)字簽名和驗證,消息認證碼的生成和驗證以及隨機 數(shù)的生成等方面,滿足了多種密碼應(yīng)用的安全需求。
[0003] SM3密碼算法是我國公開發(fā)布的第一個密碼雜湊算法,其對長度為1 (1〈264)比特 的消息m,經(jīng)過消息填充和迭代壓縮等運算過程,生成256比特的雜湊值。
[0004] 動態(tài)令牌是一種生成動態(tài)口令的終端設(shè)備,其主要依賴于所采用的密碼算法,并 結(jié)合用戶的輸入操作,生成動態(tài)的口令。因此,基于SM3密碼算法的動態(tài)令牌可以滿足密碼 應(yīng)用的更高需求。
[0005] 然而,在很多情況下,需要獲取基于SM3密碼算法的動態(tài)令牌的密鑰,以破解所述 動態(tài)令牌的密碼。因此,需要提出一種分析方法,以獲取基于SM3密碼算法的動態(tài)令牌的密 鑰。
【發(fā)明內(nèi)容】
[0006] 本發(fā)明解決的問題是提出一種SM3密碼算法的分析方法,以獲取基于SM3密碼算 法的動態(tài)令牌的密鑰。
[0007] 為解決上述問題,本發(fā)明實施例提供一種SM3密碼算法的側(cè)信道能量分析方法, 所述方法適用于基于SM3密碼算法的動態(tài)令牌,所述方法包括:
[0008] 向基于SM3密碼算法的動態(tài)令牌輸入消息組M = {m。,1?,…,ην…,mj,其中, 每條消息中包括第一數(shù)據(jù)及第二數(shù)據(jù),且每條消息中的第一數(shù)據(jù)均相同,第二數(shù)據(jù)均不同, η為正整數(shù),0 < i <n,且i整數(shù);
[0009] 采集所述動態(tài)令牌應(yīng)用所述SM3密碼算法對所輸入的每條消息進行預(yù)處理的過 程中,所產(chǎn)生的能量消耗信息,并建立能量消耗矩陣;
[0010] 對所述消息組Μ中的每條消息執(zhí)行以下操作,以獲得所述動態(tài)令牌密鑰中第N個 字節(jié)的數(shù)據(jù),直至獲得所述動態(tài)令牌密鑰中所有字節(jié)的數(shù)據(jù):
[0011] 對所述第一數(shù)據(jù)的第Ν個字節(jié)的數(shù)據(jù)進行猜測,獲得第一猜測數(shù)據(jù);
[0012] 根據(jù)所述第一猜測數(shù)據(jù)及每條消息中的第二數(shù)據(jù),計算在所述預(yù)處理過程中產(chǎn)生 的與所述第一猜測數(shù)據(jù)對應(yīng)的中間值,并建立中間值矩陣;
[0013] 將所述中間值矩陣映射成對應(yīng)的仿真能量消耗矩陣;
[0014] 計算所述仿真能量消耗矩陣與所采集到的能量消耗矩陣之間的線性相關(guān)系數(shù),獲 得線性相關(guān)系數(shù)矩陣;
[0015] 選取所述線性相關(guān)系數(shù)矩陣中的最大值,并將所選取的線性相關(guān)系數(shù)對應(yīng)的第一 猜測數(shù)據(jù)作為所述動態(tài)令牌密鑰中第Ν個字節(jié)的數(shù)據(jù)。
[0016] 可選地,所述預(yù)處理的過程為SM3密碼算法的消息擴展或函數(shù)壓縮過程中同時對 所述第一數(shù)據(jù)和第二數(shù)據(jù)進行處理的過程。
[0017] 可選地,所述方法按照所述動態(tài)令牌密鑰數(shù)據(jù)中字的前后順序依次獲得對應(yīng)的數(shù) 據(jù)。
[0018] 可選地,采用漢明距離模型或漢明重量模型將所述中間值矩陣映射成仿真能量消 耗矩陣。
[0019] 本發(fā)明的實施例還提供了一種SM3密碼算法的側(cè)信道能量分析裝置,所述裝置適 用于基于SM3密碼算法的動態(tài)令牌,所述裝置包括:
[0020] 消息輸出單元,用于向基于SM3密碼算法的動態(tài)令牌輸入消息組M = {nvmi,…, 1?,…,mn},其中,每條消息中包括第一數(shù)據(jù)及第二數(shù)據(jù),且每條消息中的第一數(shù)據(jù)均相同, 第二數(shù)據(jù)均不同,η為正整數(shù),0彡i彡n,且i整數(shù);
[0021] 采集單元,用于采集所述動態(tài)令牌應(yīng)用所述SM3密碼算法對所輸入的每條消息進 行預(yù)處理的過程中,所產(chǎn)生的能量消耗信息,并建立能量消耗矩陣;
[0022] 處理單元,用于對所述消息組Μ中的每條消息進行處理,以獲得所述動態(tài)令牌密 鑰中第Ν個字節(jié)的數(shù)據(jù),直至獲得所述動態(tài)令牌密鑰中所有字節(jié)的數(shù)據(jù),包括:
[0023] 猜測子單元,用于對所述第一數(shù)據(jù)的第Ν個字節(jié)的數(shù)據(jù)進行猜測,獲得第一猜測 數(shù)據(jù);
[0024] 第一計算子單元,用于根據(jù)所述第一猜測數(shù)據(jù)及每條消息中的第二數(shù)據(jù),計算在 所述預(yù)處理過程中產(chǎn)生的與所述第一猜測數(shù)據(jù)對應(yīng)的中間值,并建立中間值矩陣;
[0025] 映射子單元,用于將所述中間值矩陣映射成仿真能量消耗矩陣;
[0026] 第二計算子單元,用于計算所述仿真能量消耗矩陣與所采集到的能量消耗矩陣之 間的線性相關(guān)系數(shù),獲得線性相關(guān)系數(shù)矩陣;
[0027] 選取子單元,用于選取所述線性相關(guān)系數(shù)矩陣中的最大值,并將所選取的線性相 關(guān)系數(shù)對應(yīng)的第一猜測數(shù)據(jù)作為所述動態(tài)令牌密鑰中第Ν個字節(jié)的數(shù)據(jù)。
[0028] 可選地,所述采集單元用于將為SM3密碼算法的消息擴展或函數(shù)壓縮過程中同時 對所述第一數(shù)據(jù)和第二數(shù)據(jù)進行處理的過程作為預(yù)處理的過程。
[0029] 可選地,所述處理單元用于按照所述動態(tài)令牌密鑰數(shù)據(jù)中字的前后順序依次獲得 對應(yīng)的數(shù)據(jù)。
[0030] 可選地,所述映射子單元用于采用漢明距離模型或漢明重量模型將所述中間值矩 陣映射成仿真能量消耗矩陣。
[0031] 與現(xiàn)有技術(shù)相比,本發(fā)明的實施例具有以下優(yōu)點:通過向基于SM3密碼算法的動 態(tài)令牌輸入消息組,進而對所述消息組中的每條消息的第一數(shù)據(jù)進行猜測,再根據(jù)猜測到 的數(shù)據(jù)獲得對應(yīng)的中間值,進而可以獲得仿真能量消耗矩陣,由此可以通過計算所述仿真 能量消耗矩陣與采集到的所述動態(tài)令牌對所述輸入消息組進行預(yù)處理產(chǎn)生的能量消耗信 息之間的線性關(guān)系,最終獲得所述動態(tài)令牌密鑰中第Ν個字節(jié)的數(shù)據(jù)。重復(fù)上述步驟就可 以獲得所述動態(tài)令牌的密鑰中的所有字節(jié)的數(shù)據(jù),因此可以成功地解決現(xiàn)有技術(shù)中無法獲 得所述動態(tài)令牌密鑰的問題。
【附圖說明】
[0032] 圖1是本發(fā)明實施例中SM3密碼算法的側(cè)信道能量分析方法的流程圖;
[0033] 圖2是本發(fā)明實施例中SM3密碼算法的側(cè)信道能量分析裝置的結(jié)構(gòu)示意圖。
【具體實施方式】
[0034] 目前,由于基于SM3密碼算法的動態(tài)令牌的安全性較高,導(dǎo)致在需要破解所述動 態(tài)令牌的密鑰時,無法獲得所述動態(tài)令牌的密鑰數(shù)據(jù),造成了上述情況下的應(yīng)用難題。
[0035] 針對上述問題,本發(fā)明的實施例提供了一種SM3密碼算法的側(cè)信道能量分析方 法,所述方法適用于基于SM3密碼算法的動態(tài)令牌。通過向基于SM3密碼算法的動態(tài)令牌 輸入消息組,一方面采集所述消息組所產(chǎn)生的能量消耗信息,建立對應(yīng)的能量消耗矩陣;另 一方面對消息組中每條消息的第一數(shù)據(jù)進行猜測,進而可以獲得與猜測后的數(shù)據(jù)對應(yīng)的中 間值,建立中間值矩陣,再將所述中間值矩陣映射成仿真能量消耗矩陣,由此可以通過計算 所述能量消耗矩陣與仿真能量消耗矩陣之間的線性相關(guān)系數(shù),來獲得述動態(tài)令牌密鑰中第 N個字節(jié)的數(shù)據(jù)。重復(fù)上述步驟,可以獲得所述動態(tài)令牌密鑰中所有字節(jié)的數(shù)據(jù),也就獲得 了所述動態(tài)令牌的密鑰。
[0036] 為使本發(fā)明的上述目的、特征和優(yōu)點能夠更為明顯易懂,下面結(jié)合附圖對本發(fā)明 的具體實施例做詳細地說明。在下面的描述中闡述了很多具體細節(jié)以便于充分理解本發(fā) 明,但是本發(fā)明還可以采用其他不同于在此描述的其它方式來實施,因此本發(fā)明不受下面 公開的具體實施例的限制。
[0037] 圖1是本發(fā)明實施例中SM3密碼算法的側(cè)信道能量分析方法流程圖。由于基于 SM3密碼算法的動態(tài)令牌在調(diào)用SM3密碼算法對接收到的消息進行處理的過程中,必然存 在能量消耗泄露,因此可以通過對所述動態(tài)令牌調(diào)用的SM3密碼算法進行側(cè)信道的能量分 析,以獲得所述動態(tài)令牌的密鑰。
[0038] 如圖1所示,所述方法可以包括步驟101至109。其中,通過執(zhí)行步驟103至107 可以獲得基于SM3密碼算法的動態(tài)令牌中第N個字節(jié)的數(shù)據(jù)。當(dāng)獲得所述動態(tài)令牌中所有 字節(jié)的數(shù)據(jù)時,即可獲得所述動態(tài)令牌的密鑰。下面對上述步驟作詳細說明:
[0039] 步驟101,向基于SM3密碼算法的動態(tài)令牌輸入消息組M = {m。,1?,…,ην…, mn},其中,每條消息中包括第一數(shù)據(jù)及第二數(shù)據(jù),且每條消息中的第一數(shù)據(jù)均相同,第二數(shù) 據(jù)均不同,η為正整數(shù),0彡i彡n,且i整數(shù)。
[0040] 在本發(fā)明的實施例中,所述SM3密碼算法的側(cè)信道能量分析方法適用于基于SM3 密碼算法的動態(tài)令牌。也就是說,應(yīng)用本發(fā)明實施例中的方法可以獲取基于SM3密碼算法 的動態(tài)令牌的密鑰。
[0041 ] 在具體實施中,所述消息%中包括第一數(shù)據(jù)以及第二數(shù)據(jù)。其中,所述第一數(shù)據(jù)為 未知數(shù)據(jù),所述第二數(shù)據(jù)為預(yù)設(shè)的已知數(shù)據(jù)。消息組Μ中每條消息的第一數(shù)據(jù)均相同,第二 數(shù)據(jù)均不同。例如,向所述動態(tài)令牌的輸入的消息組Μ可以包括1000條消息,即Ν = 1000, 并且上述1000條消息中的第一數(shù)據(jù)均相同,第二數(shù)據(jù)均不同。
[0042] 步驟102,采集所述動態(tài)令牌應(yīng)用所述SM3密碼算法對所輸入的每條消息進行預(yù) 處理的過程中,所產(chǎn)生的能量消耗信息,并建立能量消耗矩陣。
[0043] 應(yīng)用所述SM3密碼算法的動態(tài)令牌在接收到消息%后,先對消息M i進行消息填 充,并對填充后的消息進行消息分組,再對分組后的消息進行迭代壓縮處理。
[0044] 具體地,對分組后的消息進行迭代壓縮處理過程可以包括:對分組后的消息進行 消息擴展的過程,以及對經(jīng)消息擴展后的數(shù)據(jù)進行函數(shù)壓縮的過程。
[0045] 在具體實施中,所述動態(tài)令牌在調(diào)用SM3密碼算法處理時,既包括只對第一數(shù)據(jù) 進行處理的過程,又包括只對第二數(shù)據(jù)進行處理的過程,還包括同時對第一數(shù)據(jù)和第二數(shù) 據(jù)進行處理的過程。在本發(fā)明的實施例中,所述預(yù)處理的過程為SM3密碼算法的消息擴展 或函數(shù)壓縮過程中同時對所述第一數(shù)據(jù)和第二數(shù)據(jù)進行處理的過程。
[0046] 采集對每條消息進行預(yù)處理時所產(chǎn)生的能量消耗信息,即在不同的時刻對預(yù)處理 過程進行采樣,由此可以獲得N條消息在不同時刻消息的能量消耗值,根據(jù)所獲得的能量 消耗值建立能量消耗矩陣。
[0047] 執(zhí)行步驟103至107獲得所述動態(tài)令牌密鑰中第N個字節(jié)的數(shù)據(jù),下面對步驟103 至107進行詳細說明:
[0048] 步驟103,對所述第一數(shù)據(jù)的第N個字節(jié)的數(shù)據(jù)進行猜測,獲得第一猜測數(shù)據(jù)。
[0049] 在具體實施中,所述動態(tài)令牌密鑰所包括的字節(jié)數(shù)是可以預(yù)先獲知的。例如,獲知 所述第一數(shù)據(jù)包括4個字。也就是說,第一數(shù)據(jù)包括4個字節(jié)數(shù)。本發(fā)明的實施例中,可以 先獲取所述第一數(shù)據(jù)中任一字的數(shù)據(jù),沒有順序限制。在獲取所述第一數(shù)據(jù)的某一字的數(shù) 據(jù)時,可以先獲取其中任一字節(jié)的數(shù)據(jù),沒有順序限制。
[0050] 例如,當(dāng)所述預(yù)處理的過程為函數(shù)壓縮過程時,可以按照所述第一數(shù)據(jù)中字的前 后順序依次獲得對應(yīng)的數(shù)據(jù),也就依次獲得了動態(tài)令牌密鑰數(shù)據(jù)中相應(yīng)字節(jié)的數(shù)據(jù)。
[0051] 對所述第一數(shù)據(jù)的第N個字節(jié)的數(shù)據(jù)進行猜測時,可以獲得2s個第一猜測數(shù)據(jù)。
[0052] 步驟104,根據(jù)所述第一猜測數(shù)據(jù)及每條消息中的第二數(shù)據(jù),計算在所述預(yù)處理過 程中產(chǎn)生的與所述第一猜測數(shù)據(jù)對應(yīng)的中間值,并建立中間值矩陣。
[0053] 在具體實施中,所述動態(tài)令牌在調(diào)用SM3密碼算法對每條消息進行預(yù)處理時,會 產(chǎn)生與第一數(shù)據(jù)及第二數(shù)據(jù)相關(guān)的中間變量。將步驟103中獲得的第一猜測數(shù)據(jù)及已知的 第二數(shù)據(jù)代入中間變量的表達式中,即可獲得一中間值。因此,對于一條消息,將所獲得的 2 s個第一猜測數(shù)據(jù)及對應(yīng)的第二數(shù)據(jù)分別代入中間變量的表達式,即可獲得2 8個中間值。 對于η條消息則可以獲得中間值矩陣。
[0054] 步驟105,將所述中間值矩陣映射成對應(yīng)的仿真能量消耗矩陣。
[0055] 在具體實施中,可以采用漢明距離模型或漢明重量模型將所述中間值矩陣映射成 仿真能量消耗矩陣。例如,在消息擴展的過程中,可以采用漢明重量模型將所述中間值矩陣 映射成仿真能量消耗矩陣。在函數(shù)壓縮的過程中,可以采用漢明距離模型將所述中間值矩 陣映射成仿真能量消耗矩陣。
[0056] 步驟106,計算所述仿真能量消耗矩陣與所采集到的能量消耗矩陣之間的線性相 關(guān)系數(shù),獲得線性相關(guān)系數(shù)矩陣。
[0057] 在具體實施中,計算述仿真能量消耗矩陣中任一第一猜測數(shù)據(jù)對應(yīng)的列的數(shù)據(jù), 與所采集到的消息組在任一時刻的能量消耗值之間的線性相關(guān)系數(shù),進而可以獲得線性相 關(guān)系數(shù)矩陣。
[0058] 步驟107,選取所述線性相關(guān)系數(shù)矩陣中的最大值,并將所選取的線性相關(guān)系數(shù)對 應(yīng)的第一猜測數(shù)據(jù)作為所述動態(tài)令牌密鑰中第Ν個字節(jié)的數(shù)據(jù)。
[0059] 根據(jù)線性相關(guān)原理,所述線性相關(guān)系數(shù)矩陣中的最大值對應(yīng)的第一猜測數(shù)據(jù)即為 所述動態(tài)令牌密鑰中第N個字節(jié)的數(shù)據(jù)。
[0060] 步驟108,判斷是否已經(jīng)獲得所述第一數(shù)據(jù)中所有字節(jié)的數(shù)據(jù)。
[0061] 若沒有全部獲得所述第一數(shù)據(jù)中的數(shù)據(jù),執(zhí)行步驟109。
[0062] 步驟 109, N++。
[0063] 即當(dāng)沒有全部獲得所述第一數(shù)據(jù)中的數(shù)據(jù)時,繼續(xù)執(zhí)行步驟103至步驟107,以獲 得下一字節(jié)的數(shù)據(jù)。
[0064] 需要說明的是,在本發(fā)明的實施例中,當(dāng)沒有全部獲得所述第一數(shù)據(jù)中的數(shù)據(jù)時, 既可以繼續(xù)執(zhí)行步驟103至步驟107,以獲得下一字節(jié)的數(shù)據(jù),也可以繼續(xù)執(zhí)行步驟103至 步驟107,以獲得其它任一字節(jié)的數(shù)據(jù),沒有順序限制。
[0065] 下面結(jié)合所述動態(tài)令牌調(diào)用SM3密碼算法的具體過程,對所述方法進行詳細說 明:
[0066] 所述動態(tài)令牌在接收到輸入的消息組Μ后,首先調(diào)用SM3密碼算法將每條消息進 行填充,再對填充后的消息進行迭代壓縮。
[0067] 1、消息填充
[0068] 以消息叫為例,消息…的長度為1比特。首先將比特"1"添加到消息…的末尾, 再添加 k個"0",其中k是滿足l+l+k = 448mod 512的最小的非負整數(shù)。然后再添加一個 64位的比特串,所述比特串是長度1的二進制數(shù)據(jù),由此獲得填充后的消息叫'。消息叫' 的比特長度為512的倍數(shù),將填充后的消息叫'按512比特進行分組:
[0069] m/ = B(〇)B⑴…B (x)…Β (ρ 1},其中,p = (l+k+65)/512
[0070] 根據(jù)上述過程可以對消息組Μ中每條消息進行消息填充,得到填充后的消息組 Μ ' = {m?',m!',…,m; ',…,mn' }。
[0071] 2、迭代壓縮
[0072] 在具體實施中,所述迭代壓縮過程可以包括對分組后的消息進行消息擴展的過 程,以及對經(jīng)消息擴展后的數(shù)據(jù)進行函數(shù)壓縮的過程,下面對上述過程進行詳細說明:
[0073] 2. 1、消息擴展
[0074] 以對消息叫填充后的消息mi'中的消息分組B(x)進行為例,依次執(zhí)行以下步驟,以 將消息分組B (x)擴展生成132個字H,.",W67,W。,,W/,…W63,:
[0075] a)將消息分組B(x)劃分為16個字W。,I,…,W15;
[0076] b)對于j從16至63,依次進行如下運算:
[0077] ,…"
, (1 )
[0078] c)對于j從0至63之間的每一個值,依次進行如下運算:
[0079]
(2)
[0080] 其中置換函數(shù).?\(Χ): = Χ?(Χ ?Κ 15)十(X錄:23〇.,式中X的單位為字。由此 可以對填充后的消息組Μ '中任一條消息叫'進行消息擴展。
[0081] 2. 2、函數(shù)壓縮
[0082] 令A(yù),B,C,D,E,F(xiàn),G,Η為字寄存器,SS1,SS2, TT1,TT2為中間變量,壓縮函數(shù)V(x+1) =CF(V(X),B(x)),0彡x彡n-1,其中Vw為已知的256比特初始值IV。計算過程描述如下:
[0083] ABCDEFGH - V(x)
[0084] 對于j從0至63之間的每一個值,依次進行式(3)至(14)的運算:
[0085] SS1 - ((A <<< 12)+Ε+(η<<< j)) <<< 7 (3) 「00861
(4)
[0087] TT1 一 FFj (A,B,C) +D+SS2+W/ (5)
[0088] TT2 ^ GGj (E, F, G) +H+SS1+Ws (6)
[0089] D - C (7)
[0090] C - B < < < 9 (8)
[0091] B -A (9)
[0092] A - TT1 (10)
[0093] H -G (11)
[0094] G -F<<<19 (12)
[0095] F - E (13)
[0096] E -Pn(TT2) (14)
[0097]
[0098] 函數(shù)壓縮后的結(jié)果為V(p)
[0099] 其中,迭代中使用的常數(shù)與函數(shù)如下:
[0100] 常 1
[0101] 布爾函數(shù):
[0102]
[0105] 式(15)、(16)及(17)中X,Y,Z的單位均為字。
[0106] 3、雜湊值
[0107] ABCDEFGH 一 V(p)
[0108] 輸出的256比特的雜湊值:y = ABCDEFGH。
[0109] 假設(shè)第一數(shù)據(jù)K = W。I Wi IW21W3,第二數(shù)據(jù)ID = W41W51W61W7,其中," I "表示拼接符 號,1。~W 7的單位為字,每個字中包含四個字節(jié)。消息組Μ中的每條消息m i可以表示為:m i =K+IDi,所述第N個字節(jié)可以為第一數(shù)據(jù)K中任一字中的任一字節(jié)。下面分別對不同的預(yù) 處理過程進行詳細說明:
[0110] 在消息擴展過程中,所述預(yù)處理過程可以為消息擴展中式(2)的過程。當(dāng)所述預(yù) 處理的過程為消息擴展中式(2)的過程時,獲得所述動態(tài)令牌中第Ν個字節(jié)的數(shù)據(jù)的步驟 如下:
[0111] 1)對所述第Ν個字節(jié)數(shù)據(jù)中的Κ進行猜測,獲得2s個第一猜測數(shù)據(jù)Κ '。
[0112] 2)將其中所述第一猜測數(shù)據(jù)K '及一條消息中的ID值代入式⑵中,獲得中間值 vls,這樣,將2s個第一猜測數(shù)據(jù)K '分別與每條消息中的ID值代入式(2)中,則可以獲得中 間值矩陣
,其中,s為0至255間的整數(shù)。
[0113] 3)將中間值矩陣1映射的仿真能量消耗為:hls= Hff(vls),即第i條消息 中第N個字節(jié)的數(shù)據(jù)為s時對應(yīng)的仿真能量消耗。由此獲得仿真能量消耗矩陣為:
[0114] 4)計算所述仿真能量消耗矩陣H(NX256)中第一猜測數(shù)據(jù)為s時對應(yīng)的 列的數(shù)據(jù),與所采集到的消息組在t時刻的能量消耗值之間的線性相關(guān)系數(shù)p s, t, 進而計算仿真能量消耗矩陣與采集到的能量消耗矩陣中所有列之間的相關(guān)系數(shù), 得到仿真能量消耗和采樣能量消耗的相關(guān)系數(shù)矩陣為可以獲得線性相關(guān)系數(shù)矩陣
>其中,T為能量采集中的時間點個數(shù)。
[0115] 5)選取R中的最大值p m,n= max(p s,t),對應(yīng)的第一猜測數(shù)據(jù)s即為動態(tài)令牌密 鑰中第N個字節(jié)的數(shù)據(jù)。
[0116] 6)重復(fù)步驟1)至5),分別獲得其他字節(jié)的數(shù)據(jù)。
[0117] 在函數(shù)壓縮過程中,根據(jù)式(10)可知,A寄存器的值需要根據(jù)上一輪獲得的TT1 的值進行獲取,根據(jù)式(14)可知,E寄存器的值需要根據(jù)上一輪獲得的TT2的值進行獲取。 也就是說,當(dāng)前輪的處理過程需要根據(jù)上一輪的處理結(jié)果進行處理,因此,在獲取所述動態(tài) 令牌密鑰時,需要按照字的前后順序依次獲取,也就是依次獲取所述第一數(shù)據(jù)K中相應(yīng)字 的數(shù)據(jù)。需要說明的是,在依次獲取所述動態(tài)令牌某一字的過程中,可以先獲取該字中任一 字節(jié)的數(shù)據(jù),沒有順序限制。
[0118] 例如:當(dāng)?shù)谝粩?shù)據(jù)K = W。I Wi IW21W3時,先獲取W。的數(shù)據(jù),再依次獲取W連W 3的數(shù) 據(jù)。其中,在獲取W。時,由于寄存器A至Η的初始值均為已知,根據(jù)式⑶及式(4),分別可 以獲得j = 〇時的中間變量SS1。和WW2。。將所獲得的中間變量SS1。和SS2。代入式(5), 得到!'1'1。=0。娜。',其中0。=??。仏。,8。,(:。)+〇。+552。為已知固定值。由于式(5)同時 對第一數(shù)據(jù)及第二數(shù)據(jù)進行處理,因此,可以將式(5)作為所述預(yù)處理的過程,相應(yīng)地,TT1。 作為獲取W。中數(shù)據(jù)的中間值。同樣地,根據(jù)式(10)可知,AiiTTl。,因此也可以將式(10) 作為所述預(yù)處理的過程,相應(yīng)地,Ai作為獲取字W。中數(shù)據(jù)的中間值。這樣,參照前述步驟1) 至6)即可獲得W。相應(yīng)字節(jié)的數(shù)據(jù)。在獲得W。的數(shù)據(jù)后,依據(jù)同樣原理可以依次可以獲取 1至13的數(shù)據(jù)。
[0119] 需要說明的是,在具體實施中,應(yīng)用本發(fā)明實施例中的側(cè)信道能量分析方法可以 在消息擴展過程中獲取所述動態(tài)令牌的密鑰,也可以在函數(shù)壓縮過程中獲取所述動態(tài)令牌 的密鑰。但無論具體在何過程中獲取所述動態(tài)令牌的密鑰,都不構(gòu)成對本發(fā)明的限制。
[0120] 應(yīng)用上述方法可以獲取基于SM3密碼算法的動態(tài)令牌的密鑰,成功地解決了現(xiàn)有 技術(shù)中無法獲取上述動態(tài)令牌密鑰的問題。
[0121] 為了使本領(lǐng)域技術(shù)人員更好地理解和實現(xiàn)本發(fā)明,以下對上述SM3密碼算法的側(cè) 信道能量分析方法對應(yīng)的裝置進行詳細描述。
[0122] 如圖2所示,所述裝置適用于基于SM3密碼算法的動態(tài)令牌。所述裝置可以包括: 消息輸出單元201,采集單元202,以及處理單元203。
[0123] 其中,所述消息輸出單元201可以用于向基于SM3密碼算法的動態(tài)令牌輸入消息 組M = ,…,1?,…,mn},其中,每條消息中包括第一數(shù)據(jù)及第二數(shù)據(jù),且每條消息中 的第一數(shù)據(jù)均相同,第二數(shù)據(jù)均不同,η為正整數(shù),0 < i < n,且i整數(shù)。所述采集單元202 可以用于采集所述動態(tài)令牌應(yīng)用所述SM3密碼算法對所輸入的每條消息進行預(yù)處理的過 程中,所產(chǎn)生的能量消耗信息,并建立能量消耗矩陣。所述處理單元203可以用于對所述消 息組Μ中的每條消息進行處理,以獲得所述動態(tài)令牌密鑰中第N個字節(jié)的數(shù)據(jù),直至獲得所 述動態(tài)令牌密鑰中所有字節(jié)的數(shù)據(jù)。
[0124] 在具體實施中,所述處理單元203可以包括:猜測子單元2031,第一計算子單元 2032,映射子單元2033,第二計算子單元2034,以及選取子單元2035。
[0125] 其中,所述猜測子單元2031可以用于對所述第一數(shù)據(jù)的第Ν個字節(jié)的數(shù)據(jù)進行猜 測,獲得第一猜測數(shù)據(jù)。所述第一計算子單元2032可以用于根據(jù)所述第一猜測數(shù)據(jù)及每條 消息中的第二數(shù)據(jù),計算在所述預(yù)處理過程中產(chǎn)生的與所述第一猜測數(shù)據(jù)對應(yīng)的中間值, 并建立中間值矩陣。所述映射子單元2033可以用于將所述中間值矩陣映射成仿真能量消 耗矩陣。所述第二計算子單元2034可以用于計算所述仿真能量消耗矩陣與所采集到的能 量消耗矩陣之間的線性相關(guān)系數(shù),獲得線性相關(guān)系數(shù)矩陣。所述選取子單元2035可以用于 選取所述線性相關(guān)系數(shù)矩陣中的最大值,并將所選取的線性相關(guān)系數(shù)對應(yīng)的第一猜測數(shù)據(jù) 作為所述動態(tài)令牌密鑰中第Ν個字節(jié)的數(shù)據(jù)。
[0126] 在具體實施中,所述采集單元202可以將為SM3密碼算法的消息擴展或函數(shù)壓縮 過程中同時對所述第一數(shù)據(jù)和第二數(shù)據(jù)進行處理的過程作為預(yù)處理的過程。
[0127] 在具體實施中,所述處理單元203可以按照所述動態(tài)令牌密鑰數(shù)據(jù)中字的前后順 序依次獲得對應(yīng)的數(shù)據(jù)。
[0128] 在具體實施中,所述映射子單元2033可以采用漢明距離模型或漢明重量模型將 所述中間值矩陣映射成仿真能量消耗矩陣。
[0129] 需要說明的是,在具體實施中,所述處理單元203的數(shù)量不受限制。所述裝置可以 只包括一個處理單元203,由所述處理單元203獲取動態(tài)令牌密鑰中所有字節(jié)的數(shù)據(jù),也可 以包括兩個以上的處理單元203,由所述兩個以上的處理單元203分別獲取動態(tài)令牌密鑰 中所有字節(jié)的數(shù)據(jù)。但無論所述裝置包括處理單元203的數(shù)量如何,均不構(gòu)成對本發(fā)明的 限制。
[0130] 本領(lǐng)域普通技術(shù)人員可以理解上述實施例的各種方法中的全部或部分步驟是可 以通過程序來指令相關(guān)的硬件來完成,該程序可以存儲于一計算機可讀存儲介質(zhì)中,存儲 介質(zhì)可以包括:ROM、RAM、磁盤或光盤等。
[0131] 雖然本發(fā)明披露如上,但本發(fā)明并非限定于此。任何本領(lǐng)域技術(shù)人員,在不脫離本 發(fā)明的精神和范圍內(nèi),均可作各種更動與修改,因此本發(fā)明的保護范圍應(yīng)當(dāng)以權(quán)利要求所 限定的范圍為準(zhǔn)。
【主權(quán)項】
1. 一種SM3密碼算法的側(cè)信道能量分析方法,其特征在于,適用于基于SM3密碼算法的 動態(tài)令牌,包括: 向基于SM3密碼算法的動態(tài)令牌輸入消息組M = {m。,1?,…,ην…,mn},其中,每條 消息中包括第一數(shù)據(jù)及第二數(shù)據(jù),且每條消息中的第一數(shù)據(jù)均相同,第二數(shù)據(jù)均不同,η為 正整數(shù),0 < i < η,且i整數(shù); 采集所述動態(tài)令牌應(yīng)用所述SM3密碼算法對所輸入的每條消息進行預(yù)處理的過程中, 所產(chǎn)生的能量消耗信息,并建立能量消耗矩陣; 對所述消息組Μ中的每條消息執(zhí)行以下操作,以獲得所述動態(tài)令牌密鑰中第N個字節(jié) 的數(shù)據(jù),直至獲得所述動態(tài)令牌密鑰中所有字節(jié)的數(shù)據(jù): 對所述第一數(shù)據(jù)的第Ν個字節(jié)的數(shù)據(jù)進行猜測,獲得第一猜測數(shù)據(jù); 根據(jù)所述第一猜測數(shù)據(jù)及每條消息中的第二數(shù)據(jù),計算在所述預(yù)處理過程中產(chǎn)生的與 所述第一猜測數(shù)據(jù)對應(yīng)的中間值,并建立中間值矩陣; 將所述中間值矩陣映射成對應(yīng)的仿真能量消耗矩陣; 計算所述仿真能量消耗矩陣與所采集到的能量消耗矩陣之間的線性相關(guān)系數(shù),獲得線 性相關(guān)系數(shù)矩陣; 選取所述線性相關(guān)系數(shù)矩陣中的最大值,并將所選取的線性相關(guān)系數(shù)對應(yīng)的第一猜測 數(shù)據(jù)作為所述動態(tài)令牌密鑰中第Ν個字節(jié)的數(shù)據(jù)。2. 如權(quán)利要求1所述的SM3密碼算法的側(cè)信道能量分析方法,其特征在于,所述預(yù)處理 的過程為SM3密碼算法的消息擴展或函數(shù)壓縮過程中同時對所述第一數(shù)據(jù)和第二數(shù)據(jù)進 行處理的過程。3. 如權(quán)利要求1所述的SM3密碼算法的側(cè)信道能量分析方法,其特征在于,所述方法按 照所述動態(tài)令牌密鑰數(shù)據(jù)中字的前后順序依次獲得對應(yīng)的數(shù)據(jù)。4. 如權(quán)利要求1所述的SM3密碼算法的側(cè)信道能量分析方法,其特征在于,采用漢明距 離模型或漢明重量模型將所述中間值矩陣映射成仿真能量消耗矩陣。5. -種SM3密碼算法的側(cè)信道能量分析裝置,其特征在于,適用于基于SM3密碼算法的 動態(tài)令牌,包括: 消息輸出單元,用于向基于SM3密碼算法的動態(tài)令牌輸入消息組M = ,…,ην…, mn},其中,每條消息中包括第一數(shù)據(jù)及第二數(shù)據(jù),且每條消息中的第一數(shù)據(jù)均相同,第二數(shù) 據(jù)均不同,η為正整數(shù),0彡i彡n,且i整數(shù); 采集單元,用于采集所述動態(tài)令牌應(yīng)用所述SM3密碼算法對所輸入的每條消息進行預(yù) 處理的過程中,所產(chǎn)生的能量消耗信息,并建立能量消耗矩陣;處理單元,用于對所述消息 組Μ中的每條消息進行處理,以獲得所述動態(tài)令牌密鑰中第N個字節(jié)的數(shù)據(jù),直至獲得所述 動態(tài)令牌密鑰中所有字節(jié)的數(shù)據(jù),包括: 猜測子單元,用于對所述第一數(shù)據(jù)的第Ν個字節(jié)的數(shù)據(jù)進行猜測,獲得第一猜測數(shù)據(jù); 第一計算子單元,用于根據(jù)所述第一猜測數(shù)據(jù)及每條消息中的第二數(shù)據(jù),計算在所述 預(yù)處理過程中產(chǎn)生的與所述第一猜測數(shù)據(jù)對應(yīng)的中間值,并建立中間值矩陣; 映射子單元,用于將所述中間值矩陣映射成仿真能量消耗矩陣; 第二計算子單元,用于計算所述仿真能量消耗矩陣與所采集到的能量消耗矩陣之間的 線性相關(guān)系數(shù),獲得線性相關(guān)系數(shù)矩陣; 選取子單元,用于選取所述線性相關(guān)系數(shù)矩陣中的最大值,并將所選取的線性相關(guān)系 數(shù)對應(yīng)的第一猜測數(shù)據(jù)作為所述動態(tài)令牌密鑰中第N個字節(jié)的數(shù)據(jù)。6. 如權(quán)利要求5所述的SM3密碼算法的側(cè)信道能量分析裝置,其特征在于,所述采集單 元用于將為SM3密碼算法的消息擴展或函數(shù)壓縮過程中同時對所述第一數(shù)據(jù)和第二數(shù)據(jù) 進行處理的過程作為預(yù)處理的過程。7. 如權(quán)利要求5所述的SM3密碼算法的側(cè)信道能量分析裝置,其特征在于,所述處理單 元用于按照所述動態(tài)令牌密鑰數(shù)據(jù)中字的前后順序依次獲得對應(yīng)的數(shù)據(jù)。8. 如權(quán)利要求5所述的SM3密碼算法的側(cè)信道能量分析裝置,其特征在于,所述映射子 單元用于采用漢明距離模型或漢明重量模型將所述中間值矩陣映射成仿真能量消耗矩陣。
【文檔編號】H04L9/32GK105991289SQ201510100622
【公開日】2016年10月5日
【申請日】2015年3月6日
【發(fā)明人】郭麗敏, 王立輝, 張志敏, 李大為, 羅鵬, 莫凡
【申請人】上海復(fù)旦微電子集團股份有限公司, 國家密碼管理局商用密碼檢測中心