第四十個知識點 一般來說SPA和DPA的區別是什么
原文地址:http://bristolcrypto.blogspot.com/2015/07/52-things-number-40-what-is-normally.html
電磁(Electronmagnetic, EM)功率分析攻擊被划分成兩種類型的攻擊,簡單功率分析(SPA)或者差分功率分析(DPA)。這兩種攻擊要么使用電磁要么使用能量記錄設備,但是它們在分析能量數據的數量和方法上有本質的不同。
在檢查這些攻擊的不同之處之前值得說明的是power/EM攻擊是什么。
功率記錄
CMOS(互補式金氧半導體,一種集成電路的設計工藝)電路能量要么是靜態的,要么是動態的。靜態功耗是指電路靜止時損耗的功率(沒有發生電路轉換)。這時功率是非常小的。動態功率損耗是電路在發生0到1或者1到0轉換的時候產生的損耗。動態功率損耗肯定是在電路中最大的能量消耗貢獻者,同時能量消耗取決於電路處理的數據。動態能量損耗卻決於兩個因素。第一個就是電容充電電流,第二個是短路電流。每個CMOS單元都有一個負載電容連接到單元的輸出。該負載電容包括連接單元到后續單元的電線,以及單元的輸入電容。
一個CMOS單元使得電壓上升\(V_{dd}\)需要消耗的能量是\(P = \alpha fC_lV_{dd}^2\),其中\(\alpha\)是每個時鍾內發生\(0 \rightarrow 1\)的電路的數量。當存在一個從\(1 \rightarrow 0\)時刻,當然的電壓從\(C_l\)到\(gnd\)通過NMOS而不是\(V_{dd}\)。第二部分能量消耗的貢獻就是短路電流。這個在\(0 \rightarrow 1\)和\(1 \rightarrow 0\)到會發生當PMOS和NMOS晶體管都導電時刻-盡管這件事發生的很少。此時能量消耗公式是\(P_{sc} = \alpha f V_{dd} I_{peak} t_{sc}\),其中\(I_{peak}\)是當前轉換的峰值,\(t_{sc}\)是短路存在的時間。[1]
了解這兩個動態功耗點,我們可以看到所有開關\(1 \rightarrow 0\)和\(0 \rightarrow 1\)都會通過短路電流消耗電能,而從\(0 \rightarrow 1\)切換會因為負chegn7.而消耗更多的電能。如果我們能精確測量能量消耗(電磁場作為一種強度變化的電流,將產生一個等方差的電磁場,使電磁場的測量能夠給出一個功率消耗的測量。),那么我們就知道設備里面有多少次電路轉換。首先,允許我們確定一個特定的操作(例如,乘數可能比x或門需要更多的開關),其次,更重要的是,該操作操作的數據,因為這可能會影響開關。
SPA和DPA攻擊
SPA攻擊和DPA攻擊的主要區別在於所需跟蹤的數量。SPA一般來說使用一個或者非常少的跟蹤,DPA需要大量的跟蹤。他們利用動態設備功耗的方式也不同,SPA攻擊表示一組操作,然而它們還可以利用數據依賴關系,例如在模板攻擊的情況下。眾所周知,RSA在二進制擴展乘法平法的SPA攻擊正說明了這點。這里,如果一個二進制值是0,那么結果進行平方,如果是1,結果就平方之后再乘。在單個跟蹤中查看它,可以看到正方形操作的形狀以及正方形和乘法操作的形狀,從而將鍵的每個位讀取為0或1。這個漂亮的攻擊只需要一個記錄來觀察能量消耗,這就是SPA攻擊。
另一方面,DPA攻擊通過使用多個記錄和統計技術僅僅利用數據依賴元素。他們集中在能量消耗的數據依賴上,通過創建多少個開關來工作,那么就會有多少數據。這些假設稱為泄漏模型,通常是漢明重量或漢明距離。如果這個泄漏模型是正確的,那么功率軌跡應該顯示根據它處理的信息,盡管在現實中,這總是與干擾數據/功率關系的噪聲相結合。在DPA攻擊中,可以通過估計被操作的秘密數據值,並查看根據泄漏模型對這些值的表示是否與許多不同的功率跟蹤相關,從而確定被操作的秘密數據值。因此,DPA攻擊需要多個跟蹤——根據噪聲水平和測量精度的不同,跟蹤的數量可以從50到數千不等。
[1] Mangard, Stefan, Elisabeth Oswald, and Thomas Popp. Power analysis attacks: Revealing the secrets of smart cards. Vol. 31. Springer Science & Business Media, 2008.