Homomorfisk kryptering med SEAL

.NET

Den här artikeln beskriver hur och när du ska använda homomorfisk kryptering och hur du implementerar homomorfisk kryptering med Microsoft Simple Encrypted Arithmetic Library (SEAL) med öppen källkod.

Arkitektur

Diagram showing traditional and SEAL encryption.

Ladda ned en Visio-fil med den här arkitekturen.

Workflow

Traditionella krypteringsscheman består av tre funktioner: nyckelgenerering, kryptering och dekryptering. Krypteringsscheman med symmetrisk nyckel använder samma hemliga nyckel för både kryptering och dekryptering. Det möjliggör effektiv kryptering av stora mängder data för säker, outsourcad molnlagring. Krypteringsscheman med offentliga nycklar använder en offentlig nyckel för kryptering och en separat hemlig nyckel för dekryptering. Alla som känner till den offentliga nyckeln kan kryptera data, men bara någon som känner till den hemliga nyckeln kan dekryptera och läsa data. Kryptering med offentlig nyckel möjliggör säker onlinekommunikation, men är vanligtvis mindre effektiv än kryptering med symmetrisk nyckel.

Du kan använda traditionell kryptering för säker lagring och kommunikation, men outsourcad beräkning har krävt borttagning av krypteringslager. Molntjänster som tillhandahåller outsourcad beräkning måste implementera åtkomstprinciper för att förhindra obehörig åtkomst till data och nycklar. Datasekretess förlitar sig på de principer för åtkomstkontroll som åläggs av molnleverantören och som är betrodda av kunden.

Med homomorfisk microsoft SEAL-kryptering har molnleverantörer aldrig okrypterad åtkomst till de data de lagrar och beräknar på. Beräkningar kan utföras direkt på krypterade data. Resultatet av sådana krypterade beräkningar förblir krypterade och kan endast dekrypteras av dataägaren med hjälp av den hemliga nyckeln. De flesta homomorfisk kryptering använder krypteringsscheman med offentliga nycklar, även om funktionen för offentlig nyckel kanske inte alltid behövs.

Information om scenario

Företag skickar, tar ofta emot och lagrar sina molndata i krypterad form. Men för att kunna dra nytta av molnbaserad databehandling måste företag antingen tillhandahålla okrypterade data eller nycklarna för att dekryptera dem. Den här metoden medför ökad risk för företagsdata. Homomorfisk kryptering möjliggör beräkning direkt på krypterade data, vilket gör det enklare att tillämpa molnets potential för sekretesskritiska data.

Potentiella användningsfall

  • Lätta beräkningar som addition och multiplikation för sekretesskritiska data och delar av program.
  • Outsourcad molnbaserad databehandling, där en enskild ägare äger alla data och har ensam åtkomst till dekrypteringsnycklarna.

Överväganden

  • Endast vissa beräkningar är möjliga för krypterade data. Microsoft SEAL homomorfa krypteringsbibliotek tillåter tillägg och multiplikationer på krypterade heltal eller verkliga tal. Krypterade jämförelser, sortering eller reguljära uttryck är inte ofta möjliga att utvärdera på krypterade data med hjälp av den här tekniken. Därför kan endast specifika sekretesskritiska molnberäkningar på delar av program implementeras med hjälp av Microsoft SEAL.

  • Microsoft SEAL levereras med två homomorfa krypteringsscheman med olika egenskaper. BFV-schemat gör att modulär aritmetik kan göras på krypterade heltal. CKKS-schemat tillåter tillägg och multiplikationer på krypterade verkliga eller komplexa tal, men ger endast ungefärliga resultat. CKKS är det bästa valet när du sammanfattar krypterade verkliga tal, utvärderar maskininlärningsmodeller på krypterade data eller beräkningsavstånd för krypterade platser. För program där exakta värden är nödvändiga är BFV-schemat det enda valet.

  • Homomorfisk kryptering är inte effektiv. Eftersom homomorfisk kryptering medför stora prestandakostnader är beräkningar som redan är kostsamma att göra på okrypterade data förmodligen inte genomförbara för krypterade data.

  • Data som krypteras med homomorfisk kryptering är många gånger större än okrypterade data, så det kanske inte är meningsfullt att kryptera hela stora databaser, till exempel med den här tekniken. I stället är scenarier där strikta sekretesskrav förbjuder okrypterad molnberäkning, men själva beräkningarna är ganska enkla, meningsfulla användningsfall.

  • Normalt har homomorfa krypteringsscheman en enda hemlig nyckel som lagras av dataägaren. Homomorfisk kryptering är inte rimligt för scenarier där flera olika privata dataägare vill använda samarbetsberäkning.

  • Det är inte alltid enkelt eller enkelt att översätta en okrypterad beräkning till en beräkning på krypterade data. Även om nya användare kan programmera och köra en beräkning med Hjälp av Microsoft SEAL kan det finnas en stor skillnad mellan effektiv och ineffektiv implementering. Det kan vara svårt att veta hur man kan förbättra prestandan.

  • Även om den homomorfa krypteringsprimitatorn i sig är säker, garanterar den inte att de appar och protokoll som använder den är säkra.

Deltagare

Den här artikeln underhålls av Microsoft. Det har ursprungligen skrivits av följande medarbetare.

Huvudförfattare:

Nästa steg

Mer information om homomorfisk kryptering och Microsoft SEAL-biblioteket finns i Microsoft SEAL från Microsoft Research och SEAL-kodprojektet på GitHub.

Se följande resurser om säkerhet i Azure: