Rok / Year: 2011
Svazek / Volume: 13
Číslo / Number: 5
Parametry ovlivňující proudovou analýzu mikroprocesoru vykonávajícího funkci AddRoundKey Parameters affecting the current analysis of the microprocessor executing the function AddRoundKey Zdenik Martinásek, Tomáš Petřík, Peter Stančík
[email protected],
[email protected],
[email protected] Fakulta elektrotechniky a komunikačních technologií VUT v Brně.
Abstrakt: Článek popisuje analýzu proudového postranního kanálu za různých podmínek a pro různé konstrukční vlastnosti kryptografického modulu. Jako kryptografický modul je použit mikroprocesor PIC16f84A pracující se symetrickou šifrou AES. Analýza je zaměřena na proudový postranní kanál při vykonávání funkce AddRoundKey z šifrovacího algoritmu. Proudový odběr mikroprocesoru byl měřen v závislosti na velikosti napájecího napětí, velikosti odporu bočníku a velikosti kapacity blokovacího kondenzátoru.
Abstract: The article describes a side channel power analysis under various conditions. As a cryptographic module was used microprocessor PIC16F84A working with AES (Advanced Encryption Standard). The measurements was focuses on the current consumption during the execution of the function AddRoundKey. Power consumption was measured depending on size supply voltage, size of shunt resistance, capacity of blocking capacitor and ambient temperature.
2011/51 – 22. 9. 2011
VOL.13, NO.5, OCTOBER 2011
Parametry ovlivňující proudovou analýzu mikroprocesoru vykonávajícího funkci AddRoundKey Zdeněk Martinásek1 , Tomáš Petřík1 , Peter Stančík1 1 Fakulta elektrotechniky a komunikačních technologií VUT v Brně Email:
[email protected],
[email protected],
[email protected]
Abstrakt – Článek popisuje analýzu proudového postranního kanálu za různých podmínek a pro různé konstrukční vlastnosti kryptografického modulu. Jako kryptografický modul je použit mikroprocesor PIC16f84A pracující se symetrickou šifrou AES. Analýza je zaměřena na proudový postranní kanál při vykonávání funkce AddRoundKey z šifrovacího algoritmu. Proudový odběr mikroprocesoru byl měřen v závislosti na velikosti napájecího napětí, velikosti odporu bočníku a velikosti kapacity blokovacího kondenzátoru.
1
U CC = 5V T1
T1 IC
T2 U IN = 0V
a)
T2
C U OUT = 5V
C IC
U OUT = 0V
U IN = 5V
b)
Obrázek 1: Model invertoru logiky založené na CMOS. a) Nabíjení parazitní kapacity. b) Vybíjení parazitní kapacity.
Úvod
Proudová analýza (Powe analysis, PA) studuje výkonovou spotřebu kryptografického zařízení v závislosti na jeho činnosti, byla představena v roce 1998 panem Kocherem [4]. Průběh proudové spotřeby elektronického zařízení (kryptografického modulu) není s časem konstantní a na první pohled vykazuje náhodný charakter. Většina moderních kryptografických zařízení bývá založena na technologii CMOS (Complementary Metal Oxide Semiconductor). Základním stavebním prvkem logiky založené na CMOS technologii je invertující člen (obr. 1). Branami CMOS tranzistorů u invertoru protékají tři různé druhy proudů [8], první se nazývá svodový proud, druhý proud nabíjející/vybíjecí parazitní kapacity a třetí se nazývá zbytkový proud. Invertor obsahuje dva tranzistory T1 (PMOS) a T2 (NMOS) řízené napětím s opačným typem vodivosti. Invertor pracuje následovně: • je-li vstupní napětí (UIN ) v logické úrovni 1, je otevřen tranzistor T2 a T1 je uzavřen, • je-li vstupní napětí (UIN ) v logické úrovni 0, je otevřen tranzistor T1 a T2 je uzavřen. V obou těchto stabilních stavech je výkonová spotřeba minimální, tranzistory odebírají malý proud ze zdroje a ten se mění v tepelné záření. Výkonová špička nastává při přechodu mezi těmito stavy, kdy po krátký čas jsou otevřeny oba tranzistory (T1, T2) a napájení je přes ně zkratováno k zemi (svodový proud). Velikost proudové špičky je úměrná počtu právě přepínaných tranzistorů v celém integrovaném obvodu. Dominantní zdroj výkonových změn je nabíjení parazitní kapacity proudem IC a vybíjení parazitní kapacity proudem ID (vybíjecí/nabíjecí proud). Tato
parazitní kapacita představuje kapacity řídicích elektrod následujících tranzistorů. Dynamická výkonová spotřeba invertoru lze vyjádřit vztahem [8]: 2 Pdyn = C · UCC · P0→1 · f,
(1)
kde C je parazitní kapacita, P0→1 je pravděpodobnost přechodu mezi stavy 0 → 1, f je kmitočet spínání a UCC je napájecí napětí. Pokud měříme výkonovou spotřebu (na zemnící nebo napájecí svorce invertoru) bude největší špička během nabíjení parazitní kapacity[8]. Důsledkem výše popsaných příčin výkonových změn je, že proudová spotřeba kryptografického modulu je přímo závislá na zpracovávaných datech a probíhajících operacích. Útočník může z naměřené proudové spotřeby kryptografického modulu určit algoritmus, instrukci, tajný klíč a další senzitivní materiál. Proudová analýza může být aplikována v podstatě na všechny elektronické kryptografické zařízení, protože tyto zařízení musí být během provozu napájeny. Za 10 let své existence útoky jednoduchou a diferenční proudovou analýzou jsou obsáhle publikovány například útok na algoritmus DES [4], RSA [3] a AES [9, 1]. Tato četnost vychází z faktu, že zařízení na měření proudového odběru je cenově dostupné prakticky komukoli, útočník nemusí mít k dispozici žádné drahé speciální zařízení. Postačí měřicí karta do počítače nebo osciloskop, ale i tyto měřící zařízení se musí správně použít jinak dochází ke zkreslení výsledků. Většina publikací týkající PA nepopisuje experimentální pracoviště, nestandardní nastavení některých parametrů a postup měření. Několik základních in-
51 – 1
2011/51 – 22. 9. 2011
Diferenční signál
První varianta
0.015
0.01
0.01
0
0.005
-0.01 4
6
8
t[s]
10
12
Druhá varianta
14 -5 x 10
I[A]
I[A]
0.02
VOL.13, NO.5, OCTOBER 2011
-0.005 -0.01
0.02
I[A]
0
0.01
-0.015
0 -0.02
-0.01 -0.02
4
6
8
t[s]
10
12
4
5
6
7
8
9 t[s]
10
11
12
13
14 -5 x 10
14 -5 x 10
Obrázek 3: Výsledný diferenční průběh Obrázek 2: Naměřené průběhy první a druhé fáze formací o experimentálním pracovišti je uvedeno v práci [10]. Základní informace týkající se metod měření byly publikovány v [5]. Článek [2] zabývající se optickým PK uvádí nestandardní konfiguraci kryptografického modulu (vyšší napájecí napětí) z důvodu markantnějších výsledků měření. Publikace se nezabývají také nastavením ostatních parametrů ovlivňující měření například velikost taktovacího signálu, velikost napájecího napětí, velikost odporu bočníku, polohou oscilátoru atd. Tento článek popisuje analýzu proudového postranního kanálu za různých podmínek a pro různé konstrukční vlastnosti kryptografického modulu. Autoři navazují na předchozí práci [5, 6, 7]. Jako kryptografický modul je použit mikroprocesor PIC16f84A pracující se symetrickou šifrou AES. Analýza je zaměřena na proudový odběr modulu během vykonávání funkce AddRoundKey. Proudový odběr mikroprocesoru byl měřen v závislosti na velikosti napájecího napětí, velikosti odporu bočníku a velikosti kapacity blokovacího kondenzátoru.
2
Určení diferenčního průběhu
Pro porovnání velikosti vlivu různých parametrů na měření proudové spotřeby byl určen diferenční průběh, který bude sloužit jako reference. Do kryptografického modulu byla implementována funkce AddRoundKey algoritmu AES a to ve dvou variantách. Tato operace provádí XOR nad blokem (maticí) otevřeného textu A a blokem tajného klíče K a ukládá výsledek do bloku S (rovnice 2). Ve své původní podobě pracuje AES algoritmus s bloky dat o délce 128 bitů tedy matice 4x4 Bajty. S=A⊗K
(2)
V první variantně byla matice otevřeného textu A1 a matice tajného klíče K1 nulová (tzn. každé slovo má hodnotu 00h). V druhé variantě byla matice A2 opět nulová,
ale matice K2 nabývala hodnot od 01h do FFh, kdy Hammingova váha w prvku následujícího je vždy větší o 1 oproti prvku předchozímu. Hodnota prvního slova klíče k0 ,0 je rovna 01h (B’00000001’) tedy w (k0 ,0 ) = 1. Následující prvek v matici má hodnotu 03h (B’00000011’) tedy Hammingova váha w (k0 ,1 ) = 2. Poslední prvek k3 ,3 pak nabývá hodnoty FFh (B’11111111’), kde w (k1 ,3 ) = 8. Matice tajného klíče pro obě varianty bude vypadat následovně (hexadecimální zápis):
00 00 K1 = 00 00
00 00 00 00
00 00 00 00
01 00 1F 00 , K2 = 01 00 1F 00
03 3F 03 3F
07 7F 07 7F
0F FF , 0F FF
Proudová spotřeba během provádění algoritmu v první a druhé variantě byla zaznamenána osciloskopem a následně vyhodnocena. Z teorie vyplývá, že v první variantě nedochází k žádné operaci s daty tedy přepnutí stavů tranzistorů, ukládání změn do paměti atd. V druhé variantě dochází k práci s daty dle výše popsaných pravidel. Výsledné průběhy jsou zobrazeny na obrázku obr. 2. Diferenční signál se následně vypočte prostým rozdílem průběhů napětí z těchto dvou fází, tzn. průběh napětí z první fáze se odečte od průběhu napětí z druhé fáze. Výsledkem této jednoduché operace je průběh signálu zobrazený na obrázku 3. Na obrázku jsou patrné špičky odpovídající práci s daty. Důležitá je viditelnost zvyšující se Hammingovi váhy tajného klíče w (k ) = 1 až 8.
3
Vliv napájecího napětí
Na obrázku 4 jsou zobrazeny diferenční průběhy pro různé hodnoty napájecího napětí UCC . Hodnoty byly naměřeny pro odpor bočníku RB = 1 Ω, frekvenci hodinového signálu fOSC1 = 4 MHz a blokovací kondenzátor C1 = 100 nF. S rostoucím napětím UCC narůstá hodnota proudu odebíraného mikroprocesorem. Tento proud je přímo úměrný napětí na bočníku. Obrázek 5 znázorňuje průběh napětí
51 – 2
2011/51 – 22. 9. 2011
VOL.13, NO.5, OCTOBER 2011
0.04 0.015 0.03 0.01 0.02 0.005
I[A]
I[A]
0.01 0 -0.005
0 -0.01 R = 47
U
-0.01
B
=10V
R = 22
-0.02
CC
B
UCC=9V U
-0.015
U -0.02
R = 10 B
=7V
-0.03
CC
RB= 55
=5V
CC
R = 1 B
-0.04 4
5
6
7
8
9 t[s]
10
11
12
13
14 -5 x 10
Obrázek 4: Diferenční průběh pro různá napájecí napětí. U 0.015
U
4
U
6
7
8
9 t[s]
10
11
12
13
14 -5 x 10
Obrázek 6: Diferenční průběhy pro různé velikosti odporu bočníku.
=10V
CC
0.04
=9V
RB= 47
CC
UCC=7V
0.01
5
R = 22
0.03
=5V
B
CC
R = 10 B
0.02
0.005
R = 55 B
0
I[A]
I[A]
R = 1 B
0.01
-0.005
0 -0.01
-0.01 -0.02 -0.015 -0.03 -0.02 1.381
1.382
1.383
1.384 1.385 t[s]
1.386
1.387
1.388 -4 x 10
Obrázek 5: Detail průběhů proudu pro různé velikosti napájecího napětí. ve výřezu z grafu na obrázku 4. Tyto napěťové špičky vznikají při operaci XOR mezi slovy 00h a FFh. Pro UCC = 5 V je velikost diferenčního napětí fáze 1 a 2 na bočníku oproti hodnotě ustálené přibližně 8 mV. Pro UCC = 10 V je tato diference dvojnásobná, tj. 16 mV. Se vzrůstajícím napájecím napětím mikroprocesoru se hodnoty napětí diferenčního průběhu zvyšovaly, avšak šumová složka se prakticky nezměnila. S vyššími hodnotami napájecího napětí je tedy kryptoanalýza proudového postranního kanálu mnohem účinnější.
4
-0.04 1.365
1.366
1.367 t[s]
1.368
1.369
1.37 -4 x 10
Obrázek 7: Detail Peak-to-Peak hodnot napětí pro různé velikosti odporu bočníku. bočníku. Obrázek 7 znázorňuje průběh napětí ve výřezu z grafu na obrázku 6. Z grafu je patrné, že se vzrůstajícím odporem bočníku se zvyšuje Peak-to-Peak hodnota diferenčního signálu na bočníku. Přechody ze stavu log. 1 do log. 0 jsou sice výraznější, avšak klesá hodnota poměru S/N (Signal-toNoise Ratio), tj. poměr užitečného signálu a signálu šumu, viz obr. 8. Pro RB = 1 Ω je maximální hodnota referenčního signálu U = 0,01672 V a pro RB = 47 Ω je maximální hodnota referenčního signálu U = 0,03776 V.
Vliv odporu bočníku
Na obrázku 6 jsou zobrazeny diferenční průběhy pro různé velikosti odporu bočníku RB . Hodnoty byly naměřeny pro napájecí napětí UCC = 10 V, frekvenci hodinového signálu fOSC1 = 4 MHz a kapacitu blokovacího kondenzátoru C1 = 100 nF. Dle předpokladů (Ohmův zákon) se hodnoty diferenčního signálu zvyšovaly s rostoucí hodnotou odporu
5
Vliv frekvence hodinového signálu
Na obrázku 9 je zobrazen průběh diferenčního signálu pro odlišný takt hodinového signálu na vstupu OSC1 mikroprocesoru. Průběh byl naměřen pro odpor bočníku RB = 1 Ω, napájecí napětí UCC = 10 V a kapacitu blokovacího kondenzátoru C1 = 100 nF. Frekvence hodinového signálu
51 – 3
2011/51 – 22. 9. 2011
VOL.13, NO.5, OCTOBER 2011
0.04
0.02
RB= 47
Detail2
0.015
RB= 1
0.03
0.01
Detail1
0.02 0.005 0
I[A]
I[A]
0.01 0
-0.005 -0.01
-0.01 C1= 1nF
-0.015
C1= 22nF
-0.02
-0.02
C1= 100nF C1= 330nF
-0.025
-0.03
C1= 820nF
4
-0.04
4
5
6
7
8
9 t[s]
10
11
12
13
6
8
Obrázek 8: Srovnání průběhů diferenčního signálu pro RB = 1 Ω a RB = 47 Ω.
10
12
14 -5 x 10
t[s]
14 -5 x 10
Obrázek 10: Diferenční průběhy pro různé velikosti blokovacího kondenzátoru -3
10
0.02 f = 15MHz
x 10
C1= 1nF
8
C1= 22nF
6
C1= 330nF
C1= 100nF
0.015
C1= 820nF
0.01
I[A]
4
I[A]
0.005
2 0
0
-2 -4
-0.005
-6
-0.01 -8 2.6
-0.015
2.65
2.7
2.75
2.8
t[s]
1
1.5
2
2.5
3 t[s]
3.5
2.85 -5
x 10
4 -5
x 10
Obrázek 11: Detail 1 diferenčního signálu Obrázek 9: Referenční.
6 byla 15 MHz. Na průběhu proudové spotřeby jsou patrné výraznější přechody mezi stavy vnitřních obvodů mikroprocesoru pro nižší frekvence fOSC1 (porovnání s diferenčním průběhem kde frekvence hodinového signálu byla 4 MHz). Hodnoty maximální hodnoty diferenčního napětí fáze 1 a 0 pro frekvence 4 a 15 MHz se liší o ∆U15 ,4 = 19,5 - 14,3 = 5,2 mV. S rostoucí frekvencí se ovšem zvýrazňuje oscilace napěťového signálu na bočníku, což je pro analýzu signálu nežádoucí. Výsledky měření nejsou tak čitelné, některé proudové špičky jsou matoucí např proudová špička v čase 3.8 s na obr. 9. Z hlediska bezpečnosti je proto výhodnější použití oscilátoru s vyšším taktem. Při vyšším taktu se také zvyšují požadavky na vzorkovací frekvenci osciloskopu (měřicího zařízení) a tím kladou vyšší nároky potenciálnímu útočníkovi. V ideálním případě by pro zvýšení bezpečnosti bylo výhodné použití takové frekvence taktu hodinového signálu, která by při analýze útočníkem způsobovala aliasing rekonstruovaného signálu.
Vliv kapacity blokovacího kondenzátoru
Obrázek 10 zobrazuje průběhy diferenčního průběhu pro různé hodnoty kapacity blokovacího kondenzátoru C1 . Hodnoty byly naměřeny pro napájecí napětí UCC = 10 V, frekvenci hodinového signálu fOSC1 = 4 MHz a odpor bočníku RB = 1 Ω. Kapacity blokovacího kondenzátoru byly voleny C1 byly v hodnotách 1, 22, 100, 330 a 820 nF. Doporučená hodnota kapacity pro blokovací kondenzátor je C1 = 100 nF. Na obrázku 11 je zobrazen první detail diferenčních průběhů. Konkrétně se jedná o proudový průběh vykonání instrukce bsf RB0. Pin RB0 mikroprocesoru se nastaví na hodnotu log. 1 (napájecí napětí mikroprocesoru), což je doprovázeno vysokou napěťovou špičkou v průběhu diferenčního signálu. Pro velikost kapacity výrazně vyšší 100 nF je patrná výrazná oscilace signálu. Stejně tak to platí pro hodnoty nižší. V druhém detailu (obr. 12) je výrazná oscilace signálu při C1 = 1 nF. Volba této hodnoty je ovšem z konstrukčního hlediska naprosto nevhodná. Z pohledu ochrany proti
51 – 4
2011/51 – 22. 9. 2011
VOL.13, NO.5, OCTOBER 2011
0.02
diferenční průběh napětí více zarušen šumem, výraznější oscilace napětí na bočníku. V případě analýzy vlivu velikosti kapacity blokovacích kondenzátorů byl průběh diferenčního signálu nejméně zarušen při použití doporučené velikosti kapacity 100 nF. V případě této volby je pak výsledný průběh diferenčního signálu nejméně zarušen šumem a přechody mezi stavy vnitřních obvodů mikroprocesoru jsou pak mnohem zřetelnější. U příliš nízkých, nebo naopak vysokých hodnot kapacit, je u diferenčního signálu výraznější oscilace při změnách stavů obvodů v mikroprocesoru.
0.015 0.01 0.005
I[A]
0 -0.005 -0.01 C1= 1nF
-0.015
C1= 22nF
-0.02
C1= 100nF C1= 330nF
-0.025
C1= 820nF
-0.03 1.37
1.375
1.38
1.385
1.39
t[s]
-4
x 10
Obrázek 12: Detail 2 diferenčního průběhu analýze PK by bylo vhodné použití vyšších hodnot kapacit blokovacích kondenzátorů.
7
Závěr
Pro účely měření bylo vytvořeno a důkladně otestováno experimentální pracoviště s kryptografickým modulem. Jako kryptografický modul byl použit mikroprocesor PIC16f84A pracující se symetrickou šifrou AES. Analýza je zaměřena na proudový odběr modulu při vykonávání instrukcí funkce AddRoundKey. Proudový odběr mikroprocesoru byl měřen v závislosti na velikosti napájecího napětí, velikosti odporu bočníku, frekvence hodinového signálu a velikosti kapacity blokovacího kondenzátoru. Se vzrůstajícím napájecím napětím mikroprocesoru se hodnoty napětí diferenčního průběhu zvyšovaly, avšak šumová složka se prakticky nezměnila. S vyššími hodnotami napájecího napětí je tedy kryptoanalýza proudového postranního kanálu mnohem účinnější. Pro UCC = 5 V byla velikost diferenčního napětí fáze 1 a 2 na bočníku oproti hodnotě ustálené přibližně 8 mV. Pro UCC = 10 V byla tato diference dvojnásobná, tj. 16 mV. Volba velikosti odporu bočníku měla dle předpokladů také značný vliv na výsledky měření. S rostoucí hodnotou velikosti odporu se sice Peak-to-Peak hodnoty diferenčního signálu zvyšovaly, avšak rovněž narůstala velikost šumové složky ve výsledném průběhu, tj. klesal poměr odstupu užitečného signálu od šumu. Pro RB = 1 Ω je maximální hodnota diferenčního signálu U = 0,01672 V a pro RB = 47 Ω je maximální hodnota diferenčního signálu U = 0,03776 V. Z těchto důvodů volba menší hodnoty odporu bočníku výrazně usnadňuje analýzu proudového postranního kanálu (ideální hodnota RB = 1 Ω). Volba frekvence hodinového signálu se rovněž výrazným způsobem projevovala na výsledném průběhu diferenčního signálu. Pro PA je vhodnější použití nižší frekvence, která klade nižší nároky na měřicí zařízení. Oproti tomu z pohledu ochrany je vhodnější volba frekvence hodinového signálu co možná nejvyšší. S vyššími hodnotami kmitočtu je
Literatura [1] Ambrose, J.; Aldon, N.; Ignjatovic, A.; aj.: Anatomy of Differential Power Analysis for AES. In Symbolic and Numeric Algorithms for Scientific Computing, 2008. SYNASC ’08. 10th International Symposium on, sept. 2008, s. 459 –466, doi:10.1109/SYNASC. 2008.8. [2] Ferrigno, J.; Hlavac, M.: When AES blinks: introducing optical side channel. Information Security, IET, ročník 2, č. 3, september 2008: s. 94 –98, ISSN 17518709, doi:10.1049/iet-ifs:20080038. [3] C ¸ etin Kaya Ko¸c; Rothatgi, P.; Schindler, W.; aj. (editoři): Cryptographic Engineering. 2009, ISBN 978-0387-71816-3. [4] Kocher, P.; E, J. J.; Jun, B.: Differential Power Analysis. Springer-Verlag, 1999, s. 388–397. [5] Martinasek, Z.; Macha, T.; Stancik, P.: Power side channel information measurement. In Research in telecommunication technologies RTT2010, September 2010. [6] Martinasek, Z.; Macha, T.; Zeman, V.: Classifier of power side channel. In Proceedings of NIMT2010, September 2010, ISBN 978-80-214-4126- 2. [7] Martinasek, Z.; Machu, P.: New side channel in cryptography. In Proceedings of the 17th Conference Student EEICT 2011, April 2011, ISBN 978-80-214-42733. [8] Peeters, E.; Standaert, F.-X.; Quisquater, J.-J.: Power and electromagnetic analysis: Improved model, consequences and comparisons. Integration, the VLSI Journal, ročník 40, č. 1, 2007: s. 52 – 60, ISSN 01679260, doi:DOI:10.1016/j.vlsi.2005.12.013, embedded Cryptographic Hardware. URL http://www.sciencedirect.com/ science/article/B6V1M-4J3NWY2-1/2/ 0197aa6143d75a8303ace31403077841 [9] Sugawara, T.; Homma, N.; Aoki, T.; aj.: Differential power analysis of AES ASIC implementations with various S-box circuits. In Circuit Theory and Design,
51 – 5
2011/51 – 22. 9. 2011
VOL.13, NO.5, OCTOBER 2011
2009. ECCTD 2009. European Conference on, aug. 2009, s. 395 –398, doi:10.1109/ECCTD.2009.5275004. [10] Velegalati, R.; Yalla, P. S. V. V. K.: Differential Power Analysis Attack on FPGA Implementation of AES. 2008: s. 1–5.
51 – 6