Het rsa-algoritme is veilig, stelt de technisch directeur van RSA, Bret Hartman. Uit onderzoek bleek dat twee op de duizend rsa-keys niet veilig zijn, maar dat ligt niet aan het algoritme zelf, benadrukt Hartman: het gaat fout bij de implementatie.
Dat zei chief technology officer Hartman van RSA tegen Tweakers.net op de RSA Conference die deze week in San Francisco wordt gehouden. RSA is het bedrijf dat onder meer het bekende rsa-algoritme ontwikkelde, dat veel wordt gebruikt om communicatie te versleutelen. Twee weken geleden werd onderzoek gepresenteerd waaruit bleek dat twee op de duizend rsa-keys geen enkele beveiliging bieden. De onderzoekers namen 7,1 miljoen rsa-keys onder de loep om tot die conclusie te komen.
De keys waren onveilig omdat ze een of meer priemfactoren delen. Rsa-sleutels leunen op priemgetallen en bestaan uit een publieke- en een privésleutel. "Het algoritme waarmee die sleutels worden gegenereerd, is veelvuldig onderzocht, en er zijn nooit kwetsbaarheden in gevonden", aldus Hartman. Onveilige sleutels zijn volgens hem het gevolg van een incorrecte implementatie; het algoritme is open, dus iedereen kan software ontwikkelen waarmee sleutels worden aangemaakt.
Het probleem met de onveilige sleutels is dat ze niet willekeurig genoeg zijn. "Dat kan ook aan het onderliggende besturingssysteem liggen", aldus Hartman, als de random number generator van het besturingssysteem minder willekeurig is dan gedacht.
Dat het genereren van single secret-sleutels volgens de onderzoekers veiliger is dan multi-secret-sleutels, is volgens Hartman appels en peren vergelijken. "Een single-secret-sleutel kan totaal willekeurig zijn", legt Hartman uit. "Multi-secret-sleutels zijn aan elkaar gerelateerd en kunnen dus niet totaal willekeurig zijn."
In theorie is single secret-cryptografie dus veiliger, want unieker, maar voor sommige doeleinden zijn dergelijke sleutels niet geschikt: het idee erachter is dat iedereen die over een bepaalde sleutel beschikt, de communicatie kan ontcijferen. Daarvoor moet die sleutel dus echter wel gedeeld worden, wat niet altijd praktisch is. Bij multi-secret-cryptografie zijn er twee sleutels die op elkaar 'passen', een publieke- en een privésleutel. Om de berichten te versleutelen is enkel de publieke sleutel nodig; om te ontcijferen is de privésleutel nodig. Dit principe wordt bijvoorbeeld gebruikt in ssl en tls.
Volgens Hartman moeten bedrijven en organisaties die public key cryptography gebruiken, zich eerder druk maken om de veilige opslag van sleutels. "Problemen met cryptografie hebben vaak vooral te maken met de manier waarop met sleutels wordt omgegaan en niet met het algoritme zelf", zegt hij. Privésleutels worden dan bijvoorbeeld gestolen, zodat de versleuteling kan worden gekraakt, zonder dat er iets mis is met het algoritme zelf.
Dat wil niet zeggen dat er geen gevaren zijn voor het rsa-algoritme. "Op de lange termijn kan bijvoorbeeld quantumcomputing een gevaar vormen", zegt Hartman. Computers zouden dan zo krachtig kunnen worden dat ze de versleuteling kunnen doorbreken. Het is dus belangrijk om ook nu al een minimum-sleutellengte te hanteren; rsa-sleutels van 512bits kunnen nu al worden gekraakt.