Intro
Encrypt all the things! Nu versleuteling bijna overal gemeengoed wordt, beginnen ook de eerste nadelen van goede encryptie zich af te tekenen. Data kan veel inzichten opleveren, maar het is lastig om met versleutelde data te werken om bijvoorbeeld wetenschappelijke inzichten op te doen of wettelijk verplichte controles uit te voeren. Wetenschappers zoeken daarom naar manieren om normale data-analyses uit te kunnen voeren op versleutelde gegevens. Met homomorfische encryptie lijken ze een stap dichterbij te komen.
In essentie laat homomorfische encryptie, of HE, zich makkelijk omschrijven: het is een manier om berekeningen los te laten op versleutelde datasets. Dat is handig wanneer je als bedrijf of instelling - zoals een ziekenhuis - te maken hebt met gevoelige data of wanneer je uit veiligheidsoverwegingen data niet wil ontsleutelen. Er zijn genoeg redenen te bedenken waarom dat laatste van belang kan zijn, bijvoorbeeld in de medische wereld. Laboratoria kunnen veel inzichten opdoen op basis van patiëntgegevens, maar privacy is er bovengemiddeld belangrijk. "Al heel lang nemen mensen aan dat het niet anders kan dan hoe het nu gebeurt", zegt Omri Soceanu. Hij werkt voor IBM aan homomorfische encryptie. "Ze zeggen: 'we versleutelen data tijdens het verzenden, we versleutelen hem als we opslaan, maar als we de data verwerken, moeten we ontsleutelen en later weer versleutelen'." Veel onderzoekers hebben pogingen ondernomen om alsnog op een veilige en privacyvriendelijke manier databerekeningen uit te voeren. Tweakers schreef vorig jaar bijvoorbeeld over het uitwisselen van gezondheidsdata tussen ic's. Een groot probleem bij dat plan bleek de definitie van anonimiteit te zijn. Dat is een gecompliceerd begrip; in veel gevallen betekent 'anoniem' eigenlijk 'pseudoniem' en zijn identiteiten alsnog te achterhalen. Bovendien kan iemand die onversleutelde data achterhaalt hem gewoon uitlezen. "Een hacker kan toeslaan in de milliseconden waarin je data ontsleutelt", zegt Soceanu.
Van theorie naar praktijk
Idealiter zou je een manier willen gebruiken om dezelfde berekeningen uit te kunnen voeren op datasets zonder dat je ze eerst hoeft te ontsleutelen. Voorlopig is dat een grotendeels academisch concept. Homomorfische encryptie bestaat voornamelijk in white papers en laboratoria, in de vorm van ideeën en voorzichtige samples. Toch zijn er hier en daar wat toepassingen in de praktijk te zien en werken bedrijven aan het praktisch beschikbaar maken van homomorfische encryptie. Zo richtte wetenschapsinstituut TNO onlangs Linksight op, een bedrijf dat 'oplossingen' maakt voor bijvoorbeeld de medische industrie. Ook Soceanu van IBM heeft het niet alleen over de theoretische, maar inmiddels ook over de praktische toepassingen van homomorfie.
Een belangrijke reden daarvoor is dat volledige homomorfische encryptie lange tijd alleen op papier bestond, maar door nieuwe encryptiestelsels sneller is geworden. Ook wordt hardware goedkoper en krachtiger zodat berekeningen sneller kunnen worden uitgevoerd. Dat maakt het proces voor veel potentiële gebruikers ineens veel aantrekkelijker.

Geschiedenis
Wie het over homomorfische encryptie heeft, komt steevast terecht bij een paper uit 1978. Daarin beschreven Ronald Rivest et al. een eerste idee om berekeningen uit te voeren op versleutelde data. Dat gebeurde kort nadat dezelfde wetenschappers RSA hadden ontworpen. Hun paper genaamd 'On data banks and privacy homomorphisms' beschrijft het voorbeeld van een bank die leningen uitgeeft en daar een derde partij bij gebruikt die de data ervan eigenlijk niet mag lezen. De wetenschappers speculeren over privacy-homomorfisme en geven er zelfs vier voorbeelden van. "Deze zijn voornamelijk bedoeld als voorbeelden om de hypothese te steunen dat bruikbare privacy-homomorfismen voor veel applicaties bestaan", schrijven de wetenschappers. Maar, voegen ze daaraan toe, erg nuttig zijn die niet. "Sommige ervan zijn cryptografisch zwak en kunnen met een plaintext-aanval worden gebroken."
Lange tijd was de paper van Rivest en zijn collega's het enige theoretische werk rond homomorfische encryptie (HE). De wetenschappers bevestigden bovendien de beperkingen van hun hypothese: "De resultaten in deze paper vormen de basis voor enig optimisme rond nuttig privacy-homomorfisme; de voorbeelden hier zijn suggestief maar niet erg praktisch." In de paper wordt hardop de vraag gesteld voor welke toepassingen HE wel geschikt zou kunnen zijn.
Doorbraak
Pas in 2009 kwam er een belangrijke doorbraak in de manier waarop homomorfische encryptie kan worden toegepast. Craig Gentry bracht een paper uit waarin voor het eerst een 'volledig' homomorfisch-encryptiestelsel werd beschreven waarmee het proces praktisch uitvoerbaar werd en niet alleen in theorie bestond. Daarbij moet de 'praktische uitvoerbaarheid' wel worden gerelativeerd: bij de eerste berekeningen duurde het een half uur om een enkele berekening op een bit uit te voeren. Sindsdien zien steeds meer wetenschappers echter mogelijkheden om homomorfische encryptie te verbeteren. Ze proberen met name het proces te versnellen, zodat ook berekeningen mogelijk worden op grotere datasets; aan een berekening op een paar bits heb je immers niet veel. 'Volledig' homomorfisch betekent in deze context dat het mogelijk is meerdere verschillende berekeningen op data los te laten.
Hoe werkt het?
Tijd om zelf ook even uit de theorie te stappen en in de praktijk te duiken. Hoe werkt homomorfische encryptie? Het proces laat zich in essentie redelijk simpel uitleggen. Soceanu geeft een voorbeeld. "Beeld je een ziekenhuis in dat röntgenfoto's van patiënten heeft en wil weten bij hoeveel van die patiënten sprake is van een bepaald risico op een ziekte. Elke patiënt krijgt een speciaal voor HE gemaakt encryptiestelsel dat in een tool is ingebouwd. De tool versleutelt de data en stuurt die versleutelde dataset naar een cloudomgeving. Daar blijft deze data versleuteld en er wordt een neuraal netwerk op losgelaten dat er analyses op uitvoert. Vervolgens wordt het resultaat eveneens versleuteld. Alleen de patiënt kan de data daarna ontsleutelen." Het ontsleutelde resultaat is uiteindelijk hetzelfde als wanneer een berekening was losgelaten op de onversleutelde data.
De privésleutel is in zo'n geval in handen van de patiënt. Maar, zegt Soceanu, met de juiste implementatie kun je de sleutel ook doorgeven aan een andere, vertrouwde persoon. "De meeste patiënten zullen er niet zoveel moeite mee hebben dat hun arts hun gezondheidsdossier kan inzien. Dat is uiteraard wat anders met een willekeurige cloudprovider, dus daarvoor wil je je data versleutelen. Maar voor je arts of het medisch personeel kun je uitzonderingen maken. Die kunnen vervolgens het versleutelde resultaat voor jou aflezen en de conclusie met je delen."
Vermenigvuldigen en gemiddelden berekenen
Het is ook bij experts wat ingewikkeld om te achterhalen hoe een HE-stelsel precies werkt. Deels komt dat doordat het ingewikkeld is, maar deels gaat het natuurlijk ook om het geheim van de chef. Omri Soceanu van IBM probeert het uit te leggen aan de hand van een gedeeltelijk HE-stelsel. "Stel dat je het cijfer 3 en het cijfer 5 versleutelt, dan krijg je twee ciphers. Die verschillen van elkaar, maar als je ze met elkaar vermenigvuldigt komt er 15 uit." Dat vermenigvuldigen gebeurt dus met eender welk HE-stelsel wordt ingezet. De ciphers worden naar een server verstuurd waar er een 'berekening' op wordt losgelaten; in de praktijk betekent dit dat een server een database heeft en de resultaten daaruit vergelijkt met de ciphers die binnenkomen. Daar komt een resultaat uit, doorgaans een simpele true
of false
: komt onze berekening overeen met het versleutelde resultaat? De true
of false
wordt vervolgens, ook weer versleuteld, naar de oorspronkelijke client gestuurd.
Microsoft heeft een eigen wachtwoordenchecker die gebruikmaakt van homomorfische encryptie
Dat is een wel heel versimpelde weergave van hoe het werkt. En, toegegeven, hij is ook wat abstract. Met een concreet voorbeeld wordt het duidelijker. Laten we daarvoor eens kijken naar Microsofts HE-implementatie. Microsoft gebruikt homomorfische encryptie in Password Monitor, een feature in Edge om te checken of een wachtwoord eerder is uitgelekt in een database. Net als Have I Been Pwned dat doet, verzamelt Microsoft zelf databases met uitgelekte wachtwoorden. Het bedrijf wil controleren of een ingevoerd wachtwoord overeenkomt met een gelekt account, maar dan zonder zelf te weten wat het ingevoerde wachtwoord is. Dat proces gebruikt als volgt een homomorfische-encryptiestelsel:
- Een client krijgt via het FHE-stelsel (full homomorphic encryption) een publieke en een private sleutel,
kpub
en kprv
.
- De client vraagt bij de server een hash,
H
op van het ingevoerde wachtwoord pwd
. Dat wordt h(pwd)
. Dat hashen gebeurt in het geval van Microsoft om dictionary attacks te voorkomen.
h(pwd)
wordt met de publieke sleutel versleuteld tot E(kpub,h(pwd))
.
- De cipher wordt naar de server gestuurd.
- Via een matchfunctie, zoals in Microsofts geval
computeMatch
, wordt gekeken of de hash overeenkomt met de hashes in de database van gestolen wachtwoorden. Daar komt een true
- of false
-value uit. Bij true
wordt het resultaat versleuteld en teruggestuurd naar de client.
- De client gebruikt de privésleutel om het resultaat te ontsleutelen.
/i/2004515472.png?f=imagenormal)
Snelheid of nauwkeurigheid
Er zitten nog wel wat haken en ogen aan de manier waarop homomorfische encryptie wordt gebruikt, ook in Edge. De snelheid is een grote beperking; al het hashen, versleutelen en verzenden van gegevens kost veel tijd en het berekenen zelf gaat ook niet altijd even rap. Het praktisch nut van een homomorfische-encryptiestelsel hangt af van drie zaken: snelheid, nauwkeurigheid en prestaties rond bijvoorbeeld de veiligheid van de encryptie. De eerste twee zijn het belangrijkst. Onderzoekers moeten meestal een afweging maken tussen die twee, zegt Soceanu. "Sommige encryptiestelsels doen heel lang over een berekening, maar er kunnen use cases zijn waarin snelheid juist belangrijk is. Denk aan het valideren van creditcardbetalingen; daarbij gaat het om milliseconden." Ook in het eerder genoemde voorbeeld van de wachtwoordenchecker in Edge wil je als gebruiker uiteraard zo snel mogelijk een resultaat; je wil niet een minuut hoeven wachten voor je weet of een wachtwoord is gestolen. "In bovenstaand framework is de belangrijkste uitdaging om de complexiteit van de computeMatch-functie te minimaliseren", schrijft Microsoft. Zo hakt het bedrijf databases in stukjes op om te werken met kleinere datasets. Zolang dat proces niet optimaal werkt, heeft de consument er niet veel aan.
Niet altijd snel
Snelheid heeft bij homomorfische encryptie niet altijd prioriteit
Snelheid hoeft niet altijd prioriteit te hebben. Toen homomorfische encryptie net werd bedacht, bestonden de hypotheses vooral uit problemen die ingewikkeld waren om op te lossen, zelfs als een computer de sleutel ervoor zou hebben. "Dat is inmiddels wel veranderd", zegt Soceanu. "Steeds meer ontwikkelaars zagen in dat als je een benadering van een resultaat kunt krijgen maar niet het exacte resultaat, de eindgebruiker dat misschien niet zo erg vindt. De noise in de data is dan te klein."
Volgens Soceanu komt daar ook bij dat hardware steeds beter wordt. Gpu's worden krachtiger en kunnen berekeningen steeds sneller uitvoeren. "Om een beeld te krijgen: we proberen de tijd van een berekening van uren naar milliseconden te krijgen. En in de toekomst gaat het nog sneller."
Volledige of gedeeltelijke encryptie
Wetenschappers die aan homomorfische encryptie werken, zijn eigenlijk altijd op zoek naar één heilige graal: full homomorphic encryption, of FHE. Dat is altijd het knelpunt geweest wanneer het gaat om dit type encryptie. Het zou het beste zijn om een systeem te kunnen maken waarin je in één keer alles kunt doen wat homomorfische encryptie belooft en waarmee je op een versleutelde dataset alle berekeningen kunt uitvoeren die je maar wil, maar dat kon lang niet. "Toen wetenschappers hiermee begonnen te werken, konden de meeste encryptiestelsels maar een enkel type berekening uitvoeren", zegt Soceanu. "Je kon alleen optellen, maar niet óók nog vermenigvuldigen." Volledig homomorfische encryptie maakt het mogelijk om iedere functie uit te voeren die je maar wil, op het moment dat je er behoefte aan hebt.
Als je kunt optellen én vermenigvuldigen wordt HE pas echt nuttig
Dat gebrek maakte HE lange tijd niet erg bruikbaar voor echte applicaties. Soceanu: "Als je op school alleen maar leert optellen, kun je wel wat sommen maken, maar het wil niet zeggen dat je kunt rekenen." Daarmee wil hij niet zeggen dat FHE de enige bruikbare vorm van homomorfisme is. In sommige gevallen kan het voor een berekening genoeg zijn als je alleen kunt optellen. Als je een commerciële tool wil bouwen die je zowel aan een bank als een ziekenhuis kunt verkopen, heb je echter iets nodig dat wel alle soorten berekeningen kan maken. "Als je kunt optellen, vermenigvuldigen én rotaties kunt gebruiken, is praktisch iedere functie mogelijk."
Verschillende stelsels
Om data op zo'n manier te versleutelen dat je ermee kunt werken, heb je een encryptiestelsel nodig. Daarvan zijn er door de jaren heen talloze ontwikkeld. Een encryptiestelsel bepaalt hoe data versleuteld wordt, bijvoorbeeld welke input er wordt gebruikt of hoe de output eruitziet. Volgens Soceanu zijn er veel verschillende stelsels voor volledige homomorfische encryptie. Ze hebben allemaal hun eigen eigenschappen en daarmee een eigen doel. Zo is er het Brakerski-Gentry-Vaikuntanathan-stelsel dat accuraat maar traag is. BVF geeft exacte resultaten maar is vooral interessant om op integers te gebruiken, terwijl het afgeleide CKKS minder precieze resultaten geeft maar juist meer geschikt is voor datasets met minder ronde getallen. "Welk stelsel je moet gebruiken, hangt erg af van wat je precies wil doen", zegt Soceanu. Maar, voegt hij toe, dat maakt voor de meeste datawetenschappers niet zoveel uit. "Het achterliggende stelsel boeit ze niet. Ze willen alleen de resultaten zien."
/i/2004515484.png?f=imagenormal)
Tot slot
Net als veel andere soorten experimentele vormen van encryptie bestaat ook homomorfische encryptie voornamelijk nog in academische kring. Naast IBM zijn techbedrijven als Google en Microsoft ermee bezig, en wetenschapsinstituten zoals TNO. Hier en daar zijn al wat voorbeelden te zien van de toepassing van homomorfische encryptie in de praktijk.
Google en Microsoft gebruiken het proces bijvoorbeeld in hun browsers Chrome en Edge voor het controleren op onveilige wachtwoorden. Gebruikers die hun wachtwoorden in de browser opslaan, krijgen te zien of die voorkomen in lijsten met uitgelekte wachtwoorden. Google en Microsoft gebruiken daar HE voor om resultaten te vergelijken zonder zelf de wachtwoorden te kunnen zien. Microsoft doet ook onderzoek naar homomorfische encryptie om bijvoorbeeld contactenlijsten te synchroniseren.
Contacttracing
Homomorfische encryptie kreeg vorig jaar bijna zijn echte doorbraak bij het grote publiek. De contacttracing-apps die in allerijl werden ontwikkeld in de strijd tegen de coronapandemie hadden een probleem waar FHE een oplossing voor had kunnen bieden. Coronapatiënten moeten hun data delen met andere appgebruikers zonder dat die appgebruikers of -ontwikkelaars kunnen achterhalen wie er achter een positief signaal zit. Er zijn veel verschillende onderzoeken gedaan naar de mogelijkheid om FHE in te zetten als methode om die datasets te vergelijken. Uiteindelijk werd, vooral door de beperkingen van bluetooth op iOS, bij de meeste apps gekozen om de GAEN-api van Google en Apple te gebruiken. Ook de Nederlandse CoronaMelder doet dat. Die app maakt geen gebruik van volledige homomorfische encryptie, maar wel van iets dat er nauw mee is verbonden, namelijk private set intersection. PSI is vergelijkbaar met FHE; het is een techniek waarbij twee partijen sets met data met elkaar kunnen vergelijken om overeenkomsten te vinden. In veel gevallen wordt daar een homomorfische-encryptiestelsel voor gebruikt, maar PSI kan ook werken met enkel hashing of door bijvoorbeeld de berekening te laten uitvoeren door een vertrouwde derde partij.
Homomorfische-encryptie-as-a-service
Stap voor stap verlaat homomorfische encryptie de laboratoria en verschijnen er steeds meer toepassingen voor het bedrijfsleven. Waar Google en Microsoft hun onderzoek vooral voor eigen doeleinden inzetten, biedt een aantal bedrijven kant-en-klare 'homomorfische-encryptie-as-a-service' aan. IBM doet dit bijvoorbeeld, er zijn start-ups zoals Enveil die tools aanbieden en TNO heeft er onlangs een apart bedrijf voor opgestart. Ze richten zich voornamelijk op sectoren zoals de gezondheidsindustrie of de bankwereld. Daar zit niet alleen geld, maar er is ook vraag naar zulke toepassingen. Het zijn sectoren die hebben te maken met strenge eisen rondom privacy, terwijl er zoveel data wordt gebruikt dat het bijna niet meer mogelijk is om alle gegevens goed te beschermen. Encryptie kan erbij helpen, al erkent Martine van de Gaar dat het niet de 'silver bullet' is om data permanent veilig te houden. Van de Gaar is datawetenschapper bij TNO en oprichter van Linksight, een nieuw bedrijf dat tools aanbiedt om homomorfische encryptie direct te implementeren.
"Homomorfische encryptie vercijfert wel data, dus aan de inputkant heb je zeker goede beveiliging, maar dat wil niet zeggen dat de output ook heel veilig is", zegt Van de Gaar. Ze geeft een voorbeeld van drie mensen die HE gebruiken om hun gemiddelde salaris uit te rekenen. "Als daar een getal X uit komt, weet je niks. Maar als er vervolgens een vierde persoon bij komt, rolt er een nieuw getal Y uit. Je kunt dan het verschil tussen de gemiddelden X en Y berekenen om te weten wat de vierde persoon verdient."
Linksight maakt tools voor bedrijven die zelf berekeningen willen uitvoeren zonder dat ze daar zelf een encryptiestelsel voor hoeven op te stellen. "De partijen die met zulke tools samenwerken, doen dat vaak in driehoekjes; het zijn bedrijven met verschillende datapunten. Deze bedrijven installeren allemaal onze software. Daarmee maken ze een klein netwerk waar ze hun data aan koppelen. Vervolgens kunnen ze analyses vragen. De software kan bijvoorbeeld gemiddelden tellen. Dan kun je als opdracht geven 'geef me het gemiddelde zorgverbruik dat aan zowel deze als deze eis voldoet', waarbij de eisen door de verschillende deelnemers worden geleverd. De tool beantwoordt die vraag zonder dat de individuele datapunten ooit worden achterhaald."
Tot slot
Homomorfische encryptie lijkt soms wat op abstracte zaken als blockchain of quantumcomputers
Homomorfische encryptie kent veel verschillende toepassingen. Er zijn ook genoeg redenen te bedenken waarom het nuttig kan zijn; niet alleen voor de veiligheid, maar soms ook omdat je er eigenlijk niet onderuit kunt. "Denk aan regulering", zegt Omri Soceanu van IBM. "Als je gezondheidsdata naar de cloud stuurt, krijg je bijvoorbeeld te maken met privacywetgeving. Die voorkomt dat je analyses mag uitvoeren op onversleutelde data."
Anderzijds heeft homomorfische encryptie een flair die ook rond technologieën als blockchain of quantumcomputing hangt: vooral interessant in concept, maar praktisch nog maar voor een handvol toepassingen geschikt en in sommige gevallen een oplossing zonder probleem. Soceanu geeft toe dat sommige klanten die bij IBM aankloppen omdat ze per se volledige homomorfische encryptie willen, niet helemaal de juiste klantvraag stellen. Ze hebben gehoord dat HE het beste is, de heilige graal, en dat is wat ze willen. "Maar als we dan gaan praten over de details is FHE misschien niet dé oplossing voor ze. Misschien is gedeeltelijke HE ook wel voldoende. Je moet de juiste oplossing bij het probleem vinden. Soms is een goede schroevendraaier veel effectiever dan een multitool die én een schroevendraaier én een hamer én een tang heeft."