Ett trepassprotokoll är ett kryptografiskt protokoll som gör att du säkert kan överföra ett meddelande mellan två parter utan att behöva utbyta eller distribuera vare sig offentliga eller privata nycklar . Detta protokoll förutsätter användningen av ett kommutativt chiffer [1] .
Trevägsprotokollet kallas så eftersom tre krypterade meddelanden utbyts mellan avsändaren och mottagaren. Det första trestegsprotokollet utvecklades av Adi Shamir på 1980-talet men har inte publicerats [2] [3] . Grundkonceptet för protokollet är att varje sida av överföringen har sin egen privata nyckel för kryptering och privat nyckel för dekryptering. Varje sida använder sina nycklar oberoende, först för att kryptera meddelandet och sedan för att dekryptera det.
Protokollet använder en krypteringsfunktion och en dekrypteringsfunktion . Ibland kan funktionen för kryptering och dekryptering vara densamma. Krypteringsfunktionen använder krypteringsnyckeln för att ändra det vanliga meddelandet till ett krypterat, eller chiffertext , . För varje krypteringsnyckel finns det en motsvarande dekrypteringsnyckel , som gör att originaltexten kan återställas med hjälp av dekrypteringsfunktionen, .
För att krypterings- och dekrypteringsfunktionerna ska vara lämpliga för ett trevägsprotokoll, för alla meddelanden , måste valfri krypteringsnyckel med motsvarande dekrypteringsnyckel utföras . Med andra ord måste den första krypteringen med nyckeln dekrypteras , även om meddelandet är krypterat med den andra nyckeln . Detta är egenskapen för kommutativ kryptering. Kommutativ kryptering är en kryptering som inte beror på ordningen, det vill säga den är giltig för alla nycklar och för alla meddelanden . För kommutativ kryptering, .
Anta att Alice vill skicka ett meddelande till Bob. Sedan fungerar trestegsprotokollet enligt följande [1] :
Det är värt att notera att alla operationer som använder Alices privata nycklar utförs av Alice, och alla operationer som använder Bobs privata nycklar utförs av Bob, det vill säga att den ena sidan av utbytet inte behöver känna till den andras nycklar.
Det första trestegsprotokollet var Shamirs trestegsprotokoll [2] , utvecklat på 1980-talet. Detta protokoll kallas även för Shamir No - Key Protocol , eftersom detta protokoll inte utbyter några nycklar, utan utbytesparterna måste ha 2 privata nycklar för kryptering och dekryptering. Shamirs algoritm använder exponentieringsmodulo ett stort primtal som en funktion av både kryptering och dekryptering, det vill säga, och där är ett stort primtal [4] . För all kryptering är exponenten i segmentet och är sant för det . Motsvarande indikator för dekryptering väljs så att . Det följer av Fermats lilla teorem att .
Shamir-protokollet är kommutativt eftersom .
Massey-Omura-kryptosystemet föreslogs av James Massey och Jim K. Omura 1982 som en förbättring av Shamir-protokollet [5] [6] . Massey-Omura-metoden använder exponentiering i Galois-fältet som en funktion av både kryptering och dekryptering, det vill säga och , där beräkningarna är i Galois-fältet. För all kryptering är exponenten i segmentet och är sant för det . Motsvarande indikator för dekryptering väljs så att . Eftersom den multiplikativa gruppen av Galois-fältet har ordning , följer det av Lagranges sats att för alla i .
Varje element i Galois-fältet representeras som en binär normal basvektor , där varje basvektor är kvadraten på den föregående. Det vill säga, basvektorerna där är elementet i fältet med den maximala ordningen . Med hjälp av denna representation kan exponentiering till en potens av 2 göras med hjälp av ett cykliskt skift . Detta innebär att höjning till en godtycklig makt inte kan göras med mer än skift och multiplikationer. Dessutom kan multipla multiplikationer utföras parallellt. Detta möjliggör snabbare hårdvaruimplementationer genom att använda flera multiplikatorer [7] .
En nödvändig förutsättning för säkerheten för trevägsprotokollet är att angriparen inte kan fastställa något om det ursprungliga meddelandet från de tre vidarebefordrade meddelandena [8] . Detta villkor innebär en begränsning av valet av krypterings- och dekrypteringsfunktioner. Till exempel kan den kommutativa funktionen xor inte användas i ett trevägsprotokoll eftersom . Det vill säga, genom att känna till de tre vidarebefordrade meddelandena kan du återställa det ursprungliga meddelandet [9] .
För krypteringsfunktionerna som används i Shamir-algoritmen och Massey-Omura-algoritmen beror säkerheten på komplexiteten i att beräkna diskreta logaritmer i ett ändligt fält. Om en angripare kan beräkna diskreta logaritmer för Shamir-metoden eller för Massey-Omura-metoden, kan protokollet vara brutet. Nyckeln kan beräknas från meddelanden och . När det är känt är det lätt att beräkna graden att dechiffrera . Angriparen kan sedan beräkna genom att höja det avlyssnade meddelandet till kraften . 1998 visades det att, under vissa antaganden, att bryta Massey-Omura-kryptosystemet motsvarar att bryta Diffie-Hellman-kryptosystemet [10] .
Trestegsprotokollet tillhandahåller inte autentisering av utbytesparterna [11] . Därför, utan implementering av tredje parts autentisering, är protokollet sårbart för en man-in- the-middle-attack . Detta innebär att om en angripare har förmågan att skapa falska meddelanden eller avlyssna och ersätta riktiga överförda meddelanden, så äventyras utbytet .
Public key kryptosystem | |||||||||
---|---|---|---|---|---|---|---|---|---|
Algoritmer |
| ||||||||
Teori |
| ||||||||
Standarder |
| ||||||||
Ämnen |
|