Wat is homomorfische codering?
Het concept dat bekend staat als homomorfische codering, waarin gecodeerde tekst kan worden gemanipuleerd en gebruikt zonder te worden gedecodeerd, werd voor het eerst in 1978 door Ronald Rivest, Leonard Adleman en Michael Dertouzos aan de wetenschappelijke gemeenschap gepresenteerd als privacyhomomorfisme. Een semantisch veilig homomorf coderingsschema werd ontwikkeld en voorgesteld door Shafi Goldwasser en Silvio Micali in 1982. In 2009 bewees Craig Gentry dat een volledig homomorf coderingsschema mogelijk is.
Rivest, Aldeman en Dertouzos ontwikkelden hun theorie rond het feit dat bestaande beveiligings- en versleutelingssystemen de mogelijkheid om iets te doen met de gegevens nadat deze versleuteld en in cijfertekst zijn omgezet, ernstig beperken. Zonder de ontwikkeling van een homomorfe oplossing is het verzenden en ontvangen van gegevens in wezen de enige functie die kan worden bereikt met gecodeerde gegevens. De grootste zorgen waren het computerniveau dat nodig is om het gecodeerde verzoek op de gecodeerde gegevens te verwerken en of een dergelijk coderingsschema veilig genoeg kan zijn voor praktisch gebruik.
Met de komst en voortdurende uitbreiding van cloud computing is het bedenken van een haalbare homomorfe coderingsmethode cruciaal. Anders is het risico te groot om gegevens toe te vertrouwen aan een cloud computing-provider wanneer die gegevens veilig moeten blijven. Als de provider op enigerlei wijze toegang heeft tot de gegevens in hun gedecodeerde vorm, kunnen de gegevens te gemakkelijk worden aangetast. Gentry heeft bewezen dat het een haalbare theorie is, hoewel de hoeveelheid tijd die de berekeningen in beslag nemen en het potentiële gemak waarmee de codering kan worden verbroken zorgen baren.
Het systeem van Gentry schetst hoe een coderingsschema wordt gemaakt waarmee gegevens veilig kunnen worden opgeslagen in een cloudomgeving waar de eigenaar van de gegevens de rekenkracht van de cloudprovider kan gebruiken om functies uit te voeren op de persistent gecodeerde gegevens. Hij doet dit in een proces in drie stappen. Een coderingsschema is geconstrueerd dat 'bootstrappable' is, of bestaat uit een enigszins homomorf coderingsschema dat kan werken met zijn eigen decoderingscircuit. Vervolgens wordt een bijna opstartbaar coderingsschema met openbare sleutels gebouwd met behulp van ideale roosters. Ten slotte zijn de schema's gewijzigd om eenvoudiger te zijn, zodat ze bootstrappable zijn met behoud van hun diepte.
Deze methode creëert een volledig homomorf coderingsschema, maar blijft relatief onpraktisch. Homomorfe codering is geëvolueerd om grotendeels te worden beveiligd tegen gekozen platte tekstaanvallen, maar beveiliging tegen gekozen cijfertekstaanvallen blijft een probleem. Naast het beveiligingsprobleem zijn de volledig homomorfe schema's zo groot en complex dat de tijdsfactor het gebruik ervan in de meeste toepassingen heeft uitgesloten. Enigszins homomorfe versleutelingssystemen zijn ontwikkeld om op zijn minst de tijdsfactor aan te pakken, waarbij alleen de meest efficiënte delen van een volledig homomorf versleutelingsschema worden gebruikt.