Fullständigt homomorf kryptering är en kryptering som gör det möjligt för en given chiffertext π 1 ,…, π t vem som helst (inte bara nyckelinnehavaren) att erhålla chiffertexten för valfri önskad funktion f( π 1 ,…, π t ) , så länge detta funktion kan effektivt beräknas.
Idén om helt homomorf kryptering föreslogs först 1978 av uppfinnarna av RSA : s kryptografiska algoritm med offentlig nyckel , Ronald Rivest och Adi Shamir , tillsammans med Michael Dertouzos . [1] Men i de inledande stadierna misslyckades försök att skapa ett kryptosystem med sådan kryptering. Under många år var det inte klart om helt homomorf kryptering ens var möjlig, även om försök att skapa ett sådant system gjordes upprepade gånger. Så, till exempel, kryptosystemet som föreslogs 1982 av Shafi Goldwasser och Silvio Micali hade en ganska hög nivå av kryptografisk styrka, men var bara delvis homomorft (homomorft endast i tillägg), och kunde kryptera endast en bit. [2] Ett annat additivt homomorft krypteringssystem föreslogs 1999 av Pascal Peillet . [3] Ett genombrott i utvecklingen av helt homomorf kryptering kom 2009, när Craig Gentry först föreslog en variant av ett helt homomorft kryptosystem baserat på gitterkryptografi. [4] Sedan dess har ett stort antal verk dykt upp som föreslår en modifiering av Gentrys kryptosystem för att förbättra dess prestanda.
Fullständig homomorf kryptering är en kryptografisk primitiv som är en krypteringsfunktion som uppfyller de ytterligare kraven på homomorfism med avseende på alla operationer på klartext. Krypteringsfunktionen , där m är klartext, k är krypteringsnyckeln, är homomorf med avseende på operationen på klartext, om det finns en effektiv algoritm , som, efter att ha mottagit vilket par kryptogram av formen som indata , producerar ett kryptogram så att vid dekryptering kommer klartexten att erhållas [5] . En homomorfism med avseende på operationen definieras på liknande sätt .
Medan delvis homomorfa kryptosystem är homomorfa under endast en klartextoperation (antingen addition eller multiplikation), stöder helt homomorfa system homomorfism under båda operationerna (både addition och multiplikation) [6] . Det vill säga följande villkor är uppfyllda för dem:
Dessutom är homomorfism med avseende på operationerna addition och multiplikation tillräcklig för att systemet ska vara fullständigt homomorft. [6]
Kryptosystemet skapat av Craig Gentry baserat på gitterkryptografi beskrev den första möjliga konstruktionen för ett helt homomorft system. Gentrys schema stödde operationerna med addition och multiplikation över chiffertext, vilket gör att du kan bygga ringar för att implementera godtyckliga beräkningar.
Konstruktionen börjar med ett nästan homomorft krypteringsschema, som endast är lämpligt för att beräkna polynom i liten grad över krypterad data. (Detta begränsas av det faktum att chiffertexten innehåller en del brus, som växer med additions- och multiplikationsoperationer på chiffertexten, tills bruset gör resultatet oförståeligt.) Gantry visade hur man modifierar schemat och gör det flexibelt . Det vill säga, med hjälp av omkryptering kunde han ta bort det ackumulerade bruset och utföra minst en operation till på chiffertexten.
Det vill säga att schemat låter den utvärdera sin dekrypteringsalgoritm för åtminstone en operation till. När allt kommer omkring visade han att vilket flexschema som helst kan omvandlas till ett helt homomorft schema genom rekursiv självinbäddning.
För ett "bullrigt" Gentry-schema, "uppdaterar" förfarandet för att modifiera ett "flexibelt" schema effektivt chiffertexten genom att tillämpa en homomorfisk dekrypteringsprocedur på den, vilket får en ny text som krypterar samma data som tidigare, men med mindre brus. Genom att "uppdatera" chiffertexten med jämna mellanrum, när en hög brusnivå uppnås, är det möjligt att utföra ett godtyckligt antal operationer på den utan störningar. Gentry motiverade säkerheten för sitt system med två problem: komplexitetsproblemet med värsta fallet kryptografi på ideala gitter och delmängdssummansproblemet.
Gentrys doktorandarbete [7] har en mer detaljerad beskrivning.
Trots deras prestanda förblir chiffertexter i Gentry-schemat kompakta, eftersom deras längder inte beror på komplexiteten hos funktionen som beräknas för den krypterade datan. Men systemet är opraktiskt på grund av den dramatiska ökningen av chiffertextens storlek och beräkningskostnader beroende på skyddsnivån. Damien Schechli och Ron Steinfeld introducerade ett antal optimeringar och förbättringar, [8] och därefter Nigel Smart med Frederic Verkauteren , [9] [10] och Craig Gentry med Shai Halevi , [11] [ 12] presenterade de första fungerande implementeringarna av ett helt homomorfiskt Gentry-chifferschema.
2010 presenterade Martin van Dijk , Craig Gentry , Shai Halevi och Weedon Vaikuntanahan ett andra helt homomorft system [13] . Den använde många av principerna för Gentrys kryptosystem, men krävde inte perfekta gitter . Istället visade de att det var möjligt att ersätta den homomorfa komponenten på ideala gitter med ett enkelt homomorft schema som skulle använda heltal. Detta schema är konceptuellt enklare än Gentry-schemat, men har liknande parametrar när det gäller homomorfism och effektivitet.
Den homomorfa komponenten i Dycks arbete liknar krypteringsschemat som presenterades av Leviel och Naccaha 2008 [14] , och liknar det som presenterades av Brahm Cohen 1998 [15] . Men Cohens metod är inte homomorf med avseende på additionsfunktionen. Leviela-Naccahi-schemat stöder endast additionsoperationen och kan modifieras för att stödja ett litet antal multiplikationsoperationer. Många kretsförbättringar och -optimeringar har presenterats i ett antal verk av Jen-Sebastian Corona , Tankrid Lepointe , Avradip Mandala , David Nakkhi och Mehdi Tibuhi [16] [17] [18] [19] .
Flera nya tekniker har utvecklats sedan 2011-2012 av Zvik Brakerski , Craig Gentry , Widon Vaikuntanahan och andra. Denna utveckling har lett till ett antal mer effektiva fullt homomorfa kryptosystem. Bland dem:
Säkerheten för de flesta system är baserad på svårigheten att lösa felinlärningsproblemet . Endast i LVT-schemat implementeras skydd på en variant av NTRU- beräkningsuppgiften . Alla dessa system, i motsats till tidigare scheman, har en långsammare ökning av brus under homomorfa beräkningar. Som ett resultat av ytterligare optimering gjord av Craig Gentry , Shai Haveli och Nigel Smart , erhölls ett kryptosystem med nästan optimal asymptotisk komplexitet : [25] [26] [27] Dessa optimeringar är baserade på Smart-Vercauteren-tekniken, som låter dig komprimera en uppsättning textvariabler till en chiffertext och arbeta med dessa variabler i en ström . [10] Många framsteg från den andra generationen av helt homomorfa system har också använts i kryptosystem på heltal. [18] [19]
Zvika Brakerski och Vidon Vaikuntanahan märkte att för ett antal system visar GSW-kryptosystemet en liten ökning av brusnivån, och därför större effektivitet och större säkerhet. [28] Jakob Alperin-Sheriff och Chris Peikert beskrev senare en effektiv chiffer-till-flexibel teknik som använder denna typ av schema. [29] Men denna typ av transformation är inte kompatibel med chiffertextkomprimeringsmetoder, och därför kan Gentry-Sahai-Waters-optimeringar inte tillämpas på den [25] .
Alla andra generationens kryptosystem hittills följer grunderna i Gentry-schemadesignen, nämligen att de använder ett nästan homomorft kryptosystem, med en hög nivå av brustillväxt, och omvandlar det sedan till ett helt homomorft kryptosystem genom att modifiera det till ett flexibelt schema.
Den första implementeringen av en helt homomorf kryptering var Gentry-Halevi-schemat implementerat på basis av ovanstående Gentry-schema. [12] Det tog henne 30 minuter att slutföra en enkel bitoperation. Efter tillkomsten av den andra generationen kryptosystem har denna implementering blivit föråldrad.
Det finns många implementeringar av nästan homomorfa system av andra generationen i litteraturen. Implementerad av Gentry, Haveli och Smart (GHS) [27] variant av BGV-kryptosystemet, [20] visade resultatet på 36 timmar vid beräkning av ett komplext schema (implementering av AES- kryptering). Genom att använda chiffertextkomprimeringstekniker kunde denna implementering räkna om samma schema på 54 olika ingångar under samma 36 timmar, och därmed få ett resultat på 40 minuter per ingång. Beräkningen av AES-kretsen valdes som en riktlinje för flera efterföljande arbeten, [18] [30] [31] där det var möjligt att avsevärt minska beräkningstiden till 4 timmar, samtidigt som man spenderade 7 sekunder per ingång.
Två implementeringar av den andra generationens kryptosystem är tillgängliga för allmänheten:
Båda biblioteken är implementeringar av helt homomorf kryptering. HElib visar ett resultat på 5-10 minuter för att konvertera komprimerad chiffertext från cirka 1000 tecken till flexibel. [34] FHEW konverterar okomprimerad chiffertext till flexibel chiffertext på cirka 1/2 sekund per bit. [35] I slutet av 2014 visade en uppdaterad implementering av HElib ett resultat på 4 minuter för att beräkna AES-schemat för 120 ingångsströmmar, och därmed uppnå en specifik hastighet på 2 sekunder per ström. [32]
Det helt homomorfa krypteringsschemat som föreslagits av Gentry kan övervägas med exemplet med beräkningar i . [36]
Datakrypteringsprocessen kan representeras enligt följande:
1. Ett godtyckligt udda tal väljs , vilket är en hemlig parameter. Låt .
2. Ett nummer kompileras så att , där är ett godtyckligt tal. Detta betyder att .
3. Under krypteringsprocessen tilldelas alla ett nummer , där väljs godtyckligt. Alltså ,. Det är lätt att se att , och därför kommer angriparen endast att kunna bestämma pariteten för krypteringsutdata.
Låt det krypterade numret och hemligheten vara kända . Då bör datadekrypteringsprocessen innehålla följande steg:
1. Dekryptering med den hemliga parametern : , där kallas brus och .
2.Hämta den ursprungliga krypterade biten :
Låt det vara två bitar och de tilldelas ett par nummer och . Låt den hemliga parametern tas och data krypteras: och .
Summan av dessa siffror beräknas:
För summan av dessa siffror kommer det dekrypterade meddelandet att vara summan av de ursprungliga bitarna .
Men utan att veta är det inte möjligt att dekryptera data: .
Multiplikationsoperationen kontrolleras på samma sätt:
Det är nödvändigt att tillämpa dekrypteringsproceduren på de erhållna resultaten, vilket resulterar i följande:
.
Användningen av detta helt homomorfa krypteringsschema för praktiska ändamål är för närvarande inte möjligt, eftersom det ackumulerade felet som ett resultat av beräkningarna snabbt når tillräckligt stora värden [36] . Det är till och med möjligt att data inte alls kan dekrypteras korrekt. Detta händer om felvärdet överstiger värdet på . I ett försök att undvika ett sådant problem utvecklade Gantry en självkorrigeringsmekanism för chiffertext (bootstrapping), som, på grund av sin opraktiskhet på grund av den alltför snabba tillväxten av chiffertextvolymen, inte har fått någon bred tillämpning. Det är möjligt att lösa detta problem, men för att uppnå den inställda uppgiften är det nödvändigt att utveckla mer komplexa beräkningsalgoritmer, eller att begränsa antalet operationer på data. [36]
En av de viktigaste tillämpningarna för helt homomorf kryptering är att utföra olika matematiska operationer på data som lagras på en avlägsen molnlagring . Användningen av ett sådant krypteringsschema kommer att göra det möjligt att skapa en säker molntjänst som kan utföra olika operationer på användardata utan att veta vilken typ av data det är.
Låt, till exempel, användaren har krypterat en del av sin data och lagrar den på en avlägsen molnlagring. Om användaren avser att på något sätt ändra dessa data kan han antingen anförtro servern sin hemliga nyckel och följaktligen tillgång till all sin hemliga information, eller ladda ner den krypterade informationen till sin dator, dekryptera den, göra nödvändiga beräkningar och skicka den tillbaka till servern. Men varken det ena eller det andra sättet är optimalt. I det första fallet är det omöjligt att utesluta det troliga läckaget av data och deras åtkomst till tredje part, i det andra fallet kan tiden som läggs på att utföra alla nödvändiga operationer vara för lång. Dessutom kanske klienten helt enkelt inte har de nödvändiga beräkningsresurserna för att utföra de beräkningar han behöver. [6]
Enligt det internationella forskningsföretaget IDC , som studerar den globala informationsteknik- och telekommunikationsmarknaden , är många företag också misstroende mot molnteknik, och associerar med dem, först och främst, stora problem när det gäller säkerheten för lagrad data. Och det oberoende analysföretaget Portio Research publicerade uppgifter enligt vilka 68 % av cheferna för olika europeiska IT-företag inte litar på sådana tjänster. Så till exempel, chefen för G Data Security Labs , Ralph Bentzmuller, talade om molntjänster enligt följande: "Om du inte vill att din data ska bli offentlig, lagra den inte i molnlagring." Därför är frågan om att skapa en säker molnlagring med ett fullständigt homomorft datakrypteringsschema för närvarande ganska akut.. [37] .
Fullständig homomorf kryptering används i sökmotorer som kräver en "privat sökning", det vill säga en sökning där servern inte vet något om innehållet i sökfrågan och returnerar resultatet till användaren i krypterad form. Utöver de områden som redan omfattas, kan helt homomorfa krypteringssystem tillämpas på elektroniska röstningssystem , till exempel när blinda signaturer används . [6]