HKGalden學術臺
發表文章發起投票
[半桶水加密jj]淺談各種side-channel攻擊
究竟咩係side channel attack?
佢係對於加密實際運行(Implementation)既攻擊
最簡單既例子:去你keyboard d制下面吱d cream,你入完個密碼,睇下咩制下面無左cream就知你禁左咩制

圖: 你禁完錢用紅外線睇下咩制暖d,就知你禁過咩(鐵造既keypad散熱快d,無咁危險)

http://hkgalden.com/view/245687
依個post入面講既係電腦散熱/發熱既不同會令攻擊者知道個key既bits,其實類似既野已經出現左好耐:

1.睇功率/用電/電流
以RSA加密法做例子,佢用條key黎計數既時候有咁既rules:
-如果個bit係0,就square
-如果係1,就square,之後乘一個揀好既隨機數字
好明顯,個bit係1既話個用電curve會有一高一矮既尖尖/一個闊d既尖尖,而0就只會有一個尖尖
攻擊者有少少錢入個大家中學lab玩過既CRO(中文唔記得係乜),插住睇你部機既用電,就知你條key係乜春

圖:wiki

上面既做法係靠睇硬件本身做唔同process既用電去分析條key;
而有另一種做法係靠睇好多次唔同既implementation:
-將上面既野重複做n次,之後用咁多次既curve做average
-放你既結果入去一個statistical model入面去得到一d結論

可能你就問喇:做一次都得做乜咁on9要做咁多次
有時侯保安撚可能會加左noise/本身收返黎既信號會有noise,做多幾次就可以有效消除到雜訊,比到準d既結果你。

上面比較簡單既就叫Simple power analysis(SPA), 做好多次加modelling既就叫Differential Power Analysis(DPA)

2.計時(Timing Attacks)
計時,即係計下佢做左幾耐啦
用返上面既例子:square係一步,square and multiply係兩步,好明顯有時間差距,咁我就知你做緊乜啦
AES個一堆加密法(Rijndael,即係AES最後採用個隻、twofish、serpent)全部都可以用timing attack去攻擊佢
佢地既弱點在於一個table:因為table index唔同,電腦係memory搵野既時間都唔同,攻擊者只要係咁連個server,計下每次回覆用幾多時間,就可以從中得到條key既資料

3.EM analysis/電波
方法同上面(1)一樣,但係今次測既就係部機/張smart card放出黎既各種電波,之後用返一樣做法去搵個條key既資料。

4.Differential Fault Analysis
個名我唔識譯 佢既方法就係用大電流、加熱等等方式去做一個唔正常既working environment比個cpu/card,等佢入面d hardware痴撚晒線,佢每計錯既一條數都可以話到比人知佢原本個operation係做咩。
留低一條link同一條文言文數學題,有性趣自己睇再參透下
http://web.eecs.umich.edu/~valeria/research/publications/DATE10RSA.pdf
有物不知其數,三三數之剩二,五五數之剩三,七七數之剩二。問物幾何?
-《孫子算經》

講住咁多先 基於本人唔出名同埋講野一舊舊我諗應該無人睇
Good12Bad0
2015/03/28, 10:04:47 上午
本貼文共有 0 個回覆
此貼文已鎖,將不接受回覆
發表文章發起投票