XOR 中的功耗
我試圖了解 XOR 如何影響智能卡差分功耗分析中的功耗軌跡。
輻射的能量有什麼區別 $ 1 \oplus 1 $ 並且在一個 $ 0 \oplus 1 $ ?
如果我理解正確,我們有一個 XOR 門,如果一個 $ 1 $ 與一個異或 $ 0 $ 然後 1 分支中的電子繼續流動,因此與 a 相比,我們仍然有一些能量 $ 0 \oplus 0 $ .
確切的細節取決於邏輯系列,但基本上不同的是,代表那些“1”位的電荷需要以某種方式丟棄。這是通過將輸出切換到地來完成的,1^0 是 1,所以不需要離開電荷,但 1^1 是零,這意味著至少有兩個柵極被放電到地,由於地中的非零電阻而略微提高其電壓返迴路徑。
雖然,這真的取決於邏輯系列,但像你說的那樣,對輸出門充電降低 vcc 的效果可能占主導地位。但在大多數 mos 家族中,都會注意到一些不對稱性。由於總是流過不給電容器充電的轉向電流,ECL 尤其不受此影響。
聽起來您正在嘗試開發或找到針對 XOR 加密的複雜側通道攻擊。由於 XOR 是我的主要加密類型,我還嘗試找到暴力破解和邊通道攻擊方法來測試我自己的 XOR 加密算法的安全性或不安全性。
異或門要麼將輸入位傳遞到輸出,要麼翻轉輸出中的輸入位。翻轉一點可能比傳遞一點慢幾個時鐘週期。
您必須做的第一件事和實驗是檢查這個假設是否真的如此。為此,我建議您編寫自己的 XOR 加密函式(用 C++ 或其他語言),然後添加一個計時器,用於測量程序在兩種可能的情況下執行或執行通過 XOR 門函式所花費的時間輸入位為 0 或 1 的情況。
這樣您就可以測試每幀的時鐘週期時間。正如其他人所建議的那樣,時間差異可能非常小,以至於必須以納秒精度進行測量。然而,我所知道的 C++ 和其他語言中的大多數計時器函式只能測量到毫秒的時間,這對於那種實驗來說太慢了,因此在我看來,測量每個 XOR 門程式碼執行之間的時間差似乎是不可能的. 除非有人可以將我指向一個計時器函式(首選 C++),它可以以納秒為單位測量系統時間並將時間值輸出到變數中。