差分能量分析介绍(五)
DPA的執行(下)
步驟
- 數據收集和準備
- 使用選擇函數生成假設
- 求平均值
- 評估
1.DPA:求平均值
????????分析階段是執行堆芯DPA計算的階段。除了計算各記錄子集的平均值外,還通常計算所有能量跡上各點的平均落差和方差。
????????平均性能由處理能力和存儲吞吐量決定。在處理大型數據集時,許多性能優化都很有用。基本任務是快速計算多個記錄道子集的平均值。一個大型分析可能涉及10^8條能量跡,每條能量跡至少有幾百個點,共有10^5個子集求平均值。就能量跡數(N)、能量跡長度(L)和選擇函數(M)而言,此任務的原始復雜性為O(N*M*L),內存使用為O(M*L)。
????????優化可以簡化問題。DPA涉及將選擇函數為1(A1)的子集的平均值與選擇函數為0(A0)的子集的平均值進行比較。如果已知所有記錄道的平均值(Aall),則可以使用A1中的能量跡數和記能量跡總數從A1和Aall計算A0。因此,當在同一組能量跡上計算多個選擇函數時,從A0開始計算Aall和A1子集通常就足夠了A0≈Aall?A1 . 這只導致了兩個方面的改進,因此復雜度仍然是O(N*M*L),但CPU和內存使用減少了一半。
????????在同一組能量跡上計算多個選擇函數時,第二個優化是使用緩存。緩存大小為2^8?1一次處理8條能量跡,計算這些能量跡的255個可能組合的總和。然后,可以使用緩存中的一次加法將這些能量跡添加到mth平均任務中,而不是最多添加8次單獨的軌跡。一個緩存空間需要O(c·L)和O(2^c*L)操作來設置。使用緩存的性能提高到O(N/c*M*L+2^c)。?
????????許多分析都存在統計瓶頸。在門派中對AES的攻擊。2.3預測第一輪的子字節輸出。猜測輪密鑰的一個字節可以預測8位中間數據。如果對這些位中的每一位執行DPA測試,則對于密鑰字節可能采用的每一個值,將評估2048個選擇函數。由于對中間層的預測只依賴于密文的一個字節,因此在L道集上只觀察到256個唯一序列。一般來說,如果選擇函數輸出中存在統計瓶頸,并且在L條能量跡上只生成B個唯一的選擇函數序列(和B<<L),則使用帶有B條記錄項的“輸入箱”緩存可以將性能提高到。通過多次重復每條消息,可以引入瓶頸掃描。?? ?
????????因此,能量跡大小的任何減小都會按比例提高平均時間。例如,可以刪除加密操作之前或之后的跟蹤區域。壓縮方法也可以大大減少需要平均的點數。當評估極高數量的選擇函數時,選擇函數生成和評估階段可折疊到平均步驟。
????????雖然DPA測試通常比較平均值的差異,但該測試并非在所有情況下都有效,尤其是在存在對抗措施的情況下,在某些情況下,信號需要在平均值之前進行預處理。在其他情況下,也可以分析如圖所示的分布。在這種情況下,如果計算每個點處的子集能量跡的平均值,則該步驟將完全修改每個點處樣本的頻率分布。
????????任務本身也是令人尷尬的并行化。數據可以分布在多個驅動器上,以消除I/O瓶頸。計算可以分布在多個線程或機器上。盡管目前很少有設備需要如此大的數據集,但優化可以使處理數十億甚至萬億條能量跡變得切實可行。
2.DPA:評估
????????在簡單的情況下,DPA的結果可以通過人工目視檢查進行評估。正確的關鍵點猜測會導致差分跟蹤中出現較大的峰值,而錯誤的關鍵點猜測則會出現較小的峰值。開發自動化工具來測量峰值、列出或繪制其振幅,甚至提出最可能的關鍵猜測,也很容易。
????????具有異常高噪聲的區域可以在差分記錄道中顯示虛假尖峰。為了糾正這些影響,并幫助評估結果的統計顯著性,差異軌跡中的每個點都被劃分為該點所有軌跡的標準偏差。結果是一個標準化軌跡,給出了每個時間點的差異(以標準偏差測量)的極性和顯著性。
????????“平均值之差”只是兩種測量分布不同的一種方式。更一般的統計測試可以比較記錄道子集中每個點的測量分布,并計算它們之間觀察到的差異的顯著性。對于這種分析,“平均”階段實際上是計算測量值的分布,而不是將分布壓縮為平均值。
????????對于某些算法和特定類型的DPA攻擊,評估過程更為復雜,因為除了正確的密鑰外,還有多個其他猜測,這些猜測與目標泄漏有顯著相關性,因此可能在差分跟蹤中顯示尖峰。這些猜測被稱為正確密鑰的“諧波”。
????????對于某些算法,由于有關密鑰的新信息能夠生成新的選擇函數,因此攻擊是迭代應用的。在這些情況下,DPA評估階段不是攻擊的最后階段。迭代過程通常在選擇函數生成階段重新啟動,但對于選擇明文攻擊攻擊,評估結果將指導數據收集階段的下一組輸入。AES-256和三重DES等算法也需要迭代,其中必須找到多個輪子密鑰或多個加密密鑰。
2.預防DPA
????????防止能量分析的第一步是消除可能產生SPA漏洞的大泄漏。特別是,實現應該使用常量執行路徑,并避免在秘密數據上采用條件分支
????????阻止DPA需要額外的工作。DPA可以利用非常小的信息泄漏率,因為統計測試累積與目標秘密相關的信號,并減少噪聲和不相關設備活動的影響。
2.1減少泄露
????????有些方法通過降低功耗側信道的信噪比(降低泄漏(信號)或增加噪聲),使DPA更具挑戰性。信噪比的降低將增加成功攻擊所需的跟蹤數量。
2.2協議級對策? ? ?
????????解決邊信道攻擊的最有效和最不困難的方法是設計密碼協議以避免泄漏。設計者通常無法確保在對手可以觀察到的所有操作中,泄露的信息不會接近密鑰的大小。即使嘗試了廣泛的平衡和噪聲產生對策,評估過程也不能確保沒有微小的側信道。作為比較,實現傳統協議的設備可以直接以每操作10?9比特或更少的泄漏率來破壞,而協議級對策可以以每操作超過10比特的泄漏率來保持安全性——差異超過十個數量級。因此,對泄漏具有彈性的密碼協議對于使用不太完美的硬件的實現是至關重要的。
????????防止泄漏的一般方法是限制可以使用任何給定密鑰執行的事務的數量。例如,考慮具有256位密鑰的設備的情況,該密鑰最多可以操作十次,并且將在第10次事務嘗試后銷毀其密鑰。如果期望的安全級別是192位,則該設計可以在其生命周期內容64位的累積泄漏,如果每個事務的平均泄漏<6.4位,則可以實現這一點。
總結
以上是生活随笔為你收集整理的差分能量分析介绍(五)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 差分能量分析介绍(四)
- 下一篇: CPA相关功耗分析(一)