Speciaal voor onze quants, crypto minds en quantum geeks

BLOG | LEESTIJD: 3 MINUTEN

headerbeeld_blogjpg

Hierboven ziet u de zogenaamde “Bombe”. Aan het eind van de tweede wereldoorlog had de Amerikaanse Marine circa 120 elektromechanische machines in gebruik om onderschepte boodschappen van Duitse Enigma machines te ontcijferen. Hij werd door Alan Turing ontwikkeld samen met een team van engineers en wiskundigen en werd daarom ook wel de “Turing Bombe” genoemd. Zij speelden een sleutelrol in de elektronische oorlogvoering in de tweede wereldoorlog en waren onmisbaar in de strijd tegen onder meer de Duitse U-boten. Bron: De NSA, National Security Agency.

Het belang van het versleutelen van berichten is niet meer weg te denken. Om zonder sleutel berichten te kunnen ontcijferen heb je naast een sterk algoritme puur rekenkracht nodig.

De klassieke denkfout die veel mensen maken is dat het ontsleutelen of decrypten van bijvoorbeeld een redelijk gangbaar RSA 2048 bit encryptie met een klassieke computer vandaag de dag toch zoveel tijd kost dat we dit niet meer mee zullen maken en dus veilig is. De meeste berichten wil je echter niet enkel voor nu beveiligen maar ook zeker stellen dat iemand niet het bericht in de toekomst kan ontcijferen. Hoe ver dat in de toekomst moet zijn hangt natuurlijk af van de gevoeligheid van jouw applicatie en het berichtenverkeer waar je naar kijkt maar er zijn tal van applicaties waarbij het antwoord op deze vraagt wellicht is in geen honderd jaar.

Rekenkracht

Met de technologische vooruitgang is de wet van Moore lange tijd op gegaan. Zeker dankzij de knappe koppen binnen ASML heb je al een poosje transistors op nanoschaal. Met EUV technologie wordt met grote snelheid met ultraviolet licht lithografie ook op nanoschaal op de chips gezet. En voor wie nano qua grootte niet direct iets zegt; ter vergelijking de gemiddelde haardikte van de mens is circa 80.000 nanometer en het is al gelukt een transistor te maken van 1 enkele nm. Intel gaat vanaf 2021 op grote schaal EUV toepassen en over op 7nm en heeft op de roadmap dit elke 2 jaar te halveren en dus in 2029 op 1,2nm uit te komen. Kortom je zou zeggen met dergelijke ontwikkelingen aan rekenkracht niets tekort en dit geldt ook voor veel applicaties maar als we kijken naar de benodigde berekeningen om een sterk encryptieniveau te ontcijferen is dit vandaag de dag nog geen koud kunstje. Waar de wet van Moore al een poosje niet meer op ging hebben we al een paar jaar quantum computers. Beetje vergelijking met de eerste computer zijn deze nog zeer groot en kostbaar en qua potentie staan ze nog in de kinderschoenen. Doch is dit echt baanbrekend. Wanneer men 1 qubit toevoegt neemt de rekenkracht van de quantum computer exponentieel toe. Op dit moment is de grootste circuit gebaseerde quantum computer gemaakt door Google en heeft 72 qubits. Uiteraard is dit een ratrace waarbij zowel China maar ook andere tech bedrijven zoals IBM en Honeywell op grote schaal investeren. IBM heeft zich voorgenomen om elke 2 jaar het aantal qubits te verdubbelen als vervanger van de wet van Moore. Trek de vergelijking met de ontwikkelingen die we met de PC hebben meegemaakt dan is het niet ondenkbaar dat er quantum computers of een grid met meerdere quantum computers met miljoenen qubits zullen komen. Hier moeten nog wel wat natuurkundige problemen voor worden opgelost maar wie zegt dat deze onoverkomelijk zijn – kijk naar wat we vandaag doen met EUV had dat in de jaren 80 aan Chriet Titulaer verteld en ook hij had je allicht verwonderlijk aangekeken. Quantum supremacy ligt om de hoek en is een term die wordt gegeven aan het punt waarop de quantum computer in staat is berekeningen op te lossen die geen enkele andere computer in een redelijke tijd kan oplossen. In 2019 lag er al een claim van Google dat dit inmiddels bereikt zou zijn maar IBM bestrijdt deze claim. Hoe je het wend of keert het is reeds bereikt of kan elk moment zo zijn. De process power van de quantum computer stijgt niet lineair maar exponentieel; met elke qubit die wordt toegevoegd verdubbeld de rekenkracht. We noemde dit eerder al maar bedenk dan dat je met een zeer gering aantal qubits we dus al quantum supremacy bereiken en hoe krachtig een quantum computer dan is met een 2 maal zo graat aantal qubits (2 tot de 3de macht) of hoe sterk een quantum computer van duizenden tot miljoenen qubits zal zijn.

Los van toenemende rekenkracht worden er ook wiskundig nog steeds verfijningen aangebracht waardoor algoritmes efficiënter werken en dus ook in een minder groot aantal stappen een wiskundig probleem kunnen oplossen. Zo werd het ontcijferen van een RSA 2048 bits encryptie met een quantum computer tot voor kort nog ten minste decennia weg voorspelt. Met RSA 2048 heb je het over ontzettend grote priemgetallen en met het luik functie principe, ook wel ’trapdoor’ genoemd, kun je gemakkelijk één richting op maar velen malen moeilijker terug; zo is het vermenigvuldigen van twee getallen relatief eenvoudig maar het terugrekenen wat deze twee getallen precies zijn geweest vanaf het resultaat een stuk lastiger. Na een optimalisatie, enkel door wiskundige toepassing van de principes van binaire machtsverheffing en exponentiëren, kan de sleutel aanzienlijk efficiënter worden berekend en zijn er dus ook een sterk minder groot aantal qubits nodig om dezelfde wiskundige oplossing te klaren. Het is op het moment zo dat de hedendaagse quantum computer een 2048 bit RSA versleuteling niet binnen afzienbare tijd kan oplossen en tot voor kort waren de wetenschappers er stellig in dat er meer dan een miljard qubits voor nodig waren om dit binnen afzienbare tijd te kunnen doen. Na deze wiskundige optimalisatie werd dit redelijk recent naar beneden bijgesteld met ongeveer een factor 50 waarbij het kunnen oplossen van een RSA 2048 sleutel binnen een werkdag beduidend minder ver in de toekomst is komen te liggen. Bovendien is deze wiskundige doorbraak met name geschikt voor grote priemgetallen en dus met name handig voor de berekeningen nodig voor het factoren van grote priemgetallen zoals gebruikt bij RSA. Laat RSA nou net de meest gebruikte standaard zijn.

Om te zorgen dat met toenemende rekenkracht de berichten veilig blijven is dit lange tijd opgelost door simpelweg langere sleutels te gebruiken oftewel een groter aantal bits encryptie. Nu is dit niet een oplossing voor de langere duur en ook encryptie niveaus welke nu worden toegepast zijn niet bruikbaar voor elke applicatie. Het versleutelen en ontsleutelen, ook wanneer je de sleutel kent, kost nog steeds geheugen en rekenkracht en deze overhead is zeker voor bijvoorbeeld embedded systemen en Internet of Things (IoT) applicaties vlot aanleiding te zoeken naar andere efficiëntere oplossingen.

 

Opkomst van ECC – Elliptic Curve Cryptografie

We spraken eerder al over RSA, maar waarom zien we niet veel meer ciphers gebaseerd op ECC, en wat is ECC. Waar RSA met priemgetallen werkt wordt met ECC gebruik gemaakt van 2 punten die zonder sleutel moeilijker zijn te ontcijferen. ECC is een functie met een kromme waarbij de x-as de symmetrie as is. Als functie heeft dit een bijzondere eigenschap waarbij elke lijn die de curve op twee punten snijdt, de curve op nog precies één andere plek snijdt. Twee punten op de grafiek definiëren dus een derde punt. Met ECC kun je nieuwe punten berekenen vanuit het beginpunt en het spiegelbeeld van een tweede punt aan de andere zijde van de x-as. Voor encryptie is dit zeer interessant omdat dit in vergelijking tot bijvoorbeeld RSA de vermenigvuldigingsfactor minder eenvoudig te achterhalen maakt, zelfs niet wanneer het beginpunt en eindpunt bekend zijn. In een gelijk aantal bits wordt ECC daarom ook veiliger geacht dan RSA en voor embedded systemen en IoT applicaties is ECC qua overhead met een minder groot aantal bits efficienter. ECC is dan ook in opmars en wordt veel door grote tech bedrijven maar ook op blockchain toepassingen gebruikt. ECC is goedgekeurd door de NIST en wordt in toenemende mate toegepast op PKI. In Nederland zien we deze trend niet voor PKI-overheidscertificaten omdat KPN  ciphers gebaseerd op ECC voor PKI-overheidscertificaten (tot voor kort/afhankelijk wanneer u dit leest) niet accepteerde. Tot voor kort beruste er tevens nog patenten op ECC wat tegentanders ook weerhield maar deze verlopen en door internationale boards wordt er hard gewerkt om deze helemaal open te krijgen. Inmiddels zijn er ook bruikbare libraries voor specifieke toepassingen ontstaan zoals NaCl en Libsodium en dit neemt alleen maar toe. OpenSSL ondersteunt al heel lang ECC en ook de standaard libraries op Windows besturingssystemen ondersteunen ECC out-of-the-box en ook onder Linux distributies kun je met ECC uit de voeten. Maar ECC bestaat “nog maar” 30 jaar en is simpelweg gewoon wat ingewikkelder te implementeren. Spreekt voor zich dat beveiliging altijd een belangrijke rol speelt bij crypto maar er zijn wat specifieke aandachtspunten en zo heeft alles zijn eigen aanval vector.

Op basis van onthullingen van Snowden word vermoed dat de NSA een pseudo random generator op basis van ECC had gemanipuleerd en de NSA zelf zaaide twijfel aan de mate van beveiliging die ECC biedt. Na ECC lange tijd aangeraden te hebben als oplossing voor de beveiliging van ‘top secret’-bestanden adviseerde de Amerikaanse inlichtingendienst wie nog niet overgestapt was naar ECC, daar vanaf te zien en zich te concentreren op algoritmes die kwantumresistent zijn. De wetenschap is het er wel over eens er vrijwel zeker niets mis is met de curves zelf. Er loopt een project genaamd Safecurves om gemakkelijk ook de veilige curves te onderscheiden. De meeste zwakheden die specifiek aan ECC werden toegeschreven gelden ook voor RSA en vragen bijvoorbeeld toegang tot het fysieke device en al slaag je er in op een paar centimeter afstand te komen heb je nog een kostbare oscilloscoop nodig en dan nog is het in de praktijk lastig op deze manier ook echt te achterhalen wat je zoekt. Het is wel belangrijk dat je werkt met een veilige curve, fysieke toegang tot het device zelf vrijwel onmogelijk maakt en een constante tijd werkt. Naast de eerder genoemde wiskundige optimalisaties voor het oplossen van wiskundige berekeningen wordt dit natuurlijk binnen cryptografie ook andersom toegepast om het de aanvaller ook in toenemende mate complexer te maken. Zo kun je door gebruik van projectieve ruimte een derde veranderlijke introduceren en de vergelijking homogeniseren en het de aanvaller en zijn quantumcomputer op zijn zachtst uitgedrukt een stuk moeilijker maken. Met enkel wiskunde B kom je er niet direct maar ben je zelf een quant en crypto freak en kun je overweg met Python weet dat je ook zelf je ECC kunt programmeren.

Bottomline is wel dat met kwantumcomputing de versleuteling die voorheen voldeed, afhankelijk van je rubricering, inmiddels wellicht niet meer voldoet. De community zit in deze post-kwantum tijd gelukkig niet stil. De knapste cryptominds hebben zich verenigd in het Open Quantum Safe (OQS)-project en komen met praktisch uitvoerbare oplossingen. Binnen de veiligheidsketen heb je veelvuldig te maken met hoog gerubriceerde informatie. Afhankelijk van je werkzaamheden kan dit oplopen tot rubriceringen zoals (ZEER) Streng Geheim tot Cosmic Secret. Ook in het bedrijfsleven is het belangrijk geheimen te bewaren, en reputaties en identiteiten van gebruikers en klanten goed te beschermen. Voor het gros van de services zal een moderne cipher met PKI volstaan. Afhankelijk van de rubricering en gevoeligheid van een individuele service kun je met bijvoorbeeld NewHope of CECPQ1 (die inmiddels zijn ontsproten uit het OQS-project) het bericht versleutelen. Op deze manier kan zelfs een quantumcomputer een bericht niet direct ontsleutelen.

Meer weten?

Tot voor kort werden wij gezien als een goed bewaard geheim binnen de veiligheidsketen. Niet versleuteld maar gewoon als naam cirkelden we voornamelijk rond binnen de keten. Deze blogs zijn één van de zaken die we doen om dit op te lossen want we zijn ook trots op ons werk maar doen dit vooral ook omdat we dit leuk vinden en passie hebben voor techniek. Ben jij op zoek naar niet een security specialist maar zoek je gewoon de beste of ben jij zelf de beste in je vak en zoek je een gave opdracht dan ben je bij ons allicht aan het juiste adres.

Praat ook mee over de toekomst van crypto en wat zie jij als grootste uitdaging?