Homomorfische versleuteling met SEAL

.NET

In dit artikel wordt beschreven hoe en wanneer u homomorfe versleuteling gebruikt en hoe u homomorfe versleuteling implementeert met de opensource Microsoft Simple Encrypted Arithmetic Library (SEAL).

Architectuur

Diagram showing traditional and SEAL encryption.

Een Visio-bestand van deze architectuur downloaden.

Workflow

Traditionele versleutelingsschema's bestaan uit drie functies: sleutelgeneratie, versleuteling en ontsleuteling. Met symmetrische-sleutelversleutelingsschema's wordt dezelfde geheime sleutel gebruikt voor zowel versleuteling als ontsleuteling. Het maakt efficiënte versleuteling van grote hoeveelheden gegevens mogelijk voor veilige, uitbesteed cloudopslag. Versleutelingsschema's voor openbare sleutels gebruiken een openbare sleutel voor versleuteling en een afzonderlijke geheime sleutel voor ontsleuteling. Iedereen die de openbare sleutel kent, kan gegevens versleutelen, maar alleen iemand die de geheime sleutel kent, kan de gegevens ontsleutelen en lezen. Versleuteling van openbare sleutels maakt veilige onlinecommunicatie mogelijk, maar is doorgaans minder efficiënt dan symmetrische-sleutelversleuteling.

U kunt traditionele versleuteling gebruiken voor beveiligde opslag en communicatie, maar voor een uitbestedende berekening is het verwijderen van versleutelingslagen vereist. Cloudservices die uitbesteden berekeningen bieden, moeten toegangsbeleid implementeren om onbevoegde toegang tot de gegevens en sleutels te voorkomen. Gegevensprivacy is afhankelijk van het beleid voor toegangsbeheer dat wordt opgelegd door de cloudprovider en wordt vertrouwd door de klant.

Met homomorfe versleuteling van Microsoft SEAL hebben cloudproviders nooit niet-versleutelde toegang tot de gegevens waarop ze worden opgeslagen en berekend. Berekeningen kunnen rechtstreeks op versleutelde gegevens worden uitgevoerd. De resultaten van dergelijke versleutelde berekeningen blijven versleuteld en kunnen alleen worden ontsleuteld door de gegevenseigenaar met behulp van de geheime sleutel. De meeste homomorfe versleuteling maakt gebruik van versleutelingsschema's voor openbare sleutels, hoewel de functionaliteit van de openbare sleutel mogelijk niet altijd nodig is.

Scenariodetails

Bedrijven verzenden, ontvangen en opslaan hun cloudgegevens vaak in versleutelde vorm. Maar om te profiteren van cloud-computing, moeten bedrijven niet-versleutelde gegevens of de sleutels bieden om deze te ontsleutelen. In deze praktijk lopen bedrijfsgegevens een verhoogd risico. Met homomorfe versleuteling kunt u berekeningen rechtstreeks uitvoeren op versleutelde gegevens, waardoor het eenvoudiger is om het potentieel van de cloud toe te passen op privacykritieke gegevens.

Potentiële gebruikscases

  • Lichtgewicht berekeningen zoals optellen en vermenigvuldigen van privacykritieke gegevens en onderdelen van programma's.
  • Uitbesteed cloud-computing, waarbij één eigenaar eigenaar is van alle gegevens en alleen toegang heeft tot de ontsleutelingssleutels.

Overwegingen

  • Er zijn slechts enkele berekeningen mogelijk voor versleutelde gegevens. Microsoft SEAL homomorfische versleutelingsbibliotheek staat toevoegingen en vermenigvuldigingen toe op versleutelde gehele getallen of reële getallen. Versleutelde vergelijking, sortering of reguliere expressies zijn niet vaak haalbaar om te evalueren op versleutelde gegevens met behulp van deze technologie. Dus alleen specifieke privacykritieke cloudberekeningen op onderdelen van programma's kunnen worden geïmplementeerd met Behulp van Microsoft SEAL.

  • Microsoft SEAL wordt geleverd met twee homomorfe versleutelingsschema's met verschillende eigenschappen. Met het BFV-schema kunnen modulaire rekenkundige bewerkingen worden uitgevoerd op versleutelde gehele getallen. Het CKKS-schema biedt toevoegingen en vermenigvuldigingen op versleutelde reële of complexe getallen, maar levert alleen geschatte resultaten op. CKKS is de beste keuze bij het optellen van versleutelde reële getallen, het evalueren van machine learning-modellen op versleutelde gegevens of het berekenen van afstanden van versleutelde locaties. Voor toepassingen waarbij exacte waarden nodig zijn, is het BFV-schema de enige keuze.

  • Homomorfe versleuteling is niet efficiënt. Omdat homomorfe versleuteling gepaard gaat met een grote overhead voor prestaties, zijn berekeningen die al kostbaar zijn voor niet-versleutelde gegevens waarschijnlijk niet haalbaar voor versleutelde gegevens.

  • Gegevens die zijn versleuteld met homomorfe versleuteling, zijn vaak groter dan niet-versleutelde gegevens, dus het is mogelijk niet zinvol om hele grote databases te versleutelen, bijvoorbeeld met deze technologie. In plaats daarvan zijn scenario's waarin strikte privacyvereisten niet-versleutelde cloudberekeningen verbieden, maar de berekeningen zelf redelijk licht zijn, zinvolle gebruiksvoorbeelden.

  • Normaal gesproken hebben homomorfe versleutelingsschema's één geheime sleutel, die wordt bewaard door de gegevenseigenaar. Homomorfe versleuteling is niet redelijk voor scenario's waarbij meerdere verschillende eigenaren van persoonlijke gegevens willen deelnemen aan gezamenlijke berekeningen.

  • Het is niet altijd eenvoudig of eenvoudig om een niet-versleutelde berekening te vertalen in een berekening op versleutelde gegevens. Zelfs als nieuwe gebruikers een berekening kunnen programmeren en uitvoeren met Microsoft SEAL, kan er een groot verschil zijn tussen een efficiënte en inefficiënte implementatie. Het kan moeilijk zijn om te weten hoe u de prestaties kunt verbeteren.

  • Hoewel de homomorfe versleuteling zelf veilig is, garandeert het niet dat de apps en protocollen die deze gebruiken, veilig zijn.

Inzenders

Dit artikel wordt onderhouden door Microsoft. De tekst is oorspronkelijk geschreven door de volgende Inzenders.

Hoofdauteur:

Volgende stappen

Zie Microsoft SEAL van Microsoft Research en het SEAL-codeproject op GitHub voor meer informatie over homomorfe versleuteling en de Microsoft SEAL-bibliotheek.

Zie de volgende resources over beveiliging in Azure: