Cryptanalysis

成功進行差分功率分析攻擊的條件

  • May 22, 2020

本文來看,成功的 DPA 攻擊有兩個條件:

i) 在實現中存在一個與功耗相關的中間變數,並且

ii) 這個變數完全取決於明文(或密文)和一小部分密鑰。

我的問題是,在條件 i) 下,變數是否需要出現在算法的計算中?未明確計算的變數能否與功耗相關?

未明確計算的變數能否與功耗相關?

是的,這可以通過多種方式發生。當您說“未明確計算”時,我假設您的意思是計算是在遮罩值或共享上執行的。也就是說,秘密輸入(您連結到的論文稱為密鑰)本身不會直接出現在任何計算中。下面,我將討論為什麼這個條件是不夠的。因此,“相關性”被廣泛使用。事實上,對於高階攻擊,非線性依賴(即不僅僅是線性相關)也可能是有問題的。

首先,讓我們考慮一個傳統的布爾遮罩方案:向組合電路的秘密輸入添加一個隨機遮罩。假設您已經實現了一個非常好的屏蔽方案:永遠不會直接對未屏蔽(秘密)值進行操作,並且通常會小心避免洩漏。因此,您務必謹慎選擇操作,以免中間值依賴於未屏蔽的值。

(不)幸運的是,硬體故障無論如何都會洩露資訊。本文得出結論,這是非線性掩蔽門的普遍問題:

事實證明,掩蔽的非線性門,例如 AND、NAND、OR 和 NOR 門容易受到 DPA 攻擊,而掩蔽的線性門,例如 XOR 和 XNOR 門,可以抵抗 DPA 攻擊。

一般的想法是受毛刺影響的門的數量取決於未屏蔽的輸入,例如本文有一個很好的屏蔽與門範例。不過,從那時起,已經提出了解決這個問題的方法(見下文)。這是一個活躍的研究領域。

高階攻擊是另一種可能性。在這裡我不會詳細介紹,但是如果可以將實現中的幾個點的資訊結合起來,這(即高階統計矩)可能會洩漏有關未屏蔽數據的資訊。

我認為我最近關於門檻值實現的回答在這裡值得一提。在那裡,互資訊分析(MIA)可用於攻擊所提出的方案。因此,這是一個範例,即使實現的每個份額獨立於至少一個輸入份額,仍可以使用 MIA 揭示未共享的(秘密)值。當然,簡單地觀察幾個共享(也是高階攻擊)也可以。高階門檻值實現試圖緩解這個問題(但目前還沒有完全成功)。


**注意:**關於問題的一些評論也提到了記憶體訪問的影響。由於我對該主題的了解相對有限,我將把討論留給其他人。因此,您可以將此答案主要與實現的組合部分有關。

隨機遮罩的生成本身也是一個有趣的主題,對此可以說很多。其他類型的側通道攻擊,例如故障攻擊,也會導致其他幾個困難。例如,故障攻擊模型允許主動中斷實現(注入故障),這可能會導致以其他方式揭示未明確出現在任何計算中的關鍵位。考慮一下如果您破壞提供遮罩的 RNG 會發生什麼。

引用自:https://crypto.stackexchange.com/questions/35213