基于側信道相關能量分析的頻域分析方法
【專利摘要】本發明公開了一種基于側信道相關能量分析的頻域分析方法,應用于加密解密信息【技術領域】,包括以下步驟:選擇頻域分析方法執行過程中具有函數關系的關鍵點;采集密碼模塊運算過程中關鍵點的能量消耗信息轉換到頻域;根據頻域能量消耗信息建立頻域能量消耗矩陣;基于關鍵點的函數關系和猜測密鑰計算對應的假設中間值得到假設中間值矩陣;將假設中間值矩陣通過漢明距離能量模型映射為仿真能量消耗矩陣;計算仿真能量消耗矩陣與頻域能量消耗矩陣的相關系數,基于相關系數分析得到密鑰。本發明將采集到的時域能量信息轉換到頻域上,克服了時鐘隨機化防護措施對側信道能量分析的影響,能更有效地對具有時鐘隨機化防護措施的SM4密碼算法進行分析。
【專利說明】基于側信道相關能量分析的頻域分析方法
【技術領域】
[0001] 本發明涉及加密解密信息【技術領域】,具體地說,涉及一種具有時鐘隨機化防護措 施的SM4密碼算法的頻域分析方法。
【背景技術】
[0002] 隨著信息科技的發展,側信道能量分析方法被用于加密信息的分析。該方法因實 施方便、相對成本低廉而被廣泛使用。側信道能量分析方法利用密碼芯片在運算過程中泄 露的各種物理信息(如功耗、電磁福射、聲音、可見光等)來解密密碼系統。
[0003] 在SM4密碼算法模塊中采用時鐘隨機化防護措施來抵抗時域側信道能量分析。在 密碼算法的每一次執行中,時鐘隨機化防護措施通過改變操作的執行時刻來造成能量消耗 的隨機化。這種防護措施從時間維度上改變了能量消耗的特征,使得密碼模塊的能量泄露 在時間上不再具有連貫性,進而使能量跡無法在時間軸上對齊。一旦能量跡不能在時間軸 上對齊,采用時域方法進行解密就不再有效。
[0004] 基于上述情況,亟需一種采用側信道能量分析方法來對有時鐘隨機化防護措施的 SM4密碼算法進行分析的方法。
【發明內容】
[0005] 為解決上述問題,本發明提供了一種采用相關能量分析方法(CPA)對具有時鐘隨 機化防護措施的SM4密碼算法進行頻域分析的方法。
[0006] 根據本發明的一個實施例,基于側信道相關能量分析的頻域分析方法,包括以下 步驟:
[0007] 選擇頻域分析方法執行過程中的具有函數關系的關鍵點;
[0008] 采集密碼模塊運算過程中關鍵點的能量消耗信息,得到關鍵點的實際時域能量 跡;
[0009] 將采集到的實際時域能量跡轉換為實際頻域能量跡,根據實際頻域能量跡建立實 際頻域能量消耗矩陣;
[0010] 基于關鍵點的函數關系,通過猜測密鑰集合中的每一個值來計算對應的假設中間 值,從而得到假設中間值矩陣;
[0011] 將假設中間值矩陣通過漢明距離能量模型映射為仿真能量消耗矩陣;
[0012] 計算仿真能量消耗矩陣與實際頻域能量消耗矩陣的相關系數,基于相關系數得到 加密/解密的密鑰。
[0013] 根據本發明的一個實施例,將實際時域能量跡經傅里葉變換轉換成實際頻域能量 跡,對有時鐘隨機化防護措施的SM4密碼算法進行頻域分析。
[0014] 根據本發明的一個實施例,所述關鍵點為S盒的輸出。
[0015] 根據本發明的一個實施例,關鍵點的函數關系為:
[0016] Sout = f (d, k)
[0017] 其中,d是已知的隨機的明文/密文;
[0018] k是輸入單個S盒的8比特密鑰,ke {〇,1,2,…,255}。
[0019] 根據本發明的一個實施例,獲得實際時域能量跡的步驟包括:
[0020] 選擇D組明文/密文進行加密/解密運算,在密碼模塊運算的同時采集關鍵點的 能量消耗信息;
[0021] 在每一次密碼模塊運行期間記錄一條能量跡,記作t = (t^ \2,…,ti,T),心為 第i組明文/密文的能量跡,T為采樣的時間點數,對于D組明文/密文數據可以記錄D條 能量跡,這些能量跡構成DX T的實際時域能量消耗矩陣EtDXT。
[0022] 根據本發明的一個實施例,將實際時域能量跡轉換為實際頻域能量跡的步驟包 括:
[0023] 在一條能量跡& = (t^,\2,…,ti:T)上選取在密碼模塊運算過程中包含關鍵點 的的能量消耗區域t' = (t^,\π+1,…,\Π +Ν),m為采樣時間點,N為采樣點的個數;
[0024] 對t'按以下公式做傅里葉變換:
[0025] S/ = FFT (t,)
[0026] 得到實際時域能量跡在頻域的分布;
[0027] 對S/按以下公式求功率譜密度:
[0028] P = limClS/ |2/N)
[0029] 得到實際頻域能量跡的功率譜密度在頻域的分布;
[0030] 對D條能量跡求取功率譜密度構成實際頻域能量消耗矩陣EfDXT,將實際時域能量 消耗矩陣Et DXT變成實際頻域能量消耗EfDXT。
[0031] 根據本發明的一個實施例,獲得假設中間值矩陣的步驟包括:
[0032] 遍歷猜測每一個S盒的密鑰k的可能取值情況,k e {〇, 1,2,…,255};
[0033] 根據猜測的S盒密鑰k和已知的S盒輸入的D組明文/密文,按以下公式來計算 假設中間值:
[0034] Souti; j = f (dj, kj)
[0035] 通過計算可以得到一個大小為DXM的中間值矩陣VDXM,其中M= 256,屯為0組 明文/密文中的第i組明文/密文,kj為猜測的密鑰的可能取值,j e {〇, 1,2,…,255}。
[0036] 根據本發明的一個實施例,選用漢明距離能量模型作為能量映射模型,該模型前 序狀態為S盒輸入,后續狀態為S盒輸出,即:
[0037]
【權利要求】
1. 一種基于側信道相關能量分析的頻域分析方法,包括以下步驟: 選擇頻域分析方法執行過程中的具有函數關系的關鍵點; 采集密碼模塊運算過程中關鍵點的能量消耗信息,得到關鍵點的實際時域能量跡; 將采集到的實際時域能量跡轉換為實際頻域能量跡,根據實際頻域能量跡建立實際頻 域能量消耗矩陣; 基于關鍵點的函數關系,通過猜測密鑰集合中的每一個值來計算對應的假設中間值, 從而得到假設中間值矩陣; 將假設中間值矩陣通過漢明距離能量模型映射為仿真能量消耗矩陣; 計算仿真能量消耗矩陣與實際頻域能量消耗矩陣的相關系數,基于相關系數得到加密 /解密的密鑰。
2. 如權利要求1所述的方法,其特征在于,將實際時域能量跡經傅里葉變換轉換成實 際頻域能量跡,對有時鐘隨機化防護措施的SM4密碼算法進行頻域分析。
3. 如權利要求1所述的方法,其特征在于,所述關鍵點為S盒的輸出。
4. 如權利要求3所述的方法,其特征在于,關鍵點的函數關系為: Sout = f (d, k) 其中,d是已知的隨機的明文/密文; k是輸入單個S盒的8比特密鑰,k e {〇, 1,2,…,255}。
5. 如權利要求1所述的方法,其特征在于,獲得實際時域能量跡的步驟包括: 選擇D組明文/密文進行加密/解密運算,在密碼模塊運算的同時采集關鍵點的能量 消耗信息; 在每一次密碼模塊運行期間記錄一條能量跡,記作t = (tu,\2,…,ti,T), 為第i 組明文/密文的能量跡,T為采樣的時間點數,對于D組明文/密文數據可以記錄D條能量 跡,這些能量跡構成DXT的實際時域能量消耗矩陣Et DXT。
6. 如權利要求5所述的方法,其特征在于,將實際時域能量跡轉換為實際頻域能量跡 的步驟包括: 在一條能量跡&= αΜ,\2,…,ti:T)上選取在密碼模塊運算過程中包含關鍵點的的 能量消耗區域t' = ···,&_), m為采樣時間點,Ν為采樣點的個數; 對t'按以下公式做傅里葉變換: S/ = FFT(t,) 得到實際時域能量跡在頻域的分布; 對S/按以下公式求功率譜密度: P = limds/ |2/N) 得到實際頻域能量跡的功率譜密度在頻域的分布; 對D條能量跡求取功率譜密度構成實際頻域能量消耗矩陣EfDXT,將實際時域能量消耗 矩陣EtDXT變成實際頻域能量消耗EfDXT。
7. 如權利要求6所述的方法,其特征在于,獲得假設中間值矩陣的步驟包括: 遍歷猜測每一個S盒的密鑰k的可能取值情況,k e {〇, 1,2,…,255}; 根據猜測的S盒密鑰k和已知的S盒輸入的D組明文/密文,按以下公式來計算假設 中間值: Souti; j = f (dj, kj) 通過計算可以得到一個大小為DXM的中間值矩陣VDXM,其中M = 256,屯為D組明文/ 密文中的第i組明文/密文,kj為猜測的密鑰的可能取值,j e {〇, 1,2,…,255}。
8. 如權利要求7所述的方法,其特征在于,選用漢明距離能量模型作為能量映射模型, 該模型前序狀態為S盒輸入,后續狀態為S盒輸出,即:
hi;j構建將假設中間值矩陣VDXM映射為DXM的仿真能量消耗矩陣HDXM,Sing為S盒 輸入,Soutu為S盒輸出。
9. 如權利要求8所述的方法,其特征在于,基于相關系數獲得密鑰的步驟包括: 對仿真能量消耗矩陣HDXM的每一列hp和實際頻域能量消耗矩陣EfDXT的每一列S,'計 算相關系數P 得到一個大小為MXN的相關系數矩陣RMXN ; 對P M的值進行判斷,P M的值越大,則列hp和列S,'的匹配程度越高,尋找相關系 數矩陣RMXN中的最大值所在的行P就是用于該S盒的正確的密鑰值rku,其中rku為正確 的第i輪輪密鑰第j個字節,由于在SM4密碼算法中采用四個S盒進行輪密鑰的產生,每個 S盒產生密鑰的一個字節,所以需重復猜測密鑰到計算相關系數的步驟,分別獲得第i輪輪 密鑰的其他三個密鑰字節,從而得到第i輪正確的輪密鑰; 對于前四輪,使用輪密鑰rh進行第i輪密碼運算得到第i輪的輪密鑰輸出,第i輪的 輪密鑰輸出即第i+Ι輪的輪密鑰輸入,根據前面所述獲得輪密鑰的方法,依次獲得前四輪 的加密輪密鑰(rh,rkp rk2, rk3) = (K4, K5, K6, K7),然后根據密鑰擴展算法逆運算得到加密 密鑰,或解密輪密鑰(rUrkprbrig = 〇(35,1(34,1(33,1(32),然后根據密鑰擴展算法逆運算 得到解密密鑰,其中,I為輪密鑰; 對于后四輪,使用輪密鑰rh反推進行第i輪密碼運算得到第i-Ι輪的輪密鑰輸出,第 i-Ι輪的輪密鑰輸出即第i輪的輪密鑰輸入,根據前面所述獲得輪密鑰的方法,依次獲得后 四輪的加密輪密鑰(rk31,rk 3(l,rk29, rk28) = (K35, K34, K33, K32),然后根據密鑰擴展算法逆運算 得到加密密鑰,或解密輪密鑰(rk31,rk 3CI,rk29,rk28) = 〇(4,1(5,1(6,1(7),根據密鑰擴展算法逆 運算得到解密密鑰,其中,I為輪秘鑰。
【文檔編號】H04L9/06GK104052590SQ201410184491
【公開日】2014年9月17日 申請日期:2014年5月5日 優先權日:2014年5月5日
【發明者】烏力吉, 張振賓, 董剛, 王安 申請人:清華大學, 大唐微電子技術有限公司