Universitatea „Transilvania” din Brașov. REFERENŢI: Prof. univ. dr. ing. Dorian
COJOCARU. Universitatea din Craiova. Conf. univ. dr. ing. Decebal POPESCU.
Investeşte în oameni! FONDUL SOCIAL EUROPEAN Programul Operaţional Sectorial Dezvoltarea Resurselor Umane 2007 – 2013 Axa prioritară 1 „Educaţie şi formare profesională în sprijinul creşterii economice şi dezvoltării societăţii bazate pe cunoaştere” Domeniul major de intervenţie 1.5. „Programe doctorale şi post-doctorale în sprijinul cercetării” Titlul proiectului: „Burse doctorale pentru dezvoltare durabila” BD-DD Numărul de identificare al contractului: POSDRU/107/1.5/S/76945 Beneficiar: Universitatea Transilvania din Braşov
Universitatea Transilvania din Brasov Scoala Doctorala Interdisciplinară Departament: Automatică și Tehnologia Informației Ing. Ciprian Leonard PIȚU
Modelarea, securizarea și verificarea circuitelor digitale utilizate în criptografie
Modelling, securing and verifying digital electronic circuits used in cryptographic applications Conducător ştiinţific Prof.dr.ing. Radu CÂMPEANU
BRASOV, 2013
1
MINISTERUL EDUCAŢIEI NAŢIONALE
UNIVERSITATEA “TRANSILVANIA” DIN BRAŞOV BRAŞOV, B-DUL EROILOR NR. 29, 500036, TEL. 0040-268-413000, FAX 0040-268-410525 RECTORAT
D-lui (D-nei) .............................................................................................................. COMPONENŢA Comisiei de doctorat Numită prin ordinul Rectorului Universităţii „Transilvania” din Braşov Nr. 6237 din 14.11.2013 PREȘEDINTE
Conf. univ. prof. dr. ing. Carmen GERIGAN Decan Fac. de Inginerie Electrică și Știința Calculatoarelor Universitatea „Transilvania” din Brașov
CONDUCĂTOR ŞTIINŢIFIC:
Prof. univ. dr. ing. Radu CÂMPEANU Universitatea „Transilvania” din Brașov
REFERENŢI:
Prof. univ. dr. ing. Dorian COJOCARU Universitatea din Craiova Conf. univ. dr. ing. Decebal POPESCU Universitatea „Politehnica” din București Prof. univ. dr. ing Florin MOLDOVEANU Universitatea „Transilvania” din Brașov
Data, ora şi locul susţinerii publice a tezei de doctorat: 10.01.2014, ora 16:00, Corpul V, str. Mihai Viteazul nr. 5, et. 3, sala VIII9. Eventualele aprecieri sau observaţii asupra conţinutului lucrării vă rugăm să le transmiteţi în timp util, pe adresele:
[email protected] sau
[email protected]. Totodată vă invităm să luaţi parte la şedinţa publică de susţinere a tezei de doctorat. Vă mulţumim.
2
CUPRINS Pg. teză
Pg. rezumat
1. INTRODUCERE ................................................................................................... 5 1.1 Actualitatea şi necesitatea temei....................................................................... 5 1.2 Problema propusă spre rezolvare ..................................................................... 7
9 9 10
1.3 Obiectivele lucrării ........................................................................................... 8 1.4 Metodologia cercetărilor doctorale .................................................................. 8
10 11
1.5 Noutatea ştiinţifică a rezultatelor obţinute ..................................................... 10 1.6 Direcţii viitoare de cercetare .......................................................................... 10
12 12
2. TEHNICI DE CRIPTARE ȘI CRIPTANALIZĂ ............................................ 14 2.1 Noţiuni introductive ....................................................................................... 14 2.2 Tehnici de criptare .......................................................................................... 15
14 14 14
2.3 Tehnici de criptanaliză ................................................................................... 22 2.3.1 Criptanaliza realizată prin „forță brută” ............................................... 22 2.3.2 Criptanaliza diferențială ........................................................................ 23 2.3.3 Criptanaliza liniară ................................................................................ 23 2.3.4 Criptanaliza algebrică ........................................................................... 24 2.4 Atacuri de securitate executate asupra circuitelor digitale integrate .............. 24
18 19 19 19 19 19
2.5 Analiza puterii consumate .............................................................................. 26
21
2.5.1 Analiza simplă de putere....................................................................... 27 2.5.2 Analiza diferențială de putere ............................................................... 28 2.6 Metode de protecție împotriva atacurilor de securitate .................................. 30 2.6.1 Mascare ................................................................................................. 31 2.6.2 Nivelare ................................................................................................. 31 2.7 Concluzii......................................................................................................... 32
22 22 23 24 24 24
3. MODELAREA ANALIZEI DIFERENȚIALE DE PUTERE ........................ 33 3.1 Caracterizarea curbelor de consum ................................................................ 33 3.1.1 Efectul zgomotul electric ...................................................................... 34 3.1.2 Efectul datelor procesate ....................................................................... 36
25 25 26 27
3.1.3 Efectul operației executate .................................................................... 37 3.2 Exploatarea datelor conținute de curbele de consum ..................................... 38 3.3 Premisele analizei diferențiale de putere ........................................................ 39 3.4 Atacuri de securitate bazat pe coeficienți de corelare .................................... 40 3.5 Particularități ale implementărilor hardware .................................................. 50
27 28 28 31 32
3
3.6 Alternative de calculul pentru coeficientul de corelaţie ................................. 55
33
3.6.1 Diferenţa mediilor ................................................................................. 55
33
3.6.2 Ponderea mediilor ................................................................................. 57 3.6.3 Verificarea probabilității apariției maximului ...................................... 59
33 33
3.7 Determinarea numărului necesar de măsurători a tiparului consumului de putere .............................................................................................................. 60
34
3.8 Concluzii......................................................................................................... 62
34
4. MODELAREA PUTERII ABSORBITE DE CIRCUITELE DIGITALE INTEGRATE ....................................................................................................... 63 4.1 Modele de putere ............................................................................................ 64
35 35
4.1.1 Procesor ................................................................................................ 65
35
4.1.2 Memorie ................................................................................................ 73 4.2 Modele de simulare a puterii .......................................................................... 77 4.2.1 Nivelul circuitului analogic .................................................................. 78 4.2.2 Simularea la nivel logic ........................................................................ 81 4.2.3 Comparaţie ............................................................................................ 90 4.3 Concluzii......................................................................................................... 91
35 38 39 39 42 43
5. MĂSURĂTORI EXPERIMENTALE ............................................................... 92 5.1 Consumul de putere în cazul circuitelor digitale CMOS ............................... 93
44 44
5.1.1 Puterea statică ....................................................................................... 95 5.1.2 Puterea dinamică ................................................................................... 95 5.1.3 Hazarduri .............................................................................................. 99 5.2 Problematica măsurătorilor de curent........................................................... 100 5.2.1 Clasificarea metodelor de măsurare .................................................... 100 5.2.2 Metode specifice măsurării consumului curentului absorbit de circuitul analizat ............................................................................................... 101 5.2.3 Reducerea efectelor surselor de perturbaţii ........................................ 102 5.2.4 Gruparea semnalelor după compatibilitate ......................................... 104 5.3 Metode de masurare a curentului În vederea efectuarii ADP ...................... 105
45 45 45 49 50
5.4 Standuri experimentale ................................................................................. 109 5.5 Concluzii....................................................................................................... 119
54 58
6. PROCESAREA CURBELOR DE CONSUM. ANALIZA DIFERENȚIALĂ DE PUTERE ...................................................................... 120 6.1 Execuția ADP ............................................................................................... 120
59 59
4
51 51 51 52
6.2 Power Analysis Toolkit ................................................................................ 123 6.3 Rezultate ....................................................................................................... 131
60 61
7. CONCLUZII FINALE ...................................................................................... 132 7.1 Concluzii....................................................................................................... 132
65 65
7.2 Contribuţii personale .................................................................................... 133
65
7.3 Diseminarea rezultatelor............................................................................... 134
65
7.4 Direcţii viitoare de cercetare ........................................................................ 135
66
BIBLIOGRAFIE ................................................................................................... 136
68
ANEXA 1, AES ..................................................................................................... 139 ANEXA 2, PAT ..................................................................................................... 141 REZUMAT ............................................................................................................ 143
71
CURRICULUM VITAE RO................................................................................ 144
72
CURRICULUM VITAE EN ................................................................................ 144
73
5
CONTENT Pg. thesys
1. OVERVIEW .......................................................................................................... 5 1.1 Considerantions Regarding the State-of-the-Art of the Proposed Topic ......... 5
Pg. summay
9 9
1.2 The Problem to be Solved ................................................................................ 7 1.3 Thesis Objectives.............................................................................................. 8
10 10
1.4 Research Methodology ..................................................................................... 8 1.5 Scientific Novelty ........................................................................................... 10 1.6 Future Research Directions ............................................................................ 10
11 12 12
2. ENCRYPTION AND CRYPTANALYSIS TECHNIQUES ............................ 14 2.1 Introduction .................................................................................................... 14
14 14
2.2 Encryption Techniques ................................................................................... 15 2.3 Cryptanalysis Techniques............................................................................... 22 2.3.1 "Brute Force" Cryptanalysis ................................................................. 22 2.3.2 Differential Cryptanalysis ..................................................................... 23 2.3.3 Liniar Cryptanalysis .............................................................................. 23 2.3.4 Algebraic Cryptanalysis ........................................................................ 24
14 18 19 19 19 19
2.4 Security Attacks Focused on the Digital Integrated Circuits ......................... 24
19
2.5 Absorbed Power Analysis .............................................................................. 26 2.5.1 Simple Absorbed Power Analysis ........................................................ 27 2.5.2 Differential Power Analysis ................................................................. 28 2.6 Protection Methods against Security Attacks ................................................. 30 2.6.1 Masking ................................................................................................ 31 2.6.2 Leveling ................................................................................................ 31 2.7 Conclusions .................................................................................................... 32
21 22 22 23 24 24 24
3. MODELING OF THE DIFFERENTIAL POWER ANALYSIS.................... 33 3.1 Power Trace Characterization ........................................................................ 33
25 25
3.1.1 Electric Noise Effect ............................................................................. 34 3.1.2 Processed Data Effect ........................................................................... 36 3.1.3 Performed Operation Effect .................................................................. 37 3.2 Usage of the Data Contained by the Power Traces ........................................ 38 3.3 Prerequisites of the Power Trace Analysis ..................................................... 39
26 27 27 28 28
6
3.4 Security Attacks Based on Correlation Coefficients ...................................... 40 3.5 Specific Features of the Hardware Implementation ....................................... 50
31 32
3.6 Computing Alternative for the Correlation Coefficient ................................. 55 3.6.1 Mean Difference ................................................................................... 55
33 33
3.6.2 Mean Weighting ................................................................................... 57
33
3.6.3 Verification of Maximum Likehood ..................................................... 59
33
3.7 Determining the Required Number of Measurements of Power Consumption Pattern ............................................................................................................. 60 3.8 Conclusions .................................................................................................... 62
34 34
4. MODELING OF THE POWER ABSORBED BY THE DIGITAL INTEGRATED CIRCUITS................................................................................ 63 4.1 Power Models ................................................................................................. 64 4.1.1 Processor ............................................................................................... 65
35 35 35
4.1.2 Memory ................................................................................................. 73 4.2 Power Models Simulation .............................................................................. 77 4.2.1 Analog Circuit Level ............................................................................ 78
35 38 39
4.2.2 Logic Level Simulation ........................................................................ 81 4.2.3 Comparison ........................................................................................... 90 4.3 Conclusions .................................................................................................... 91
39 42 43
5. EXPERIMENTAL MEASUREMENTS ........................................................... 92 5.1 Power Consumption of CMOS Digital Circuits ............................................. 93 5.1.1 Static Power .......................................................................................... 95 5.1.2 Dynamic Power..................................................................................... 95 5.1.3 Hazards ................................................................................................. 99 5.2 Current Measurement Issues ........................................................................ 100 5.2.1 Measurement Methods Classification................................................. 100 5.2.2 Specific Methods for Current Consumption Measurement of the Analyzed Circuit ................................................................................ 101 5.2.3 Reducing the Impact of Noise Sources ............................................... 102 5.2.4 Grouping Signals Based on Compatibility ......................................... 104
44 44 45 45 45 49 50
5.3 Current Measurement Methods to Perform DPA ......................................... 105 5.4 Experimental Platforms ................................................................................ 109 5.5 Conclusions .................................................................................................. 119
52 54 58
7
51 51 51
6. POWER TRACE PROCESSING. DIFFERENTIAL POWER ANALYSIS120 6.1 DPA Execution ............................................................................................. 120
59 59
6.2 Power Analysis Toolkit ................................................................................ 123 6.3 Results .......................................................................................................... 131
60 61
7. FINAL CONCLUSIONS .................................................................................. 132 7.1 Conclusions .................................................................................................. 132
65 65
7.2 Personal Contributions ................................................................................. 133 7.3 Results Dissemination .................................................................................. 134 7.4 Future Research Directions .......................................................................... 135
65 65 66
REFERENCES ...................................................................................................... 136
68
APPENDIX 1, AES ............................................................................................. 139 APPENDIX 2, PAT ............................................................................................... 141 SUMMARY ........................................................................................................... 143
71
CURRICULUM VITAE RO................................................................................ 144
72
CURRICULUM VITAE EN ................................................................................ 144
73
8
1. Introducere 1.1 Actualitatea şi necesitatea temei Evoluția fulminantă a tehnologiei de fabricație a circuitelor digitale a permis dezvoltarea acestora astfel încât, în zilele noastre, ele înglobează funcționalitate suficient de puternică pentru a prelua și controla multe din aspectele de rutină ale vieții, în societatea modernă. Progresul tehnologic a adus cu sine multe schimbări precum eficientizarea proceselor tehnologice sau accesul rapid la informații pentru a evidenția doar câteva. Astfel, circuitele digitale integrate au căpătat o arie de răspândire extrem de variată mergând de la sistemele de telecomunicații până la sisteme bancare. Spre deosebire de informația imprimată pe hârtie, informația în formă electronică poate fi potențial furată de la distanță și este mult mai ușor să fie interceptată și modificată. Oportunitățile create de dezvoltarea circuitelor digitale integrate au condus însă și la apariția unor noi provocări legate de securitatea datelor vehiculate în mediul digital. Furtul de informație digitală a devenit la fel de valoros ca și cel de bani, care, la rândul sau, nu se mai rezumă doar la bancnote stocate într-un seif. Dacă la începutul erei digitale atacatorii puteau afecta doar un grup restrâns de oameni, astăzi lucrurile stau complet altfel, mărturie fiind recentele atacuri de securitate. Mai mult, problema securității datelor este complicată şi de recenta explozie a electronicii portabile care a permis înglobarea a tot mai multe informații cu caracter personal într-un circuit digital integrat, aceasta devenind un bun exploatabil de către atacatori. Un exemplu în acest sens îl reprezintă smart cardurile [6] care sunt utilizate în aplicații bancare sau Pay-TV. În acest context a apărut necesitatea naturală de a contracara aceste amenințări. Noua ramură a informaticii, numită securitate digitală are ca scop protejarea sistemelor informatice și a datelor cu caracter secret de diversele atacuri de securitate. Primele metode de protecție, sunt bazate pe „perturbarea” (amestecare) controlată a datelor. Aceaste metode s-au dovedit însă ineficientă [44] deoarece sistemele de calcul moderne pot identifica ușor modelele pe baza cărora funcționează metoda. Astfel, una dintre cele mai eficiente metode de protecție este utilizarea de algoritmi criptografici pentru a stoca și procesa, în mod sigur, datele cu caracter secret. Această metodă a devenit larg răspândită putând oferi un înalt grad de protecție. Din păcate însă ea a mutat atacurile de securitate din zona de comunicație (interfețe cu exteriorul) în zona de procesare a datelor (modulele ce realizează procesarea, respectiv criptarea datelor). Atacurile clasice, de tip invaziv (atacuri ce presupuneau intervenția atacatorului direct în circuit, folosind echipamente extrem de scumpe și necesitând cunoștințe detaliate despre circuit) au fost înlocuite de atacuri indirecte, bazate pe legi fizice ce dovedesc legătura dintre datele procesate și o mărime fizică, ușor măsurabilă, proporțională cu acestea. Această nouă clasă de atacuri de securitate, denumită atacuri de canal secundar, a căpătat în ultimii ani o importanță deosebită datorită ponderii mari în totalul atacurilor de securitate asupra circuitelor digitale. Aceste atacuri de securitate permit printr-o metodă neinvazivă, extragerea de informații cu caracter secret. Din categoria metodelor de atac de canal secundar una dintre cele mai răspândite metode de atac este analiza diferențială de putere, care, pe baza consumului de energie electrică a circuitului analizat, poate determina datele procesate de acesta. Față de analiza simplă de putere, unde atacatorul trebuie să dețină informații detaliate despre sistemul atacat, analiza diferențială de putere permite identificarea datelor cu caracter secret fără necesitatea cunoașterii unor detalii despre implementarea atacată sau despre tehnologia utilizată. Utilizarea algoritmilor criptografici este în continuare necesară, dar nu mai este suficientă, extragerea datelor cu caracter secret devenind accesibila atacatorilor cu dotări medii, prin folosirea analizei diferențiale de putere. Necesitatea și actualitatea temei sunt dovedite și de câștigarea unui proiect de cercetare, cu 9
finanțate europeană, [49] care își propune dezvoltarea unei platforme hardware sigure, protejate print-o multitudine de metode de securizare (de exemplu criptografie, detecție de intruziune, sume de control pe instrucțiuni și mesaje de autentificare pentru periferice, etc.) împotriva atacurilor prezente și viitoare.
1.2 Problema propusă spre rezolvare În acest context, trebuie schimbate principiile pe baza cărora se realizează proiectarea și verificarea funcțională a circuitelor digitale integrate. Trebuie ca securitatea digitală să fie considerată parte integrantă din circuit și nu ”un modul adăugat” suplimentar, pentru a satisface o cerință. Lipsa unor standarde de securitate, dedicate circuitelor digitale integrate (sau electronicii în general), numărul tot mai mare de breșe de securitate descoperite și atacurile tot mai complexe stau la baza ultimelor cercetări în domeniu. Lucrarea constă în efectuarea unui analize de securitate asupra unui circuit digital criptografic, realizat fizic (implementat pe un circuit digital reprogramabil de tip FPGA) și simulat funcțional, la nivel logic și la nivel fizic (tehnologic; eng. ”gate level simulation”) dar și asupra unei implementări software [36] ale aceluiași algoritm criptografic. Prezenta lucrare își propune analizarea posibilității de utilizare a unor modele simulabile a circuitelor digitale integrate cu scopul identificării potențialelor breșe de securitate. Pentru îndeplinirea acestui deziderat, direcțiile de cercetare sunt: studiul metodelor de filtrare a zgomotului electric datorat surselor de alimentare și altor module electronice din interiorul circuitului analizat;
analiza modelelor simulabile cu scopul extragerii informațiilor necesare efectuării unei analize diferențiale de putere;
analiza experimentală a tehnicilor de execuție a unor atacuri de securitate de tip analiză diferențială de putere;
studiul comparativ al analizelor diferențiale de putere executate pe circuite digitale integrate, realizate fizic sau simulate funcțional sau la nivel de poartă logică (nivel fizic, tehnologic);
studiul diverselor ipoteze de atac (de exemplu distanță sau ponderea Hamming). În toate cazurile examinate, studiul a constat în: 1. determinarea punctelor vulnerabile ce pot fi exploatate în cadrul unui atac de securitate de tip analiză diferențială de putere; 2. determinarea parametrilor ce influențează calitatea, respectiv rezoluția unei analize diferențiale de putere; 3. validare experimentală a ipotezelor de atac alese.
1.3 Obiectivele lucrării Prezenta teză are ca principal obiectiv dezvoltarea unei metode, teoretice și practice, care să permită evaluarea nivelului de protecție, împotriva unor atacuri de securitate de tip analiză diferențială de putere, încă din faza de proiectare a circuitelor digitale integrate, când costurile de reproiectare sunt minime. Avantajul constă în extinderea metodelor clasice de proiectare a circuitelor digitale integrate prin introducerea unui pas suplimentar bazat pe simularea funcțională a acestuia. Astfel, inginerii proiectanți vor putea identifica devreme în cadrul procesului de proiectare eventualele breșe de securitate care ar putea fi exploatate de un atacator. Totodată vor putea fi explorate noi arhitecturi de securitate fără a avea efecte negative asupra produsului final. 10
Înțelegerea atacurilor și deci dezvoltarea tehnicilor de protecție vor deveni mai ușoare. Pentru a putea îndeplinii acest deziderat se propune utilizarea simulărilor funcționale pentru determinarea eventualelor breșe de securitate. Din această cauză este realizată analiza comparativă între atacurile realizate pe circuitul fizic și cele realizate asupra circuitului simulat.
1.4 Metodologia cercetărilor doctorale Au fost evidențiați factorii ce influențează execuția unui atac de securitate de tip analiză diferențială de putere: o în cazul atacurilor executate asupra unor circuite realizate fizic: o zgomotul electric – cauzat de sursele de alimentare și de alte module ale circuitului analizat; o informația redundantă – prea multă informație (supraeșantionarea) introduce informație suplimentară care însă doar îngreunează calculele atacul necesitând semnificativ mai mult timp; o în cazul atacurilor executate asupra unor circuite simulate la nivel funcțional: o numărul de eșantioane achiziționate față de ceasul de sistem – un număr prea mic de eșantioane nu permite executarea cu succes a unor atacuri de tip analiză diferențială de putere; o numărul de semnale stocate în cadrul achiziției – stocarea unui număr prea mic de semnale poate omite tranzițiile cu importanță maximă pentru analiza diferențială de putere. Analiza efectuată în cadrul lucrării a implicat determinarea metodei de conversie a datelor, ce rezultă în urma simulărilor funcționale ale unui circuit digital integrat, în curbe de consum, caracteristice circuitului analizat. Totodată, pentru a putea efectua atacurile de securitate asupra unor circuite fizice, a fost dezvoltată o metodologie de atac, ușor de aplicat, care permite achiziția rapidă, cu un număr minim de resurse, a caracteristicilor de consum ale circuitului analizat. Validarea experimentală a caracteristicilor simulate, respectiv a atacurilor de securitate de tip analiză diferențială de putere, executate asupra circuitelor simulate la nivel funcțional, a fost efectuată în laboratoarele companiei Siemens SRL din Brașov, utilizând echipamentele specifice dezvoltării de circuite digitale integrate (simulator digital, programe de sinteză, etc.). Achiziția experimentală a caracteristicilor de consum ale circuitului digital analizat a fost realizată tot cu ajutorul companiei Siemens SRL, din Brașov, utilizând un osciloscop digital de înaltă rezoluție. Măsurătorile au fost efectuate pe o placă de dezvoltare, echipată cu un circuit digital reprogramabil. Pentru efectuarea măsurătorilor au fost modificate (parțial înlocuite, respectiv filtrate) sursele de alimentare și au fost inseraţi rezistori de șunt în liniile de alimentare. Validarea experimentală a fost realizată pentru o serie de implementări standard [37], software și hardware, a algoritmului criptografic AES utilizând două standuri de test – unul echipat cu un microcontroler de uz comun și unul echipat cu un circuit digital reprogramabil (FPGA). Pentru inginerii proiectanți este utilă cunoașterea, încă din faza de proiectare, când costurile de reproiectare sunt minime, a eventualelor vulnerabilități de securitate, care ar permite unui atacator accesul la informații cu caracter secret. Pe parcursul activităților de cercetare descrise în această lucrare a fost dezvoltat un program software, în limbajul de programare Python (limbaj interpretat, portabil, ce permite execuția programelor pe orice sistem de operare), ce permite: 1. prelucrarea datelor ce rezultă din simularea funcțională a unor circuite digitale; 11
2. prelucrarea datelor ce rezultă din achiziția curbelor de consum ale unor circuite digitale integrate realizate fizic; 3. executarea unor atacuri de securitate de tip analiză diferențială de putere; 4. explorarea, rapidă și fără eforturi, a noi arhitecturi de securitate sau a unor noi metode de protecție. Programul are o structură modulară ceea ce deschide calea unor dezvoltări ulterioare. Lucrarea a fost realizată pe baza unui studiu bibliografic extins pe parcursul căruia au fost studiate teze de doctorat, articole științifice din literatura de specialitate și cărți tehnice, care pot fi regăsite în bibliografia lucrării.
1.5 Noutatea ştiinţifică a rezultatelor obţinute Elementele de noutate pe care le introduce lucrarea în analiza efectuată sunt următoarele: dezvoltarea unei tehnici ce permite executarea de atacuri de securitate de tip analiză diferențială de putere pe baza unor simulări funcționale;
efectuarea unui studiu comparativ între analiza diferențială de putere efectuată pe un circuit implementat fizic și unul simulat funcțional, la nivel logic și la nivel fizic;
dezvoltarea unui produs software de evaluare rapidă a nivelului de securitate a circuitelor digitale integrate bazat pe simulări funcționale ale acestora, pe baza rezultatelor obținute în urma aplicării tehnicii dezvoltate anterior și a verificărilor experimentale. Studiile efectuate își propun determinarea: metodelor tehnice de conversie a datelor rezultate din simularea funcțională la nivel logic și fizic a circuitelor digitale integrate;
metodelor tehnice optime pentru realizarea unor atacuri de tip analiză diferențială de putere;
modelelor de execuție ale atacurilor de securitate de tip analiză diferențială de putere;
tehnicilor eficiente (ușor de aplicat cu un efect maxim) de protecție împotriva respectivelor atacuri. Rezultatele lucrării permit determinarea directă, în timpul procesului de proiectare, a eventualelor breșe de securitate. Prin evaluarea acestora pot fi determinate metode de protecție care la rândul lor pot fi evaluate din punct de vedere al complexității și securității. Totodată rezultatele lucrării permit explorarea unor noi metode tehnologice fără a fi necesară realizarea fizică a circuitului digital integrat.
1.6 Direcţii viitoare de cercetare Considerând cercetările întreprinse alături de rezultatele prezentate în cadrul acestei lucrări, direcțiile viitoare de cercetare pot fi: extinderea numărului de ipoteze de calcul pe baza cărora software-ul (Power Analysis Toolkit) poate efectua analize diferențiale de putere asupra unor circuite digitale integrate, simulate dar și implementate fizic; 12
utilizarea modelelor simulabile, realizate prin modelarea la nivel de sistem (Electronic System Level Design) a circuitelor digitale integrate, pentru a extrage informațiile necesare executării analizei diferențiale de putere. Această tehnică permite, folosind limbaje de nivel înalt (SystemC, C++, Matlab), modelarea funcțională a unui circuit digital integrat, fără a ține cont de detaliile de implementare (tehnologie, timp de execuție, respectiv simulare, etc.). Un astfel de model funcțional poartă numele de specificație executabilă și are ca scop explorarea de noi arhitecturi, respectiv metode de implementare eficiente ale circuitelor digitale integrate.
13
2. Tehnici de Criptare și Criptanaliză Multă vreme singurele cerințe de proiectare au fost dictate de diverși parametri cum ar fi complexitatea sau performanța sistemelor înglobate. Arhitectura acestora era definită de nevoia naturală de a rezolva anumite probleme tehnice, complexe, luându-se în calcul fiabilitatea și ușurința în operare. Astfel, au apărut sisteme complexe de comandă și control, bazate pe circuite digitale integrate, ce automatizează diverse aspecte ale societății umane. Ca orice „nouă descoperire” nici aceasta nu a fost ocolită de problemele [8] [5]. Sistemele înglobate dezvoltate au reprezentat o nouă tentație care s-a cristalizat sub forma unor atacuri de securitate. Acestea au impus adoptarea unor noi soluții tehnice de protecție [38] a circuitelor digitale integrate și deci a sistemelor înglobate.
2.1 Noţiuni introductive Explozia recentă a sistemelor înglobate („embedded systems”), bazate pe circuite digitale integrate, a reprezentat un progres extraordinar pentru omenire. Din punct de vedere tehnologic progresul a însemnat pe lângă miniaturizarea componentelor de bază (tranzistori, rezistori și condensatori) și înglobarea unor funcții tot mai complexe alături de schimbarea mentalității inginerilor proiectanți. Sistemele înglobate au devenit complexe, distribuite și autonome [45] [25] executând astfel multe din acțiunile de rutină odinioară efectuate de operatori umani. Gradul înalt de complexitate a proceselor controlate, cerințele ridicate de fiabilitate alături de, în cele mai multe cazuri, utilizarea unei infrastructuri publice de comunicație au impus adoptarea unor soluții tehnice de securizare a sistemelor automate de control [19]. La începutul anilor `90 inginerii proiectanți au fost puși în fața unei noi provocări - telecomunicațiile. Această nouă era a dus însă cu sine noi provocări care s-au cristalizat sub numele de „securitate digitală”. Acest termen definește tot ceea ce înseamnă atacuri de securitate asupra unor sisteme digitale dar și metodele de contraatac sau de protecție, respectiv detecție a acestora [29]. Primele atacuri notabile asupra unor sisteme digitale au avut loc tot în anii `90. Aceste incidente au îngrijorat atât autoritățile cât și inginerii proiectanți care lucrează în domeniu motiv pentru care au fost luate măsuri drastice de protecție. Acestea au presupus în general securizarea liniilor de comunicație utilizând metode criptografice. Pe baza unor implementări software sau hardware ale unor algoritmi criptografici au fost dezvoltate sisteme digitale integrate sigure și fiabile, care permiteau schimbul de informații între unul sau mai mulți parteneri, utilizând o rețea publică de comunicație. Această nouă abordare a fost un real succes și a funcționat fără probleme până în anul 1999 când a fost prezentată o nouă formă de atacuri de securitate [14]. Acest nou atac nu mai avea ca țintă (directă) sistemele de comunicație ci erau orientate spre sistemele de calcul în sine. Bazându-se pe o serie de legi fizice, care descriu legătura dintre o mărime fizică, ușor măsurabilă și datele procesate de circuitul analizat, noua metodă ataca direct elementul de calcul și nu canalele de comunicație. Astfel, chiar dacă circuitul digital integrat era protejat în exterior, el rămânea totuși vulnerabil.
2.2 Tehnici de criptare Sistemele moderne de securitate, utilizate în scopul securizării circuitelor digitale integrate, se bazează pe metode criptografice (vgr. kryptós, ascuns, și –grafie, scriere; scriere cu alfabet secret). Metodele criptografice moderne sunt în esență funcții matematice ce realizează o operație reversibilă asupra unor date de intrare (denumite „text în clar”) utilizând ca informație secretă o așa-numită cheie de criptare. Rezultatul operației matematice (denumită operație criptografică) poartă numele de cod. Inițial se considera că un algoritm criptografic este sigur doar dacă el este secret. Experiența însă a infirmat această supoziție astfel încât principiile enunțate de Auguste 14
Kerckhoffs [11] au devenit regulile de bază ale criptografiei moderne. Cele mai importante dintre aceste reguli sunt: Un sistem criptografic ar trebuie să fie imposibil de spart în practică, chiar dacă teoretic pot exista anumite limitări;
Algoritmul criptografic nu ar trebui să fie secret; avantajul unui algoritm public ar fi dat de faptul că numărul mare de oameni ce ar avea acces la el ar putea detecta eventualele breșe de securitate care astfel ar putea fi soluționate din timp;
Cheia de criptare trebuie să fie singurul secret și ar trebui să poată fi schimbată ușor;
Sistemul criptografic trebuie să fie simplu și robust astfel încât utilizatorii să îl poată utiliza fără eforturi mari. Plecând de la aceste principii au fost dezvoltate mai multe clase de algoritmi criptografici dintre care cei simetrici și cei asimetrici au ieșit în evidență. Pentru a evidenția diferențele celor două clase de algoritmi, se vor considera următoarele personaje fictive, tipice literaturii de specialitate: Alice – partenerul criptografic numărul 1. Alice trimite și recepționează mesaje criptate de la Bob;
Bob – partenerul criptografic numărul 2. Bob recepționează și trimite (răspunde) mesaje criptografice;
Mallory – atacatorul. Mallory dorește să intercepteze comunicația între Alice și Bob. În cazul criptografiei simetrice atât Alice cât și Bob utilizează aceiași cheie secretă (Figura 2.1). Astfel, atât Alice cât și Bob utilizează aceiași cheie k pentru a cripta mesajul m .Alice utilizează funcția d criptare f în timp ce Bob utilizează funcția de decriptare f 1 .
Figura 2.1 Criptografie simetrică Utilizând un canal sigur de comunicație cei doi parteneri convin asupra unui secret comun care este reprezentat de cheia criptografică utilizată. Pentru a cripta un mesaj, Alice utilizează cheia împreună cu textul în clar pentru a obține o criptogramă. Aceasta este apoi transmisă printr-o metodă publică de comunicație (n.r. Internet) către Bob. Acesta utilizează din nou cheia pentru a decripta mesajul trimis de Alice. În cazul în care Mallory dorește interceptarea convorbirii celor doi, el va avea nevoie de cheia criptografică. Singurul punct vulnerabil de atac este mecanismul prin care cheia simetrică este convenită de cei doi parteneri. Dacă mecanismul de stabilirea cheii are o vulnerabilitate atunci Mallory poate intercepta cheia putând „asculta” convorbirea celor doi sau prelua identitatea unuia dintre cei doi parteneri. 15
Algoritmii simetrici de criptare pot fi împărțiți la rândul lor în algoritmi „pe blocuri” și algoritmi „pe fluxuri”. Algoritmii ce procesează datele „pe blocuri” sunt mai puternici fiind însă dezavantajați de faptul că fiecare bloc de date trebuie să aibă totdeauna aceiași lungime, indiferent de cantitatea de date utile conținută de acesta. Algoritmii ce procesează datele sub formă de „fluxuri” sunt caracterizați de o viteză mai mare de procesare (procesează câte un caracter – octet – pe rând) fiind însă considerați inferiori celor „pe blocuri”. Din acest motiv acești algoritmi nu sunt utilizați atât de des în aplicații critice. Din clasa algoritmilor simetrici de criptografie pot fi enumerați DES [41], RC2, RC5, Blowfish și bine-cunoscutul AES [37]. Criptografia asimetrică se bazează pe o pereche de chei: una secretă, proprie fiecărui partener de comunicație și una publică, cunoscută tuturor partenerilor de comunicație. După cum se poate observa în Figura 2.2 doar operația de decriptare este executată într-un mediu securizat. Astfel, prin intermediul funcțiilor asimetrice f și f * mesajul m este criptat cu ajutorul cheii de criptare e (cheia publică) și trimis destinatarului sub forma criptogramei c . Destinatarul va utiliza cheia de decriptare d (cheia privată) pentru a decripta mesajul.
Figura 2.2 Criptografie asimetrică În cazul în care Alice dorește să îi trimită lui Bob un mesaj criptat, sunt executați următorii pași (Figura 2.3): se descarcă, de la autoritatea de certificare, cheia publică a lui Bob;
se încarcă datele în clar alături de cheia publică a lui Bob în algoritmul criptografic;
rezultatul criptării (criptograma) este trimis lui Bob folosind orice metodă de comunicație, indiferent dacă este sigură sau nu.
Figura 2.3 Criptarea asimetrică a mesajelor Pentru a decripta mesajul Bob va utiliza cheia să privată pe care o va încărca alături de criptogramă în același algoritm criptografic utilizat de Alice.
16
Figura 2.4 Semnarea digitală a mesajelor Datorită proprietăților criptografiei asimetrice a fost dezvoltată o nouă operație criptografică și anume semnarea digitală a mesajelor (Figura 2.4). Această operație are ca scop validarea originalității unui mesaj, criptat sau nu, utilizând, din nou, perechea de chei privatepublice a partenerilor de comunicație. Avantajele, respectiv dezavantajele celor două categorii de algoritmi sunt prezentate în Tabelul 2.1. Algoritm Avantaje Dezavantaje criptografic Criptare simplă – este ușor de Este necesar un canal sigur de executat; este suficient ca toți comunicație care să permită schimbul partenerii de comunicație să dețină de chei intre cei doi parteneri. Schimbul secretul (cheia de criptare). Algoritmii de chei între cei doi parteneri de nu necesită reglaje sau alte premise comunicație reprezintă primul și cel pentru efectuarea calculelor. mai important element de securitate al acestei clase de algoritmi criptografici. Prin natura algoritmului se pot cripta și decripta, local, fișiere sau mesaje. Numărul mare de chei (conform Pentru aceasta este suficientă o standardului câte o cheie criptografică singură cheie care este folosită și pentru fiecare doi parteneri de pentru criptare și pentru decriptare. comunicație) poate crea probleme în ceea ce privește administrarea acestora. Sunt algoritmi rapizi (în general cu un Simetric ordin de mărime mai rapizi decât cei Originea și originalitatea mesajelor nu asimetrici). poate fi verificată. Ținând cont ca ambii parteneri folosesc aceiași cheie nu se Consumul de resurse este redus: poate verifica cine este expeditorul și implementările software pot rula chiar cine este destinatarul. și pe microcontrolere pe 8 biți, iar cele hardware nu sunt cu mult mai mari decât o interfață serială standard. Previne atacurile „în masă” datorită faptului că fiecare pereche de parteneri are o cheie (conform standardului [47]) și deci un eventual atac ar compromite doar comunicația între doi 17
parteneri lăsând neafectate comunicația cu ceilalți parteneri. Oferă o soluție pentru principalul dezavantaj al criptării simetrice și anume distribuirea cheii de criptare. În acest caz doar cheia publică este distribuită în timp ce cheia privată rămâne secretă.
Cheile publice trebuie autentificate – nu este recomandată utilizarea unor chei publice înainte ca autenticitatea lor să fie verificată.
Algoritmii criptografici asimetrici sunt Oferă posibilitatea autentificării lenți. Nu este recomandată utilizarea lor mesajelor prin semnarea digitală a pentru criptarea unor mesaje mari sau a acestora. Astfel, dacă destinatarul unor cantități semnificative de date. dorește determinarea originalității mesajului primit trebuie doar să Necesită un număr mai mare de resurse verifice dacă semnătura digitală este și un număr de componente dedicate cea corectă. Operația nu este diferită (cum ar fi generatoarele de numere de cea de criptare, respectiv decriptare aleatoare). Asimetric a unui mesaj fiind deci ușor de aplicat. Un atac de securitate ar putea permite Oferă posibilitatea de detecție a unui atacator să citească toate mesajele manipulării mesajelor prin utilizarea celui a cărui cheie a fost interceptată. de semnături digitale alături de criptare. În cazul în care un atacator Pierderea cheii private înseamnă manipulează mesajul, semnătura compromiterea totală a securității digitală se va schimba astfel încât deoarece cu ajutorul acesteia pot fi mesajul va fi automat invalidat. decriptate toate mesajele schimbate cu toți partenerii. Utilizând semnături digitale expeditorul nu poate nega trimiterea mesajului. Datorită acestui fapt criptografia asimetrică îndeplinește cerința de non-repudiere a mesajelor criptate. Tabelul 2.1Comparație între criptarea simetrică și cea asimetrică Datorită aspectelor prezentate în Tabelul 2.1, la ora actuală cei mai utilizați algoritmi criptografici sunt cei simetrici. Dintre aceștia algoritmul cu cea mai răspândită utilizare este Advanced Encryption Standard (AES) sau Rijndael. Pe parcursul acestei lucrări termenul de „AES” se referă la o implementare conformă cu standardul, respectiv cu lungimea blocului de date și a cheii de 128 biți ce sunt procesate pe parcursul a 10 runde de calcul.
2.3 Tehnici de criptanaliză Criptanaliza constă în studiul metodelor de „dezlegare” (vgr. kryptós, ascuns, și analýein, a dezlega) a secretelor conținute de criptograme, respectiv de algoritmii criptografici. În general această practică este asociată cu spargerea unor algoritmi criptografici și furtul de informații cu caracter secret. În contextul dezvoltării unor sisteme digitale de protecție, termenul de criptanaliză se referă însă la tehnicile de determinare a breșelor de securitate care ar putea fi exploatate de atacatori. În cele ce urmează sunt prezentate principalele metode de criptanaliză. 18
2.3.1 Criptanaliza realizată prin „forță brută” Atacurile de tip „forță brută” (eng. „brute force”) sunt cele mai vechi și probabil cele mai comune atacuri de securitate, executate asupra algoritmilor criptografici. Denumite și atacuri automate, acestea se referă, în principiu, la încercarea de a „ghicii” informația secretă. Metoda presupune căutarea exhaustivă a cheii, fără a utiliza metode sau algoritmi ajutători, meniți a reduce numărul de încercări. Această metodă are avantajul de a fi extrem de simplă – tot ce este necesar este un program de calculator care „încearcă” pe rând fiecare valoare până o identifică pe cea corectă. Totodată această metodă are și un mare dezavantaj. Această metodă pleacă de la premisa că orice algoritm poate fi spart, indiferent de existența unei vulnerabilități de securitate. În ultimii ani această metodă a cunoscut un nou avânt datorat evoluției tehnicii de calcul. Astfel în anul 1998, EFF DES Cracker [42] a reușit, cu succes, recuperarea cheii de criptare utilizând o serie de circuite digitale integrate fabricate special cu acest scop. O nouă „mașină de atac”, de această dată bazată pe circuite digitale reprogramabile (FPGA-uri) a reușit, cu succes, recuperarea cheii de criptare dintr-o implementare a algoritmului DES. Aceasta „mașină” poartă numele de COPACABANA [40] și a fost dezvoltată în anul 2007 având ca baza de calcul 128 de circuite digitale reprogramabile de tip Xilinx Virtex-4. 2.3.2 Criptanaliza diferențială Criptanaliza diferențială este o metodă veche care prevede studierea modului în care diferențele dintre diversele texte în clar influențează diferențele dintre criptogramele rezultante. Metoda a fost descoperită inițial, în 1974, de către compania IBM dar a fost ținută secretă deoarece prezenta un pericol real la adresa algoritmilor criptografici folosiți la acea vreme. La sfârșitul anilor ’80 însă, metoda a fost „redescoperită” [4] astfel încât a devenit rapid una dintre cele mai utilizate metode de criptanaliză. Criptanaliza diferențială utilizează texte în clar care sunt separate între ele printr-o diferență constantă, definită de o funcție matematică. După criptarea acestor texte în clar, atacatorul calculează diferența dintre criptogramele obținute. Scopul acestei analize este descoperirea unor modele statistice de distribuție a celor două diferențe. 2.3.3 Criptanaliza liniară Este cea mai răspândită metodă de atac asupra algoritmilor criptografici ce operează cu blocuri de date. Metodă apărută în anii ’90 [18] permite identificarea, pe baza unor perechi de texte în clar - criptograme a cheii de criptare utilizate. Metoda criptanalizei liniare are două etape: Construirea unui set de ecuații liniare ce descriu textul în clar, criptogramele și cheia de criptare utilizată; Utilizarea ecuațiilor, împreună cu perechile cunoscute de texte în clar – criptograme, pentru a determina cheia de criptare utilizată. Această metodă este simplă și permite extragerea cu succes a cheilor de criptare. Dezavantajul metodei constă în necesitatea de a avea un set cunoscut de perechi text în clar – criptograme. 2.3.4 Criptanaliza algebrică Criptanaliza algebrică este o metodă matematică ce presupune rezolvarea unui set de ecuații pentru determinarea cheii de criptare. Metoda practică constă în exprimarea operațiilor matematice ale algoritmului criptografic sub forma unui set de ecuații. Datele cunoscute sunt apoi introduse în sistemul de ecuații creat. Apoi sistemul de ecuații este rezolvat relevând cheia 19
de criptare. Atacatorul este liber să aleagă orice sistem algebric dorește atâta timp cât setul de ecuații descrie corect funcționarea algoritmului criptografic. Datorită numărului mare de ecuații și a neliniarități acestora, metoda criptanalizei algebrice nu este aplicabilă în practică. Totodată, pentru reducerea riscului ridicat de această metodă, criptologii au dezvoltat o serie de algoritmi criptografici puternic neliniari.
2.4 Atacuri de securitate executate asupra circuitelor digitale integrate Considerând tehnicile clasice de criptanaliză prezentate anterior, în ultimii ani au fost dezvoltate metode noi de atac asupra circuitelor criptografice accentul fiind pus pe circuitele digitale integrate. Plaja atacurilor însă este extrem de variată variind de la atacuri simple și ieftine și mergând până la atacuri extrem de complexe ce implică timpi îndelungați de atac și un număr impresionant de resurse. Atacurile de securitate executate asupra circuitelor digitale integrate ce înglobează module criptografice pot fi clasificate în diverse moduri. Una dintre clasificări reflectă metodologia de atac, după cum urmează: Atacuri pasive: circuitul criptografic este operat conform specificațiilor constructive astfel încât cheia secretă este obținută doar prin observarea proprietăților fizice ale circuitului (de exemplu timpul de execuție sau puterea electrică consumată) [16]; Atacuri active: circuitul criptografic este manipulat direct, prin intruziune fizică. Sunt folosite una sau mai multe metode de intruziune (de exemplu manipularea intrărilor și a ieșirilor, a tensiunii de alimentare sau a mediului înconjurător circuitului) pentru a extrage informația secretă. De regulă, pentru a putea executa un atac de acest gen, sunt necesare un număr ridicat de resurse (de regulă este necesar un laborator de microelectronică dotat cu aparatură performată) și de circuite identice (șansa ca atacul să fie executat, cu succes, din prima încercare, este foarte mică). Cea de-a doua clasificare [16] reflectă interfața exploatată pentru execuția atacului. Aceste interfețe, fie ele interne (de exemplu magistrale de date, puncte de depanare, etc.) sau externe, oferă un număr ridicat de puncte de atac. În acest context pot fi diferențiate următoarele tipuri de atac: Atacuri neinvazive: nu presupun manipularea fizică a circuitelor digitale integrate motiv pentru care nu pot fi detectate urme directe (fizice) ale atacului efectuat. Aceste atacuri de securitate nu presupun utilizarea de aparatură scumpă motiv pentru care sunt un pericol practic pentru circuitele criptografice. Această clasă de atacuri, poartă numele de „atacuri de canal secundar” (eng., „side channel attacks”) deoarece exploatează o informație secundară, care este direct proporțională cu informația de interes. Atacurile neinvazive au primit o atenție deosebită în ultimii ani datorită avantajelor pe care le oferă. Dintre aceste atacuri se pot distinge: o atacuri ce exploatează timpii de execuție [13]; o atacuri ce exploatează variațiile instantanee de consum ale circuitului analizat[14]; o atacuri ce exploatează radiația electromagnetică a circuitului [7] [23]. Altă ramură a atacurilor neinvazive este axată pe inducerea de erori în timpul funcționării circuitului fără însă a intervenii fizic. Erorile pot fi induse în acest caz prin modificarea parametrilor funcționali ai circuitului, respectiv prin modificarea temperaturii ambientale sau prin inducerea de pulsuri de scurtă durată (parazite) pe liniile de alimentare sau ale 20
semnalelor de ceas. Atacuri semi-invazive: presupun înlăturarea carcasei circuitului digital integrat oferind acces direct la pastila de siliciu [30]. Aceste atacuri presupun determinarea conținutului memoriilor fără a utiliza însă metode directe de interacțiune cu siliciul (nu sunt utilizate vârfuri de test și nici alte metode de „citire” a magistralelor de date sau adrese). Scopul acestor atacuri este de a induce erori în locațiile de memorie atacate utilizând radiație nucleară, câmpuri electromagnetice sau raze focalizate de lumină [33]. Echipamentul necesar unor atacuri semi-invazive nu este scump (comparativ cu cel necesar unor atacuri invazive). Totuși efortul necesar executării unor astfel de atacuri este mare în contextul unor circuite complexe (simpla identificare a zonelor de interes presupune o muncă minuțioasă alături de cunoștințe detaliate despre arhitectura circuitului atacat). Atacuri invazive: sunt acele atacuri care presupun accesul fizic la toate componentele circuitului atacat. Atacurile invazive sunt considerate extrem de periculoase deoarece nu există nici o limită în ceea ce privește posibilitățile pe care atacatorul le are la dispoziție. În cazul circuitelor digitale integrate, aceste atacuri presupun înlăturarea carcasei circuitului (prin eroziune chimică sau mecanică) atacatorul obținând astfel acces la pastila de siliciu. Cu ajutorul vârfurilor de test pot fi „citiți”, în timp real, regiștri sau magistralele de date ale sistemului. Astfel atacatorul nu trebuie decât să „asculte” traficul de date din interiorul circuitului pentru a identifica informațiile cu caracter secret. Totodată aceste atacuri pot fi și mai complicate implicând manipularea informației din interiorul circuitului. Cu ajutorul unor raze direcționate de ioni sau a unor unde LASER puternice, un atacator poate forța comutarea logică a unui bit de date. Deși dificil de realizat, necesitând accesul la aparatură de laborator, s-a constatat un număr în creștere al acestor atacuri. Datorită potențialului ridicat de extragere a informațiilor cu caracter secret dar și datorită ușurinței în aplicare, tehnica analizei diferențiale de putere a primit o atenție sporită. Mărturie a acestui fapt este numărul ridicat de articole publicate în această direcție.
2.5 Analiza puterii consumate Conceptul analizei de putere electrică consumată se bazează pe faptul că orice circuit electronic absoarbe energie electrică în timpul funcționării sale. În general puterea absorbită este proporțională cu activitatea circuitului, acest fenomen fiind exploatat în cadrul atacurilor de securitate neinvazive. Tehnica analizei puterii consumate exploatează astfel legătura dintre consumul instantaneu de curent electric și datele procesate de un circuit. Această tehnică a apărut în anii ’90 [15] și a reprezentat o piatră de temelie a criptanalizei moderne. Analiza puterii consumate este o tehnică simplă care prevede înregistrarea curbelor (sau caracteristicilor) de consum, ale circuitului analizat, pe parcursul operației de interes. Aceste curbe au o formă distinctivă astfel încât atacatorul poate „determina” operația și datele care sunt executate de circuit, la un moment dat. În cazul circuitelor criptografice, fiecare algoritm are o formă tipică permițând astfel identificarea metodei criptografice (Figura 2.5) doar pe baza analizei vizuale a curbelor de consum.
21
Figura 2.5 Curba de consum a unei operații de criptare utilizând algoritmul AES Tehnica analizei de putere a cunoscut o evoluție rapidă în ultimii ani astfel încât astăzi pot fi distinse două categorii: analiza simplă de putere (ASP – eng. SPA, „simple power analysis”) și analiza diferențială de putere (ADP – eng. DPA, „differential power analysis”). 2.5.1 Analiza simplă de putere Analiza simplă de putere constă în analiza vizuală a variației curentului absorbit de circuitul analizat în timp ce execută operația criptografică de interes. Variațiile curentului absorbit indică astfel operația efectuată, de către circuit la un moment dat de timp. Dacă înregistrarea curbelor a fost efectuată cu un osciloscop de înaltă rezoluție pot fi distinse chiar și instrucțiunile individuale efectuate de un procesor de uz comun. Primii algoritmi criptografici atacați cu ajutorul acestei metode au fost DES și RSA. În cazul algoritmului DES curba de consum relevă clar rundele de calcul. Mai mult, prin analiza atentă a acestora pot fi observate detalii legate de implementarea. În cazul algoritmului RSA, analiza simplă de putere evidențiază operațiile efectuate (multiplicare sau ridicare la pătrat) ducând din nou la identificarea informației vehiculate de circuitul analizat. 2.5.2 Analiza diferențială de putere Tehnica analizei diferențiale a puterii consumate, sau pe scurt analiza diferențială de putere (ADP) este o tehnică de atac prezentată pentru prima oara în anul 1998 [15]. Datorită avantajelor evidente oferite de aceasta, pe parcursul ultimilor ani atacurile de securitate executate asupra circuitelor digitale integrate au devenit sinonime cu termenul de analiză diferențială de putere [34] [31]. Din aceste motive prezenta lucrare tratează în detaliu tehnica analizei diferențiale de putere. Ca și în cazul analizei simple de putere, analiza diferențială de putere, pleacă tot de la curbele de consum înregistrate în timp ce circuitul criptografic execută operația de interes. Spre deosebire de cazul precedent, analiza diferențială de putere are nevoie de un număr mai mare de curbe de consum motiv pentru care analiza acestora se realizează prin metode statistice. Aceste atacuri de securitate utilizează tehnici de corecție a erorilor și de procesare a semnalelor (pentru filtrarea zgomotului). Analiza diferențială de putere este extrem de eficientă atât în analizarea circuitelor digitale criptografice cât și în cea a circuitelor digitale integrate în general. Astfel, dacă curbele de consum au o rezoluție suficient de mare, analiza diferențială de putere poate evidenția instrucțiunile, respectiv profilul de consum al circuitului digital analizat [21].
22
Figura 2.6 Caracteristica de consum pentru 3 cicluri ale ceasului de sistem După cum se poate observa din Figura 2.6 fiecare tact al ceasului de sistem relevă un „vârf” de consum. Analiza diferențială de putere este posibilă tocmai datorită acestor „vârfuri” fiecare dintre ele corespunzând unei instrucțiuni executate de procesor; fiecare „vârf” fiind proporțional cu datele procesate de respectiva instrucțiune. Pentru evidențiere se consideră b, cel mai semnificativ bit din primul octet al textului în clar (ce urmează a fi criptat). Se aleg, aleatoriu, 1000 de texte în clar, care vor fi mai apoi criptate, utilizând o implementare standard a algoritmului AES. Pentru fiecare operație de criptare se va înregistra o curba de consum, pentru prima rundă de calcul. Statistic se poate considera că în 50% din cazuri d are valoarea „0” iar în 50% valoarea „1”. Pentru o evaluare simplă a efectului lui d asupra consumului se calculează diferența dintre curbele medii de putere, pentru cazul d=0 și d=1. După cum se poate observa din Figura 2.7, în majoritatea timpului diferența celor două medii este apropiată de 0. Vârfurile vizibile în grafic reprezintă momentele de timp când bitul d este procesat – în acele momente consumul microcontrolerului depinde, direct (d este procesat direct) sau indirect (datele procesate depind de d), de d. [16]
Figura 2.7 Diferența curbelor medii de putere pentru d=1 și d=0
2.6 Metode de protecție împotriva atacurilor de securitate Pentru a evita, pe cât posibil, executarea cu succes a unor atacuri de securitate asupra unor circuite digitale criptografice se recomandă: schimbarea cât mai des cu putință a cheilor criptografice; utilizarea unor chei temporare [43][12]. Aceste recomandări nu pot fi urmate în toate cazurile motiv pentru care este necesară protejarea circuitelor digitale criptografice. Din publicațiile de specialitate pot fi identificate două categorii de metode de protecție. 23
2.6.1 Mascare Această tehnică de protecție propune decuplarea consumului de datele procesate prin introducerea de date aleatoare în lanțul de procesare. Astfel, deși curentul absorbit de circuit este proporțional cu datele procesate, un potențial atac nu va putea identifica datele reale datorită mascării acestora cu date aleatoare. În practică tehnica de mascare se reduce de cele mai multe ori la operația SAU-EXCLUSIV deoarece este ușor de implementat și nu necesită un număr ridicat de resurse. Această tehnică nu prevede modificarea caracteristicii de consum a circuitului. Punctul slab al metodei sunt însăși datele aleatoare – dacă acestea sunt reutilizate pentru mai mult de o operație criptografică sau dacă sunt utilizate date pseudo-aleatoare atunci un atacator ar putea identifica datele reale. Totodată această metodă este „sensibilă”, necesitând o grija deosebită pe parcursul procesului de proiectare, respectiv dezvoltare (după cum va fi prezentat în capitolele ulterioare, implementarea incorectă sau doar parțială a acestei metode duce la executarea cu succes a unor atacuri de tip analiză diferențială de putere). Totodată trebuie notat faptul că tehnica mascării este eficientă doar împotriva atacurilor de tip analiză diferențială de putere. Analiza simplă de putere poate releva însă o serie de detalii cum ar fi identificarea algoritmului criptografic sau a duratei de execuție a unei operații de criptare, respectiv decriptare. 2.6.2 Nivelare „Nivelarea consumului” își propune decuplarea consumului măsurabil în exteriorul circuitului analizat de datele procesate. Această metodă nu numai ca este eficientă împotriva atacurilor de securitate de tip analiză diferențială de putere dar previne și atacurile de tip analiză simplă de putere. Nivelarea consumului poate fi efectuată pe două cai: Alternarea aleatoare a operațiilor criptografice reale cu unele fictive, executate asupra unor seturi de date aleatoare, pe parcursul unui interval de timp dat; modificarea caracteristici de consum a circuitului analizat prin creșterea sau scăderea consumului cu scopul de a „ascunde” complet operațiile executate. Prin nivelarea curentului absorbit de circuit, un potențial atacator nu va putea identifica algoritmul criptografic utilizat sau durata de execuție a acestuia.
2.7 Concluzii Circuitele digitale integrate, moderne, fac uz de funcții criptografice complexe pentru a asigura un nivel ridicat de securitate. Rapida evoluție a acestora a permis înglobarea unor funcții din ce în ce mai complexe devenind astfel ținta atacatorilor. Aceștia la rândul lor au dezvoltat o serie de metode prin intermediul cărora pot extrage informații cu caracter secret din interiorul circuitelor digitale integrate. Fie că sunt implementări software sau hardware, algoritmii criptografici sunt funcții matematice complexe ce necesită un număr mare de resurse fizice. Algoritmii criptografici sunt de regulă publici în timp ce cheile de criptare sunt „secretul” care asigură securitatea informațiilor criptate. Din acest motiv este de interes prevenirea unor atacuri de securitate ce pot releva cheile de criptare. Chiar dacă nivelul de securitate al algoritmilor în sine este ridicat, implementările fizice ale acestora permit extragerea informațiilor cu caracter secret. Una din metodele cele mai uzuale, de atac, este analiza diferențială de putere. Aceasta exploatează legătura dintre curentul absorbit de circuitul digital integrat, ce execută funcția criptografică și datele procesate de acesta. Însă atacurile de securitate, de tip analiză diferențială de putere, pot fi prevenite prin aplicarea unor metode de protecție ce previn corelarea consumului măsurat de energie electrică cu datele procesate de circuitul digital integrat analizat.
24
3. Modelarea Analizei Diferențiale de Putere După cum a fost precizat analiza diferențială de putere este o tehnică de criptanaliză ce permite extragerea de informații cu caracter secret din curbele de consum ale circuitelor digitale integrate ce implementează funcții criptografice. Tehnica analizei diferențiale de putere a apărut prima dată [16] acum aproximativ 15 ani. Pe parcursul ultimilor ani această tehnică a cunoscut un real avânt. Dezvoltarea continuă a tehnicii de calcul a permis efectuarea unor analize complexe, utilizând aparate cu precizie tot mai ridicată astfel încât aceasta a părăsit laboratoarele ajungând o armă utilizată de atacatori împotriva metodelor criptografice de securizare a circuitelor digitale integrate [17]. Scopul lucrării este dezvoltarea unei metode care să permită utilizarea simulărilor în efectuarea unei analize diferențiale de putere. Pentru aceasta însă sunt necesari o serie de pași premergători. În primul rând, pentru a putea evalua viabilitatea metodei (deci utilizarea simulărilor pentru determinarea breșelor de securitate) este nevoie de o referință. Obținerea referinței este realizată prin efectuarea unor atacuri de tip analiză diferențială de putere, asupra unor circuite fizice, ce implementează același modul criptografic care urmează să fie simulat. Astfel se obține un set de măsurători de referință (eng. „golden reference”) pe baza cărora se poate evalua, respectiv parametriza, tehnica analizei diferențiale de putere efectuată pe baza unor simulări funcționale ale unor circuite digitale integrate. În concluzie sunt necesari următorii pași (tratați pe îndelete în acest capitol și în următoarele): modelarea matematică a analizei diferențiale de putere; caracterizarea curbelor de consum necesare pentru efectuarea unei analize diferențiale de putere; analiza efectului zgomotului electric asupra curbelor de consum; modelarea atacurilor pe baza unor circuite simulate; realizarea unor măsurători experimentale, având la bază tehnicile descrise anterior (filtrarea zgomotului electric, utilizarea unor tehnici eficiente de măsurare, realizarea unei analize diferențiale de putere pe baza unor curbe de consum achiziționate optim). Primul pas spre execuția unei analize diferențiale de putere constă în caracterizarea curbelor de consum.
3.1 Caracterizarea curbelor de consum O curbă de consum este un vector de valori ale unei tensiuni electrice ce este direct proporțională cu activitatea circuitului digital integrat analizat. O astfel de curbă de consum caracterizează activitatea circuitului analizat pe o perioadă definită de timp. Fiecare punct al curbei de consum reprezintă puterea instantanee absorbită de circuitul digital integrat analizat, în acel moment. Astfel, fiecare punct de pe curbă reflectă suma diverselor puteri absorbite de circuit. Aceste puteri sunt: puterea zgomotului electric Pzg - conduce la diferențe între puterile absorbite de circuitul analizat, chiar dacă datele procesate și operația executată este aceiași; puterea curenților de scaperi Pconst - rezultat al tehnologiei de fabricație a circuitelor și este tratată pe larg în capitolul 5; puterea operației executate Pop - pentru un același circuit se pot constata consumuri tipice pentru fiecare operație în parte (de exemplu adunare, shiftare, înmulțire, etc.); puterea datelor procesate Pdat - strict dependentă de datele procesate. 25
Astfel consumul instantaneu de putere al unui circuit digital integrat poate fi definit ca: Pcirc Pconst Pzg Pop Pdat (3.1)
P În contextul analizei diferențiale de putere const nu prezintă interes deoarece nu poate fi exploatat cu scopul identificării datelor cu caracter secret, procesate în momentul respectiv de P timp de către circuitul analizat. Puterea datorată zgomotului zg nu poate fi nici ea exploatată pentru efectuarea unei analize diferențiale de putere însă cu cât este mai ridicată cu atât mai dificil este de executat atacul. Din acest motiv, capitolul 5 tratează pe larg subiectul filtrarea, prin P P intermediul căreia zg poate fi redus (dar nu complet). Singurele puncte exploatabile sunt op și Pdat . Acestea depind direct de operațiile efectuate și de datele procesate putând fi astfel exploatate pentru efectuarea unei analize diferențiale de putere. Pentru a putea exploata informațiile conținute de curbele de consum este necesară înțelegerea proprietăților pe care acestea le dețin. Astfel, pentru a evalua consumul instantaneu al unui circuit digital integrat, este necesară evaluarea doar a unui punct de pe curba de consum considerată. În acest fel poate fi caracterizat circuitul analizat din prisma operației efectuate și a datelor procesate. După cum a fost specificat Pconst caracterizează puterea datorată tehnologiei și nu prezintă interes pentru analiza diferențială de putere - din acest motiv Pconst nu este tratată pe parcursul acestui capitol. 3.1.1 Efectul zgomotul electric Prima componentă a consumului este Pzg . Efectul vizibil dat de această componentă este apariția unui mic defazaj la curbele măsurate în timp ce circuitul digital execută aceeași operație procesând aceleași date. Pentru a putea evalua această componentă a puterii absorbite de circuit se consideră un stand de test echipat cu un microcontroler de uz comun.
Figura 3.1 Stand de testare echipat cu un microcontroler de uz comun Standul de test (Figura 3.1) are parametrii: tensiune de alimentare 5Vcc; microcontroler: ATmega328; frecvență de lucru: 16MHz; interfață comunicație: RS232.
26
Figura 3.2 Două curbe de consum, aferente aceleiași operații, suprapuse După cum se poate observa, în cazul în care microcontrolerul execută aceeași operație în mod repetat (mov R15 10) apare o diferență în curbele de consum achiziționate. Pentru evaluarea suplimentară a acestui efect se realizează o histogramă pentru 1000 de curbe achiziționate. Astfel, se poate observa că punctele curbei de consum urmează o distribuție normală (gaussiană). Din această analiză reiese și prima metodă practică, premergătoare unui atac de securitate de tip analiză diferențială de putere și anume caracterizarea circuitului atacat. Pentru a putea evalua puterea datorată zgomotului electric Pzg este necesară executarea unor măsurători practice care să permită determinarea valorii acesteia și a efectelor ce le are asupra analizei diferențiale de putere. 3.1.2 Efectul datelor procesate Pentru a putea caracteriza efectul datelor asupra puterii consumate de circuitul analizat Pdata se consideră un set de date uniform distribuit (adică fiecare dată apare cu aceiași probabilitate la intrarea circuitului analizat). Circuitul este setat să execute din nou aceiași instrucțiune (mov R15 x), unde x ia valori de la 0 la 255 (R15 fiind un registru pe 8 biți poate primii valori de la 0 la 255). Din nou sunt înregistrate 1000 de curbe de consum rezultând un număr de 256000 curbe achiziționate. Dacă se construiește din nou histograma pentru punctele minim și maxim se poate observa o distribuție mai largă a valorilor fără a mai avea însă o distribuție normală. Mai mult, dacă se construiesc histogramele pentru fiecare valoare în parte (adică 256 de histograme utilizând câte 1000 de curbe) se poate observa faptul că pentru valori cu pondere Hamming identică distribuția este similară. Ținând cont că datele utilizate au o lățime de 8 biți, putem concluziona că există 8 posibile ponderi Hamming, fapt confirmat și de măsurătorile experimentale. 3.1.3 Efectul operației executate Puterea dinamică absorbită la un moment dat de către circuitul analizat nu depinde doar de datele procesate ci și de operația executată. Această putere Pop este dată de însăși structura internă a circuitului analizat (arhitectura procesorului) și poate fi analizată dacă sunt executate diferite operații asupra acelorași date. Sunt achiziționate din nou 1000 de curbe de consum pentru fiecare operație în parte. Prin calcul mediei curbelor de consum achiziționate este redus efectul zgomotului astfel încât se poate determina distribuția valorilor obținute. Acestea pot fi aproximate după o distribuție normală. Cele două componente e interes pentru execuția unei analize diferențiale de putere, Pdata și 27
Pop sunt teoretic independente una de alta însă se poate observa din analiza unui număr mai mare de curbe de consum, că acest lucru nu este întotdeauna valabil. Mai mult, dacă se analizează, cu ajutorul standului 2, echipat cu un circuit digital reprogramabil (FPGA) implementarea algoritmului criptografic AES, se poate observa o puternică interdependență între Pdata și Pop .
3.2 Exploatarea datelor conținute de curbele de consum După cum a fost arătat curbele de consum sunt formate dintr-o serie de puncte, fiecare punct descriind consumul instantaneu al circuitului analizat în respectivul moment de timp. Pdata și Pop sunt componentele care reflectă în mod direct consumul circuitului datorat datelor procesate și operațiilor executate în vederea procesării respectivelor date. Pentru a putea evalua calitatea informației conținute de curbele de consum trebuie calculat nivelul de zgomot (eng. „signal to noise ratio”) care este conținut de fiecare punct de pe curba, în parte. În general, pe un set dat de curbe de consum, un atacator poate executa unul sau mai multe tipuri de atac, fiecare plecând de la ipoteze diferite. Astfel, pentru fiecare atac în parte, datele conținute de punctele curbelor de consum sunt altele. Din acest motiv este aproape imposibil de definit o metodă universală de caracterizare a curbelor de consum astfel încât, pentru a determina calitatea informațiilor conținute de curbele de consum se definesc un set de metrici pentru fiecare scenariu de atac în parte. De acest set de metrici depinde informația ce se dorește a fi extrasă și de informațiile pe care punctele de pe curbele de consum le pot releva în contextul dat. Astfel, pentru a putea evalua „utilitatea” fiecărui punct de consum în parte este definită puterea utilă Putil care depinde de Pdata și Pop . În cazul unui circuit digital de uz comun (adică un circuit care conține un procesor logic) această putere este o dependentă în mare măsură de date și mai puțin de operație. În cazul unui circuit dedicat raportul celor două puteri este echilibrat astfel încât Putil depinde de ambele componente în egală măsură. Din analiza efectuată se pot observa două trăsături specifice ale punctelor de pe curbele de consum: zgomotul aferent fiecărui punct de pe curba de consum are o distribuție normală; punctele de pe o aceiași curbă sunt corelate între ele (coeficientul de corelare are întotdeauna valoarea intre -1 și 1și măsoară relația liniară dintre cele două puncte de pe curbă). În contextul celor definite anterior se poate trece la exploatarea datelor în vederea executării atacul de securitate de tip analiză diferențială de putere.
3.3 Premisele analizei diferențiale de putere Pentru a putea executa un atac de securitate de tip analiză diferențială de putere sunt necesari următorii pași. Selectarea unui rezultat intermediar al operației criptografice atacate. Pe parcursul acestei faze sunt selectate rezultatele intermediare, ipotetice, ce rezultă în urma executării operației criptografice atacate. Astfel, pentru început se selectează operația (pentru algoritmul AES operațiile posibile sunt: SubBytes, ShiftRows, MixColumns, AddRoundKey) ce urmează să fie „atacată”. Pentru determinarea valorilor intermediare se utilizează relația f (d , k ) care reflectă legătura dintre datele d (cunoscute) și cheia k (necunoscută). În practică d este fie textul în clar (cea mai uzuală abordare), fie criptograma ce rezultă în urma executării operației de criptare (operației atacate). Achiziția curbelor de consum Utilizând ca date de intrare, blocurile de date d, generate anterior, se înregistrează, cu ajutorul unui osciloscop digital (metoda de achiziție este descrisă pe larg în capitolele 5 și 6) curbele de consum aferente momentelor de timp în care circuitul aflat „sub atac” procesează datele. Astfel, pentru circuitul AES considerat, se înregistrează primele 3 runde de calcul. 28
Vectorul datelor de intrare d poate fi definit ca:
d (d1 , d 2 ,..., d i ,...d D ) ,
(3.2)
unde D este numărul de blocuri de date utilizat. Pentru fiecare i (bloc de date), este achiziționată o curbă de consum ce poate fi caracterizată prin relația:
ci (ci ,1 , ci , 2 ,..., ci ,C ) , '
(3.3)
unde ci este curba achiziționată pentru blocul i al datelor de intrare d iar T lungimea curbei achiziționate (numărul de puncte). Se construiește astfel matricea curbelor de consum C având dimensiunea D x C:
c1,1 ... c1, j ... c1,C ci , j ci ,C , C ci ,1 c D ,1 t D , j c D ,C
(3.4)
unde fiecare linie corespunde unei curbe de consum achiziționate pentru un bloc de date. Reiese astfel necesitatea alinierii datelor de intrare astfel încât fiecare coloană a matricei C corespunde aceleiași operații executate însă pentru alt set de date d. Pentru a putea alinia datele de intrare sunt folosite diverse metode de sincronizare a procesului de achiziție, după cum este descris și în capitolul 5. Specificarea valorilor ipotetice, intermediare Pentru a putea efectua calculele este necesară alegerea unor valori ipotetice ale cheii K. Astfel, vectorul cheii ipotetice K, poate fi descris ca:
k (k1 , k 2 ,..., ki ,...k K ) .
(3.5)
Acest vector de valori ipotetice poartă denumirea de „vector ipoteză al cheii”. Pe baza acestui vector se definește matricea V, având dimensiunea D x K, a valorilor ipotetice intermediare:
v1,1 ... v1, j vi , j V vi ,1 v D ,1 v D , j
v1, K vi , K , v D , K ...
(3.6)
k unde coloana i corespunde valorilor ipotezei j . Scopul analizei diferențiale de putere este deci identificarea coloanei v, din matricea V, pentru care au fost procesate datele d de către circuitul real. Dacă este identificată coloana v, automat este identificată cheia k, care a fost utilizată pentru procesarea datelor d. Calculul consumului ipotetic Pentru a identifica coloana v, din matricea V, este necesară determinarea consumurilor ipotetice ale circuitului analizat, pentru datele d și valorile k ale cheii alese în ipoteza de atac. Astfel se definește matricea I a consumurilor ipotetice. Aceasta este calculată pe baza ipotezelor bazate pe distanța și ponderea Hamming, ipoteze tratate pe larg în capitolul 4. Pentru a obține matricea I, sunt calculate valorile ipotetice ale consumului circuitului analizat, pentru fiecare
29
valoare a matricei V,
vi , j
, rezultând astfel un consum
i1,1 ... i1, j ... i1,C ii , j ii ,C , I ii ,1 iD ,1 iD , j iD ,C
ii , j
.
(3.7)
Rezoluția matricei I depinde de ipotezele alese (ipoteze descrise în capitolul 4). Cu cât rezoluția este mai bună, cu atât mai eficient este atacul, respectiv corelarea se poate face mai ușor. Evaluarea rezultatelor matricelor V și I Pentru a putea determina cheia corectă trebuie „comparată” matricea V cu I. Pentru aceasta este calculat coeficientul de covarianţă
c D
ri , j
d 1
c
d, j
D
d 1
d, j
c j id ,i ii
cj
i 2
D
d 1
d ,i
ii
,
(3.8)
2
Obţinându-se astfel matricea rezultatelor R:
r1,1 ... r1, j ... r1,C ri , j ri ,C , R ri ,1 rK ,1 rK , j rK ,C
(3.9)
Cheia corectă va duce la obținerea celui mai mare coeficient identificându-se astfel ipoteza corectă, pentru care datele au putut fi corelate: coloana reflectă momentul de timp la care a putut fi recuperată cheia (punctul de pe curba de consum care a reflectat datele procesate și deci cheia de criptare utilizată); linia reflectă ipoteza pentru care s-a obținut cea mai mare valoare a coeficientului de corelație. Pentru evidențiere, etapele necesare execuției unei analize diferențiale de putere sunt evidențiate în Figura 2.1.
30
d1 d2 Text în clar sau cifrat dD
k1
k2
kK
Chei
Algoritm criptografic
Valori v v intermediare 1,1 1,2 ipotetice v2,1 v2,2
v1,K v2,K
vD,1 vD,2
vD,K
Model de putere
Consum ipotetic de putere
i1,1
i1,2
i1,K
c1,1 c1,2
c1,C
i2,1
i2,2
i2,K
c2,1 c2,2
c2,C
iD,1
iD,2
iD,K
cD,1 cD,2
cD,C
Achizitie de curbe de putere
Analiza statistica
r1,1
r1,2
r1,T
r2,1
r2,2
r2,T
rK,1
rK,2
rK,T
Rezultat
Figura 3.3 Analiză diferențială de putere – execuție
3.4 Atacuri de securitate bazat pe coeficienți de corelare Pentru a efectua o analiză diferențială de putere s-a făcut o estimare a relației liniare dintre coloanele matricei I și coloanele matricei C, estimare bazată pe coeficientul de corelație. Vârfurile ce au apărut în matricea coeficienților de corelație R au dezvăluit apoi cheia utilizată de către dispozitivul atacat. S-a constatat o diferență semnificativă între maximele detectate pentru implementarea software (și deci rulată pe un microcontroler de uz comun) respectiv pentru implementarea hardware (circuit fizic ce rulează pe un circuit digital reprogramabil – FPGA). În cele ce urmează vor fi introduse tehnici de estimare a coeficienților de corelație. 31
Tehnicile de estimare a coeficienților de corelație sunt de o reală valoare atât pentru inginerii proiectanți cât și pentru atacatori. Pentru proiectanți este important să existe metode prin care să determine rezistența dispozitivelor criptografice digitale la atacuri de tip ADP în timp ce pentru atacatori este utilă pentru estimarea complexității circuitului atacat dar și pentru înțelegerea structurii interne a acestora. Corelația I i , Ptotal poate fi calculată pe baza H i , Pexp și a raportului semnal-zgomot (eng. „signal to noise ratio”, SNR):
I i , Ptotal
I i , Pexp
,
(3.10)
1 1 SNR
SNR descrie capacitatea unui dispozitiv de a releva informații intr-un scenariu de atac dat. SNR este independent de modelul de consum folosit de atacator. Felul în care această relevare este exploatată într-un anumit atac este descris de I i , Pexp . Aceasta este corelația dintre valorile ipotetice ale consumului de energie utilizate de către atacator și consumul de energie, al dispozitivului, ce poate fi exploatat. Această corelație depinde în mod esențial de cât de bine descrie modelul de consum al atacatorului, consumul de energie care este „cauzat” de procesarea datelor. Pentru execuția atacurilor de securitate de tip analiză diferențială de putere pot fi utilizate mai multe modele de atac cum ar fi modelul distanței sau ponderii Hamming sau modelul „nivelului de bit”.
3.5 Particularități ale implementărilor hardware Implementările algoritmilor de criptografie realizate în limbaje de descriere hardware măresc complexitatea atacului bazat pe analiza consumului de putere, din următoarele motive: execuţia în paralel a unor instrucţiuni aritmetice într-o perioadă a ceasului de sistem toate aceste instrucţiuni trebuie luate în considerare pentru calculul valorii consumului de putere corespunzătoare perioadei de ceas în care sunt executate; valorile capacităţilor de încărcare ce apar între firele de interconexiune contribuie într-o pondere mult mai mare, faţă de o implementare software la consumul de putere şi valorile datelor procesate într-o anumită perioadă de timp sunt corelate. În cazul algoritmului AES, operaţiile AddRoundKey, SubBytes şi MixColumns sunt executate în aceeaşi perioadă de ceas, rezultatul acestor operaţii fiind stocat într-un registru. Totodată, simultan este executată operația KeyExpansion care calculează cheia temporară pentru runda curentă, contribuind astfel la „mascarea” puterii consumate. Puterea consumată de porţile logice ce îndeplinesc funcţia logică a operaţiei SubBytes este interdependentă de logica ce îndeplineşte operaţia MixColumns, mai mult, puterea consumată în timpul execuţiei operaţiei MixColumns este corelată cu puterea consumată de logica necesară stocării rezultatului în registru. Considerând observaţiile de mai sus, un calcul precis al coeficientului de corelaţie poate fi realizat doar de către proiectanţii circuitului digital criptografic, ce au acces la fişierul de configuraţie al porţilor logice sau la detaliile de amplasare ale circuitului (eng. „layout”), sau de către atacatorii care reușesc să înțeleagă cum este realizat circuitul atacat. Coeficientul de corelaţie, ce apare în atacurile bazate pe analiza consumului de putere este o funcţie de ( I ck , Pexp ) şi SNR, aceşti termeni fiind însă dificil de aproximat pentru un atacator. Apare astfel necesitatea unor simplificări: corelaţia dintre cheia presupusă şi Pexp este 1 ( ( I ck , Pexp ) 1 ); 32
toate trasele de interconexiune ale circuitului digital au aceeaşi capacitate de încărcare activitatea de schimbare a valorii logice (din 0 în 1 şi din 1 în 0) a semnalelor este independentă şi identic distribuită în circuitul digital.
3.6 Alternative de calculul pentru coeficientul de corelaţie Determinarea relaţiei dintre coloanele matricelor I şi T se poate realiza prin mai multe metode, ce vor fi prezentate în continuare. 3.6.1 Diferenţa mediilor Această metodă se bazează pe următoarea observaţie: atacatorul creează matricea binară I pornind de la ipoteza potrivit căreia valoarea consumului de putere pentru unele dintre valorile intermediare este diferită față de celelalte valori ale puterii consumate. Secvenţa binară de valori de 1 şi 0 din fiecare coloană a matricei I este o funcţie ce are ca variabilă de intrare blocul de date d şi cheia presupusă k i . Pentru a valida cheia presupusă k i , atacatorul poate împărţi matricea T în două seturi de rânduri în funcţie de indicele acestora adică în funcție de vectorul hi . Se calculează mediile pentru cele două seturi m0i' şi m1i' , iar dacă diferenţa dintre cele două valori este semnificativă, presupunerea făcută asupra k i este corectă. Formulele de calcul ale mediilor sunt următoarele:
m1i , j
1 n * hl ,i * tl , j , n1i l 1
(3.11)
m0i , j
1 n * (1 hl ,i ) * tl , j , n0i l 1
(3.12)
n
n1i hl ,i ,
(3.13)
l 1 n
n0,i (1 hl ,i ) .
(3.14)
l 1
3.6.2 Ponderea mediilor Aceasta este o metodă îmbunătăţită faţă de metoda anterioară întrucât ia în considerare şi dispersia dintre valorile mediilor. Diferenţa faţă de prima metodă constă în faptul că cele două medii sunt comparate în funcţie de distanţa probabilistică relativă şi nu prin scăderea celor două valori. 3.6.3 Verificarea probabilității apariției maximului Această metodă, propusă de Agrawal et. al [2] [35], propune extinderea matricei I cu o coloană adiţională iK 1 , ce conţine o secvenţă aleatoare de 0 şi 1, numită ipoteza nulă. În pasul numărul 5 al algoritmului de atac, bazat pe analiza diferenţială de putere, valorile presupuse ale cheii criptografice sunt comparate cu ipoteza nulă. Comparaţia se face utilizând ecuația: s0 i , j ri , j
s1i , j
((m1i , j m0i , j ) (m1K 1, j m0 K 1, j )) n0i n1i ln( ). s0 K 1, j s1K 1, j s0 K 1, j s1K 1, j n0 K 1 n1K 1 n0 K 1 n1K 1 2
33
(3.15)
3.7 Determinarea numărului necesar de măsurători a tiparului consumului de putere În cazul atacurilor de securitate de tip analiză diferențială de putere una din problemele fundamentale este determinarea numărului optim de curbe de consum care sunt necesare pentru execuția atacului. Un număr prea insuficient de curbe poate determina eșecul ADP așa cum un număr prea mare poate induce doar întârzieri datorate timpilor mari de calcul, informația adusă fiind însă redundantă. Se poate deduce faptul că dacă în rândul ck al matricei R există un maxim al coeficientului de corelație atunci a fost achiziționat un număr suficient de curbe de consum. Valorile coeficientului de corelație de pe rândul ck rckţ (rck ,1,..., rck , T ) sunt calculate în baza valorilor ipotetice ale cheii astfel încât o valoare ridicată a acestuia indică identificarea unei ipoteze corecte a cheii ipotetice. Totodată se poate presupune că numărul necesar de măsurători ale consumului de putere pentru identificarea unui maxim semnificativ pe rândul ck , de coeficientul ck ,ct . O regulă de aproximare, utilizabilă în practică, cu ajutorul căreia poate fi determinat numărul necesar de măsurători pentru executarea un atac tip ADP, specifică faptul că numărul necesar de curbe de consum corespunde numărului de măsurători necesare pentru diferenţierea cu o precizie de 0.0001, a coeficientului de corelaţie estimat ck ,ct de coeficientul de corelaţie estimat cu 0 . Astfel ecuația cu ajutorul căreia se poate determina numărul necesar de curbe de consum este: n 38 ln
z12 . 2 1 ck ,ct
(3.16)
1 ck ,ct
În practică, cele mai multe atacuri bazate pe analiza diferenţială de putere conduc la un coeficient de corelaţie ck ,ct 0.2 . În aceste cazuri se observă existența unei dependenţe pătratice, între numărul de măsurători necesare şi coeficientul de corelaţie ck ,ct . [16]
3.8 Concluzii Tehnica analizei diferențiale de putere prezentată pe parcursul acestui capitol, permite, prin utilizarea curbelor de consum alături de un set de ipoteze de atac, determinarea operațiilor și a datelor procesate de un circuit digital integrat. Dacă structura circuitului este cunoscută, respectiv dacă se cunoaște tipul circuitului (procesor de uz comun ce execută instrucțiuni sau circuit dedicat ce procesează în mod paralel) „munca” atacatorului este mult ușurată. Deoarece această tehnică permite detectarea informațiilor cu caracter secret procesate de circuitul digital analizat, aplicațiile criptografice, implementate fie ca aplicații software ce rulează pe circuite de uz general, fie ca și module pur hardware, respectiv digitale, sunt periclitate. Astfel este justificată din nou necesitatea protejării acestor circuite în fața atacurilor de securitate de tip analiză diferențială de putere. Pentru a putea executa un astfel de atac sunt necesare nu numai cunoașterea unui set de date de intrare sau de ieșire, din circuitul atacat, dar și înregistrarea detaliată a curbelor de consum ce descriu puterea absorbită de circuit pe parcursul executării operațiilor de interes. Totodată stabilirea ipotezelor de calcul, bazate în general pe ponderea sau distanța Hamming sunt vitale în executarea cu succes a unui atac de securitate de tip analiză diferențială de putere.
34
4. Modelarea Puterii Absorbite de Circuitele Digitale Integrate După cum a fost arătat, puterea absorbită de un circuit digital integrat, poate fi considerată suma unor puteri ce depind de operația executată, de datele procesate, de zgomotul electric datorat comutației circuitelor în sine și de consumul static datorat curenților de scăpare. Pentru a putea caracteriza consumul circuitelor digitale este necesară analiza principalelor componente ce conduc la variația puterii absorbite de circuit. Aceste componente sunt chiar cele ce procesează informația de interes astfel încât este necesară determinarea modului în care acestea absorb energia electrică. Totodată, pentru a putea efectua atacuri de securitate de tip analiză diferențială de putere, pe baza unor circuite simulate, este necesară determinarea tehnicilor de simulare existente alături de identificarea modului optim prin care datele ce rezultă în urma unor simulări pot fi utilizate drept „curbe de consum” în cadrul unei ADP.
4.1 Modele de putere Pentru a executa o analiză diferențială de putere este necesar ca puterea absorbită de circuitul analizat să fie proporțională cu datele procesate de acesta și/sau cu operațiile executate. Un circuit digital integrat este de regulă format din mai multe module care formează un sistem complex ce permite executarea unor operațiuni complexe (de exemplu un microcontroler are un număr foarte ridicat de module [39]). Totuși doar unele din aceste module absorb energie electrică care este proporțională cu datele procesate. Mai mult, în cazul circuitelor de uz comun (microcontrolere dotate cu un procesor clasic), modulele care procesează informația digitală sunt procesorul și memoriile (procesorul procesează efectiv informația în timp ce memoriile sunt utilizate pentru stocarea acesteia). Astfel, pe parcursul acestui sub-capitol vor fi analizate pe larg tiparele de consum ale memoriilor și ale procesoarelor. Nu vor fi analizate produse dedicate deoarece particularitățile acestora nu fac scopul acestei lucrări ci tiparele de consum pentru procesoare generice și memorii generice, tipare ce se păstrează indiferent de arhitectură, tehnologie sau complexitate. 4.1.1 Procesor Majoritatea sistemelor și a echipamentelor electronice din prezent înglobează un procesor dedicat pe care rulează programe software sau rutine înglobate (eng. „firmware”). Astfel o mare parte din puterea consumată de aceste sisteme este datorată procesorului sau procesoarelor conținute de ele. Majoritatea uneltelor software pentru analiza de putere a circuitelor pot fi folosite cu succes pentru partea fizica a implementării, însă nu pot fi utilizate pentru a determina consumul de putere al unui program software. Consumul de putere al unei aplicații software poate fi estimat folosind informații despre consum specifice procesorului pe care rulează precum și date legate de programul care se executa (acestea pot fi exacte sau aproximate folosind metode statistice - de exemplu nu se poate ști cu exactitate de cate ori se executa o instrucțiune, sau dacă anumite instrucțiuni de salt vor fi executate sau nu). Pentru a estima consumul de putere al unui procesor, trebuiesc avute în vedere sursele de consum ale acestuia precum și influenta diferitelor moduri de funcționare asupra caracteristicii de consum a acestuia. Curentul de scurgere (eng. „leakage current”) Curentul de scurgere este specific oricărui circuit (după cum va fi detaliat în capitolul 5), indiferent de tehnologia de fabricație a acestuia. În general producătorii încearcă să minimizeze acest curent, dar reducerea acestuia la 0 este practic imposibila. Curentul de scurgere nu este 35
dependent de activitatea circuitului, de frecventa de lucru, ci doar de temperatura și tensiunea de alimentare a circuitului. Acesta mai poate depinde de modul de funcționare al procesorului, existând implementări în care, în anumite moduri de lucru (de ex. somn – eng. „sleep”), se oprește alimentarea anumitor module interne. Perifericele active Puterea consumată de perifericele active nu depinde în general de instrucțiunile care se execută (de exemplu un periferic de temporizare, oscilatoare. etc.). Aceste periferice, au contribuția cea mai mare în modurile destinate funcționarii cu putere redusa. Modul decuplat (eng. „shutdown mode”) În acest mod este întrerupă alimentarea cu energie procesorul având un consum practic nul. Revenirea în modul de funcționare activ are loc la aplicarea tensiunii de alimentare sau a semnalului de reset. Modul așteptare (eng. „stanby / sleep mode”) În acest mod de funcționare circuitul este menținut alimentat, însă toate majoritatea semnalelor de ceas sunt oprite. Acest fapt reduce tranzițiile multor porți logice, reducându-se astfel consumul (consumul principal este dat, în acest mod de funcționare, de curentul de scurgere și de perifericele ramase active). Modul suspendat (eng. „halt mode”) În acest mod de funcționare circuitul este menținut alimentat, însă toate semnalele de ceas sunt oprite – temporar, până la sosirea unei întreruperi. Modul hibernare (eng. ”hibernate mode”) Acest mod este conceput pentru economisirea de energie atunci când se poate opri temporar activitatea procesorului. Astfel numai logica procesorului este ne-alimentata, rămânând alimentate memoriile de lucru (RAM). Conținutul memoriei ascunse (eng. „cache”) este salvat în memoria RAM înainte de intrarea în aceasta stare și „restaurat” la revenirea în starea activa. Mod de funcționare activ (eng. „run mode”) Acesta este modul uzual de funcționare al unui procesor. În acest mod, toate funcțiile, submodulele și perifericele sunt active. În acest mod de funcționare consumul de curent este maxim, caracteristica acestuia fiind dictată de tensiunea de alimentare, frecvența de lucru, activitatea perifericelor active, instrucțiunile executate și datele procesate. Energia consumată pentru execuția programului poate fi considerată suma energiilor consumate de fiecare instrucțiune în parte: k ,n
t
c c 1, j 1
Pi j , tc N ,
(4.1)
unde: tc - timpul de execuție al instrucțiunii; N - numărul de cicluri de ceas necesar execuției instrucțiunii; - perioada semnalului de ceas. Puterea totală consumată de fiecare instrucțiune care este executată în acest mod este suma puterilor dinamice, de scurtcircuit (tratate pe larg în capitolul 5) și de scurgere, descrise de relația: 2 Pi j CL VDD f I SC VDD I leakage VDD ,
(4.2)
unde: I SC - curentul de scurt circuit. Neglijabil pentru majoritatea celulelor logice din circuit (poate conta dacă exista tranzistori care comanda elemente de circuit care au capacitați electrice mari); - factor de activitate specific fiecărei instrucțiuni; 36
CL - capacitatea totala (implicata la schimbarea stărilor logice); VDD - tensiunea de alimentare; f - frecventa de operare; I leakage_ RUN _ MODE - curentul total de scurgere (poate deveni important odata cu cresterea temperaturii). Acești parametrii nu sunt prezenți totdeauna în foaia de catalog a producătorilor, ceea ce face ca aceste calcule să fie relativ dificile. Acești parametrii pot fi obținuți direct, prin măsurători experimentale sau indirect, pe baza unor grafice sau a altor informații despre consumul de putere oferite de producător. Consumul de energie pentru un scenariu dat este suma energiilor consumate de fiecare instrucțiune, fapt ilustrat grafic în Figura 4.1.
Figura 4.1 Consumurile de energie pentru diversele scenarii 4.1.2 Memorie În dispozitivele mobile şi calculatoare se folosesc pe scara largă memorii dinamice sincrone cu acces aleator (eng. „Synchronous Dynamic Random Access Memory” - SDRAM). Aceste memorii sunt organizate în bancuri, linii şi coloane. Un banc de memorie conţine elemente de memorie aranjate într-o structură matriceală şi un tampon (eng. buffer) de linie care memorează conţinutul liniei active. Memoria SDRAM are următoarele moduri de lucru: - Activ (eng. Active): citire, scriere, selecția unui banc de memorie; - Aşteptare (eng. StandBy), - Putere minimă (eng. Power-Down), - Reîmprospătare (eng. Refresh), - Preîncărcare (eng. Precharge). Accesele de citirea sau scrierea din memorie se fac în salve (serii de date). Înainte de accesul propriu-zis se iniţiază o comandă de activare urmată de comanda de scriere sau citire dorit. O memorie SDRAM are trei moduri de lucru: activ, aşteptare şi modul de putere minimă. Modelul de putere al memoriilor SDRAM Puterea consumată de o memorie SDRAM se poate determina ca o combinaţie a puterii statice, care apare în absenţa ceasului (CKE inactiv) şi puterea dinamică care se compune la rândul ei din puterea de: activare, scriere-citire, reîmprospătare şi puterea de intrare-ieşire la pinii interfeţei. Regimul de putere redusă (eng. „power-down”) Sunt posibile două regimuri de putere redusă: putere redusă cu bancurile în regim de 37
preîncărcare, pentru toate bancurile în stare de aşteptare (inactive) şi putere redusă cu bancurile activate, dacă o linie este activă în unul dintre banduri. Puterea în regim de aşteptare (eng. „standby”) Dacă toate bancurile de memorie sunt în regim de preîncărcare şi CKE este activ (în „1”) atunci memoria consumă puterea statică, care poate fi în regim de preîncărcare, sau în regim de activare . Puterea în regim de activare (eng. „activate”) Comanda de activare este utilizată pentru a deschide (sau activa) o linie dintr-un anumit banc pentru un acces ulterior. Aceasta linie rămâne activă (sau deschisă) pentru accese (de scriere sau citire) până la comanda de închidere a liniei respective (linia intră în regim de preîncărcare). Comanda de închidere a liniei trebuie folosită înainte de a putea deschide o altă linie din acelaşi banc de memorie. Comenzile de activare şi de închidere conduc la o activitate semnificativă a memoriei SDRAM. Curentul cerut de activare se determină pe baza curentului IDD0 din foaia de catalog. Puterea în regim de scriere sau citire (eng. „read / write”) Comanda de scriere sau citire este utilizată pentru a iniţia o succesiune de scrieri sau citiri în linia curentă (linia activată); puterile consumate respective se pot determina individual pentru ciclul de scriere sau de citire. Puterea de intrare-ieşire La o operaţie de citire o energie suplimentară este consumată deoarece datele scrise trebuie să modifice starea pinilor de date. Curentul necesar pentru a modifica starea acestor pini depinde de schema de circuit de terminaţie folosit. Puterea statică disipată la un pin de date depinde de tensiunea de ieşire şi curentul de ieşire. Această putere se multiplică cu numărul de pini şi cu raportul dintre numărul ciclurilor de citire faţă de numărul total de cicluri. Puterea dinamică se calculează de obicei la nivelul controlerului de memorie şi depinde de capacitatea văzută de ieşirea respectivă şi de gradul de activitate (numărul de comutaţii estimat raportat la numărul de cicluri de ceas). Puterea de reîmprospătare (eng. Refresh) Operaţia de reîmprospătare este necesară pentru a reţine datele în memoria SDRAM prin reîncărcarea condensatoarelor din celulele de memorie. Operaţia de reîmprospătare poate fi executată atunci când toate bancurile de memorie sunt în stare de pre-activare (aşteptare). În plus, puterea de reîmprospătare este ajustată în funcţie de rata de reîmprospătare folosită. Ajustarea puterii cu tensiunea şi frecvenţa Toate calculele de putere aferente parametrilor prezentaţi până acum se fac la tensiunea de alimentare maximă. Adesea, în practică, sistemele folosesc o tensiune mai apropiată de valoarea nominală ceea ce duce la modificarea valorilor calculate. Singura valoare care nu depinde direct de tensiunea de alimentare este puterea de intrare-ieşire. La circuitele digitale puterea depinde de pătratul tensiunii de alimentare. Ca urmare, scalarea la o tensiune de alimentare diferită se face cu o relaţie pătratică. Puterea totală consumată Puterea totală consumată de o memorie SDRAM pentru o aplicaţie dată se calculează prin însumarea componentelor calculate anterior.
4.2 Modele de simulare a puterii În timpul procesului de implementare al unui circuit digital se fac mai multe simulări pentru estimarea puterii consumate de acesta și implicit a performanţei acestuia. Astfel de simulări sunt extrem de importante pentru a se determina dacă circuitul digital poate funcţiona pe o perioadă îndelungată de timp şi pentru asigurarea unei bune securizări în cazul circuitelor digitale criptografice. Există mai multe tipuri de simulări ale consumului de putere: nivelul circuitului analogic, nivelul de porţi logice şi nivelul comportamental. 38
În atacurile privind securitatea circuitelor digitale bazate pe consumul de putere este foarte importantă corelarea valorilor consumului de putere cu corelarea valorilor datelor procesate de circuit. Sunt tot simulări ale consumului de putere al circuitului digital, însă trebuie menţionat că valorile absolute ale consumului de putere măsurat nu sunt relevante. Aceste simulări folosite de către atacatori sunt mult mai simple decât modelele descrise anterior deoarece aceştia au cunoştinţe limitate în ceea ce priveşte arhitectura circuitului digital criptografic. În această secţiune se vor descrie două modele de simulare folosite în atacurile privind securitatea circuitelor integrate: modelul distanţei şi al ponderii Hamming (eng. ”Hamming distance / weight”). 4.2.1 Nivelul circuitului analogic Simularea analogică a consumului de putere al unui circuit integrat oferă rezultatele cu cea mai mare acurateţe în comparaţie cu celelalte metode. Acest tip de simulare se bazează pe un fişier (eng. „netlist” – listă de noduri) în care sunt listaţi toţi tranzistorii şi modul în care aceştia sunt interconectaţi pentru realizarea funcţiei logice a circuitului digital. Acest fişier conţine în plus şi parametrii care apar în timpul procesului de execuţie fizică în Siliciu a circuitului integrat, cum ar fi: capacităţi parazite care apar între firele de interconexiune sau capacităţi parazite nedorite care apar dorită imperfecţiunilor procesului de fabricaţie. Dimensiunea acestor capacităţi parazite depinde în mare măsură de tehnologia folosită , pentru realizarea fizică a circuitului integrat. Numărul acestor capacităţi parazite este destul de mare în practică, fapt ce conduce la necesitatea unor simplificări în simulare, pentru a reduce gradul de complexitate al modelului de simulare pentru un circuit digital. Un exemplu de astfel de simplificare este modelarea tuturor capacităţilor parazite ale unei porţi logice ca o singură capacitate de ieşire a porţii, model cunoscut sub denumirea de modelul capacitaților echivalente (eng. „lumped model”). De altfel, tot acest model consideră că rezistenţele traseelor de interconexiune au valori neglijabile în raport cu rezistenţa dintre sursă și drena tranzistorului MOS. Considerând aceste simplificări, simularea consumului de putere bazată pe acest model nu poate descrie cu exactitate consumul instantaneu de putere al circuitului digital. Bineînţeles cu cât valorile capacităţilor parazite sunt redate cât mai aproape de cazul practic, cu atât rezultatele simulării vor fi mai aproape de realitate. Indiferent dacă fişierul cu configuraţia reţelei de tranzistori este supus sau nu unor simplificări, etapele de procesare în vederea simulării consumului de putere sunt aceleaşi. Pentru obţinerea rezultatelor simulării, simulatorul pentru circuite analogice primeşte ca intrare fişierul cu configuraţia reţelei de tranzistori MOS şi calculează valorile tensiunilor şi ale curenţilor ce apar în circuitul digital pe baza unor ecuaţii diferenţiale. Calculul computaţional al acestor ecuaţii diferenţiale necesită multe resurse, ceea ce îndeamnă ca acest tip de simulare să fie folosită doar pentru părţile critice ale circuitului digital şi nu pentru întreg ansamblul. Exemple de simulatoare analogice sunt: SPICE dezvoltat în cadrul Universităţii Berkely, California, Spectre dezvoltat de Cadence Design Systems, şi Nanosim de la Synopsys. SPICE este cel mai utilizat simulator, de aceea acest tip de simulare analogică este denumită și simulare SPICE. 4.2.2 Simularea la nivel logic Acest tip de simulare, la nivelul porţilor logice, necesită mai puţine resurse computaţionale(timp, memorie) în comparaţie cu simularea analogică. Fişierul utilizat în această simulare conţine timpii specifici porţilor logice (timpi de propagare, stabilizare, menținere) şi modul de interconectare al acestora, în vederea implementării funcţiei logice a circuitului digital. Opţional pot fi incluse informaţii despre timpul de propagare prin porţi sau pe traseele de 39
interconexiune, sau informaţii despre valorile timpilor de tranziţie din 0 în 1 sau din 1 în 0 ale semnalelor circuitului. Procesul prin care sunt introduse valorile timpilor de propagare se numeşte adnotare inversa (eng. „back annotation”). Simularea realizată la nivelul porţilor logice are doi paşi. În primul pas, sunt simulate tranziţiile semnalelor ce apar în circuitul digital. Rezultatul este un fişier în care este descris pentru fiecare celulă ce tranziţii apar şi la ce momente de timp. Precizia valorile din acest fişier depinde de valorile timpilor de propagare, cu cât aceştia se apropie mai mult de valorile reale, din practică, cu atât precizia este mai bună. Cel de-al doilea pas al simulării consumului de putere este realizarea unei mapări a tranzițiilor logice în curbe de putere pe baza valorilor obţinute la pasul anterior. Pentru realizarea acestei mapări sunt necesare modele prin care valorile timpilor corespunzători tranzițiilor logice sunt corelate cu consumul de putere. Astfel de modele sunt incluse în bibliotecile de porţi logice. Există şi un model generic folosit pentru translatarea valorilor în consum de putere, numit modelul distanţă Hamming. Acest model este mai puţin precis decât modelele oferite de bibliotecile cu celule standard.
4.2.2.1 Modelul bazat pe distanţa Hamming Acest model se bazează pe contorizarea tranziţiilor intre stările logice care apar în circuitul digital într-un anumit interval de timp. Rezultatul contorizării este folosit pentru descrierea consumului de putere din acel interval de timp. Împărţind întreaga simulare a circuitului digital în intervale de simulare mai mici, se poate genera o hartă de aproximare a consumului de putere, ce conţine numărul de tranziţii corespunzător fiecărui interval şi nu valoarea puterii consumate în Watt. În cazul acestui model se pleacă de la următoarele două premise: tranziţiile semnalului din 0 în 1 sau din 1 în 0 conduc la aceeaşi putere consumată; tranziţiile din 0 în 0 şi din 1 în 1 conduc şi ele la acelaşi consum de putere. În acest model se consideră ca fiecare poarta logică contribuie egal la consumul de putere şi se ignoră complet consumul static de putere al porţii logice. Datorită acestui mod simplu de aproximare a consumului de putere, acest model este foarte des utilizat în practică. Acest model a fost discutat anterior în contextul simulării consumului de putere al unui circuit digital. Aşa cum a fost menţionat, modelul foloseşte un fişier ce conţine informaţii despre configuraţia porţilor logice ce alcătuiesc circuitul digital. Atacatorii nu au acces la astfel de fişiere pentru a realiza o simulare a consumului de putere, însă în practica aceştia deţin informaţii cheie referitoare la structura internă a circuitului digital şi pentru unele părţi ale circuitului integrat pot realiza o simulare a consumului de putere. De exemplu dacă circuitul asupra căruia se realizează un atac privind securitatea este un microprocesor, în acest caz atacatorul cunoaște părțile componente ale acestuia: setul de regiştrii de uz general, memoria, unitatea aritmetică şi logică, magistrala de date, etc. iar aceste componente au proprietăţi comune cunoscute publicului larg. Acest model se foloseşte în general pentru calculul consumului de putere în cazul regiştrilor sau al magistralelor de date. Despre magistrala de date se ştie că este conectată la multiple componente şi că este în general lungă, astfel capacitatea de încărcare a magistralei este mare şi deci contribuie semnificativ la consumul total de putere. Se mai cunoaşte de altfel că valoarea capacităţilor interconexiunilor individuale care alcătuiesc magistrala sunt identice. Având aceste observaţii se poate afirma că modelul de simulare bazat pe distanţa Hamming este potrivit pentru calculul consumului de putere. Pentru implementarea unui atac privind securitatea, se pot atribui valorile datelor, care traversează magistrala, unor valori ale consumului de putere. Puterea consumată de v circuitul digital la schimbarea a două valori a datelor de pe magistrală 0 şi v1 poate fi aproximată
v cu distanţa Hamming dintre valorile celor două date 0 şi v1 . Puterea consumată la utilizarea regiştrilor de uz general poate fi de asemenea, aproximată 40
prin modelul de simulare bazat pe distanţa Hamming. Regiştrii sunt activaţi de un semnal de ceas, aşadar ei îşi schimbă valorile o singură dată într-o perioadă de ceas. Un atacator poate simula consumul de putere al unui registru calculând distanţa Hamming a valorilor stocate în perioade consecutive ale semnalului de ceas. Pentru a aplicat acest model de simulare al consumului de putere pentru magistralele de date sau pentru setul de regiştrii, atacatorul trebuie să deţină informaţii despre valorile datelor procesate.
4.2.2.2 Modelul ponderilor Hamming Acest model este mai simplu decât modelul distanţă Hamming şi este folosit de către atacator în cazul în care acesta nu deţine deloc informaţii despre structura internă a circuitului digital şi nici informaţii despre valorile datelor ce utilizează anumite părţi ale circuitului digital. În acest model de atac privind securitatea se consideră că puterea consumată este proporțională cu numărul de biţi de 1 din valoarea datei procesate(de ex: valoarea stocată în regiştrii sau transferată pe magistrală). Valorile datelor procesate înainte sau după această dată nu sunt cunoscute, ca în cazul modelului anterior. Aşadar acest model nu este potrivit pentru circuitele digitale realizate în tehnologie CMOS, unde puterea consumată este corelată cu numărul de tranziţii care apar în circuit şi nu cu valorile de 0 sau 1 din datele procesate. Practica a demonstrat totuşi, că ponderea Hamming a unei valori nu este complet decorelată cu puterea consumată în timpul procesării acestei valori. În continuare se va demonstra acest aspect, prin exemplificare unui caz concret. Se presupune apriori că datele procesate de circuitul digital care se doreşte a fi atacat sunt: v0 , v1 , v 2 . În toate scenariile se consideră simularea puterii consumate de circuitul digital pentru procesarea datei v1 fără a se cunoaşte valorile datelor v 0 , v 2 . Valoarea datei v1 este utilizată în tranziţiile v0 v1 , v1 v 2 . În continuare tranziţia de interes este
v0 v1 , însă toate consideraţiile făcute pentru această tranziţie sunt valabile şi pentru cea de-a doua tranziţie. Primul scenariu este cel în care biţii valorii v 0 sunt egali şi constanţi. Un exemplu ar fi o magistrală pe n biţi care procesează valoarea v0 0 sau v0 1 . În acest caz valoarea pentru consumul de putere, obţinută în cazul modelului distanţă Hamming este identică cu valoarea pentru consumul de putere, obţinută în cazul modelului pondere Hamming şi valoarea este proporţională cu v 0 . Al doilea scenariu este cel în care biţii valorii v 0 sunt constanţi. În acest caz nu se mai pot face observaţii ca cele din scenariul anterior. Însă dacă se consideră un singur bit al tranziţiei v0 v1 , puterea consumată este proporţională(invers sau direct – depinde de valoarea bitului) cu valoarea bitului. Pentru al treilea scenariu se consideră că biţii valorii v 0 au o distributivitate uniformă şi sunt independenți de biţii valorii v1 . În această situaţie valorile pentru consumul de putere obţinute în urma simulării cu cele două metode nu sunt corelate cu valoarea datelor. În practică există un număr mult mai mare de posibilităţi, însă atacatorii recurg la modelul de simulare bazat pe ponderi Hamming doar în cazul în care modelul de simulare distanţa Hamming nu oferă rezultate satisfăcătoare. 4.2.2.3 Modelul comportamental al simulării consumului de putere Modelul comportamental al simulării consumului de putere se bazează pe o descriere de nivel înalt a circuitului digital, este mai rapidă, însă rezultatele obţinute sunt mai puţin precise decât în celelalte cazuri. O descriere de nivel înalt a circuitului conţine componentele majore ale acestuia: microprocesoare, memorii, module hardware dedicate, etc. şi modele al consumului de 41
putere pentru aceste componente. Aceste modele pentru consumul de putere sunt utilizate pentru a translata activităţi ale componentelor, cum ar fi procesul de calcul computaţional al datelor, execuţia instrucţiunilor în valori reale ale puterii consumate. Acest model de simulare al puterii consumate este în general utilizat atunci când se doreşte calculul unei medii a puterii consumate de un circuit digital complex. În atacurile privind securitatea circuitelor digitale, astfel de modele sunt de interes, întrucât pot oferi informaţii despre dependenţa datelor sau despre operaţiile aritmetice executate. Exemple de astfel de simulatoare sunt simulatoarele bazate pe setul de instrucţiuni al microprocesoarelor: SimplePower[IKV01] şi JouleTrack[SC01].
4.2.2.4 Modelul comportamental al simulării consumului de putere Modelul comportamental al simulării consumului de putere se bazează pe o descriere de nivel înalt a circuitului digital, este mai rapidă, însă rezultatele obţinute sunt mai puţin precise decât în celelalte cazuri. O descriere de nivel înalt a circuitului conţine componentele majore ale acestuia: microprocesoare, memorii, module hardware dedicate, etc. şi modele al consumului de putere pentru aceste componente. Aceste modele pentru consumul de putere sunt utilizate pentru a translata activităţi ale componentelor, cum ar fi procesul de calcul computaţional al datelor, execuţia instrucţiunilor în valori reale ale puterii consumate. Acest model de simulare al puterii consumate este în general utilizat atunci când se doreşte calculul unei medii a puterii consumate de un circuit digital complex. În atacurile privind securitatea circuitelor digitale, astfel de modele sunt de interes, întrucât pot oferi informaţii despre dependenţa datelor sau despre operaţiile aritmetice executate. Exemple de astfel de simulatoare sunt simulatoarele bazate pe setul de instrucţiuni al microprocesoarelor: SimplePower[9] şi JouleTrack[32]. 4.2.3 Comparaţie Simulările la nivel de tranzistori şi cele la nivel de porţi logice oferă informaţii despre consumul de putere al circuitelor digitale cu scop criptografic, suficiente pentru a face declaraţii cu privire la vulnerabilităţile acestora în faţa atacurilor privind securitatea. Aşadar aceste modele sunt utilizate cu precădere şi de către proiectanţii de circuite digitale în timpul procesului de implementare. În Tabelul 4.1sunt sintetizate proprietăţile cele mai importante ale celor două modele de simulare. Nivel de simulare Analogic Logic Model de putere Diferite ecuații Model de putere Cunoștințe necesare Netlist (nivel de Celulă (nivel de despre circuit schemă electrică) poartă logică) Resurse necesare Foarte ridicat Mediu Tranzițiile considerate Individuale, pentru Identice pentru toate ale semnalelor fiecare tranzistor porțile logice din circuit Hazarduri Da Da Rezultatul simulărilor Puterea absorbită în Număr de tranziții Watt Tabelul 4.1 Diferențele între diversele metode de simulare
4.3 Concluzii Tehnicile de modelare a puterii, prezentate pe parcursul acestui capitol, ajută la înțelegerea fenomenelor ce duc la absorbția de putere, fenomen ce este exploatat de atacurile de securitate de 42
tip analiză diferențială de putere. Pentru ca analiza diferențială de putere să poată fi efectuată cu succes, este necesar ca puterea măsurată în exterior să fie proporțională cu datele, respectiv cu operațiile executate de circuitul analizat (după cum a fost arătat și în capitolul 3). Totuși nu toate componentele din interiorul circuitului digital generează un consum de putere ce poate fi exploatat de un atac de securitate de tip ADP. Cele mai importante module identificate sunt, în cazul microcontrolerelor, procesorul și memoria. Astfel, aceste două componente au fost analizate, plecând de la principalele stări funcționale, specificate în foile de catalog aferente. Au fost tratate circuite generice, fără accente pe un produs anume – scopul fiind determinarea caracteristicilor comune ale acestor două componente ce se regăsesc în fiecare circuit digital integrat. Totodată au fost prezentate metodele de simulare, care permit determinarea matematică a consumului unui circuit digital, înainte ca acesta să fie fabricat fizic. Scopul simulărilor este determinarea eventualelor breșe de securitate, încă din faza de proiectare.
43
5. Măsurători Experimentale Unul dintre principalele criteriile de performanţă ale circuitelor digitale îl reprezintă consumul de putere. Pentru putea proteja un circuit digital integrat ce înglobează funcții criptografice trebuie mai întâi determinați factorii care permit și influențează atacurile de securitate bazate pe analiza consumului de putere absorbită de circuit. Pe parcursul acestui capitol va fi analizat tiparul de consum al circuitelor digitale integrate, utilizate în aplicații criptografice. Datorită largii răspândiri accentul analizei va fi pus pe circuitele integrate de tip CMOS. Vor fi prezentate totodată metode practice de achiziție a curbelor de consum pe baza cărora pot fi executate atacuri de securitate de tip analiză de putere, cu scopul identificării eventualelor breșe de securitate.
5.1 Consumul de putere în cazul circuitelor digitale CMOS Consumul total de putere al unui circuit digital integrat este dat de suma tuturor puterilor consumate de fiecare componentă a circuitului digital în parte. Deoarece circuitele digitale integrate sunt realizate prin utilizarea de porți logice, aceasta din urmă este considerată cea mai mică unitate logică, funcțională, a unui astfel de circuit. Aşadar, consumul total de putere al unui circuit depinde de dimensiunea acestuia, adică de: numărul de porți logice ce compun circuitul; interconexiunile dintre respectivele porți logice; structura internă a unei porți logice. Pentru utilizarea unui circuit digital implementat în tehnologia CMOS este necesară o singură sursă de alimentare (VDD) Fig. 3.1.
Figura 5.1 Alimentarea circuitelor CMOS Porțile logice care intră în componenţa circuitului integrat, implementează funcționalitatea dorită de inginerii proiectanți. Semnalele de intrare ce reflectă textul în clar, în cazul de față, sunt procesate de circuit în vederea obţinerii semnalelor de ieşire, având loc astfel un consum de curent, generat de sursa de alimentare. Pentru a putea definii puterea consumată de circuit, se consideră curentul instantaneu i DD (t ) , absorbit de circuitul CMOS, la momentul de timp t astfel încât puterea instantanee consumată este pcir (t ) . Astfel, puterea medie Pcir consumată de circuitul integrat în perioada de timp T , poate fi calculată:
Pcir
1 T V pcir (t )dt DD 0 T T
T
0
iDD (t )dt
(5.1)
Caracteristică tehnologiei CMOS este implementarea porților logice utilizând tranzistori MOS complementari. Pentru determinarea factorilor ce conduc la absorbția de curent electric se consideră cea mai simplă poartă logică implementată în tehnologia CMOS – inversorul. Analiza 44
consumului de putere al porții de tip inversor, implementată în tehnologie CMOS, poate fi extrapolată şi în cazul consumului de putere al altor porți CMOS mai complexe, întrucât și acestea sunt realizate prin conectarea, în configuraţii particulare, a unei reţele de tranzistori complementari. Inversorul este considerat cea mai simplă poartă logică deoarece este realizat din doar doi tranzistori complementari, notați cu P, respectiv N, în Figura 5.2.
Figura 5.2 Inversorul CMOS Puterea consumată de poarta logică tip inversor poate fi împărţită în două componente: puterea statică Pstat şi puterea dinamică consumată Pdyn . Puterea statică este disipată în situaţia în care circuitul inversor este într-o stare stabilă. Puterea dinamică este consumată în momentul comutării circuitului, când valoarea logică a unui semnal intern se modifică. 5.1.1 Puterea statică Poarta logică implementată în tehnologie CMOS are o structură internă care nu permite ca reţelele de tranzistori N şi P să fie în conducţie în acelaşi moment de timp, chiar dacă semnalele de comandă au valoare constantă. Astfel, în cazul inversorului din Figura 5.2: tranzistorul P este în conducţie iar tranzistorul N este blocat dacă intrarea de comandă a are valoarea constantă 0 și tranzistorul P este blocat iar tranzistorul N este deschis dacă intrarea a are valoarea constantă 1. Se constată că în oricare dintre cele două stări, cel puţin unul dintre cei doi tranzistori este blocat. Curentul absorbit pe parcursul stărilor stabile I leak este foarte mic având valori de ordinul
1012[ Ampere] [24]. Puterea statică consumată poate fi calculată cu ajutorul ecuației (5.2). Pstat I leak *VDD
(5.2)
Puterea statică consumată a circuitelor integrate, implementate în tehnologie CMOS, poate fi considerată practic nulă, valoarea acesteia fiind extrem de redusă, pentru tehnologiile mai vechi. În cazul tehnologiilor noi puterea statică reprezintă însă o componentă semnificativă a consumului măsurat motiv pentru care este luată în considerare în cadrul analizei de putere. 5.1.2 Puterea dinamică Consumul dinamic de putere apare atunci când tranzistorii trec dintr-o stare în alta, respectiv când semnalele externe (vizibile în exterior) și interne porților logice își schimbă starea logică. În cele ce urmează, puterea consumată datorită tranzițiilor semnalelor interne este neglijată, deoarece puterea consumată ca urmare a tranziţiilor semnalelor de ieşire are o valoare 45
semnificativ mai mare. La un anumit moment de timp, un semnal de ieşire al unei porţi logice CMOS poate efectua una dintre cele 4 tranziţii din Tabelul 5.1. În primul și ultimul caz, poarta logică absoarbe doar putere statică deoarece tranzistorii nu își schimbă starea. Dacă are loc o tranziție 0 1 sau 1 0, pe lângă puterea statică, poarta logică absoarbe și putere dinamică în timpul tranzițiilor logice. Valorile puterilor consumate P00 , P11 , P01 şi P10 depind puternic de structura internă a porţii logice și de procesul tehnologic de implementare, dar în general, se poate considera că:
P00 P11 P01, P10 .
(5.3)
În oricare din cele două situaţii, când în interiorul circuitului ce formează poarta logică, au loc tranziții, puterea consumată în regim dinamic este deci dependentă de date (de intrările porții logice). Tranziție logică Putere absorbită Tipul puterii absorbite 00
P00
Statică
01
P01
Statică și dinamică
10
P10
Statică și dinamică
11
P11
Statică
Tabelul 5.1 Tranzițiile unui circuit CMOS și puterea consumată Puterea dinamică consumată în cazul circuitelor implementate în tehnologie CMOS reprezintă cea mai mare parte din consumul total de putere. În regim dinamic, pe fiecare front de comutaţie creşte consumul de putere, din două cauze: apare necesitatea încărcării sau descărcării capacităţilor parazite de la ieşirea circuitului şi eventual a capacităţii de sarcină; pentru o foarte scurtă perioadă de timp ambele tranzistoare MOS complementare se află în regim de conducţie. Astfel, în cele ce urmează, va fi analizată în detaliu fiecare cauză ce duce la absorbția de curent electric de către poarta logică.
5.1.2.1 Curentul de încărcare În cazul tranziţiilor semnalului de ieşire, poarta logică implementată în tehnologie CMOS absoarbe un curent de la sursa de alimentare, necesar încărcării capacităţii de ieşire C L . Valoarea capacității C L este formată din suma capacităţilor de la intrare a circuitelor comandate de semnalul de ieşire şi din capacitatea traselor de interconexiune cu celelalte porți logice. Valoarea acestei capacităţi depinde de proprietăţile fizice ale tehnologiei utilizate, de lungimea traselor de interconexiune cu celelalte porți logice, precum şi de numărul de celule comandate. Valorile aproximative ale C L se găsesc în intervalul 10 15 [ Farad ] . În această lucrare se consideră o singură capacitate echivalentă C L care însumează toate capacitățile enumerate anterior. Consumul mediu de putere al unei porți logice Pchrg , datorat curentului de încărcare al capacității C L , poate fi calculată cu ajutorul ecuației:
Pchrg unde:
1 T 2 pchrg (t )dt f CL VDD , T 0
(5.4)
pchrg (t ) este puterea instantanee consumată la momentul de timp t ;
46
f este frecvenţa de comutație (a ceasului de sistem); este factorul de activitate al celulei logice. Factorul de activitate corespunde unei medii a numărului de tranziţii 0 1 ce apar la ieşirea porții logice. De exemplu, dacă ieşirea unei celule îşi schimbă valoarea din 0 în 1 la fiecare tact al ceasului de sistem, atunci factorul de activitate este egal cu 1. Din ecuația (5.4) se poate observa că puterea consumată Pchrg este proporţională cu pătratul
valorii tensiunii de alimentare V DD . Astfel, pentru o tehnologie dată, cea mai eficientă metodă de reducere a consumului de putere este micșorarea tensiunii de alimentare.
5.1.2.2 Curentul de scurt circuit Cel de-al doilea motiv pentru care se constată o creștere a consumului dinamic de putere al unei porți logice implementate în tehnologie CMOS este apariţia unui curent de scurt-circuit. Acest curent apare datorită faptului că pentru o foarte scurtă perioadă de timp ambele tranzistoare MOS complementare se află în regim de conducţie. Acest lucru se întâmplă pentru tranziţiile semnalului de intrare din 0 în 1 şi din 1 în 0. P Consumul mediu de putere sc , al unei porți logice, datorat curentului de scurt-circuit întro perioadă de timp T, poate fi calculat cu ajutorul ecuației:
Psc
1 T psc (t )dt * f *VDD * I peak * t sc , T o
(5.5)
unde: psc (t ) este putere instantanee, consumată la momentul de timp t , I peak este valoarea maximă a curentului de scurt circuit,
t sc este perioada de timp în care ambele tranzistoare MOS sunt deschise.
5.1.2.3 Simularea consumului dinamic de putere Pentru evidențierea consumului de putere cauzat de un circuit inversor implementat în tehnologie CMOS a fost realizată simularea acestuia (Figura 5.3) utilizând programul LTspice [48], produs de compania Linear Technology. Parametrii utilizați pentru simulare au fost [3]: VDD 3.3V ,
CL 1015 F , Pgatewidth 50m . Pentru tranziția semnalelor de intrare, respectiv ieșire, ale unui inversor implementat în tehnologie CMOS se poate observa variația curentului i DD (t ) (Figura 5.4 și Figura 5.5), absorbit de acesta. În Figura 5.5 maximul curentului absorbit este datorat curentului de scurt-circuit, deoarece în acest moment capacitatea C L se descarcă, deci nu absoarbe energie. Acest consum este caracteristic tranziției semnalului de ieșire, de la 1 la 0. În Figura 5.4 maximul curentului absorbit este caracteristic tranziției semnalului de ieșire de la 0 la 1. În acest caz curentul absorbit este mai mare deoarece capacitatea C L se încarcă, circuitul absorbind deci un curent mai mare.
47
Figura 5.3 Modelul unui inversor implementat în tehnologia CMOS (50µm)
Figura 5.4 Variația curentului iDD pentru o tranziție, a semnalului de ieșire, de la 0 la 1
Figura 5.5 Variația curentului iDD pentru o tranziție, a semnalului de ieșire, de la 1 la 0 5.1.3 Hazarduri Un circuit digital este realizat dintr-un număr ridicat porţi logice care sunt conectate între ele astfel încât semnalul de ieşire al unei porţi logice reprezintă semnalul de intrare al altei porţi logice. Se creează astfel un circuit combinaţional pe mai multe nivele. O observaţie importantă în cazul acestor circuite logice combinaţionale este faptul că semnalele nu ajung întotdeauna simultan la intrările unei porţi logice. Acest fenomen poate fi explicat prin două fenomene. 48
Primul fenomen este cel de propagare a semnalelor prin porțile logice sau de la o poartă la alta. Cel de-al doilea motiv este datorat faptului ca o poartă logică poate primii pe intrare semnale provenite de pe nivele logice diferite. Timpii diferiţi de sosire ai semnalelor la intrările unei porţi logice conduc la apariţia unor stări „temporare” ale semnalului de ieşire al porţii. O astfel de stare temporară a semnalului de ieşire este denumit hazard logic combinaţional [24]. În timpul apariţiei unui hazard logic combinaţional, semnalul de ieşire al porţii logice nu atinge nivelul de tensiune corespunzător valorii logice de 0 sau 1, ducând astfel la apariţia unei valori temporare. Efectul este apariţia unui puls de tensiune, pentru o perioadă scurtă de timp. Motivul generării acestui comportament este comutarea întârziată a unui semnal de intrare, datorită motivelor enumerate mai sus, în timpul tranziţiei semnalului de ieşire. Pentru exemplificare se consideră un circuit combinaţional simplu format dintr-o poartă logică NAND şi un INVERSOR ca în Figura 5.6.
Figura 5.6 Circuit combinațional realizat dintr-o poarta logică NAND și un inversor
Figura 5.7 Hazardul combinațional al unui circuit format dintr-o poartă logica NAND și un inversor Se consideră cazul în care cele două intrări ale circuitului a şi b comută de la 0 la 1. Pentru simplificare , timpul de propagare pe firele de interconexiune se consideră nul iar timpii de propagare prin poarta NAND şi poarta inversor sunt t prop, NAND şi t prop, INV . După cum se poate observa pe formele de undă prezentate în Figura 5.7, pe ieşirea d a circuitului digital apare un puls activ în 0. Datorită timpului de propagare prin inversor t prop, INV , semnalul de ieșire din poarta NAND nu rămâne stabil în starea logică 1 apărând deci fenomenul de hazard combinațional. Durata de timp cât semnalul d este în starea logică 0 depinde deci de întârzierea t prop, INV cu care apare semnalul c la intrarea porții NAND.
5.2 Problematica măsurătorilor de curent În acest capitol se prezintă diferite tehnici de măsurare a consumului circuitelor electronice. Măsurarea acestui consum este folosită pentru analiza diferențială de putere. De acuitatea acestei măsurări depinde succesul analizei diferențiale de putere folosite pentru măsurarea activității din interiorul circuitelor digitale și, indirect, expunerea unor informații secrete disponibile doar în interiorul circuitului în cauză. 49
5.2.1 Clasificarea metodelor de măsurare Metodele de măsurare, în vederea realizării analizei diferențiale de putere, pot fi clasificate după multe criterii, după cum se poate observa în Tabelul 5.2. Criteriul Caracteristicile metodei de testare Terminologia Când se face măsurarea?
În paralel cu funcţionarea normală
Măsurarea în funcţionare (on-line) – în condiții de laborator, dacă se fac diferite teste și caracterizări ale circuitului
Ca o activitate separată
Testare off-line – în condiții de laborator, strict pentru ADP
Unde este sursa de date?
În interiorul circuitului
De exemplu pentru autotestare
Aplicată din exterior (de tester / Cazul cel mai frecvent atacator
Care este obiectul fizic supus măsurătorilor?
Circuit integrat
Măsurare la nivel de componentă
Circuit imprimat
Măsurare la nivel de placă
Cum sunt produşi stimulii (datele de intrare)?
Extraşi din memorie
Execuție de atac cu predefiniți/ memoraţi
Generaţi în timpul testului
În general experimental, dacă sistemul permite acest lucru
Aplicată din exterior
Cum sunt aplicaţi stimulii? Cu ce viteză sunt aplicaţi stimulii?
Cine verifică rezultatele?
Măsurare la nivel de sistem
Sistem
vectori
Cazul cel mai frecvent
Într-o ordine predefinită
Se efectuează maturatori succesive cu aceeași stimuli sau cu o succesiune de stimuli.
În raport de rezultatele obţinute
Mult mai lent decât normal
Măsurători adaptive, dacă se constată că anumiți stimuli reduc timpul sau complexitatea atacului Dacă sistemul permite funcționarea la frecvențe mai joase (putându-se face achiziții la viteze mai mici, cu aparatura accesibila)
La viteză normală
Cazul cel mai întâlnit
Chiar circuitul măsurat
Dacă sunt implementate mecanisme de protecție prin nivelarea consumului Cazul cel mai întâlnit, rezultatele sunt digitalizate și prelucrate ulterior achiziției
Un tester / atacator extern
Tabelul 5.2 Clasificarea metodelor de măsurare 50
5.2.2 Metode specifice măsurării consumului curentului absorbit de circuitul analizat Măsurarea curentului absorbit are la bază tehnica gradării şi presupune accesul la punctele de conexiune ale componentei măsurate și ale componentelor din jurul acesteia. Scopul gradării este reducerea (teoretic anularea) scurgerilor de curent prin traseele circuitului de măsurat, conectate la punctul de măsură. Gardarea se realizează în următoarele condiţii: 1. se conectează temporar la masă (sau la terminalul de gardă – un punct de joasa impedanţă cu tensiunea fixată) toate traseele de circuit din jurul componentei testate – dacă acest lucru este posibil funcțional și nu afectează acele părți din interiorul circuitului care sunt relevante pentru analiza diferențiala de putere; 2. se utilizează un amplificator operaţional (AO) în circuitul de măsură – în special dacă impedanța instrumentului de achiziție nu este suficient de ridicata. 5.2.3 Reducerea efectelor surselor de perturbaţii Zgomotul de la reţeaua de alimentare cu energie electrică (de curent alternativ) reprezintă interferenţa cu frecvenţa cea mai redusă. La frecvenţe mai ridicate apare zgomotul produs de calculatoare aceasta incluzând şi monitoarele video, reţele locale de comunicaţii, imprimantele şi alte periferice. Acestea pot altera semnalul de măsurat, mai ales dacă sunt conectate la echipamentul de măsurare. O altă sursă de zgomote este chiar circuitul analizat. Sursele în comutaţie şi circuitele digitale pot produce semnale care nu perturbă funcţionarea circuitului dar pot perturba funcţionarea sistemului de măsură utilizat pentru analiza diferențiala de putere. Compensarea zgomotului de reţea Principala metodă de compensare a zgomotului de la reţeaua de alimentare cu energie electrică în cazul sistemelor de măsură cu o rată de măsurare mică sau medie este fixarea timpului de integrare la convertoarele analog digitale (eng. "analog to digital converter") la un număr întreg de perioade ale frecvenţei reţelei de alimentare. Aceasta îmbunătăţeşte raportul semnal-zgomot cu mai mult de 40dB.
5.2.3.1 Compensarea deviaţiei de curent continuu Modificarea valorii de curent continuu a tensiunii poate să apară datorită tensiunii de contact care apare prin conectarea împreună a două metale diferite în conectoare, legături sau la vârfurile de probă. Această deviaţie poate să apară şi prin efectul electrochimic datorat contaminării (chiar reduse) a contactelor. Deviaţiile de curent continuu de valori mici se pot compensa foarte uşor dacă echipamentul de măsură suportă compensarea de ofset. 5.2.4 Gruparea semnalelor după compatibilitate Dacă sistemul de achiziție folosește multiplexarea analogică a semnalelor de măsurat, la stabilirea setului de semnale de măsură trebuie evitată conectarea semnalelor de amplitudine foarte diferită pe canale alăturate ale multiplexorului deoarece se produce degradarea semnalului de valoare mică datorită diafoniei între canalele alăturate. Astfel, semnalele de valori apropiate trebuiesc grupate împreună. În cazuri extreme anumite canale ale multiplexorului nu se folosesc pentru a obţine o izolare mai bună a semnalelor, iar în alte situaţii se va analiza posibilitatea punerii la masă a unor semnale ale multiplexorului pentru a creşte efectul de ecranare. Din punct de vedere al secvenţei în timp trebuie evitată măsurarea unui semnal de amplitudine mică imediat după un semnal de amplitudine mare, în special în curent continuu. Echipamentul de măsură are la intrare o capacitate (compusă din capacitatea de intrare a instrumentului, a cablurilor de legătură şi a cablajului imprimat) care trebuie descărcată la 51
scăderea amplitudinii semnalului de măsurat. Uneori apare şi fenomenul de absorbţie dielectrică, datorită căruia condensatorul se comportă ca o baterie.
5.3 Metode de masurare a curentului În vederea efectuarii ADP Elementul central al analizei diferențiale de putere îl reprezintă consumul de curent electric al circuitului analizat. Consumul acestui circuit depinde de activitatea din interiorul acestuia (tranzițiile stărilor logice ale elementelor secvențiale şi combinaţionale). Aceste tranziții se reflecta în mici variații ale curentului absorbit de circuit. Astfel, măsurarea cu foarte mare precizie a variațiilor curentului absorbit, oferă informații valoroase despre procesarea datelor în interiorul circuitului analizat. Pentru a avea o mare acuratețe a acestor măsurători este esențial ca: rezoluția cu care se face achiziția să fie suficient de mare (pentru a „capta” variații cu durate egale cu durata unui ciclu de ceas, de exemplu); variația curentului absorbit produsă de alți factori decât tranzițiile logicii din interiorul circuitului analizat (de exemplu zgomotul produs de sursele de alimentare) să fie reduse la minimul posibil. Pentru îndeplinirea acestor condiții există mai multe topologii de scheme de măsurare şi filtrare a zgomotului electric. Pentru măsurarea curentului absorbit, se pot folosi două metode: măsurători directe şi măsurători indirecte. Măsurătorile directe presupun plasarea unei spire în jurul conductorului parcurs de curentul care se dorește a fi monitorizat. Deși aceasta metoda este „ne-invaziva”, fiind aparent mai simplă, ea este folosită pentru curenți mari, de ordinul zecilor sau miilor de amperi. Aceasta metodă nu este potrivita pentru măsurarea de curenți foarte mici absorbiți de circuite integrate digitale sau de sisteme înglobate. Măsurarea directă de curent presupune plasarea unui rezistor în serie cu alimentarea circuitului măsurat. Căderea de tensiune pe acest rezistor serie este direct proporționala cu curentul care îl parcurge. Rezistorul pentru măsurarea curentului absorbit, poate fi plasat în serie cu tensiunea sursei de alimentare („rezistor în alimentare”) sau în serie cu masa circuitului măsurat („rezistor în masa”). Fiecare din aceste metode are avantaje şi dezavantaje. Pentru succesul analizei diferențiale de putere, este important ca forma de unda a curentului absorbit să reflecte strict tranzițiile logice ale circuitului sau sub-circuitului care contribuie la procesarea datelor care sunt de interes. Astfel, următoarele criterii trebuiesc îndeplinite: circuitele analogice şi circuitele digitale care nu sunt de interes trebuiesc alimentate separat (de exemplu din alte surse, sau înainte de rezistorul de șunt pe care se realizează achiziția de date); modulele care nu procesează datele de interes trebuiesc invalidate, dacă este posibil; sursele de alimentare trebuiesc filtrate şi decuplate astfel încât riplul datorat tensiunilor de alimentare să fie neglijabil față de variația curentului absorbit datorată tranzițiilor logice; filtrarea trebuie plasata astfel încât să nu „strice” forma de unda a curentului absorbit de circuit (în amonte de rezistorul serie folosit pentru măsurarea curentului). În cele ce urmează sunt prezentate şi analizate topologiile „cu rezistor în alimentare” şi „cu rezistor în masa”.
52
Schema de măsurare cu „rezistor în alimentare” Sursa de alimentare CC
+ Rsunt
Iesire 8 Isarcina
Isunt -
Isarcina
SARCINA
Figura 5.8 Schema de măsurare cu „rezistorul în alimentare” Sursa de alimentare CC
+ Rsunt
Isunt
Iesire 8 Isarcina
-
Isarcina
SARCINA
Figura 5.9 Schema de măsurare cu „rezistorul în alimentare” – schema de filtrare Rezistorul de măsurare este plasat în serie cu alimentarea (Figura 5.8), spre circuitul de alimentare al circuitului monitorizat. Dacă se folosesc condensatori pentru filtrare, aceștia trebuie poziționați spre sursa de tensiune. Poziționarea condensatorilor de filtrare după rezistorul de măsurare, cât mai aproape de pinul de alimentare al circuitului analizat ar îmbunătății filtrarea, însă ar altera forma de tensiune a curentului absorbit (ceea ce se achiziționează) (Figura 5.9) cu efecte negative asupra acuității măsurării. Avantajele folosirii „rezistorului în alimentare” sunt: sarcina este pusă direct la masă; nu se creează o masă suplimentara; nu se creează bucle de curenți de masă; punerea accidentală la masa a rezistorului de măsurare poate fi ușor detectată de sursa de alimentare. Dezavantajele folosirii „rezistorului în alimentare” sunt: sistemul de achiziție trebuie să fie flotant, niciunul din capetele rezistenței de măsurare nu este conectat la masă (de multe ori este necesar unu număr dublu de canale de achiziție comparativ cu numărul semnalelor achiziționate); necesită amplificatoare diferențiale pentru amplificarea căderii de tensiune de pe rezistorul de măsurare (sunt necesare scheme de amplificare mai complexe, iar în unele cazuri implementarea acestora nu este mereu posibilă); necesită o alegere foarte atentă a rezistorului, în scopul obținerii unui raport de rejecție a modului comun (CMRR) acceptabil (o deviație de 0.01% a valorii rezistorului reduce CMRR la 86dB; o deviație de 1% reduce CMRR la 46dB);
53
Schema de măsurare cu „rezistor în masă” Sursa de alimentare CC
SARCINA
Isarcina
+ Rsunt
Isunt
Iesire 8 Isarcina
-
Figura 5.10 Măsurarea cu rezistor „în masă” Rezistorul de măsurare este plasat între pinul de masa al circuitului analizat şi masa sursei de alimentare (Figura 5.10). În general aceasta soluție este foarte simplă din punctul de vedere al efectuării măsurătorii deoarece referința este chiar masa electrica a circuitului. Astfel, dacă se achiziționează mai mulți curenți, sunt necesare atâtea canale de măsurare cați curenți se doresc a fi achiziționați. Trebuie avută grija ca rezistorul de măsurare să colecteze numai curentul dorit, conectarea mai multor circuite la același pin de masă va introduce erori în măsurare şi va îngreuna astfel analiza diferențială de putere. De asemenea, trebuie ținut cont că punctul de masa nou creat nu are același potențial cu masa sursei de alimentare şi a restului circuitului, fiind necesare (uneori) adaptări ale tensiunilor semnalelor de ieșire ale circuitului în cauza. Avantajele folosirii „rezistorului în masa” sunt: nu sunt necesare modificări ale circuitelor de filtrare a tensiunilor de alimentare; metoda este directă şi nu necesita un amplificator diferențial, un simplu amplificator operațional fiind suficient în majoritatea aplicațiilor; metoda este ieftina şi precisa; nu necesita în general creșterea tensiunii de alimentare. Dezavantajele folosirii „rezistorului în masa” sunt: creșterea tensiunii în punctul de masa al circuitului analizat față de masa restului circuitului (masa sursei de alimentare); scurtcircuitul la masă al rezistorului de măsură nu are efecte negative pentru funcționarea circuitului, dar este greu de detectat.
5.4 Standuri experimentale Pe baza informațiilor specificate în capitolele precedente, au fost dezvoltate două standuri de testare. Scopul acestora a fost achiziționarea curbelor de consum necesare executării analizei diferențiale de putere. Primul pas în realizarea acestor standuri a constat în selectarea metodei de achiziție a datelor. Astfel, pentru achiziția curbelor de consum au fost dezvoltate două standuri de testare, primul echipat cu un microcontroler de uz comun iar cel de-al doilea cu circuit digital reprogramabil (FPGA). Standul de măsurare a constat din (Figura 5.11): calculator de uz comun – cu ajutorul aplicației Power Analysis Toolkit a fost controlat circuitul analizat (au fost controlate operațiile executate, respectiv încărcate și citite datele în clar respectiv criptogramele); circuit analizat – standul de testare care a permis înregistrarea curbelor de consum pe durata efectuării operațiilor de interes; 54
osciloscop digital – prin intermediul unui semnal de trigger au fost înregistrate curbele de consum – totdeauna de aceiași lungime, pornind din același punct (start_encryption();).
Figura 5.11 Stand de măsurare [ref wikipedia] Pentru a putea măsura puterea absorbită de circuite au fost realizate măsurători asupra tensiunilor de alimentare. În cazul ambelor standuri, sursa de alimentare utilizată, din motive practice, a fost un port USB (5Vcc/500mA). Această soluție, deși simplă, s-a dovedit a pune o serie de probleme în special datorită zgomotului ridicat (Figura 5.12). Acest zgomot (riplu), datorat în special surselor în comutație are o componentă de frecvență ridicată astfel încât filtrarea a fost posibilă prin utilizarea unor filtre pasive L-C.
Figura 5.12 Zgomotul tensiunii de alimentare a portului USB Pentru determinarea metodei optime de filtrare a fost realizată simularea [48] circuitului, respectiv a zgomotului datorat surselor în comutație (Figura 5.13). Astfel, au fost validate valorile calculate ale componentelor filtrelor pasive permițând realizarea schemei de alimentare.
55
Figura 5.13 Simularea zgomotului, respectiv a filtrelor utilizate pentru filtrarea portului tensiunii portului USB STAND I - Microcontroler Considerând aspectele prezentate anterior, respectiv filtrarea sursei de alimentare, separarea căilor de curent, separarea modulelor de interes de celelalte module prin utilizarea de căi separate de alimentare și echiparea liniei de masă cu un rezistor de șunt care să permită măsurarea consumului de putere, a fost realizată schema din Figura 5.14.
Figura 5.14 Schema de montaj a standului echipat cu microcontroler
Figura 5.15 microcontroler
Circuit
de
test
cu
Realizarea practică a schemei s-a materializat în circuitul de test prezentat în Figura 5.15. Parametrii tehnici ai standului de testare sunt: Tensiune de alimentare: 5Vcc;
Microcontroler: ATmega328;
Frecvență de operare: 4/816MHz;
Interfață de control: RS232. 56
STAND II - Circuit digital reprogramabil (FPGA) Cel de-al doilea stand (Figura 5.16) este bazat pe un circuit digital reprogramabil. Datorită numărului mare de pini și a complexității ce o implica realizarea completă a unui circuit cablat pentru un astfel de circuit, a fost selectată spre utilizare o placă de dezvoltare echipată cu un circuit digital reprogramabil. Deoarece scopul achiziției este determinarea consumului circuitului reprogramabil în sine, a fost aleasă cea mai simplă placă de dezvoltare existentă. Astfel a fost selectată placa de dezvoltare Nexys II produsă de compania Digilent. Această placă vine echipată cu un circuit digital reprogramabil produs de compania Xilinx și nu necesită programe licențiate (a fost utilizat Xilinx ISE web pack).
Figura 5.16 Stand de testare echipat cu circuit digital reprogramabil Dacă în cazul anterior schema de alimentare nu presupunea o atenție deosebită, în afară de filtrarea tensiunii de alimentare, în acest caz circuitul digital reprogramabil necesită o schemă complexă de alimentare. Analiza schemei plăcii de dezvoltare a relevat faptul că circuitul are un număr ridicat de puncte de alimentare. Deși pentru execuția analizei diferențiale de putere este necesară măsurarea doar a acelor puncte de alimentare care reflectă consumul de energie cauzat de modulele ce efectuează operația de interes, în cazul circuitelor digitale reprogramabile acest lucru este imposibil. Aceasta clasă de circuite este în esență formată dintr-o matrice de porți logice care sunt interconectate printr-o serie de rute programabile. Plasarea circuitului dorit (programat în prealabil într-un limbaj de nivel înalt) este la directa influență a programului de sinteză. Astfel a fost aleasă o soluție de compromis ce a constat în inserarea unui rezistor de sunt în linia de alimentare a sursei care alimentează direct întregul circuit reprogramabil. Șuntul inserat permite măsurarea consumului de putere cauzat de circuitul digital reprogramabil în timp ce celelalte componente, alimentate din aceiași sursă, sunt alimentate în amonte de acesta. Utilizând cele două standuri au fost realizate achizițiile de date necesare pentru efectuarea analizelor diferențiale de putere, cu scopul identificării eventualelor breșe de securitate.
57
5.5 Concluzii Pe parcursul acestui capitol au fost prezentate aspectele care produc, din punct de vedere fizic, respectiv tehnologic, absorbția de putere în cazul circuitelor digitale integrate. Au fost definite principalele componente ale puterii absorbite, în cazul circuitelor fabricate în tehnologia CMOS, Totodată au fost prezentate problemele ce apar la tranzițiile semnalelor dintr-o stare logică în alta, probleme care produc pe de-o parte o variație, măsurabilă, a puterii absorbite, dar conduc și la eventuale probleme funcționale. Deoarece tehnica analizei diferențiale de putere presupune achiziția curbelor de consum, aferente operațiilor de interes, executate de circuitul analizat, pe parcursul acestui capitol au fost tratate și aspectele legate de tehnicile de măsurare. Pentru fiecare tehnică au fost prezentate avantajele și dezavantajele împreună alături de o serie de recomandări practice unde ar putea fi utilizate aceste metode.
58
6. Procesarea Curbelor de Consum. Analiza Diferențială de Putere Având ca bază informațiile ce descriu caracteristica de consum a circuitelor digitale integrate CMOS, alături de metodologia de execuție a analizei diferențiale de putere, au fost executate o serie de atacuri de securitate cu scopul validării simulărilor funcționale ca și metodă de evaluare a gradului de securitate a unui circuit digital. Astfel, pe parcursul acestui capitol vor fi descrise atacurile executate, programul software dezvoltat cu scopul de efectuare a atacului și rezultatele obținute.
6.1 Execuția ADP Analiza diferențială de putere efectuată în acest context a presupus modificarea metodei de execuție (Figura 6.1) astfel încât să poată fi efectuate atacuri de securitate și asupra datelor simulate. d1 d2 Text în clar sau cifrat dD
k1
k2
kK
Chei
Algoritm criptografic
Valori v v intermediare 1,1 1,2 ipotetice v2,1 v2,2
vD,1 vD,2
v1,K v2,K
vD,K
Model de putere Nivel logic (RTL) Consum ipotetic de putere
i1,1
i1,2
i1,K
c1,1 c1,2
c1,C
i2,1
i2,2
i2,K
c2,1 c2,2
c2,C
iD,1
iD,2
iD,K
cD,1 cD,2
cD,C
Simulare functionala
Nivel fizic (porti logice)
Achizitii experimentale
Analiza statistica
r1,1
r1,2
r1,T
r2,1
r2,2
r2,T
rK,1
rK,2
rK,T
Rezultat
Figura 6.1 Analiză diferențială de putere – metodă de execuție modificată
Astfel, construcția matricei curbelor de consum C a fost efectuată utilizând date ce au rezultat în urma măsurătorilor realizate cu ajutorul standului II, echipat cu un circuit digital 59
reprogramabil. Pentru aceasta a fost utilizat un simulator digital standard care permite interfațarea cu limbaje de scripting. Pentru simularea circuitului au fost folosiți aceiași vectori de test ca și în cazul atacurilor reale, asupra implementării software (stand I) și asupra circuitului implementat fizic (stand II). Pentru achiziția datelor a fost utilizat un osciloscop digital LeCroy Wavesurfer 434 care a permis nu numai înregistrarea, cu precizie, a curbelor de consum, dar a permis și rularea programului de analiză diferențială de putere (PAT).
Figura 6.2 Schema bloc a modulului AES
Pentru efectuarea analizei diferențiale de putere a fost folosit un modul AES, implementat fie software fie hardware, utilizând structura prezentată în Figura 6.2. Astfel a fost asigurată similaritatea între toate implementările folosite. Totodată au fost folosiți aceiași vectori de test în toate cazurile, putându-se deci efectua o analiză comparativă corectă între rezultatele ADP asupra diverselor implementări.
6.2 Power Analysis Toolkit Pe parcursul activităților de cercetare a fost dezvoltată o aplicație,ce poartă numele Power Analysis Toolkit (PAT), care permite executarea automată a unor atacuri de securitate de tip analiză diferențială de putere. Aplicația a fost dezvoltată în limbajul de programare Python , din motive de portabilitate. Aplicaţia dezvoltată realizează analiza diferenţială de putere a circuitului analizat, utilizând ca și date de intrare fie fișierele rezultate în urma unei simulării funcționale a circuitului sau în urma unei achiziții de date experimentale a consumului circuitului fizic. PAT are o structură modulară, după cum urmează: modul de intrare – realizează conversia datelor în curbe de consum (în cazul fișierelor rezultate în urma simulărilor funcționale ale circuitului analizat); verifică alinierea datelor în vederea construirii matricei C;
modul de transfer - realizează împărțirea datelor pe blocuri pentru eficientizarea procesării acestora
modul de procesare – pe baza premiselor de atac (pondere Hamming ca metodă de evaluare și folosind una din premisele de atac descrise în capitolul 3) execută calculele aferente unei analize diferențiale de putere; rezultatul acestei analize este matricea R;
modul de ieşire - preia datele (matricea R) și le stochează alături de rapoartele de activitate (ce înregistrează valori intermediare de calcul pentru verificarea algoritmului și a timpilor de execuție); afișează rezultatele procesării, respectiv coeficienții de corelație. Aplicația permite: 60
Pornirea unei simulări funcționale a unui circuit digital (utilizând un simulator digital standard – ModelSIM în acest caz);
Pre- şi postprocesarea datelor ce rezultă în urma simulării circuitului în cauză;
Estimarea consumului prezumptiv de putere pe baza datelor obținute din simulare (matricea I construită pe baza ipotezelor specificate în capitolul 3);
Pre- și postprocesarea fișierelor rezultate în achiziția puterii consumate de un circuit fizic (transpunerea fișierelor individuale rezultate în urma achiziției realizate cu ajutorul unui osciloscop digital și concatenarea lor într-un singur fișier – matricea C);
Realizarea unei analize diferenţiale de putere;
Evaluarea și afișarea rezultatelor.
Programul PAT nu este dotat cu o interfață grafică, toate interacțiunea făcându-se prin intermediul unor fișiere de configurare sau a unor parametrii specificați în linie de comandă. Totodată, pentru reprezentarea grafică a datelor (rezultate intermediare sau finale) se utilizează formatul CSV (eng. „comma separated values”) care permite utilizarea oricărui program de procesare tabelară sau matematică. Achiziția experimentală a caracteristicilor de consum ale circuitului digital analizat a fost realizată tot cu ajutorul companiei Siemens SRL, din Brașov, utilizând un osciloscop digital de înaltă rezoluție. Măsurătorile au fost efectuate pe o placă de dezvoltare, echipată cu un circuit digital reprogramabil. Pentru efectuarea măsurătorilor au fost modificate (parțial înlocuite, respectiv filtrate) sursele de alimentare și au fost inserate rezistori de șunt în liniile de alimentare. Validarea experimentală a fost realizată pentru o serie de implementări standard a algoritmului criptografic AES (zece runde de calcul utilizând o cheie cu o lungime fixă de 128 biți și un bloc de date cu o lungime fixă de 128 biți), după cum urmează: implementare software: o testată pe standul I; implementare hardware: o testată pe standul II o testată pe baza unor simulări funcționale realizate la nivel: logic – caracteristica de consum ce rezultă reflectă doar tranzițiile logice ale circuitului analizat, fără a lua în calcul timpii de propagare prin porțile logice sau prin rutele circuitului; fizic – simulare la nivel de poartă logică (eng. „gate level simulation”); sunt luați în calcul toți parametrii care depind de tehnologia în care este implementat circuitul analizat.
6.3 Rezultate Cu ajutorul PAT au fost executate atacuri de securitate de tip analiză diferențială de putere asupra curbelor de consum achiziționate sau calculate pe baza simulărilor funcționale ale circuitului analizat. Pentru analiză a fost folosit modelul distanței și a ponderii Hamming. Punctul de atac a fost primul octet al cheii de criptare. Rezultatele relevă faptul că simulările funcționale ale circuitelor digitale relevă la fel de mulă informațîe precum curbele de consum achiziționate experimental. Astfel este dovedită 61
posibilitatea utilizării simulărilor funcționale ale circuitelor digitale integrate cu scopul detarminării nivelului de securitate oferit de acestea. Există însă o serie de diferențe între rezultate, diferențe ce vor fi prezentate în cele ce urmează. Astfel, în cazul curbelor de consum generate pe baza rezultatelor simulărilor funcționale, la nivel logic, a circuitului analizat, se constată o cantiatate mai mică de informație conținută de aceasta. După cum se poate observa din Figura 6.3 și Figura 6.4, diferența este clar vizibilă. Dacă curba de consum achiziționată experimental, reflectă toate componentele de putere, enunțate în capitolele 2 și 4, curba de consum obținută în urma simulărilot funcționale la nivel logic reflectă doar consumul (calculat) datorat operațiilor executate și informației prelucrate. Pe parcursul simulărilor funcționale efectuate la nivel logic sunt înregistrate tranzițiile tuturor semnalelor ce formează circuitul analizat. Astfel, se obține o matrice a tranzițiilor logice, funcție de timp. Pentru a convertii această informație în curbe de consum este dealizată o sumare, pe coloane, a tranzițiilor. Frecvența de eșantionare aleasă este de trei ori mai mare ca cea a ceasului de sistem.
Figura 6.3 Curba de consum a circuitului AES implementat fizic pentru primele 3 runde de calcul
Figura 6.4 Curba de consum a circuitului AES simulat la nivel fizic, pentru primele 3 runde de calcul
Figura 6.5 Curba de consum ce reflectă o operație de criptare, realizată în urma simulării funcționale, la nivel logic, a 1000 de operații identice asupra aceluiași set de date
62
Figura 6.6 Reprezentarea grafică a maximului factorului de corelație
În urma analizei diferențiale de putere executate se constată faptul că este posibilă exploatarea informațiilor conținute de curbele de consum generate pe baza unor simulări funcționale la nivel logic (Figura 6.5). Analiza poate releva breșele de securitate însă precizia este relativ redusă – detaliile specifice implementării, respectiv breșele datorate erorilor „de detaliu” nu pot fi determinate. Astfel simulările funcționale la nivel logic pot fi utilizate doar pentru a releva erori de concept sau de proiectare dar nu și erori detaliate sau legate de tehnologia utilizată. După cum se poate observa în Figura 6.6 PAT a relevat, cu succes, primul octet din cheia de criptare utilizată, evidențiind in acest fel punctele slabe ale circuitului analizat. Simulările funcționale realizate la nivel fizic (eng. „gate level simulation”) conțin semnificativ mai multă informație, în sensul în care aceste simulări reflectă și detaliile tehnologiei utilizate, respectiv timpii de propagate pe traseele de legătura sau prin porțile logice. Atacul executat, identic cu cel din cazul anterior, a relevat o serie de defecte suplimentare, care nu au fost detectate pe parcursul primului atac ADP efectuat. Deși mai complexe de efectuat, datorită timpilor mai indelungați de atac, respectiv datorită numărului mai mare de resurse fizice necesare, analizele diferențiale de putere relevă o serie de detalii constructive ale circuitului analizat astfel încât inginerii proiectanți pot evalua, în detaliu, eventualele breșe de securitate. Pe baza simulărilor funcționale realizate la nivel fizic, de poartă logică, pot fi deci relevate erori de concept dar și de proiectare sau de dezovoltare. Se poate concluziona astfel că simulările funcționale la nivel logic pot fi utilizate pe parcursul procesului de proiectare dar numai în fazele incipiente în timp ce simulările funcționale la nivel fizic pot fi utilizate până la finalul procesului de proiectare, chiar înainte ca circuitul digital să fie fabricat fizic. Atacurile de securitate de tip analiză diferențială de putere, realizate pe baza curbelor de consum achiziționate experimental conțin informații despre absorbția de putere a circuitului analizat, în conformitate cu modelele prezentate în capitolele 3, 4 și 5. Astfel, numărul de curbe necesare este de aproximativ 4 ori mai mare ca în cazurile precedente iar efortul de execuție al analizei diferențiale de putere este semnificativ mai ridicat (consumul de memorie de lucru – RAM este dublu – 7.6GB; iar durata de execuție este de 3 ori mai mare). Totuși ADP executată asupra unor curbe achiziționate experimental relevă o serie de slăbiciuni suplimentare ale circuitului analizat. Astfel pot fi detectate inclusiv erori de programare sau de constrângere a circuitelor analizate alături de evidențierea unor detalii contructive (de exemplu timpii de execuție ai unei operații efectuate, respectiv instrucțiuni executate). Totodată, pe parcursul analizei prezentate au fost analizate și o serie de implementări software ale algoritmului AES. Pentru aceasta a fost utilizat standul I, echipat cu un microcontroler de uz comun. Microcontrolerul a fost parametrizat astfel încât doar procesorul și memoriile (de date și lucru) să fie active la momentul execuției atacului, respectiv a înregistrării curbelor de consum. Punctul de atac a fost ales în prima rundă de calcul, utilizând ipoteza distanței Hamming. Prima implementare analizată a fost o implementare software, standard, neprotejată, a algoritmului AES. Durata atacului a fost de 5 ore și a necesitat un număr de 10000 curbe de 63
consum. Atacul, executat cu ajutorul PAT, a relevat primul octet din cheia de criptare dovedind astfel vulnerabilitatea (prezumată) a implementării. Totodată a fost relevat faptul ca o analiză diferențială de putere, executată asupra unei implementări software a unui algoritm criptografic, poate releva detalii despre construcția fizică a circuitului analizat. Un exemplu în acest sens ar fi modelul de absorbție a puterii circuitului analizat, față de semnalul de ceas al sistemului. Astfel, se pot observa două vârfuri de consum pe fiecare tact al ceasului de sistem. Din analiza specificației și a modului de funcționare al circuitului se poate deduce că primul vârf corespunde instrucțiunii fetch iar cel de-al doilea procesării instrucțiunii curente. Pentru efectuarea analizei diferențiale de putere este deci importantă determinarea celui de-al doilea maxim care este direct proporțional cu datele procesate de circuit. Analiza efectuată asupra celei de-a doua implemetări, protejată prin mascare, nu a relevat nici o slăbiciune, utilizând acelașii număr de curbe de consum. Astfel au fost achiziționate 100000 curbe de consum care au necesitat un itmp de procesare de peste 24 de ore. Chiar și în aceste condiții atacul nu a avut succes relevând astfel posibilitatea securizării unor implementări software utilizând tehnici simple de mascare.
64
7. Concluzii Finale 7.1 Concluzii Teza de doctorat studiază tehnica analizei diferențiale de putere în contextul circuitelor digitale integrate. Analiza diferențială de putere este o tehnică ce permite extragerea de informații cu caracter secret din interiorul unui circuit digital integrat, folosind metode neinvazive. Deși cunoscută de aproximativ 15 ani, această tehnică nu a prezentat un pericol real până de curând. În prezent există un singur standard [46] care este adresat componentelor hardware – cu precădere celor utilizate în aplicații de securitate digitală sau criptografie. Acest standard nu tratează însă cazul atacurilor de securitate bazate pe tehnica analizei diferențiale de putere. Datorită recentelor atacuri de securitate și a numărului tot mai mare de breșe de securitate descoperite, reiese necesitatea asigurării unui nivel de protecție cât mai ridicat. Din acest motiv, în cadrul activităților de concept și proiectare a circuitelor digitale integrate, care utilizează funcții criptografice, este necesară evaluarea nivelului de securitate înainte ca circuitul să fie fabricat. Astfel, punctul central al lucrării a constat în dezvoltarea unei metode simple, aplicabile practic, de utilizare a unor modele simulabile a circuitelor digitale, pentru a efectua o analiză diferențială de putere. În cadrul lucrării au fost analizate mai multe implementări software și hardware ale algoritmului criptografic AES. Principalele aspecte legate de metoda analizei diferențiale de putere, care au fost tratate în cadrul tezei de doctorat, sunt: influența zgomotului electric datorat surselor de alimentare; simularea circuitelor digitale în contextul analizei diferențiale de putere; achiziția datelor necesare unei analize diferențiale de putere; pre- și post-procesarea datelor rezultate ale unei achiziții sau ale unei simulări; viteza de execuție a unei analize diferențiale de putere; validarea modelului simulat. În cadrul cercetărilor doctorale s-a avut în vedere domeniul electronicii industriale, domeniu în care durata medie de viață a unui circuit digital integrat este de peste zece ani. În cadrul activităților de cercetare și în mod particular pentru validarea experimentală a soluției au fost folosite laboratoare și programe software puse la dispoziție de departamentul de electronică al companiei Siemens S.R.L, în colaborare cu catedra de Automatică a Universității Transilvania din Brașov. În urma studiului efectuat în cadrul tezei de doctorat se pot trage următoarele concluzii: Implementarea tehnicii analizei diferențiale de putere este facilă atât din punct de vedere software cât și hardware (pe componente standard sau dedicate).
în urma unor simulări funcționale sau la nivel fizic se pot obține date suficiente pentru a putea executa o analiză diferențială de putere care să releve eventualele breșe de securitate.
nu există diferențe semnificative între rezultatele unei analize diferențiale de putere executate pe un circuit simulat la nivel fizic și ale uneia executate pe un circuit real. Diferențele cele mai mari sunt vizibile în cazul unei analize diferențiale de putere executate asupra unui circuit simulat la nivel logic, respectiv funcțional.
7.2 Contribuţii personale În acest subcapitol sunt evidenţiate principalele contribuţii pe care teza de doctorat le propune în domeniul ingineriei electrice, respectiv al proiectării de circuite digitale integrate, în contextul securității digitale. 65
Contribuţiile aduse se încadrează în ariile securității digitale, electronicii digitale și ale ingineriei software. Contribuțiile principale aduse în cadrul tezei sunt rezumate după cum urmează: 1. Proiectarea și implementarea unei metode practice de filtrare a zgomotului electric datorat surselor de alimentare – fie ele liniare sau în comutație. Studiul a permis identificarea principalilor factori de zgomot și a dus la dezvoltarea unor metode teoretice, dar și practice, de filtrare a zgomotului electric datorat surselor de alimentare. Necesitatea acestui studiu a fost dată de faptul că analiza diferențială de putere este puternic influențată (negativ) de dimensiunea zgomotului electric. 2. Proiectarea și implementarea unui mecanism de conversie şi validare a datelor, rezultate în urma unor simulări funcționale sau la nivel fizic, a circuitului digital integrat analizat. Acest mecanism permite conversia datelor ce rezultă în urma execuției simulărilor, respectiv o listă de semnale și tranzițiile acestora față de semnalul de ceas al sistemului, într-o caracteristică de consum a circuitului analizat care este echivalentă echivalentă cu cea a circuitului dacă acesta ar fi implementat fizic. 3. Dezvoltarea unei metode de pre-procesare a datelor pentru reducerea zgomotului electric conținut de măsurătorile experimentale realizate asupra circuitelor digitale integrate, reale. Această metodă permite diminuarea zgomotului electric datorat altor module hardware care coexistă cu circuitul criptografic de interes. Aplicând tehnici de procesare a semnalelor, zgomotele electrice sunt diminuate crescând în acest fel rezoluția și deci accelerând analiza diferențială de putere. 4. Dezvoltarea unei aplicații software (Power Analysis Toolkit) ce permite execuția rapidă a unor analize diferențiale de putere. Aplicația a fost proiectată modular și este flexibilă, permițând utilizarea ca date de intrare caracteristicile de putere rezultate în urma unor simulări sau a unor achiziții experimentale, utilizând circuitul fizic. Aplicația este destinată inginerilor care dezvoltă sisteme digitale complexe care includ module criptografice. 5. Validarea experimentală a Power Analysis Toolkit și analiza comparativă a diverselor implementări și măsuri de protecție împotriva atacurilor de securitate de tip analiză diferențială de putere. Scopul este validarea conceptului efectuării analizei diferențiale de putere la nivelul simulării fără a fi nevoie de existența unui prototip fizic.
7.3 Diseminarea rezultatelor Cercetările desfășurate pe perioada studiilor doctorale au permis elaborarea și publicarea, în calitate de prim autor, a unui număr de trei articole științifice publicate în volumele unor conferințe științifice naționale [20] [21] [22]. Totodată, derivat din cercetările desfășurate în această perioadă au fost elaborate două cereri de finanțare pentru proiecte de cercetare. Cele două cereri sunt axate pe problematica securității sistemelor informatice digitale și au ca scop dezvoltarea, respectiv extinderea unor sisteme digitale de prevenție, detecție și protecție împotriva unei largi plaje de atacuri de securitate. Prima dintre cererile de finanțare depuse este cu finanțare națională având ca scop dezvoltarea unei platforme hardware securizate. Această cerere este în evaluare la momentul redactării prezentei teze, fiind confirmată trecerea, cu succes, de prima etapă de evaluare. Cea 66
de-a doua cerere de finanțare este axată pe domeniul ”Internet of Things” și își propune, alături de ceilalți parteneri, dezvoltarea unei platforme ce permite achiziția, prelucrarea și stocarea unor vaste cantități de date, provenite de la senzori distribuiți pe o vastă suprafață geografică. Această cerere de finanțare a fost acceptată iar proiectul [49] a demarat în septembrie 2013, având o durată de 36 de luni. În cadrul acestui proiect responsabilitatea și activitățile de cercetare s-a concretizat în gestionarea pachetului de lucru numărul trei axat pe securitate digitală în componente electronice (End-To-End Security And Privacy).
7.4 Direcţii viitoare de cercetare Dezvoltarea unui nou concept, necesită de fiecare dată validarea acestuia. Implementarea conceptului, respectiv proiectarea unui circuit sau sistem digital, urmată de validarea acestuia prin simulare sau testarea prototipului nu este eficientă din punctul de vedere al costului, dacă sunt necesare multe iterații între definirea conceptului (schimbări arhitecturale) și etapele de implementare. Una din noile abordări este reprezentată de modelarea la nivelul sistemelor electronice (eng. ESL – Electronic System Level). Aceasta presupune utilizarea unor limbaje de nivel înalt (System , C++, Matlab etc.) și o modelare mai apropiată de aspectul funcțional, fără a ține cont de detaliile de implementare (care pot fi specifice unei anumite tehnologii). Totodată, modelarea ESL este foarte flexibilă, permițând introducerea în model a unor informații referitoare la consumul de putere, permițând astfel realizarea unui profil de putere al sistemului în funcție de scenariile de simulare. O posibilă direcție de cercetare constă în implementarea unei metodologii, care să sprijine colectarea de informații referitoare la profilul puterii absorbite de dispozitiv, informații care pot fi folosite pentru o analiza diferențială de putere a modelului virtual.
67
Referințe bibliografice (selecție) [1]
[2]
[3] [4] [5] [6] [7]
[8] [9] [10] [11] [12]
[13]
[14]
[15] [16] [17]
[18]
Moradi, A. Barenghi, T. Kasper, C. Paar, “On the Vulnerability of FPGA Bitstream Encryption against Power Analysis Attacks”, ACM conference on Computer and communications security, pp. 111 – 124, ISBN: 978-1-4503-0948-6, 2011. Agrawal, D., Rao, J. R., Rohatgi, P. "Multi-channel Attacks", CHES 2003, 5th International Workshop, vol. 2779 of Lecture Notes in Computer Science, pp 2-16., September 2003. Baker, R. J. “CMOS Circuit Design, Layout, and Simulation, Third Edition”, Wiley-IEEE Press, USA, 2010. Biham, E., Shamir, A. "Differential Cryptanalysis of the Data Encryption Standard", Springer Verlag,ISBN 0-387-97930-1, 1993. Coppersmith, D. "Small Solutions to Polynomial Equations, and Low Exponent RSA Vulnerabilities", Journal of Cryptology, v.10, n.4, December 1997. Er-hong, L., Xian-wei, G. "Resistance DPA of RSA in Smartcard", Fifth International Conference on Information Assurance and Security, August 2009, pp. 406-409. Gandolfi, K., Mourtel, C, Olivier, F. “Electromagnetic Analysis: Concrete Results”, CHES 2001, Third International Workshop, Paris, France, May 14-16,2001, Proceedings, vol. 2162 of Lecture Notes in Computer Science, pp. 251-261, Springer, 2001. Håstad, J. "On Using RSA with Low Exponent in a Public Key Network", CRYPTO '85 Advances in Cryptology Proceedings, London 1986, pp. 403-408. Irwin, M. J., Kandemir, M. T., Vijaykrishnan, N. "Simple-Power: A Cyc1e-Accurste Energy Simulator", IEEE TCCA Newsletter, January 2001. Kemmerling, O., Kuhn, M. G. “Design Principles for Tamper-Resistant Smartcard Processors” – Smartcard '99, pp. 9-20, May 1999. Kerckhoffs, A. "La cryptographie militaire" Journal des sciences militaires, vol. IX, pp. 5–38, January 1883, pp. 161–191, February 1883. Kocher, P. C. "Design and Validation Strategies for Obtaining Assurance in Countermeasures to Power Analysis and Related Attacks.", NIST Phyiscal Security Workshop, September 2005. Kocher, P. C. “Timing Attacks on Implementations of Diffie-Hellman, RSA, DSS, and Other Systems”, 16th Annual International Cryptology Conference, Santa Barbara, California, USA, August 18-22, 1996, Proceedings, number 1109 in Lecture Notes in Computer Science, pp. 104-113, Springer, 1996. Kocher, P. C., Jaffe, J., Jun, B. “Differential Power Analysis”, 19th Annual International Cryptology Conference, Santa Barbara, California, USA, August 15-19, 1999, Proceedings, vol. 1666 of Lecture Notes in Computer Science, pp. 388÷397, Springer, 1999. Kocher, P. C., Jaffe, J., Jun, B. “Introduction to Differential Power Analysis and Related Attacks.”, Cryptographic Research, 1998. Mangard, S., Oswald, E., Popp T. „Power Analysis Attacks - Revealing the Secrets of Smart Cards”, Springer, 2007. Masoomi, M., Masoumi, M., Ahmadian, M. "A practical differential power analysis attack against an FPGA implementation of AES cryptosystem", 2010 International Conference on Information Society, pp. 308 - 312, 2010. Matsui, M. "Linear Cryptoanalysis Method for DES Cipher.", EUROCRYPT, pp.386397, 1993. 68
[19]
[20] [21] [22] [23]
[24] [25]
[26] [27]
[28]
[29] [30] [31]
[32]
[33]
[34]
[35]
Nekoogar, F. "Digital Cryptography: Rijndael Encryption and AES Applications", EE Times, October 2001. [Online] Available: http://www.eetimes.com/document.asp?doc_id=1275908. Pitu, C. L., Campeanu, R. " Differential Power Analysis: Simulated versus Experimental Attacks", 19th SIITME, Romania, October 2013. Pitu, C. L., Campeanu, R. "On Preventing Differential Power Analysis using Data Masking", 19th SIITME, Romania, October 2013. Pitu, C. L., Campeanu, R. ”A Practical Approach to Power Trace Measurement for Differential Power Analysis based Attacks", 19th SIITME, Romania, October 2013. Quisquater, J. J., Samyde, D. “ElectroMagnetic Analysis (EMA): Measures and CounterMeasures for Smart Cards”, International Conference on Research in Smart Cards, Esmart 2001, Cannes, France, September 19-21, 2001, Proceedings, vol. 2140 of Lecture Notes in Computer Science, pp. 200-210. Springer, 2001. Rabaey, J. M., Chandrakasan, A., Nikolic, B., "Digital Integrated Circuits - A Design Perspective.", Electronics and VLSI Series, Prentice Hall, 2nd edition, 2003. Rumsey, A. "IRSE Seminar On Communications Based Train Control.", IRSE International Technical Committee. [Online] Available: http://www.irse.org/knowledge/publicdocuments/2009_10_01_IRSE_Seminar_on_Com munications_Based_Train_Control.pdf. S. B. Örs, E. Oswald, B. Preneel, “Power-Analysis Attacks on an FPGA - First Experimental Results”, Cryptographic Hardware and Embedded Systems - CHES, 2003. S. B. Örs, F. Gürkaynak, E. Oswald, B. Preneel, “Power-Analysis Attack on an ASIC AES implementation”, Information Technology: Coding and Computing, vol. 2, pp. 546-552, ISBN 0-7695-2108-8, 2004. S. Tillich, C. Herbst, “Attacking State-of-the-Art Software Countermeasures - A Case Study for AES”, Cryptographic Hardware and Embedded Systems - CHES, pp. 228-248, ISBN 978-3-540-85053-3, 2008. Sadowsky, G., Dempsey, J. X., Greenberg, A., Mack, B. J., Schwartz, A. "Information Technology Security Handbook", The World Banc, 2003. Samyde, D., Skorobogatov, S. P., Anderson, R. J., Quisquater, J. J. “On a New Way to Read Data from Memory”, SISW'02, pp. 65-69., IEEE Computer Society, 2002. Schneier, B. "Breaking the Xilinx Virtex-II FPGA Bitstream Encryption", August 2011. [Online] Available: https://www.schneier.com/blog/archives/2011/08/breaking_the_xi.html. Sinha, A., Chandrakasan, A. "JonleTrack - A Web Based Tool for Software Energy Profiling.", In 38th Design Automation Conference, DAC 2001, USA, pp. 220-225, June 2001. Skorobogatov, S. P., Anderson, R. J. “Optical Fault Induction Attacks”, Conf. – CHES 2002, 4th International Workshop, Redwood Shores, CA, USA, August 13-15, 2002, Revised Papers, vol. 2523 of Lecture Notes in Computer Science, pp. 2-12, Springer, 2003. Standaert, F. X., Oldenzeel, L. Samyde, D., Quisquater, J. J. "Power Analysis of FPGAs: How Practical Is the Attack", Lecture Notes in Computer Science Volume 2778, pp 701710, 2003. Walter, D. C., Koc, C. K., Paar, C. "Cryptographic Hardware and Embedded Systems", CHES 2003, 5th International Workshop, vol. 2779 of Lecture Notes in Computer Science, pp 2-16., September 2003. 69
[36] [37]
[38] [39] [40] [41]
[42]
[43] [44] [45]
[46] [47] [48]
[49]
*** „AES library”, 2010. [Online] Available: http://www.das-labor.org/wiki/AVRCrypto-Lib. *** "Advanced Encryption Standard", National Institute of Standard and Technologies, November 2001. [Online] Available: http://csrc.nist.gov/publications/fips/fips197/fips197.pdf. *** "Applications of modern cryptography", Surfnet, September 2010. [Online] Available: http://www.surfnet.nl/Documents/rapport_201009_SNcryptoWEB.pdf. *** "ATmega328 Datasheet", Atmel. [Online] Available: http://www.atmel.com/Images/doc8161.pdf. *** "COPACABANA", 2008. [Online] Available: http://www.copacobana.org/. *** "Data Encryption Standard", National Institute of Standard and Technologies, October 1999. [Online] Available: http://csrc.nist.gov/publications/fips/fips46-3/fips463.pdf. *** "DES Cracker", July 1998. [Online] Available: http://w2.eff.org/Privacy/Crypto/Crypto_misc/DESCracker/HTML/19980716_eff_des_fa q.html. *** "EMV Integrated Circuit Card Specifications for Payment Systems" - Book 2: Security and Key Management, June 2004. [online] Available: http://www.emvco.com/. *** "Enigma Machine", First modern cryptographic device, Wikipedia 2013. [Online] Available: http://en.wikipedia.org/wiki/Enigma_machine. *** "SelTrac. Communications-Based Train Control", Thales. [Online] Available: https://www.thalesgroup.com/sites/default/files/asset/document/SelTracBrochure_CBTC Solutions_eng.pdf. *** "The Common Criteria" [Online] Available: http://www.commoncriteriaportal.org. *** "X.509: Information Technology. Public Key Infrastructure.". [Online] Available: http://www.itu.int/rec/T-REC-X.509/en. *** „LTspice”, Design Simulation and Device Models, Linear Technology, 2013. [Online] Available at: http://www.linear.com/designtools/software. ***, „Cultivate resilient smart Objects for Sustainable city applicatiOnS - COSMOS”, RCN 110375, QVD 2013-09-23.
70
Modelarea, securizarea și verificarea circuitelor digitale utilizate în criptografie Modelling, securing and verifying digital electronic circuits used in cryptographic applications Conducător științific, Prof. dr. ing. Radu CÂMPEANU
Doctorand, Ing. Ciprian Leonard PIȚU
Rezumat în limba română Proiectarea circuitelor digitale integrate presupune obținerea unor soluții constructive complexe, robuste, fiabile și sigure care să permită dezvoltarea unor sisteme automate ce se încadrează în standardele internaționale obținând în același timp caracteristici de funcționare optime. Datorită tentațiilor pe care le reprezintă aceste circuite, recent a avut loc o explozie a atacurilor de securitate care exploatează tot mai multe detalii constructive ale acestora. Ca urmare lucrarea de față își propune dezvoltarea unei metode, teoretice și practice, care să permită evaluarea nivelului de protecție împotriva celei mai comune clase de atacuri de securitate – analiza diferențială de putere. Pentru validarea metodei au fost utilizate simulări funcționale, atât la nivel logic cât și la nivel fizic și măsurători experimentale ale unor circuite criptografice implementate în limbaje de descriere hardware, de nivel înalt. Pentru realizarea experimentelor au fost folosite laboratoarele companiei Siemens S.R.L. din Brașov. Modelarea matematică și execuția practică a atacurilor de securitate a fost realizată ajutorul unei aplicații dedicate, dezvoltate pe parcursul cercetărilor întreprinse. Pentru executarea atacurilor de securitate, în vederea aprecierii nivelului de protecție al circuitelor analizate, au fost utilizate două standuri experimentale, unul bazat pe un microcontroler de uz comun și unul bazat pe un circuit digital reprogramabil (FPGA). Simularea funcțională a circuitului analizat a fost realizată cu ajutorul unui simulator digital standard Pe baza rezultatelor obținute din analiza circuitelor fizice au fost parametrizate modelele matematice pe baza cărora sunt executate atacurile de securitate. Scopul final al lucrării este identificarea potențialelor breșe de securitate încă din faza de proiectare a circuitelor digitale integrate, când costurile de reproiectare sunt minime. Abstract The design of digital circuits has consider complexity, robustness, reliability and security as design guidelines in order to meet international standards while achieving optimum operating characteristics. Duet o the temptations posed by digital circuits, a recent explosion of security attacks has plagued the industry. These attacks exploit more and more design details of the attacked circuits. Thus, this work proposes the development of a novel, theoretical and practical, method of analyzing the security defense level of digital circuits against the most common form of security attacks – differential power analysis. In order to validate the method both simulations, functional and gate level, and experimental measurements were executed on digital circuits which implement cryptographic functions. The measurements were performed using the laboratory setup of Siemens S.R.L. in Brașov. The mathematical modeling and the experimental execution of the attacks were performed using a dedicated software application which was developed during the course of these research activities. In order to assess the security protection level of the analyzed circuit two experimental stands were used, the one based on a general purpose microcontroller and the other based on a FPGA device. The functional simulations were executed using a standard digital simulator used also by hardware design engineers. Based on the obtained results the mathematical models were parameterized in order to obtain better performance. The final goal of the presented research activities is the identification of potential security weaknesses, of digital circuits, during the course of the concept and design phases, when the redesign costs are minimal. 71
Curriculum Vitae Informații personale Nume
Adresă Telefon fix/mobil Email & Google / Skype Data nașterii Experiență profesională 2012 - prezent
2009 - prezent
2006 - 2012
2004 - 2006
Cursuri 2012 – 2013
2010 Educație și formare 2010 – prezent
2007 – 2009 2002 – 2007
1999 - 2002 Competențe personale Limbi străine Competenţe organizaţionale
Competenţe tehnice
Ciprian Leonard Pițu
str. Lămâiței nr. 125, Brașov – 500371, România +40 268 311 930 / +40 722 77 42 70
[email protected] 04/februarie/1984 Inginer proiectant/Cercetător științific Siemens SRL, Brașov, România ▪ Proiectare și verificare de circuite digitale integrate; Proiectare de sisteme înglobate (hardware și software); Management de proiecte;Cercetare Sectorul de activitate Cercetare/Industrie Cadru universitar asociat Universitatea Transilvania din Brașov, Brașov, România ▪ Achiziție și procesare de date – laborator; Electronică digitală Sectorul de activitate Educație/Cercetare Inginer Proiectant Siemens PSE SRL, Brașov, România ▪ Proiectare de sisteme înglobate (hardware și software); Proiectare de circuite cablate; Verificate de circuite digitale integrate Sectorul de activitate Industrie General Numeric SRL, Brașov, Româna ▪ Proiectare de sisteme înglobate (hardware și software) Sectorul de activitate Industrie PM@Siemens Combined Certification IPMA/PM@Siemens curs și certificare ▪ Director de proiecte nivel C - certificare internațională Training of Trainers Formator cu scopuri educaționale, acreditare CNFPA, Cluj-Napoca, România ▪ Aptitudini de formator; Aptitudini de comunicare Doctorand în domeniul Ingineriei Electrice Universitatea Transilvania din Brașov, Brașov, România ▪ Elaborarea tezei cu titlul „ Modelarea, securizarea și verificarea circuitelor digitale utilizate în criptografie” ▪ Securitate digitală; Electronică digitală Master în domeniul Ingineriei Electrice (Management Energetic) Universitatea Transilvania din Brașov, Brașov, România ▪ Inginerie electrică; Electronică Inginer diplomat (Electrotehnică) Universitatea Transilvania din Brașov, Brașov, România ▪ Inginerie electrică; Electronică; Știința calculatoarelor Diplomă de Bacalaureat Liceul teoretic Johannes Honterus, Brașov, România ▪ Matematică; Fizică; Știința calculatoarelor Germană („Sprachdiplom zweiter Stufe”/C2); Engleză (C1) abilități de coordonare (responsabil în prezent pentru o echipă de 5 persoane); abilități de comunicare (cu parteneri naționali și internaționali) dobândite prin poziția de director de proiect; deschidere „spre nou”; creativitate; flexibilitate; experiență în domeniul cercetării; capacitatea de a lucra în echipă cunoștințe avansate de folosire programelor Xilinx™; cunoștințe avansate de folosire programelor Mentor™; cunoștințe avansate de programare în limbajele C/Perl/Python/VHDL/Verilog; cunoștințe avansate despre programe înglobate (dezvoltare de aplicații înglobate pentru arhitecturile AVR™/ARM™ utilizând compilatorul GCC); cunoștințe avansate despre sisteme înglobate (dezvoltarea multor sisteme înglobate cu aplicații comerciale și industriale)ș cunoștințe avansate de Linux™/Unix™; cunoștințe avansate de Windows™; cunoștințe avansate despre arhitecturi ale sistemelor de calcul (comerciale și industriale)
72
Curriculum vitae Personal information Name
Address Phone / mobile Email & Google / Skype Date of birth Experiență profesională 2012 - present
2009 - present
2006 - 2012
2004 - 2006
Training 2012 – 2013
2010
Education 2010 – prezent
2007 – 2009 2002 – 2007
1999 - 2002
Personal skills Limbi străine Competenţe organizaţionale
Competenţe tehnice
Ciprian Leonard Pițu
Lămâiței str., no. 125, Brașov – 500371, România +40 268 311 930 / +40 722 77 42 70
[email protected] 04/februarie/1984 Research engineer Siemens SRL, Brașov, România ▪ Digital design & verification; Embedded system design (hardware and software); Project management; Research Sector Research/Industry Associate lecturer Universitatea Transilvania din Brașov, Brașov, România ▪ Data acquisition and processing techniques - laboratory; Digital electronics Sector Education/Research Hardware design engineer Siemens PSE SRL, Brașov, România ▪ Embedded system design (hardware and software); PCB design; Hardware verification Sector Industry Embedded system design engineer General Numeric SRL, Brașov, Româna ▪ Embedded system design (hardware and software) Sector Industry PM@Siemens Combined Certification IPMA/PM@Siemens training + certification ▪ Level C certified PM Training of Trainers Professional trainer for educational purposes – CNFPA accredited, Cluj-Napoca, România ▪ Training skills; Communication skills Doctor of Science Student Universitatea Transilvania din Brașov, Brașov, România ▪ Developing the thesis with the title „Modeling, securing and verifying digital electronics used în cryptographic applications”; Digital security; Digital electronics M.Sc. în Electrical Engineering (Energy Management) Universitatea Transilvania din Brașov, Brașov, România ▪ Electrical Engineering; Electronics B.Sc. în Electrical Engineering Universitatea Transilvania din Brașov, Brașov, România ▪ Electrical Engineering; Electronics; Computer science ”Bacalaureat” Diploma Johannes Honterus Lyzeum , Brașov, România ▪ Mathematics; Physics; Computer science German („Sprachdiplom zweiter Stufe”/C2); English (C1) leadership (currently responsible for a project team of 5 people); good communication skills (with national and international partners) gained through my experience as project manager; openness; creativity; flexibility; research experience; team player good Xilinx™ & Mentor™ tools knowledge; good C/Perl/Python/VHDL/Verilog programming skills; good embedded software (development of AVR™/ARM™ firmware applications using GCC tool-chain) & hardware skills (development of many hardware platforms used în commercial and industrial applications); good Linux/Unix™ OS knowledge; good Windows™ OS knowledge; good computing system architectural knowledge (commercial and industrial)
73