Side-Channel-Attack
通過平方進行冪分析和取冪
我試圖了解如何通過簡單的功率分析來檢索秘密指數。
讓我們假設通過平方算法求冪以最簡單的形式實現:
Function exp-by-squaring(x,n) if n<0 then return exp-by-squaring(1/x, -n); else if n=0 then return 1; else if n=1 then return x; else if n is even then return exp-by-squaring(x2, n/2); else if n is odd then return x * exp-by-squaring(x2, (n-1)/2).
據我了解,如果我要在機器計算指數時探測消耗,我將能夠在頻譜圖上看到各個操作。不同操作之間會有一個尖峰,因此我將能夠判斷它何時進入“偶數”條件或何時進入“奇數”條件。這只是讓我了解指數而不是實際指數。
因此,如果秘密指數是2012 年(https://math.stackexchange.com/questions/563708/exponentiation-by-squaring),我只會看到偶數條件輸入了 6 次,奇數條件輸入了 4 次,但是我究竟如何使用這些資訊來找到秘密指數?
提前致謝
您可以先閱讀 Paul Kocher 的開創性論文。他給出了時序和功率分析攻擊的參考。最好的辦法是閱讀論文,了解 Side Chanel Attacks 的哲學。他描述的方法已經被許多作者增強,並且不可能忽略如何在嵌入式系統上安全地實現算法。之後最具破壞性的攻擊是 Dan Boneh 引入的一種稱為“故障攻擊”的攻擊。
“偶數”/“奇數”條件為您提供了準確的指數位。如果您只使用這些條件的計數(而不是訂單),您將失去大部分資訊。