Pieter Edelman
25 mrt 2016

Onderzoekers van Microsoft Research hebben een neuraal netwerk ontwikkeld dat zijn werk volledig op versleutelde data uitvoert. Een geruststellende gedachte voor banken en ziekenhuizen die hun gevoelige gegevens willen laten analyseren.

De bigdatawetenschap predikt dat zich in verzamelingen gegevens allerlei extra informatielagen schuilhouden. Door uitgebreide analyses waarbij datapunten met elkaar worden gecorreleerd en patronen worden opgespoord, kunnen saaie, platte databanken allerlei interessante inzichten genereren. Patronen in banktransacties kunnen bijvoorbeeld op verdachte activiteiten wijzen, en uit gedrag valt te voorspellen welke patiënten de komende tijd het meeste risico hebben op een terugval.

Voor banken en ziekenhuizen kan het echter lastig zijn om zulke analyses uit te voeren. Vaak zullen ze dit niet zelf kunnen, omdat ze de infrastructuur voor het zware rekenwerk niet hebben of omdat de analyse een externe dienst is. Maar dat betekent dat ze gevoelige informatie moeten overdragen aan een derde partij. Dat is geen fijne gedachte. Hoe garandeer je dat de cloudleverancier te vertrouwen is? En zelfs als die garantie er wel is, hoe weet je dan zeker dat je data niet per ongeluk ergens weglekken of worden buitgemaakt?

Voor opslag van gegevens bij een derde partij wordt dat probleem doorgaans opgelost door ze cryptografisch te versleutelen. Voor bigdata-analyses werkt dat niet; om iets met de gegevens te kunnen doen, moeten ze immers gelezen kunnen worden.

Microsoft Research denkt nu de oplossing voor dit probleem te hebben gevonden. Het bedrijf werkt al geruime tijd aan het ietwat contra-intuïtieve onderwerp van homomorfische encryptie, een methode om wiskundige bewerkingen direct uit te voeren op versleutelde gegevens zonder ze ooit te decoderen. Zowel de input als de output is dus een versleuteld getal waaruit de daadwerkelijke waarde niet is af te leiden zonder sleutel.

Een aantrekkelijke methode voor ziekenhuizen en banken, want zij kunnen versleutelde data opsturen en versleutelde data terugkrijgen zonder dat hun leverancier ooit iets te weten komt over de daadwerkelijke waarden. Het idee voor homomorfische encryptie werd eind jaren zeventig al geopperd, maar toch wordt het in de praktijk niet gebruikt. De methodes vereisen namelijk typisch enkele ordegroottes meer rekenkracht dan de normale bewerking. Dat is echt te gortig, zelfs voor wie een krachtige cloudinfrasctructuur tot zijn beschikking heeft.

Verboden functies

De Microsoft-onderzoekers hebben geen radicaal nieuwe methode gevonden om dit probleem op te lossen. Door parameters slim uit te kienen en rekenproblemen te herschrijven, hebben ze echter verschillende optimalisaties ontwikkeld voor een aantal specifieke praktische scenario’s. Vorig jaar beschreven ze bijvoorbeeld al hoe een aantal rekenintensieve biochemische vraagstukken homomorfisch aan te pakken zijn. Nu voegen ze daar een andere toepassing aan toe: neurale netwerken, de techniek die ten grondslag ligt aan de recente successen in spraak- en beeldherkenning, maar ook aan de recente overwinning van computer op mens in het bordspel Go. Juist voor bigdata-analyses zijn neurale netten een interessante toepassing.

De researchers baseren hun aanpak op een homomorfische-encryptiemethode uit 2013 die redelijk efficiënt werkt, maar alleen met polynomen kan rekenen – met andere woorden: waarin alleen optellen en vermenigvuldigen is toegestaan. Bovendien moet aan een aantal voorwaarden worden voldaan. Zo kan het algoritme alleen overweg met gehele getallen, en moet de graad van de polynoom – de grootste macht die voorkomt in de vergelijking – van tevoren bekend zijn.

Neurale netwerken lijken zich in eerste instantie uitstekend te lenen voor deze aanpak. Ze worden opgebouwd uit onderling verbonden nodes, die in lagen georganiseerd zijn: een node krijgt de waarden van alle nodes in de vorige laag als input, verwerkt deze volgens een vastgestelde functie en stuurt het resultaat naar alle nodes in de volgende laag. Tijdens het trainen van een netwerk wordt bepaald hoe zwaar een node al zijn inputs moet meetellen, waarbij een deel uiteindelijk helemaal zal wegvallen.

Bij het combineren van inputs is het vaak alleen een kwestie van optellen en vermenigvuldigen; dat kan dus goed homomorfisch uitgevoerd worden. Helaas komen ook andere typen nodes voor. Een veelgebruikte functie is bijvoorbeeld max pooling, het zoeken naar de grootste waarde in de set inputs. Simpel, maar niet als polynoom te schrijven.

De onderzoekers moesten dus op zoek naar manieren om het netwerk volledig te herschrijven in polynomen, of naar benaderingen van de verboden functies. Zo is max pooling wel te benaderen met een methode die alleen de toegestane bewerkingen gebruikt. Door van tevoren te bepalen welke afwijking maximaal is toegestaan, kunnen de parameters zo worden gekozen dat die binnen de perken blijft. Op vergelijkbare manier kunnen rationele getallen worden benaderd met natuurlijke getallen.

Daarnaast zijn er allerhande optimalisaties mogelijk. Zo blijken onversleutelde getallen efficiënt te kunnen worden vermenigvuldigd met de versleutelde gegevens. Aangezien veel van de bewerkingen in een neuraal netwerk bestaan uit vermenigvuldigen met constante parameters, is hier een forse efficiëntiewinst te boeken.

Als test bouwden de Microsoft-onderzoekers een cryptonet van negen lagen om geschreven cijfers te herkennen. Na training kon dit 99 procent van de voorbeelden juist classificeren, maar dit ging wel tergend traag: een moderne pc had bijna tien minuten nodig om het netwerk een keer te doorlopen.

Gelukkig hadden de researchers nog een truc achter de hand. Wat het netwerk traag maakt, is de grote hoeveelheid termen in de polynomen: 8192 om precies te zijn, een aantal dat gekozen was in verband met de sterkte van de versleuteling. Maar door hier een beetje slim mee om te gaan, is het mogelijk om elke term op een apart sample te laten werken. Een enkel beeld analyseren kost daardoor evenveel rekenkracht als 8192 beelden tegelijk.

Wanneer daarmee rekening wordt gehouden, kost het analyseren van een beeld gemiddeld nog maar 0,07 seconden. En daarmee komt het toch aardig in de buurt van een praktische toepassing, zo vinden de researchers. Bovendien zien ze nog wel ruimte voor verbeteringen. Onder meer via gpu’s en fpga’s, maar ook door het probleem nog efficiënter om te schrijven.