1.1 Cryptografie en supercomputers

advertisement
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
Download