Boeken

Tuesday, January 12, 2010

Digitale beveiliging weer wat minder veilig

Dit artikel is gepubliceerd in NRC Handelsblad, 12 januari 2010, en in NRC Next, 13 januari 2010

Een internationale groep wetenschappers, waaronder wiskundigen van het Centrum Wiskunde en Informatica in Amsterdam (CWI), heeft een nieuw wereldrecord priemdelers kraken gevestigd. Vorige week donderdag boden zij de wetenschappelijke publicatie over de kraak aan het elektronische preprintarchief Cryptology aan. Het gaat om een gegeven getal van 768 bits, ofwel met 232 cijfers, dat ontbonden is in twee priemgetallen van elk 116 cijfers. Dit is het gekraakte getal:

12301866845301177551304949583849627207728535695953347921973224521517264005

07263657518745202199786469389956474942774063845925192557326303453731548268

50791702612214291346167042921431160222124047927473779408066535141959745985

6902143413


Het vorige record, uit 2005, stond op 663 bits (200 cijfers).

Priemgetallen zijn getallen die alleen deelbaar zijn door 1 en zichzelf. Ze spelen een cruciale rol in de beveiliging van digitale informatie. Wie via een beveiligde website zijn bankzaken doet of een bestelling plaatst, maakt er automatisch gebruik van. Die beveiliging, via de zogeheten RSA-cryptografie, gebruikt grote gehele getallen die het product zijn van twee priemgetallen. Het getal 15 is een voorbeeld van een getal waarvan we snel zien dat je het kunt ontbinden in de twee priemgetallen 3 en 5, want 3 × 5 = 15. Maar hoe groter het getal, hoe moeilijker het wordt om zijn twee priemdelers te vinden. Dit heet het factorisatieprobleem en niemand heeft daar tot nu toe een efficiĆ«nte oplossing voor gevonden.

De onwaarschijnlijkheid om getallen van een paar honderd cijfers snel te ontbinden in hun twee grote priemdelers ligt aan de basis van RSA-cryptografie (vernoemd naar de bedenkers Rivest, Shamir en Adleman). RSA gebruikt die grote getallen als beveiligingssleutels om een boodschap te coderen. De beveiliging is zo gemaakt dat een kwaadwillende de boodschap alleen kan ontcijferen als hij de twee grote priemdelers kent.

Om de betrouwbaarheid van digitale beveiligingen te testen en nieuwe standaarden te bepalen, proberen wiskundigen met razendsnelle computers steeds grotere getallen te ontbinden in priemdelers. In feite berekenen ze producten van een heleboel combinaties van twee grote priemgetallen tot ze de passende hebben gevonden. Voor het nieuwe wereldrecord zou een gewone personal computer met een 2,2 gigahertzprocessor 1.700 jaar moeten rekenen. Door het kraken te verdelen over honderden snelle computers gaf ‘RSA-768’ in 2,5 jaar zijn twee priemdelers prijs.

De gekraakte 768-bits-sleutel wordt tegenwoordig alleen nog gebruikt voor het versleutelen van niet al te gevoelige informatie, die bijvoorbeeld maar een paar weken geheim hoeft te blijven. Maar voor kwaadwillenden is het nog steeds geen peulenschil om zulke informatie te ontcijferen. Zij moeten over minstens dezelfde rekenkracht beschikken als de wetenschappers hebben gebruikt. Bovendien kun je een gegeven RSA-sleutel zonder veel moeite vervangen door een nieuwe sleutel, en als je dat per sleutel iedere paar maanden doet, blijft de kraakkans bij de huidige stand van de technologie nog steeds minimaal.

Gevoelige informatie die lange tijd geheim moet blijven, bijvoorbeeld een creditcardcode waarmee je op internet betaalt, word beveiligd met sleutels van 1.024 bits en die zijn voorlopig veilig. “Het kraken daarvan is nog duizendmaal rekenintensiever”, zegt Herman te Riele van het CWI, die aan het kraken van RSA-768 meewerkte. “Tien jaar geleden lag het wereldrecord bij een sleutel van 512 bits en vijf jaar geleden bij 663 bits. Ruwweg heb je voor iedere 256 bits extra duizendmaal zo veel rekentijd nodig om de priemdelers te vinden. Op basis daarvan verwachten we dat we over tien jaar ook een sleutel van 1.024 bits kunnen kraken. Eigenlijk raden wij nu al aan om ook voor de beveiliging van niet al te gevoelige informatie niet langer meer sleutels van 768 bits te gebruiken. En over tien jaar zou een sleutel van minstens 1.280 bits standaard moeten worden.”