Internet lek

Een team van het Centrum voor Wiskunde en Informatica in Amsterdam heeft de rsa-155 code gekraakt waarmee veel berichten op Internet worden versleuteld. Het net is dus lek. Zonder ingreep zijn binnenkort geldstromen van miljarden guldens te onderscheppen.

AFGELOPEN zondag spuwde de Cray C916 van het rekencentrum SARA in Amsterdam twee priemgetallen uit, van elk achtenzeventig cijfers. Na tien dagen rekenen op deze supercomputer was een succesvol einde gekomen aan een project dat in totaal zeven maanden had geduurd. In die periode hadden driehonderd snelle PC's en werkstations in Europa en Noord-Amerika `buiten de kantooruren' staan rekenen om een code te kraken. Met behulp van speciale algoritmen waren ze op zoek gegaan naar de twee (priem)getallen die met elkaar vermenigvuldigd een getal zouden opleveren dat bekend staat als RSA-155: 109417386415. Niet minder dan 155 decimale cijfers. Nu was dit niet zo maar een wiskundig spelletje. RSA-155 is een voorbeeld van een getal dat gebruikt wordt voor het beveiligen van allerlei vormen van datacommunicatie: elektronisch betalen via het Internet, geldverkeer tussen banken, onderlinge identificatie (`handshake protocollen') van computers, maar ook encryptie van E-mail berichten. Nu het mogelijk is gebleken RSA-155 te ontbinden in factoren, is dus aangetoond dat al dat soort systemen in principe `lek' zijn.

Maar volgens Herman te Riele, wiskundige aan het Centrum voor Wiskunde en Informatica in Amsterdam en coördinator van het RSA-155 project, draagt het werk van hem en zijn collega's juist bij aan het verhogen van de veiligheid. Het houdt iedereen bij de les. Zo'n vijfentwintig jaar geleden schatte men dat het ontbinden in factoren van dit soort getallen meer dan 62 miljard jaar rekentijd zou kosten. Dat leek meer dan voldoende om er een beveiligingssyteem op te baseren. Dat het nu binnen zo veel kortere tijd is gelukt, is overigens maar voor de helft toe te schrijven aan de veel snellere computers van tegenwoordig. Minstens even belangrijk zijn de steeds slimmere algoritmen die de afgelopen jaren door Te Riele en zijn collega's werden ontwikkeld. Eén van hen is Arjen Lenstra, werkzaam bij Citibank in New York. ``Ontbinden in factoren is niet makkelijk,'' zegt Lenstra. ``Maar we hebben eigenlijk geen aanwijzingen dat het een uitzonderlijk moeilijk probleem vormt. Er is altijd een kans dat er een slimmerik opstaat die een doorbraak forceert. Versleutelingssystemen als RSA dragen daarom altijd een zeker risico in zich.''

PRIEMGETALLEN

RSA werd in het midden van de jaren zeventig ontworpen door drie onderzoekers van het Massachusetts Institute of Technology in de Verenigde Staten: Ron Rivest, Adi Shamir en Leonard Adleman. Het is een voorbeeld van een encryptiesysteem waarbij de sleutel publiek wordt gemaakt. Alle publieke sleutelsystemen zijn gebaseerd op wiskundige bewerkingen die heel gemakkelijk in één richting kunnen worden uitgerekend, maar die nauwelijks de andere kant op kunnen worden opgelost. Iedereen kan twee priemgetallen met elkaar vermenigvuldigen, maar het is veel moeilijker om een (groot) getal te ontbinden in factoren. Dat grote getal mag daarom gerust algemeen bekend worden gemaakt, maar de twee priemgetallen niet, die vormen de basis voor de decodering. In 1977 vroeg Martin Gardner voor zijn column in Scientific American aan Rivest, Shamir en Adleman om een uitdaging voor zijn lezers: zo werd RSA-129 geboren. Het duurde tot 1994 voor dat gekraakt werd, met behulp van een algoritme van Lenstra en een stuk computercode van Paul Leyland, tegenwoordig verbonden aan Microsoft Research in Cambridge. Daarmee konden vrijwilligers op hun eigen computer bijdragen aan de speurtocht. Zestienhonderd computers hadden uiteindelijk acht maanden nodig om RSA-129 te kraken.

Inmiddels hadden de ontwerpers van het RSA-systeem een bedrijf opgericht om hun beveiligingssoftware op de markt te brengen. Tegenwoordig maken daar wereldwijd zo'n vierhonderd bedrijven gebruik van en is het op meer dan driehonderd miljoen computers ingebouwd. Om voortdurend de veiligheid van hun systeem in de gaten te kunnen houden, publiceerde RSA Data Security een paar jaar geleden een challenge list (zie http://www.rsa.com/rsalabs/html/challenges.html). RSA-155 vormde daarop een belangrijke graadmeter, juist omdat het zoveel in de praktijk werd gebruikt. Dat is niet toevallig, omdat het uitgedrukt in het binaire stelsel bestaat uit 512 enen en nullen. Om het te kraken werd een soortgelijke tactiek gevolgd als eerder voor RSA-129, al was de gebruikte oplossingsmethode weer wat krachtiger. Lenstra: ``Net als voor de vorige twee challenges, RSA-130 en RSA-140, hebben we de Number Field Sieve gebruikt, alleen de eerste fase van de zoektocht hebben we dit keer aanmerkelijk kunnen versnellen.''

Wat die Number Field Sieve nu precies inhoudt, blijft wat onduidelijk. Lenstra noemt hem ``lastig'' en ``heel moeilijk aan de praat te krijgen''. Alleen het National Security Agency in de Verenigde Staten beschikt misschien over een implementatie ervan op de computer, ``maar die is niet zo sterk als die van ons.'' Dat wil niet zeggen dat je wiskunde gestudeerd moet hebben om ermee om te kunnen gaan. Lenstra: ``De meeste `zevers' hebben geen idee hoe het precies werkt.'' En dat is misschien wel de belangrijkste uitkomst van dit soort projecten: iedereen kan het. Op het CWI maakte men `slechts' gebruik van driehonderd computers, waardoor het zeven maanden duurde, maar gooi er wat meer rekenkracht tegenaan, en de kraak is een feit in een paar dagen. En dan wordt het pas echt gevaarlijk. Of zoals Eric Verheul, cryptoconsultant bij Price Waterhouse Coopers het uitdrukte: ``Het budget van het CWI is kleiner dan dat van een bescheiden criminele organisatie.'' De ervaring met eerdere records leert immers dat de benodigde technologie na twee tot drie jaar algemeen is geworden.

1024 BITS

Hoe nu verder? Voor de grote banken en financiële instellingen verandert er vooralsnog niet echt veel. Die werken in hun onderlinge betalingsverkeer standaard met RSA-getallen van 1024 bits en voor cruciale toepassingen zelfs met 2048 bits. Aan de andere kant wordt bij transacties met creditcards en smartcards en bij E-commerce op het Internet wel degelijk vertrouwd op de onbreekbaarheid van 512-bits sleutels. Daar is dus binnen een jaar een overstap nodig naar codes op basis van 768 bits (of wel RSA-232). Daardoor gaat de transmissiesnelheid omlaag, hetgeen vooral voor smartcards een probleem kan gaan betekenen: die zouden volgens Lenstra wel eens hinderlijk langzaam kunnen worden. Bovendien verwacht hij dat ook deze codes binnen tien jaar zullen worden gekraakt. Een wellicht meer betrouwbare oplossing is daarom het ontwikkelen van andere cryptosystemen. Sinds een jaar of tien is er bijvoorbeeld een alternatief dat gebruik maakt van zogeheten elliptische curves. Het nadeel van dat soort nieuwe systemen is echter dat ze nog niet zo lang op de markt zijn en zich dus ook nog niet zo hebben kunnen bewijzen als RSA. Paul Leyland: ``Ontbinden in factoren doen we al meer dan tweeduizend jaar, maar met elliptische curves spelen we pas zo'n honderd jaar.''

Het zou tenslotte ook verkeerd zijn om alleen te focusseren op de voor- en nadelen van encryptiesystemen bij financiële toepassingen. Leyland geeft als voorbeeld het zetten van een digitale handtekening, waarmee je een bericht of een stuk software kunt waarmerken: ``Als al het software dat gedownload wordt zo'n digitale handtekening zou moeten hebben, afkomstig van een betrouwbare instantie, dan had het Melissa-virus zich nooit zo kunnen verspreiden als het onlangs gedaan heeft.''