Naar de content

Geheimen delen met partners die je niet vertrouwt

Kremlin News

Cryptograaf Ronald Cramer kreeg een ERC-Advanced Grant om, onder meer, secure multi party computation verder te ontwikkelen. Daarmee deel en verwerk je informatie zonder je privacy op te geven. “Lang was dit heel theoretisch. Maar de toepassingen beginnen nu op te komen.”

Als het gaat over cryptografie, heeft iedereen daar wel een idee bij: je stuurt iemand een bericht in geheimschrift, en alleen als die ander de juiste sleutel heeft, kan hij of zij dit bericht ontcijferen. Meestal zijn beide partijen trouwens computers, want vrijwel alle beveiligde informatie wordt tegenwoordig via internet verstuurd en volautomatisch versleuteld en ontcijferd.

Het beveiligen van deze een-op-een contacten is een kwestie van unilateral security, maar er bestaat ook multilateral security. Dit gaat over het delen en bewerken van vertrouwelijke informatie door meerdere partijen. Uit die bewerking komt een resultaat dat voor elke partij beschikbaar is, zonder dat die toegang krijgt tot de gevoelige informatie die andere partijen hebben ingebracht.

Veilige veilingen

Een concreet voorbeeld is een veiling, waar meerdere partijen biedingen doen. Als één partij eerst het bod van alle anderen kan zien voordat hij zijn eigen bod uitbrengt, levert hem dat een oneerlijk voordeel op. De klassieke oplossing is, dat een centrale autoriteit (de notaris) alle biedingen verzamelt en dan pas de enveloppen open maakt.

Maar in de echte wereld, waar flitsveilingen van zeer complexe producten plaatsvinden (aandelenpakketten, contracten), is er vaak geen ‘notaris’ die door alle partijen vertrouwd wordt. Wie garandeert, dat de notaris niet via een stroman zelf mee gaat bieden? Bovendien kan zo’n notaris niet weten, of sommige partijen samenspannen om gezamenlijk de overige bieders beentje te lichten.

Volgens cryptograaf Ronald Cramer ontstaat er steeds meer symbiose tussen industrie en overheid, en denkt de laatste: “Da’s mooi, dat jij al die data over je klanten verzamelt”. Zo hoeft de geheime dienst niet eens meer zelf data te verzamelen, ze halen dat gewoon op bij Google en Facebook. Secure multiparty computing kan ook een rol gaan spelen bij het veilig opslaan van zulke data in de cloud.

Arnout Jaspers

Enorm deelgebied

Wonderlijk genoeg bestaan er wiskundige methodes waarmee partijen die elkaar geen van allen vertrouwen, toch vertrouwelijke informatie kunnen uitwisselen. Deze tak van sport heet secure multiparty computation and secret sharing. Ronald Cramer:“Dit is een enorm deelgebied van de cryptografie, dat heel lang alleen theoretisch van belang was. Maar de toepassingen beginnen nu op te komen.”

In het allersimpelste voorbeeld zijn er maar drie partijen, die voor/tegen stemmen over een bepaald voorstel. Het voorstel wordt aangenomen als minstens twee partijen vóór stemmen, maar de stemming moet anoniem blijven, terwijl er ook geen ‘notaris’ is die alle drie de partijen vertrouwen. Het lijkt onmogelijk om dan een anonieme stemming te houden, maar in feite bestaat daar een vrij eenvoudig protocol voor (zie het kader onderaan).

In de echte wereld moet dit werken voor een willekeurig aantal (N) deelnemers, waarbij je ook nog aanneemt dat een bepaald percentage van die deelnemers onder één hoedje speelt om het proces te saboteren. In het simpele voorbeeld in het kader kunnen twee partijen die informatie uitwisselen al de stem van de derde partij achterhalen.

Echter, Cramer en andere cryptografen hebben protocollen ontworpen waarin de geheimen van de bonafide deelnemers nog steeds beschermd zijn, als een derde, of in sommige varianten de helft van alle deelnemers tegen hen samenspant. Onder bepaalde voorwaarden werken zulke protocollen zelfs nog, als N-1 partijen tegen de enige andere samenspannen. Zulke protocollen zijn een stuk gecompliceerder, en er moet vaker informatie heen en weer, maar het kan.

Zo’n protocol kan veel gecompliceerder dingen doen dan stemmen tellen; in feite kan het elke gewenste berekening op de gedeelde data loslaten. “We emuleren een alwetend orakel,” zegt Cramer bijna lyrisch. Het orakel weet allerlei dingen over het collectief van de deelnemers, en vertelt die ook, maar beschermt toch hun privacy.

Jaren zestig

Voor praktische toepassingen moeten die ingenieuze algoritmes wel omgezet worden in bruikbare software, en wat dat betreft is er nog veel werk aan de winkel. Cramer: “Het programmeren van secure multiparty computing bevindt zich nu op het niveau waarop gewoon computerprogrammeren zich in de jaren zestig bevond. Secure multiparty computing vergt nu al snel heel veel rekenkracht en vele rondes communicatie, we moeten fundamenteel nieuwe methodes vinden om dat efficiënter te doen.”

Met deze ERC Grant van de Europese Unie kan Cramer de komende vijf jaar zijn Cryptology Research Group aan deze problemen laten werken, vooral door meer onderzoekers aan te stellen. Het geld wordt trouwens ook ingezet voor onderzoekers in de andere tak van zijn onderzoek, unilateral security. Cramer: “Het is niet verboden om van dat geld hardware te kopen, maar wij hebben geen grote computers nodig.”

Zulke methodes om veilig geheimen te delen en te bewerken worden al enkele jaren gebruikt in Denemarken, waar jaarlijks een veiling plaatsvindt van productierechten voor suikerbieten. Dat gaat via een centrale, Danisco. Boeren willen alleen niet dat Danisco gedetailleerde informatie krijgt over het wel en wee van individuele bedrijven, omdat die ook partij is in het opkopen van de geproduceerde suikerbieten.

Meer toepassingen

Cramer is in gesprek met Philips en TNO over het ontwikkelen van secure multiparty computation voor de gezondheidszorg. Zo zou het grote voordelen op kunnen leveren, als de resultaten van fase IV klinische trials (tests met nieuwe medicijnen of behandelingen bij patiënten) door verschillende partijen gedeeld konden worden, met bescherming van de privacy en de belangen van alle betrokken partijen. Zulke trials leveren enorm veel medische informatie op, waar vaak meer uit te halen zal zijn dan of dit ene geneesmiddel werkte. CWI, Philips, TNO en het Institute for Advanced Study aan de UvA hebben nu een gezamenlijk pilot-project, dat de technische haalbaarheid van dat soort systemen verkent.

Een heel andere mogelijkheid die Cramers groep verder wil uitwerken, is het bouwen van virtuele machines die beter bestand zijn tegen hacken. Je simuleert dan één virtuele computer op meerdere fysieke computers, die gevoelige informatie (zoals het besturingssysteem) op een zodanige manier met elkaar delen, dat een hacker niet één, maar een flink deel van die computers moet hacken om de virtuele computer in zijn macht te krijgen. Maar zeker voor deze toepassing zullen de protocollen eerst een stuk efficiënter moeten worden.

Primitieven

Een gesprek over databeveiliging kan natuurlijk nooit om de NSA heen, de Amerikaanse geheime dienst die het hele internetverkeer zou opslaan en alle geheimschriften zou kunnen kraken. Dat is niet zo, maar veel leken geloven dat. Maar ook deskundigen speculeren soms over wat grote geheime diensten als de NSA kunnen. Niemand weet immers welke genieën daar werken, en welke astronomische computerkracht die tot hun beschikking hebben? Cramer is zeer sceptisch over zulke speculaties: “De beste cryptografen en computerwetenschappers zitten aan de universiteiten.”

Het gigantische datacenter van de National Security Agency (NSA) in Utah.

EFF CCO 1.0

Bovendien, voor secure multiparty computation zijn de vermeende supercomputers van de NSA niet relevant. Cramer: “De veiligheid van deze primitieven vereist geen complexiteitsaannames, en ze zijn ook bestand tegen aanvallen met een quantumcomputer.” In lekentaal: de wiskundige systemen (‘primitieven’) achter secure multiparty computation zijn veilig, ongeacht hoeveel computerkracht een hacker er tegenaan gooit. In die zin zijn ze onkraakbaar. In de praktijk is dat wat minder eenduidig, aangezien sommige varianten van secure multiparty computation voor de communicatie tussen partijen gebruik maken van veelgebruikte geheimschriften als RSA. En die geheimschriften zijn wel kwetsbaar voor aanvallen met een toekomstige quantumcomputer.

Veilig geheimen delen en verwerken

In het allersimpelste voorbeeld van secure multiparty computation zijn er maar drie partijen, Piet, Paulien en Peter, die voor/tegen stemmen over een voorstel. Het wordt aangenomen als minstens twee partijen vóór stemmen, maar de stemming moet anoniem blijven. Dat werkt zo:

Elke partij bepaalt zijn stem, voor (1) of tegen (0). Stel dat Piet vóór stemt. Piet kiest drie random getallen r1,r2,r3, in een afgesproken interval (zeg van 0 tot 9), zodanig dat de som van die drie getallen (modulo 10, wat wil zeggen: kijk alleen naar het laatste cijfer van de som) overeenkomt met zijn stem. Hij kiest bijvoorbeeld r1= 5, r2=9 en r3=7, zodat 5 + 9 + 7 = 21, modulo 10 is dit 1.

Piet stuurt nu aan Paulien de getallen 5 en 7, en aan Peter de getallen 5 en 9. Op dezelfde manier bepalen Paulien en Peter hun stem, en sturen hun getallenparen aan de andere partijen. Niemand kan nu in zijn eentje uitrekenen wat iemand anders gestemd heeft. Paulien, bijvoorbeeld, beschikt van Piet alleen over de getallen 5 en 7, opgeteld 12 (2), wat niets zegt over hoe Piet gestemd heeft (1). De aanname is hier wel, dat twee partijen onderling een kanaal hebben om te communiceren zonder dat ze door de derde worden afgeluisterd.

Om de uitslag van de stemming te bepalen, telt elke partij de getallen die hij heeft gekregen op, modulo 10, en maakt dat getal S bekend. Dus SPiet, SPaulien en SPeter zijn nu openbaar. Ook deze getallen S zeggen niets over individuele stemmen.

Iedereen kan nu het totaal uitrekenen: SPiet + SPaulien + SPeter, modulo 10, is gelijk aan het aantal vóórstemmen. Als iedereen vóór stemt weet je natuurlijk alsnog hoe elke partij gestemd heeft, maar in dat geval kan dat nauwelijks een probleem zijn. Maar – vooral als er meer dan drie partijen zijn – als een of meer partijen tegen hebben gestemd, is door een individuele partij niet te achterhalen wie dat waren.

Dit veronderstelt wel dat de spelers zich aan het protocol houden, (de zogeheten passive security ). Als je de procedure wilt beschermen tegen een partij die bijvoorbeeld ‘2’ stemt ( active security ) wordt het al een stuk ingewikkelder, ook voor maar drie partijen.

ReactiesReageer