Side channel attacks



Vergelijkbare documenten
Hoe je het cryptosysteem RSA soms kunt kraken. Benne de Weger

Tweede Huiswerk Security 26 of 28 oktober, 11.00, Nabespreken op Werkcollege.

Tweede Toets Security 9 november 2016, , Educ-α.

Zwakke sleutels voor RSA

Probabilistische aspecten bij public-key crypto (i.h.b. RSA)

Ontmanteling contactloze chipkaart

Public Key Cryptography. Wieb Bosma

Cryptografie: de wetenschap van geheimen

Toepassingen van de Wiskunde in de Digitale Wereld

Smart cards en EMV. Joeri de Ruiter. Digital Security, Radboud University Nijmegen

niet: achterop een ansichtkaart schrijven postbode (en wie al niet meer) leest mee

slides10.pdf December 5,

??? Peter Stevenhagen. 7 augustus 2008 Vierkant voor wiskunde

4Passief: n Afluisteren. n Geen gegevens gewijzigd of vernietigd. n Via de routers van WAN. n Via draadloze verbindingen. 4Fysieke afsluiting

Het programma ELGAMAL

Algoritmes en Priemgetallen. Hoe maak je een sleutelpaar voor RSA?

FACTORISATIE EN CRYPTOGRAFIE

Tweede Toets Security 2 november 2015, , Educ-α.

Tweede Toets Security Woensdag 8 november 2017, , Educ-α.

Opgaven RSA Security, 15 okt 2018, Werkgroep.

Elliptische krommen en digitale handtekeningen in Bitcoin

Tweede Deeltoets Security 3 juli 2015, , Educatorium-Γ.

Cryptografische beveiliging op het Internet

Crypto, Certificaten, SSL, PKI What can possibly go wrong? ISC2 cryptonight 10 juni 2014

Rekenen aan wortels Werkblad =

RSA. F.A. Grootjen. 8 maart 2002

Complex multiplication constructions in genus 1 and 2

AANVALLEN OP WES3 + LEN SPEK & HIDDE WIERINGA

Onafhankelijke verzamelingen en Gewogen Oplossingen, door Donald E. Knuth, The Art of Computer Programming, Volume 4, Combinatorial Algorithms

Opgaven Discrete Logaritme en Cryptografie Security, 22 okt 2018, Werkgroep.

Random-Getallen. Tristan Demont en Mark van der Boor en

De wiskunde achter de Bitcoin

Security. Eerste tentamen

Hoe je het cryptosysteem RSA soms kunt kraken

Datacommunicatie Cryptografie en netwerkbeveiliging

Worteltrekken modulo een priemgetal: van klok tot cutting edge. Roland van der Veen

Verslag: Computer. Naam: Tyrone Ste Luce. Klas: M4B

Het RSA Algoritme. Erik Aarts - 1 -

Code signing. Door: Tom Tervoort

Als we bv 2 db-waardes hebben: -31db en -52db dan kunnen we zeggen dat het verschil 21dB is. Maar klopt dit wel? Daarom controleren we even:

Profielwerkstuk Natuurkunde Weerstand en temperatuur

Rekenen: Getallen groep 5 en hoger. Rekenen en schattingen ontdekken. Algebra groep 5 en hoger. Patronen en relaties ontdekken.

D-dag 2014 Vrijeschool Zutphen VO. D -DAG 13 februari 2014: 1+ 1 = 2. (en hoe nu verder?) 1 = 2en hoe nu verder?

Technisch ontwerp positiebepaling Smart Blocks

De cryptografie achter Bitcoin

OPLOSSINGEN VAN DE OEFENINGEN

Percentage afwijkingen groter dan vijf decibel

De bisectie methode uitgelegd met een makkelijk voorbeeld

Profielwerkstuk Informatica en Wiskunde Is RSA-cryptografie nu veilig genoeg en wat betekent dit voor de toekomst van digitale beveiliging?

Algoritmes in ons dagelijks leven. Leve de Wiskunde! 7 April 2017 Jacobien Carstens

Eindexamen wiskunde B1-2 vwo 2006-II

1 Rekenen in eindige precisie

3.4.3 Plaatsing van de meters in een stroomkring

Cryptografie: ontwikkelingen en valkuilen bij gebruik. Eric Verheul Bart Jacobs 5 oktober 2011

Polymorfe Encryptie en Pseudonimisering in het eid stelsel. Building digital trust 15 juni Op persoonlijke titel

Geldwisselprobleem van Frobenius

Plugwise binnen de zakelijke omgeving

Samenvatting voor de leek

Eindexamen natuurkunde 1 havo 2003-I

Eindexamen wiskunde A havo I

Inleiding. Hoofdstuk 1

Cover Page. The handle holds various files of this Leiden University dissertation.

Eindexamen natuurkunde 1-2 havo 2003-I

Recursion. Introductie 37. Leerkern 37. Terugkoppeling 40. Uitwerking van de opgaven 40

Werken op afstand via internet

Case 1 en Simulink. 1. Diodefactor bepalen. I = I sc - I s (e!

Elektro-magnetisme Q B Q A

Werkblad 1 Serieschakeling gelijke lampjes

Kunnen we IoT-elektronica wel beveiligen?

1945, eerste DC. Eigen logo

12 Elektrische schakelingen

Technische Informatie

7 Deelbaarheid. 7.1 Deelbaarheid WIS7 1

STROOMSENSOR BT21i Gebruikershandleiding

Opgaven Eigenschappen van Getallen Security, 2018, Werkgroep.

Beschrijving toolset Netwerk/Protocol/Applicatie test Datum 11 januari 2012 Auteur Louis de Wolff Versie 1.0

Gegevens invullen in HOOFDLETTERS en LEESBAAR, aub. Belgische Olympiades in de Informatica (duur : maximum 1u15 )

Voorbereidend Wetenschappelijk Onderwijs Tijdvak 1 Vrijdag 27 mei totale examentijd 3 uur

Uitwerkingen opgaven hoofdstuk 1

informatica. cryptografie. overzicht. hoe & wat methodes belang & toepassingen moderne cryptografie

De netimpedantie nader bekeken

voorbeeld van een berekening: Uit de definitie volgt dat de ontvangen stralingsdosis gelijk is aan E m,

Cryptografie: Van DES tot Chipknip

RFID (in)security VUrORE. Jeroen van Beek VU AMSTERAM 18 april 2008

WEP, chopchop en WPA

Postkwantumcryptografie

College Cryptografie. Cursusjaar Moderne systemen. 7 januari 2006

LEGO Energiemeter. Hoe te beginnen

Eindexamen natuurkunde 1 havo 2005-II

recursie Hoofdstuk 5 Studeeraanwijzingen De studielast van deze leereenheid bedraagt circa 6 uur. Terminologie

Applet-based e-ticketing

9 PARALLELSCHAKELING VAN WEERSTANDEN

Isolatie meting. Veiligheid voor alles. De meting. Door Ruud Sikking, Emv.Ninja

Kwetsbaarheden in BIOS/UEFI

Inleiding 3hv. Opdracht 1. Statische elektriciteit. Noem drie voorbeelden van hoe je statische elektriciteit kunt opwekken.

Hierin is λ de golflengte in m, v de golfsnelheid in m/s en T de trillingstijd in s.

Temperatuur logger synchronisatie

Toetsbundel 2 Security 13 juli 2017, Gerard Tel, WerkCollege.

Oefening 4.3. Zoek een positief natuurlijk getal zodanig dat de helft een kwadraat is, een derde is een derdemacht en een vijfde is een vijfdemacht.

Transport Layer Security. Presentatie Security Tom Rijnbeek

Transcriptie:

Side channel attacks Gerrit Wiltink 4 februari 2010 1 Inleiding Het is belangrijk te onderzoeken of cryptografische algoritmen veilig (genoeg) zijn. De tak van de wetenschap die zich hiermee bezig houdt heet cryptoanalyse. Bij analyse van een cryptografisch algoritme gebruikt men 1. de kennis die men over het algoritme heeft, en 2. (eventuele) informatie over de input en output ervan. Bij kennis over de input kan men denken aan een (gekozen) klaretekst-aanval, bij de output aan een (gekozen) cijfertekst-aanval. Natuurlijk zijn ook combinaties hiervan mogelijk. De aanname dat dit alle informatie is die verkregen en gebruikt kan worden voor de analyse van een cryptografisch algoritme kan niet zonder meer overgenomen worden wanneer het de analyse van een implementatie van dat algoritme betreft. Dit geldt uiteraard ook voor de eventueel geconstateerde theoretische veiligheid van het algoritme. Bij een implementatie van een cryptografisch algoritme kan men denken aan smartcards. Iedereen heeft tegenwoordig wel een of meer van deze kaartjes bij zich (Chipknip, OV-chipkaart, etc... ) en vertrouwt op de veiligheid ervan. Omdat deze kaartjes zo klein zijn is het voor een kwaadwillende vaak erg gemakkelijk ze (een poosje) ongemerkt mee te nemen. Met uitzondering van sectie 2.1, waar een aanval op een Apache webserver beschreven wordt, gaat deze paper dan ook uit van een smartcard-implementatie. Het blijkt dat er meer input- en outputkanalen zijn dan de hiervoor genoemde (zie Figuur 1). Deze extra informatiekanalen worden side channels genoemd, aanvallen die er gebruik van maken side channel attacks. Side channel attacks zijn op te delen in actieve en passieve aanvallen. Actieve aanvallen zijn door de aanvaller veroorzaakte veranderingen (in de omgeving) van een implementatie. Bij passieve aanvallen kijkt de aanvaller enkel naar informatie die lekt tijdens de (correcte) werking van de implementatie. Omdat passieve aanvallen, in tegenstelling tot actieve aanvallen, geen schade achterlaten is het lastiger een op deze manier gecompromitteerde smartcard te herkennen. Deze paper is als volgt opgebouwd: in secties 2 en 3 worden voorbeelden van passieve aanvallen, respectievelijk een tijdaanval en een stroomaanval, besproken. In sectie 4 volgen actieve aanvallen. Daarna wordt kort ingegaan op overige methoden en tegenmaatregelen. 1

Figuur 1: Als een aanvaller de beschikking heeft over een smartcard waarop hij wat cryptografische operaties kan uitvoeren, kan hij metingen doen om extra informatie te krijgen. Zo kan hij meten hoe lang de smartcard over een decryptie doet, of hoeveel stroom deze verbruikt tijdens het zetten van een handtekening. Zelfs vrijkomende elektromagnetische straling is een bron van informatie. [7] 2 Tijdaanval Elke instructie die uitgevoerd wordt op een computer kost tijd. Hoeveel tijd kan afhangen van de operanden van de instructie. Het vermenigvuldigen van twee grote getallen zal bijvoorbeeld meer tijd kosten dan het vermenigvuldigen van twee kleine getallen. Theoretisch gezien kan een aanvaller dus uit de duur van een instructie informatie over de operanden afleiden. Praktisch gezien kan dit ook, mits er voldoende vaak en nauwkeurig genoeg gemeten wordt. Deze situatie wordt gevaarlijk wanneer de operanden deel uit maken van geheime data, in cryptografische algoritmen kan men dan denken aan bits van de geheime sleutel. Bij een tijdaanval (Engels: timing attack) probeert de aanvaller geheime data te weten te komen aan de hand van verzamelde gegevens over de tijdsduur van een of meer cryptografische handelingen. Een (cryptografisch) algoritme kan altijd beveiligd worden tegen een tijdaanval. Als een operatie binnen het algoritme altijd precies even lang duurt, kan de aanvaller geen informatie meer krijgen door de tijdsduur te meten. In de praktijk is deze oplossing vaak niet wenselijk, want systemen worden er erg traag van. De eerste tijdaanval (op RSA-decryptie) werd beschreven door Kocher [8]. Deze aanval maakt gebruik van de extra vermenigvuldiging bij het square-andmultiply-algoritme, die in de i e iteratie optreedt wanneer de i e bit van de exponent op 1 staat. Deze aanval werd tegen een aantal smartcards in de praktijk gebracht door Dhem e.a. [5]. 2.1 RSA In 2003 beschreven Brumley en Boneh een succesvolle aanval op de OpenSSLimplementatie van RSA waarbij de modulus n werd gefactoriseerd [4]. Met deze aanval konden ze, over een lokaal computernetwerk, de 1024-bits geheime RSAsleutel van een Apache webserver te weten komen. Hieronder wordt hun aanpak kort beschreven. De OpenSSL-implementatie van RSA is in hoge mate geoptimaliseerd. Zo 2

Figuur 2: Als g dicht onder een veelvoud van p of q zit neemt het aantal extra reducties tijdens het machtsverheffen sterk toe. Wanneer g een veelvoud van p of q is daalt dat aantal sterk. Door tijdverschillen die ontstaan als gevolg van deze extra reducties te meten kan een aanvaller informatie over g (mod q) en g (mod p) te weten komen. [4] wordt er in subgroepen gerekend met de Chinese reststelling, machtsverheffen gebeurt met sliding windows (een variant van square-and-multiply), modulaire reductie met het Montgomery-algoritme en er zijn maar liefst twee verschillende vermenigvuldigingsroutines. Samen versnellen deze optimalisaties de decryptie, maar ze blijken ook belangrijke informatie over de (geheime) priemfactoren van de RSA-modulus te lekken. In de aanval wordt dan ook getracht de kleinste priemfactor q van de RSA-modulus n = pq te achterhalen. Tijdens de berekening x = y dq (mod q) wordt het Montgomery-algoritme gebruikt voor de reductie modulo q. Aan het eind van deze reductie wordt gecontroleerd of de output groter dan q is. Mocht dat zo zijn, dan wordt er q van afgetrokken zodat de output tussen 0 en q ligt. Deze extra reductie veroorzaakt een tijdverschil en de kans er op blijkt proportioneel te zijn met g (mod q) (zie Figuur 2). Zoals hierboven reeds genoemd, implementeert OpenSSL twee vermenigvuldigingsroutines: Karatsuba en normaal. Grote getallen worden gerepresenteerd als reeksen geheugenwoorden en wanneer getallen a en b even lang zijn (in aantal woorden) wordt Karatsuba gebruikt om hun product ab te berekenen. In het andere geval wordt ab berekend met het normale vermenigvuldigingsalgoritme. Omdat Karatsuba sneller is zal vermenigvuldiging van getallen van gelijke lengte sneller gaan dan vermenigvuldiging van getallen van verschillende lengte. Ook hier lekt dus informatie. Als y iets kleiner dan een veelvoud van q is zal OpenSSL bijna altijd gebruik maken van Karatsuba. Wanneer y iets groter dan een veelvoud van q is zullen de getallen het vaakst van verschillende lengte zijn, en wordt normale vermenigvuldiging gebruikt. Dit lijkt het tijdverschil door het Montgomery-algoritme op te heffen, maar in de aanval blijken de effecten in verschillende fasen te domineren. De aanval begint met een schatting g (Engels: guess) van q, die 512 bits lang zal zijn voor een 1024-bits modulus. 3

Daarna worden de bits, vanaf de meest significante, één voor één achterhaald totdat er 256 bekend zijn. Dan wordt met het algoritme van Coppersmith de gehele factor achterhaald. Gegeven een schatting g waarvoor de i 1 meest significante bits gelijk zijn aan de i 1 hiermee corresponderende bits van q, en alle andere bits op 0 staan. Nu wordt de waarde van de i e bit als volgt achterhaald. Laat g gelijk zijn aan g, maar met de i e bit op 1. Als de i e bit van q ook 1 is geldt g < g < q, in het andere geval geldt g < q < g. Laat g en g door de server ontsleutelen en meet de decryptietijden t g en t g. Als = t g t g groot uitvalt, zal de i e bit van q 0 zijn, als klein uitvalt zal deze 1 zijn. Door niet alleen g en g, maar een hele neighborhood g, g + 1, g + 2,..., g + n (en evenzo voor g ) te laten ontsleutelen wordt het verschil tussen een grote en een kleine duidelijker zichtbaar. De decryptietijd voor g wordt nu T g = n i=0 t g i. Om de effecten van netwerkverkeer te beperken wordt elke g+i (en g +i) ook nog eens herhaaldelijk opgestuurd, het gemiddelde wordt nu als decryptietijd genomen. In de praktijk kan de aanvaller bijvoorbeeld tijdens de SSL-handshake decryptieverzoeken sturen aan de server. In plaats van een random getal, zoals gebruikelijk, stuurt hij nu z n schatting g van q. Het blijkt dat met ongeveer anderhalf miljoen van deze decryptieverzoeken de factor q, en daarmee de geheime sleutel van de server, te achterhalen is. Deze aanval duurde circa 2 uur voor een 1024-bits modulus. Als verdediging tegen deze aanval kan de server de decryptieverzoeken blinderen met een random getal. Hierdoor zal de decryptietijd niet meer samenhangen met de gestuurde waarde. Na publicatie van deze aanval is standaard blindering inderdaad als patch aangebracht in OpenSSL. 3 Stroomaanval Bij een stroomaanval (Engels: power attack) probeert de aanvaller door het bestuderen van het stroomverbruik van een smartcard tijdens een cryptografische operatie geheime informatie te weten te komen. Om het stroomverbruik te meten wordt er een kleine weerstand geplaatst tussen de stroombron en de smartcard. De stroomsterkte wordt nu berekend door de spanning over de weerstand te delen door de weerstandswaarde. Een trace is een verzameling van zulke metingen. Hoe meer metingen er gedaan worden, des te nauwkeuriger de trace. Met een oscilloscoop kan het stroomverbruik inzichtelijk gemaakt worden. Voor analyse worden de traces opgeslagen op een computer. Aanvallen kunnen uitgevoerd worden met apparatuur die enkele honderden tot duizenden euro s kost en gemakkelijk verkrijgbaar is. Er worden twee soorten stroomaanval onderscheiden. 3.1 Simple power analysis Bij simple power analysis (SPA) wordt verloop van het stroomverbruik geanalyseerd (zie Figuur 3). Variaties in het stroomverbruik treden op bij het uitvoeren van verschillende instructies. Zo zal een trace van het permuteren van een bitrij (DES) er anders uitzien dan die van de vermenigvuldiging van twee grote getallen (RSA). SPA kan zo onthullen welke instructies uitgevoerd worden. Als een smartcard gebruik maakt van geheime data (bijvoorbeeld bits van de sleu- 4

Figuur 3: Een SPA-trace van een DES-operatie. De zestien ronden van het algoritme, alsmede de initiële permutatie en die aan het eind, zijn duidelijk herkenbaar. [9] tel) om het executiepad te bepalen, kan de aanvaller aan de hand van de trace terugredeneren naar de waarde van deze data. Een voorbeeld hiervan is het square-and-multiply-algoritme (zie sectie 2). Een SPA-aanval duurt maar een paar seconden. Tegen SPA kan vrij eenvoudig verdedigd worden, vaak ten koste van de performance. 3.2 Differential power analysis Differential power analysis (DPA) maakt gebruik van statistische methoden om de verkregen traces te analyseren. Een DPA-aanval kan enkele uren duren. Kocher, Jaffe en Jun beschrijven de volgende aanval op DES [9]. De aanvaller observeert eerst m (bijvoorbeeld 1.000) encrypties (met dezelfde sleutel) en verzamelt daarvan per encryptie de uiteindelijke cijfertekst en k (bijvoorbeeld 100.000) metingen van het stroomverbruik in de laatste paar ronden. Het is voor de aanval niet noodzakelijk de klare tekst te weten. De aanvaller verdeelt de m traces nu in twee verzamelingen. Dit doet hij op grond van een zogenaamde selectiefunctie. Bij deze aanval wordt de functie D(C, b, K s ) gebruikt. Deze functie berekent de waarde van bit b (0 b < 32) van L 15 voor cijfertekst C. K s (0 K s < 2 6 ) is hierbij een schatting van de sleutelbits die door de S-box gebruikt worden om bit b te berekenen. De traces waarbij D(C, b, K s ) een 1 als uitkomst heeft worden in de ene verzameling geplaatst, de traces waarbij D(C, b, K s ) een 0 als uitkomst heeft in de andere. Voor beide verzamelingen wordt een gemiddelde trace berekend. Deze twee gemiddelden worden van elkaar afgetrokken, waardoor de aanvaller de beschikking krijgt over een differentiële trace D. Als de gebruikte schatting voor K s incorrect is zal D rond de 0 variëren omdat de selectiefunctie dan niet gecorreleerd is met wat er feitelijk berekend wordt door het apparaat. De selectiefunctie is dan dus een random functie, en de twee berekende gemiddelden zullen vrijwel gelijk zijn (als m groot genoeg is). Is de schatting voor K s echter correct, dan zal D pieken vertonen op plaatsen waar D gecorreleerd is met de waarden die worden berekend (zie Figuur 4). Ook RSA is kwetsbaar voor DPA. Hierbij worden geschatte bits van de exponent getest op correctheid door te controleren of verwachtte tussenresultaten correleren met de werkelijke berekening. Bij implementaties die met behulp van 5

Figuur 4: Aan de pieken in de bovenste differentiële trace is te zien dat een goede schatting van K s is gebruikt. De onderste twee differentiële traces zijn vlak als gevolg van een onjuiste schatting van K s. De bovenste trace is een normale, voor referentie opgenomen, trace. [9] de Chinese reststelling in subgroepen modulo p en modulo q rekenen, kan een selectiefunctie gedefiniëerd worden over het terugrekenen naar modulo n. Een verdediging tegen stroomaanvallen is het plaatsen van dummy registers en gates, waarop nutteloze instructies uitgevoerd worden. Een ander idee is het fysiek afschermen van de smartcard. Het toevoegen van ruis doet het aantal benodigde samples voor een aanval toenemen, mogelijkerwijs tot het voor de aanvaller ondoenlijk wordt. 4 Foutaanval Bij een foutaanval (Engels: fault attack) veroorzaakt de aanvaller een fout in de berekening van het cryptosysteem zodat het resultaat onjuist zal zijn. Uit die foute uitkomst kan dan geheime informatie afgeleid worden. Er zijn ruwweg drie verschillende soorten foutaanvallen. Niet-invasieve aanvallen. Bij deze aanvallen wordt de verpakking van de chip intact gelaten. Fouten worden veroorzaakt door de omstandigheden waaronder het apparaat werkt te manipuleren. Dit kan gedaan worden door pieken in de externe klok (glitch attack) te introduceren. Deze pieken hebben tot gevolg dat de data die wordt verplaatst tussen registers en geheugen gecorrumpeerd raakt. Mogelijke andere aanvallen zijn het veroorzaken van pieken in de stroomvoorziening (spike attack) of het extreem verhogen of verlagen van de omgevingstemperatuur. Voordeel van dit soort aanvallen is dat ze goedkoop en makkelijk uitvoerbaar zijn. Nadeel is dat ze effect op de gehele chip hebben, en dus weinig nauwkeurig 6

Figuur 5: Foutinjectie met een laser gebruikt het zelfde principe als zonnecellen. Als een foton met voldoende energie op een elektron in een metaal botst wordt de foton geabsorbeerd en het elektron van zijn plaats geschoten. Dit produceert een gat en een vrij elektron. Als dit in de buurt van een elektrisch veld gebeurt, bijvoorbeeld bij een p-n overgang, raken elektron en gat van elkaar gescheiden en ontstaat er een stroompje. Bij voldoende hoge intensiteit kan de zo opgewekte stroom de transistor laten schakelen. Als goedkope opstelling voor deze aanval kan men een laserdiode en een optische vezel (in plaats van een dure microscoop) gebruiken. De kosten hiervoor zijn ongeveer e15,-. [11] zijn. Semi-invasieve aanvallen. Deze aanvallen vereisen toegang tot het oppervlak van de chip en richten zich ook op dataopslag. In de meeste gevallen is dan nodig dat de verpakking verwijderd wordt. Dit wordt gedaan door er een gaatje in te boren en dit op te vullen met rokend salpeterzuur. Hierna wordt het geheel ultrasoon gereinigd in aceton. Deze stappen worden herhaald totdat de chip voldoende blootgelegd is. Een voorbeeld van een semi-invasieve aanval is foutinjectie met een laser, zie Figuur 5. Nadeel van deze aanvallen is vooral het benodigde materiaal, zoals de hiervoor genoemde chemicaliën. Invasieve aanvallen. Deze aanvallen maken direct contact met de oppervlakte van de chip, dus ook hier zal de verpakking verwijderd worden. Zo kan de inhoud van het EEPROM geheugen gemanipuleerd worden. Ook is het mogelijk om verbindingen op de chip door te snijden en zo te knoeien met de random number generator. Voordeel is dat deze aanvallen erg nauwkeurig zijn, nadeel is dat er zeer dure installaties zoals een probe station, een lasersnijmachine, of een gefocusseerde ionenstraal voor nodig zijn. Verder worden foutaanvallen nog onderscheiden naar het type fout (flipt een bit of wordt deze juist ge(re)set), welke operatie verstoord wordt, hoeveel bits getroffen zijn, en duur van de fout (voorbijgaand, permanent of destructief). 4.1 RSA Boneh, DeMillo en Lipton [3] beschreven hoe een fout in de berekening van een RSA-handtekening s = m d (mod n) over een bericht m kan leiden tot het achterhalen van de priemfactoren p en q van de modulus n. Zij gaan uit van 7

een smartcard die de Chinese reststelling gebruikt om de exponentiatie in subgroepen uit te rekenen. Voor deze aanval wordt tweemaal achtereen bericht m ondertekend. Bij één van de berekeningen wordt echter de deelberekening s q = m d (mod q) verstoord. Laat s p de correcte handtekening modulo p zijn, s q de correcte handtekening modulo q, en ŝ q de incorrecte handtekening modulo q. Nu geldt = s ŝ = (W p s p + W q s q ) (W p s p + W q ŝ q ) = W q (s q ŝ q ). Omdat W q een veelvoud van p is, is dat ook. Factor p laat zich nu gemakkelijk berekenen als gcd (, n). Als tegenmaatregel kan een smartcard het resultaat controleren alvorens het op te leveren. Bijvoorbeeld door m = s e te berekenen en na te gaan of m m, wanneer e klein is kan deze verificatie snel gedaan worden. Als dat niet het geval is kan de volgende truc van Shamir gebruikt worden. Neem een (relatief klein) random getal r en bereken de handtekening in subgroepen als s p = m d (mod pr) en s q = m d (mod qr). Controleer vervolgens of s p (mod r) s q (mod r). 4.2 DES Ook DES is kwetsbaar voor een foutaanval [2]. De volgende aanval gaat uit van een fout in de vijftiende ronde van DES. In de zestiende ronde worden L 16 = R 15 R 16 = L 15 f(r 15, K 16 ) = L 15 f(l 16, K 16 ) berekend. Zij nu ˆR 15 = ˆL 16 het incorrecte resultaat van de vijftiende ronde, dan: ˆR 16 = L 15 f( ˆR 15, K 16 ) = L 15 f(ˆl 16, K 16 ) Door R 16 en ˆR 16 te XOR-en ontstaat een vergelijking met één onbekende, namelijk K 16 : R 16 ˆR 16 = L 15 f(l 16, K 16 ) L 15 f(ˆl 16, K 16 ) = f(l 16, K 16 ) f(ˆl 16, K 16 ) Door deze aanval meerdere malen uit te voeren, met de foutinjectie op andere momenten tijdens de vijftiende ronde of met een verschillend bericht, kan gemakkelijk de rondesleutel achterhaald worden. Foutaanvallen op de opvolger van DES, AES, kunnen worden ingedeeld in twee varianten. De ene is gericht tegen de state, de andere tegen de key schedule. Kim en Quisquater beschreven in 2008 een aanval van de tweede soort, waarbij met vier paren correcte en incorrecte cijfertekst in 2,3 seconden de gehele sleutel van AES-128 achterhaald wordt [6]. Een algemene oplossing tegen een foutaanval is het tweemaal uitvoeren van de cryptografische operatie. Dit gaat echter flink ten koste van de performance en er bestaat een niet-verwaarloosbare kans dat de fout twee keer optreedt. 8

5 Overige methoden en tegenmaatregelen Naast de in de vorige secties besproken aanvallen zijn er nog andere side channels. Gelekte elektromagnetische straling is daar één van. Dit werd in 2001 gedemonstreerd door Quisquater en Samyde. [10]. Aanvallen hiermee lijken erg op de in sectie 3 besproken DPA, maar zijn over het algemeen krachtiger. Voordeel is ook dat ze van een afstand uitgevoerd kunnen worden. Een aanvaller kan ook gebruik maken van geluiden die ontstaan tijdens de berekening (acoustische cryptoanalyse). Een aanval zou kunnen lopen via een gehackte laptop die door de onwetende eigenaar meegenomen wordt naar een veilige ruimte waar belangrijke informatie wordt verwerkt [12]. Er is een aantal manieren om implementaties veilig(er) te maken tegen side channel attacks. Zo moeten alle operaties die gedaan worden door de implementatie data-onafhankelijk zijn wat betreft hun tijdsduur. Dit betekent onder andere dat de tijdsduur van een operatie niet meer mag afhangen van de geheime sleutel. Inputblindering zoals beschreven in sectie 2 is een goede oplossing. Wel moet rekening gehouden worden met het eventuele lekken van informatie over de blindingersprocedure zelf. Ook het gebruik van geheime deelresultaten of sleutelmateriaal voor conditional branching operaties dient vermeden te worden. 6 Conclusie Het is bij het ontwerp van een cryptografisch systeem van belang dat het theoretisch veilig is. Maar zoals in de voorgaande secties is laten zien is dat alleen niet voldoende. Er moet ook rekening gehouden worden met zwaktes die pas ontstaan in de implementatiefase. Voor veel aanvalsmethoden zijn oplossingen beschikbaar, maar de meeste zullen niet resulteren in optimale systemen. Er zal dus een afweging gemaakt moeten worden tussen snelheid en veiligheid. Vooral van groot belang is dat ontwerpers van algoritmen, softwareontwikkelaars, en hardwarefabrikanten op de hoogte zijn van elkaars werk. Anders zullen er gaten blijven ontstaan in systemen die veilig verondersteld worden. Referenties [1] H. Bar-El Introduction to Side Channel Attacks. [2] H. Bar-El, H. Choukri, D. Naccache, M. Tunstall, C. Whelan The Sorcerer s Apprentice Guide to Fault Attacks, 2004. [3] D. Boneh, R. DeMillo, and R. Lipton On the importance of checking cryptographic protocols for faults Journal of Cryptology Vol. 14, Nr. 2, 2001, pp. 101-119. [4] D. Brumley, D. Boneh Remote Timing Attacks are Practical SSYM 03: Proceedings of the 12th conference on USENIX Security Symposium 2003. [5] J.-F. Dhem, F. Koeune, P.-A. Leroux, P. Mestré, J.-J. Quisquater, J.-L. Willems A practical implementation of the timing attack CARDIS 98: Proceedings of the International Conference on Smart Card Research and Applications 2000, pp. 167-182. 9

[6] C. H. Kim, J.-J. Quisquater New Differential Fault Analysis on AES Key Schedule: Two Faults Are Enough CARDIS 08: Proceedings of the International Conference on Smart Card Research and Advanced Applications 2008, pp. 48-60. [7] P. Kocher, J. Jaffe, B. Jun Introduction to Differential Power Analysis and Related Attacks 1998. [8] P. C. Kocher Timing Attacks on Implementations of Diffie-Hellman, RSA, DSS, and Other Systems CRYPTO 96: Proceedings of the 16th Annual International Cryptology Conference on Advances in Cryptology Vol. 1109, 1996, pp. 104-113. [9] P. C. Kocher, J. Jaffe, B. Jun Differential Power Analysis CRYPTO 99: Proceedings of the 19th Annual International Cryptology Conference on Advances in Cryptology Vol. 1666, 1999, pp. 388-397. [10] J.-J. Quisquater, D. Samyde ElectroMagnetic Analysis (EMA): Measures and Counter-Measures for Smard Cards Proceedings of Smart Card Programming and Security Vol. 2140, 2001, pp. 200-210. [11] J.-M. Schmidt Differential Fault Analysis - Final Report [12] A. Shamir, E. Tromer Acoustic cryptanalysis http://www.wisdom. weizmann.ac.il/~tromer/acoustic/ [13] The Side Channel Cryptanalysis Lounge http://www.crypto.rub.de/ en_sclounge.html [14] Wikipedia, Side channel attack en gerelateerde pagina s. 10