1.1 Cryptografie en supercomputers Door dr. H.J.J. (Herman) te Riele, Centrum Wiskunde & Informatica, Amsterdam. Cryptografie is de studie en het toepassen van wiskundige technieken ten behoeve van verschillende aspecten van informatiebeveiliging. Daarbij kan men onder andere denken aan: geheimhouding van informatie, vaststellen dat ontvangen informatie authentiek is en niet veranderd is door niet daartoe gerechtigde personen, het verifiëren van de identiteit van een persoon of een terminal of een credit card, en het verifiëren van de bron van ontvangen informatie. Bij geheimhouding van informatie denken we in de eerste plaats aan het omzetten van gegevens in informatie die niet voor onbevoegden te begrijpen is. Een klassiek voorbeeld is het zogenaamde Caesar geheimschrift: hierbij wordt elke letter van een boodschap over een vaste afstand in het alfabet verschoven. De afstand kan per bericht verschillen en heet de “sleutel” van het geheimschrift. In ons alfabet zijn er dus 26 mogelijke sleutels voor het Caesar geheimschrift. Het zal duidelijk zijn dat dit geheimschrift eenvoudig te breken is. Cryptografie speelde in de Tweede Wereldoorlog een grote rol: voorbeeld hiervan is de Duitse coderingsmachine “Enigma'', waarvan de sleutel in de Tweede Wereldoorlog door de Engelsen werd gekraakt. De Brit Alan Turing, door velen beschouwd als de vader van de computer science, speelde hierbij een belangrijke rol. Poolse cryptografen hebben vlak voor het uitbreken van de Tweede Wereldoorlog al een versie van de Enigma gekraakt. Een veel gebruikte coderingsmethode bij electronisch dataverkeer is het zogenaamde DES-algoritme (Data Encryption Standard), een coderingsmethode die in 1976 is verkozen als officiële coderingsmethode van de Amerikaanse overheid. Voor de uitvoering van het DES-algoritme wordt een bericht in blokken van 64 bits verdeeld. Elk van de blokken wordt dan met een reeks aritmetische operaties vercijferd, waarbij een sleutel van 56 bits wordt gebruikt. Deze zelfde sleutel kan ook gebruikt worden om het bericht te ontcijferen. DES wordt bijvoorbeeld gebruikt in onze chipknip- en chipperkaarten. Eind jaren '90 is een poging om DES met behulp van een kleine honderdduizend PCs te kraken binnen een etmaal met succes afgerond. Men schat dat de huidige snelste supercomputer (de IBM Roadrunner met 13000 cell processoren) DES in ongeveer een uur kan kraken. Gevolg hiervan is dat 80bits’ security (kraken daarvan kost nu 224 uur op de Roadrunner, dat is ongeveer 2000 jaar rekenen) na 2010 door experts niet meer veilig genoeg wordt geacht. Toen de zwakte van DES was aangetoond heeft de Amerikaanse overheid gekozen voor een nieuwe encryptie-standaard. Daarvoor werd een wedstrijd uitgeschreven die gewonnen is door twee Vlamingen: Vincent Rijmen en Joan Daemen. Hun encryptie-algoritme staat bekend als “Rijndael” en is sinds 2002 de nieuwe Amerikaanse encryptie-standaard, genaamd AES (Advanced Encryption Standard). Omdat DES en AES een vercijferingssleutel hebben die tegelijk als ontcijferingssleutel dienst doet heten deze algoritmen “symmetrische encryptie-algoritmen”. Ook het Caesar geheimschrift heeft zo'n symmetrische sleutel. Bij asymmetrische encryptie-algoritmen zijn er in feite twee sleutels: de publieke sleutel en de privé-sleutel. De publieke sleutel kan door iedereen gebruikt worden om een boodschap te vercijferen die hij/zij aan de eigenaar van deze sleutel wil sturen, maar deze boodschap kan alleen door de eigenaar ontcijferd worden met behulp van zijn/haar privé-sleutel, die de eigenaar natuurlijk geheim houdt. Anders dan bij symmetrische encryptie is het bij asymmetrische encryptie (als het goed is) niet mogelijk om de privé-sleutel uit de publieke sleutel af te leiden. Voor de encryptie (vercijfering) en decryptie (ontcijfering) van gegevens is bij asymmetrische encryptie meer rekenkracht nodig dan bij symmetrische encryptie en dat is de reden dat de eerste vaker gebruikt wordt voor kleine hoeveelheden informatie, zoals wachtwoorden en handtekeningen. Het bekendste voorbeeld van een asymmetrische encryptiemethode is RSA, genoemd naar de ontwerpers hiervan: Rivest, Shamir en Adleman (1978). De twee sleutels in RSA worden berekend uit twee zorgvuldig te kiezen grote priemgetallen. RSA is geschikt voor zowel data-encryptie als voor het plaatsen van digitale handtekeningen. Een tweede bekende asymmetrische encryptiemethode is DSA (Digital Signature Algorithm). Deze is bedoeld voor het plaatsen van electronische handtekeningen en wordt sinds 1993 door de Amerikaanse overheid als standaard aangehouden. RSA is een cryptografisch systeem voor het vercijferen en authenticeren van boodschappen met behulp van openbare sleutels. Het werd in 1978 gepubliceerd door Rivest, Shamir and Adleman. Genereren van sleutels voor A 1. Kies twee ongeveer even grote (qua aantallen decimalen) random priemgetallen p en q 2. Bereken n := pq en φ := (p-1)(q-1) 3. Kies een random integer e, 1 < e < φ, z.d.d. ggd(e,φ) = 1 4. Bereken d, 1 < d < φ, z.d.d. ed ≡ 1 mod φ met behulp van algoritme van Euclides openbare sleutel van A: (n,e), geheime sleutel van A: d RSA public-key vercijfering (authenticeren, d.w.z. handtekening plaatsen gaat analoog) B stuurt vercijferde boodschap naar A, die A ontcijfert 1. vercijfering door B 1.1 B zoekt de openbare sleutel (n,e) van A op 1.2 zet de boodschap om in gehele getallen m є [0,n-1] 1.3 berekent c = me mod n 1.4 en stuurt c naar A 2. ontcijfering van c door A 2.1 A berekent cd mod n = m m.b.v. A's geheime sleutel d Waarom werkt RSA? cd ≡ (me)d = med ≡ mkφ+1 mod n voor een of ander natuurlijk getal k (want ed ≡ 1 mod φ) Stelling van Euler: mφ = m(p-1)(q-1) ≡ 1 mod pq, pq = n dus: cd ≡ mkφ+1 = (mφ)k m ≡ (1)k m ≡ m mod n Speelgoedvoorbeeld van RSA Genereren van sleutel: p = 7, q = 11, n = 77, φ = 60, kies e = 7 (ggd(7,60)=1), dan is d = 43 want ed = 301 ≡ 1 mod 60 dus de openbare sleutel van A is (n,e) = (77,7) en de geheime sleutel van A is d = 43 vercijferen en ontcijferen: stel boodschap m = 50 vercijfering: me mod n = 507 mod 77 = 8, dus B stuurt c = 8 naar A ontcijfering: m.b.v. geheime sleutel d = 43 ontcijfert A c als volgt: cd mod n = 843 mod 77 = 50 = m Figuur Error! No text of specified style in document..1: Details van de RSA encryptiemethode. Communicatie gebeurt tegenwoordig in toenemende mate digitaal, en het vercijferen en ontcijferen van digitale informatie wordt uiteraard door computers uitgevoerd. Het proberen te kraken (onbevoegd ontcijferen) van geheime informatie is in toenemende mate een “sport” geworden, enerzijds omdat ontwerpers en gebruikers van cryptografische systemen er baat bij hebben dat deze systemen onafhankelijk getest worden op hun betrouwbaarheid, anderzijds omdat geheimen altijd de nieuwsgierigheid van mensen opwekken waardoor ze gaan proberen om achter de inhoud hiervan te komen, ook al zijn ze daartoe niet bevoegd. In de cryptografie kent men verschillende aspecten van “security” van een cryptografisch systeem, en één ervan is “computational security”: deze meet de hoeveelheid rekenwerk, met de best bekende algoritmen en machines, die nodig is om een gegeven cryptosysteem te breken. Het zal duidelijk zijn dat dit begrip tijdsafhankelijk is. Arjen Lenstra en Eric Verheul hebben een handleiding gepubliceerd, getiteld: “Selecting Cryptographic Key Sizes”1 waarin guidelines worden aangeboden voor het kiezen van veilige sleutelgroottes in de meest gebruikte cryptosystemen, uitgaande van de veronderstelling dat de computer power per chip iedere 18 maanden wordt verdubbeld (Moore's Law). In bijgaande tabel staan recordontbindingen van RSA-sleutels (in bits) gegeven, met hierbij de veilige ondergrens voor de grootte van RSA sleutels, zoals voor de betreffende jaren aangegeven door Lenstra en Verheull. Jaar Record (in bits) 1994 1996 1999 2002 2003 2005 2009 429 432 512 525 576 664 768 Veilige grens voor RSA sleutel grootte 544 576 672 768 800 864 1024 Verschil 115 144 160 243 224 220 256 Tabel Error! No text of specified style in document..1: Veilige ondergrenzen voor RSA sleutels. Het (proberen te) kraken van cryptosystemen gebeurt vaak met grof rekengeschut: de meest voor de hand liggende aanpak is om alle mogelijke sleutels uit te proberen. Over het algemeen is het veel duurder om een supercomputer aan zo'n probleem te laten rekenen dan een aantal workstations met een vergelijkbare rekenkracht. Dat is de reden dat veel brute force, maar ook slimmere, reken-aanvallen op bestaande en nieuw ontwikkelde cryptografische systemen worden uitgevoerd met behulp van heel veel kleinere computers (zoals PCs, workstations, laptops): deze staan tegenwoordig op of onder elk bureau en buiten kantooruren worden deze machines meestal niet actief gebruikt. Dat zijn dus ideale “rekenslaven”: goedkoop, snel en betrouwbaar. Zelfs spelcomputers worden tegenwoordig voor dit doel gebruikt. 1 Zie hiervoor: http://www.win.tue.nl/~klenstra/key.pdf, Journal of Cryptology, 2001. Belangrijk bij dit soort aanvallen is een goede organisatie en fout-detectie omdat rekening moet worden gehouden met uitvallende computers en verbindingen. Een van de eerste aansprekende resultaten op dit gebied was het via internet door Arjen Lenstra georganiseerde kraken van een RSA-sleutel van 129 cijfers2. Dit probleem was als uitdaging door Martin Gardner in Scientific American van augustus 1977 geplaatst, waarbij hij een schatting voor de rekentijd gaf van vele miljarden jaren. De klus kostte Arjen Lenstra en consorten acht maanden rekenen op computers van ongeveer 600 vrijwilligers en werd in april 1994 geklaard. Joppe Bos en Marcelo Kaihara3 hebben in juli 2009 op een cluster van meer dan 200 PlayStation3 spelcomputers een nieuw record gevestigd voor het elliptic curve discrete logarithm problem (ECDLP) door dit op te lossen over een 112-bits eindig lichaam. De berekeningen namen ongeveer een half jaar in beslag. Het vorige record voor dit probleem lag op 109 bits. Cryptografie gebaseerd op elliptische krommen wordt door sommigen beschouwd als de opvolger van cryptografie gebaseerd op het factorisatieprobleem (zoals RSA) omdat bij de eerste aanpak de sleutellengte kleiner kan worden gekozen dan bij de tweede. Nadeel van op elliptische krommen gebaseerde cryptosystemen is dat tot nu toe veel minder onderzoek en rekenkracht hieraan is besteed dan bijvoorbeeld aan RSA. Supercomputers, althans die publiek toegankelijk zijn, worden niet vaak voor dit soort rekenklussen gebruikt. Een belangrijke uitzondering geldt voor problemen waarbij exceptioneel veel geheugen nodig is, omdat supercomputers altijd (veel) meer geheugen tot hun beschikking hebben gehad dan andere computers. Met name bij het ontbinden in priemfactoren van zeer grote getallen, nodig voor het testen en valideren van RSA, is dit belangrijk omdat de snelste bekende factorisatiemethode in een van zijn rekenstappen zeer veel snel toegankelijk geheugen nodig heeft. Bijgaande drie tabellen geven een historisch overzicht van record-ontbindingen van RSA-sleutels en het gebruik van supercomputers hiervoor. Hierbij maken we onderscheid tussen enerzijds de “continued fraction” en de “quadratic sieve” methode, en anderzijds de later ontwikkelde, maar veel snellere, “Number Field Sieve” methode. In de laatste tabel zien we dat bij de RSA-records van 130, 140, en 155 decimalen de NCF-supercomputers van SARA (de C98 en de C916) een cruciale rol hebben gespeeld, namelijk bij de stap waarin een zeer groot matrix-probleem moest worden opgelost. Ditzelfde probleem treedt op bij algoritmen voor het oplossen van het hierboven genoemde discrete logaritme probleem, dus ook hier spelen supercomputers een onmisbare rol. Aantal decimalen 39-45 55-67 67-90 87-92 92-100 93-116 (RSA)1294 Methode Continued fraction quadratic sieve quadratic sieve quadratic sieve quadratic sieve quadratic sieve quadratic sieve Jaar 1975 1984 1986-1988 1988 1989 1988-1990 1994 Door Morrison, Brillhart Davis, Holdridge Silverman te Riele et al. Pomerance et al. A.K.Lenstra et al. A.K.Lenstra et al. factor-by-email project Tabel Error! No text of specified style in document..2: Records ontbinden in priemfactoren met de continued fraction en quadratic sieve. 2 3 4 Zie hiervoor: http://www.math.okstate.edu/~wrightd/numthry/rsa129.html. Zie hiervoor: http://lacal.epfl.ch/page81774.html. Met de ontbinding van RSA129 kon de geheime RSA-boodschap van Martin Gardner ontcijferd worden in de tekst: THE MAGIC WORDS ARE SQUEAMISH OSSIFRAGE (=kieskeurige visarend). Aantal decimalen 130 140 155 (512 bits) 158 160 174 (576 bits) 176 193 (640 bits) 200 (664 bits) 232 (768 bits) Jaar 1996 1999 1999 2002 2003 2003 2005 2005 2005 2009? Door internet te Riele, Montgomery et al. te Riele, Montgomery et al. Franke et al. Franke et al. Franke et al. Aoki et al. Franke et al. Franke et al. Tabel Error! No text of specified style in document..3: Records ontbinden in priemfactoren met de general number field sieve. Aantal decimalen 130 140 155 158 176 193 200 Aantal Mips jaren5 voor de zeef-stap (aantal maanden) 1000 (4) 2000 (1) 8000 (3,5) 3500 (2) 15000 (1) 44000 (3) 121000 6(10) Orde van de matrix (gemiddeld aantal enen per rij) 3,5M (39) 4,7M (32) 6,7M (62) 5,8M (122) 8,5M (200) 36M (205) 64N (172) Aantal CPU-dagen voor de matrix-stap (aantal processoren) 3 (1 Cray-C90, SARA) 3 (1 Cray-C90, SARA) 3 (1 Cray-C90, SARA) 14 (6 PIII) 5 (36 Pentium 4) 45 (80 Opteron) 90 (80 Opteron) Tabel Error! No text of specified style in document..4: Records, schattingen van benodigde rekentijden met de general number field sieve. Een ontwikkeling die hier ook genoemd moet worden is het ontwerpen van special purpose hardware voor het kraken van cryptosystemen. Omdat “off-the-shelf” hardware zo goedkoop is kan het de moeite lonen om voor een aanval op een specifiek cryptosysteem special purpose hardware te bouwen. Sinds 2005 wordt er jaarlijks, en tegenwoordig mede gesponsord door de EU, een internationale workshop op dit gebied georganiseerd, getiteld: “Special-purpose Hardware for Attacking Cryptographic Systems” (www.sharcs.org). In de afgelopen vijftien jaren hebben CWI-onderzoekers, onder wie vijf promovendi, ook veelvuldig gebruik gemaakt van SARA supercomputers voor het voor allerlei doeleinden ontbinden in factoren van getallen die zeer groot, maar iets onder recordgrootte, waren. Naast de cryptografie speelt het probleem van het factoriseren van grote getallen ook een rol bij verschillende getaltheoretische problemen. De inspanningen van CWI-onderzoekers bij het factoriseren van zeer grote getallen en daardoor het valideren van RSA hebben in belangrijke mate bijgedragen aan de huidige standaard voor het in de praktijk kiezen van de RSA-sleutellengte. De hulp van de SARA supercomputers was hierbij van cruciaal belang. Of genoemde recordresultaten de state-of-the-art op dit gebied weergeven kan niet met zekerheid worden gezegd, omdat er veel instellingen zijn die wel belang hebben bij zoveel mogelijk kennis van de veiligheid van cryptosystemen, maar niet bij het bekend maken hiervan. Dat die instellingen voor hun werk ruimschoots van supercomputers gebruik maken, staat buiten kijf. 5 6 1 Mips jaar vertegenwoordigt een hoeveelheid rekentijd van 1 jaar op een 1MHz VAX 780. 40 jaar op een 3GHz processor. *** plaatje beschikbaar *** Figuur Error! No text of specified style in document..2: Persconferentie op het CWI, 22 augustus 1990, waarbij het kraken van RSA-155, een 512-bits RSA-sleutel, wordt bekendgemaakt. V.l.n.r: Eric Verheul, Andrew Odlyzko, Herman te Riele, Gerard van Oortmerssen, Arjen Lenstra, Paul Leyland. Herman te Riele