En enkelriktad funktion med hemlig ingång ( eng. falldörrsfunktion , TDF ) är en enkelriktad funktion från uppsättning till uppsättning , som har en egenskap (hemlig ingång, kryphål), tack vare vilken det blir möjligt att hitta för någon sådan det vill säga invertera funktionen.
Envägs hemliga inträdesfunktioner används ofta i asymmetriska krypteringsmetoder (public key-kryptering) såsom: RSA , Rabin-funktion , ElGamal- scheman , McEliece kryptosystem , NTRUEncrypt kryptografiskt system , Polly Cracker, och även mindre populärt på grund av dess kryptografiska instabilitet, ryggsäckskryptosystem Merkle-Hellman .
För närvarande är det inte säkert fastställt att enkelriktade funktioner med hemlig ingång verkligen är enkelriktade, det vill säga det finns inga bevis för att en kryptoanalytiker inte kan vända på funktionen utan att känna till den hemliga ingången.
Funktion , var
- uppsättning offentliga nycklar,
är ett displayelement som består av n bitar,
kallas enkelriktad med hemlig ingång, om
Idén om en bakdörrsfunktion introducerades i mitten av 1970-talet efter publiceringen av en artikel av Whitfield Diffie , Martin Hellman och Ralph Merkle om asymmetriska krypteringsmetoder (public key-kryptering). Det var Diffie och Hellman som myntade termen [1] . Men det första systemet där sådana idéer användes anses vara ett system som uppfanns 1973 av Clifford Cox , som arbetade på regeringens kommunikationscenter ( GCHQ ), men detta arbete bevarades endast i centrets interna dokument , så dess existens var inte känd förrän 1977 [2] .
Artikeln beskrev en ny metod för att minimera behovet av att överföra nycklar över säkra kanaler, och den tog också isär ett kryptografiskt system som kan användas för att skapa en digital signatur [3] .
Författarna har visat att en envägsfunktion för hemlig inmatning kan användas i kryptosystem med publika nyckel och digitala signaturenheter [4] . Ett kryptosystem med publik nyckel är ett system där den publika nyckeln sänds över en osäker kanal. Innebörden av en digital signatur är att när han skickar ett signerat meddelande från Alice till Bob kan Bob verifiera att meddelandet faktiskt skickades av Alice.
Tack vare envägs hemliga inmatningsfunktioner kan olika hemliga inmatningschiffer implementeras som är kryptografiskt säkra [1] .
Flera klasser av funktioner föreslogs, men det stod snart klart att lämpliga funktioner var svårare att hitta än man ursprungligen trodde. Till exempel var det först tänkt att använda funktioner baserade på delmängdssummaproblemet . Det stod snart klart att denna metod var oacceptabel. Ett exempel på en sådan implementering är Merkle-Hellman ryggsäckskryptosystem .
År 2005 var de mest lämpliga kandidaterna för envägsbakdörrsfunktioner de från RSA- och Rabinklasserna [5] . Dessa funktioner använder exponentieringsmodulo ett sammansatt tal, och båda är baserade på heltalsfaktoriseringsproblemet .
2008 introducerades envägsfunktioner för bakdörr, vilket gjorde att information om det ursprungliga meddelandet gick förlorad.
Denna typ av funktion ( förlustfälld lucka funktion ), baserad på idén om att skada en betydande del av informationen [6] , introducerades av Chris Peikert och Brent Waters [7] i synnerhet, som ett medel att konstruera ett krypteringsschema för publik nyckel med en vald krypterad text.
Uppsättningen av dessa funktioner består av en familj med två funktioner:
Nyckelpunkten är att de valda funktionsfamiljerna är polynomiellt omöjliga att särskilja . Därför kan nycklar ersättas med nycklar med förlust utan att meddela någon. Men när alla nycklar är förlorade innehåller chiffertexten inte längre (väsentlig) information om det krypterade meddelandet. Samtidigt, om man helt enkelt ersätter kryphålsfunktionen med en förlustfunktion, finns det inget sätt att svara ens på en välformad dekrypteringsförfrågan, eftersom klartextinformationen kommer att gå förlorad. Därför används mer fullständiga abstraktioner
Enkelriktade funktioner med hemlig ingång "Allt utom en"En all-but-one (ABO)-funktion kan byggas från en uppsättning envägsfunktioner med hemlig inmatning och tillräcklig informationsförlust.
Uppsättningen ABO-funktioner är associerad med uppsättningen , vars element kallas förgrenar. ABO-funktionsgeneratorn tar en extra parameter , som kallas förlustgrenen, och matar ut en funktion och en bakdörr t. Funktionen har egenskapen att funktionen för vilken gren som helst har en dold ingång (och kan inverteras med ), men funktionen är en förlustlös funktion. Dessutom döljs förlustgrenen (beräkningsmässigt) av beskrivningen av . [8] .
Enkelriktade funktioner med hemlig ingång "Allt-utom-N"All-but-N (ABN)-funktioner har exakt förlustgivande grenar; alla andra filialer har en hemlig ingång. Detta kan användas för att lokalisera chiffertexter med hjälp av förlustgrenar - alla andra chiffertexter matchar bakdörrsfunktioner och kan dekrypteras. Observera att ABN:n kodar en uppsättning förlustfördelar med sin nyckel. Det vill säga, en beräkningsmässigt obegränsad motståndare kan alltid använda brute force för att hitta grenar som leder till en förlustfunktion.
Därför har ABN-funktioner en allvarlig nackdel: nycklarnas rumsliga komplexitet är nämligen linjär i [9]
Envägs alla-utom många hemliga inmatningsfunktionerFunktionen allt-utom-många (ABM) har en superpolynomuppsättning av förlustgrenar som kräver en speciell bakdörr.
Den viktigaste skillnaden från ABN-funktionen är att med ABN specificeras uppsättningen av förlustförlustiga grenar initialt, vid byggtid, medan ABM-funktioner har ett kryphål som gör att du kan prova dekryptering i farten från en stor pool av förlustförluster. Utan denna hemliga passage, och även med en godtycklig känd uppsättning av förlustiga grenar, finns det inget sätt att hitta en annan gren som inte tillhör den kända uppsättningen. Detta gör att du i synnerhet kan skapa ABM-instanser med kompakta nycklar och bilder, vars storlek inte beror på antalet grenar med förlust.
Dessa konstruktioner kan ses som "förklädda" varianter av Boneh-Boyen (BB) signalkretsar. I synnerhet motsvarar förlustgivande grenar riktiga signaturer. Men för att förlustmärkena och hemliga passagemärken ska verka oskiljaktiga är det nödvändigt att göra blinda signaturer , antingen genom att kryptera dem eller genom att multiplicera dem med ett slumpmässigt element i undergruppen. [9]
För att notera de grundläggande principerna, anta att ett allmänt CPA-aktiverat kryptosystem har några speciella (men informellt beskrivna) egenskaper.
Den första egenskapen antar att det underliggande kryptosystemet är additiv-homomorft. Funktionen (envägs kryphål eller förlustfunktion) bestäms genom att kryptera en kvadratisk matris elementmässigt .
För att uppskatta , tillhandahåller vi en indata - en n-dimensionell binär vektor och beräknar (i etapper) krypteringen av en linjär produkt genom att tillämpa homomorfa operationer på krypterade poster .
För en hemlig ingångsfunktion är den krypterade matrisen identitetsmatrisen , och kryphålet är dekrypteringsnyckeln för kryptosystemet. Funktionen är reversibel med en hemlig ingång, eftersom den är ingångskrypteringen som kan dekrypteras till värdet av varje bit .
För en förlustlös funktion är den krypterade matrisen en matris som består av nollor: . Sedan, för varje inmatat meddelande , är värdet en elementvis kryptering av noll-vektorn, så det "förlorar" information om . Detta är dock inte tillräckligt för att säkerställa en fullständig förlust, eftersom de utgående krypterade meddelandena fortfarande innehåller en del intern slumpmässig information som kan fungera som en källa för data om ingångsmeddelandet. Därför är ytterligare kontroll över deras beteende nödvändig. För detta finns det speciella egenskaper hos kryptosystemet:
Med dessa två egenskaper krypterar vi matrisen på ett speciellt sätt. Varje kolumn i matrisen är associerad med en annan nyckel , och kryphålet är en uppsättning motsvarande dekrypteringsnycklar. Genom varje rad krypterar vi posten under nyckeln och samma slumpmässighet (med en ny slumpmässighet för varje rad). Enligt konvention är det säkert att återanvända slumpmässighet med en nyckel , så matrisen är beräkningsmässigt dold. Dessutom, eftersom homomorfism isolerar slumpmässighet, är alla chiffertexter i den slutliga vektorn också krypterade med samma slumpmässighet (vilket bara beror på .
När , kan vi fortfarande invertera funktionen (genom ett kryphål) och dekryptera varje krypterad post . Å andra sidan, när matrisen är noll , är utdata från funktionen alltid en vektor av krypterade nollmeddelanden, där varje post är krypterad med samma slumpmässighet (men under olika fasta nycklar). Därför begränsas antalet möjliga utgångar av antalet möjliga slumpmässiga strängar som kan uppstå. Genom att välja en dimension så att antalet ingångar är betydligt större än antalet slumpmässiga rader kan vi säkerställa att funktionen innehåller mycket information.
Konstruktionen av "Allt-utom-en"-funktioner med hemlig ingång är något mer generell. Varje funktionsgren motsvarar helt enkelt en annan matris , vars kryptering kan erhållas från funktionens offentliga beskrivning. Funktionen genereras så att den är en inverterbar matris (och beräknas med hjälp av en hemlig post) för alla grenar , medan för grenar med förlust
Ta ett tal , var och tillhör uppsättningen av primtal . Man tror att för ett givet nummer är beräkningen en matematiskt svår uppgift. RSA-krypteringsfunktionen är , där är coprime med . Siffror och är en hemlig ingång, att veta vilken det är lätt att beräkna den inversa funktionen . Den överlägset bästa attacken mot RSA är nummerfaktorisering [ 10] [11] .
Betrakta funktionen , där , och p och q hör till mängden primtal. Rabin visade att det är lätt att beräkna en funktion om och bara om faktorisering av ett sammansatt tal från två primtal är en enkel uppgift [12] .
Detta system föreslogs av Taher El- Gamal 1984 . Det är baserat på det diskreta logaritmproblemet [13] .
Algoritm
Algoritm [14]
Det är känt att funktionerna associerade med det diskreta logaritmproblemet inte är envägsfunktioner med hemlig inmatning, eftersom det inte finns någon information om "kryphålet" som skulle tillåta att den diskreta logaritmen kan beräknas effektivt. Emellertid kan det diskreta logaritmproblemet användas som grund för ett "kryphål", såsom beräkningsproblemet Diffie-Hellman (CDH) och dess variationer. Den digitala signaturalgoritmen är baserad på detta beräkningsproblem.
Envägs hemliga inträdesfunktioner har en mycket specifik användning inom kryptografi och bör inte förväxlas med en bakdörr (ofta ersätts ett begrepp av ett annat, men det är fel). En bakdörr är en mekanism som medvetet läggs till i en krypteringsalgoritm (som en nyckelparsgenereringsalgoritm , en digital signaturalgoritm, etc.) eller till operativsystem, vilket gör att en eller flera tredje parter kan kringgå eller äventyra systemets säkerhet.