天天看點

第四十個知識點 一般來說SPA和DPA的差別是什麼

第四十個知識點 一般來說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.