En tre-pass protokol er en kryptografisk protokol, der giver dig mulighed for sikkert at overføre en besked mellem to parter uden behov for at udveksle eller distribuere hverken offentlige eller private nøgler . Denne protokol forudsætter brugen af en kommutativ chiffer [1] .
Trevejsprotokollen kaldes så, fordi tre krypterede beskeder udveksles mellem afsender og modtager. Den første tre-trins protokol blev udviklet af Adi Shamir i 1980'erne, men er ikke blevet offentliggjort [2] [3] . Det grundlæggende koncept for protokollen er, at hver side af transmissionen har sin egen private nøgle til kryptering og privat nøgle til dekryptering. Hver side bruger sine nøgler uafhængigt, først til at kryptere beskeden og derefter for at dekryptere den.
Protokollen bruger en krypteringsfunktion og en dekrypteringsfunktion . Nogle gange kan funktionen af kryptering og dekryptering være den samme. Krypteringsfunktionen bruger krypteringsnøglen til at ændre den almindelige besked til en krypteret eller chiffertekst . For hver krypteringsnøgle er der en tilsvarende dekrypteringsnøgle , som gør det muligt at genskabe den originale tekst ved hjælp af dekrypteringsfunktionen, .
For at krypterings- og dekrypteringsfunktionerne er egnede til en tre-vejs protokol, for enhver meddelelse , skal en hvilken som helst krypteringsnøgle med dens tilsvarende dekrypteringsnøgle udføres . Med andre ord skal den første kryptering med nøglen dekrypteres , selvom beskeden er krypteret med den anden nøgle . Dette er egenskaben ved kommutativ kryptering. Kommutativ kryptering er en kryptering, der ikke afhænger af rækkefølgen, det vil sige, den er gyldig for alle nøgler og for alle meddelelser . Til kommutativ kryptering, .
Antag at Alice vil sende en besked til Bob. Derefter fungerer tretrinsprotokollen som følger [1] :
Det er værd at bemærke, at alle operationer, der bruger Alices private nøgler , udføres af Alice, og alle operationer, der bruger Bobs private nøgler , udføres af Bob, det vil sige, at den ene side af udvekslingen ikke behøver at kende nøglerne til den anden.
Den første tre-trins protokol var Shamirs tre-trins protokol [2] , udviklet i 1980'erne. Denne protokol kaldes også Shamir No - Key Protocol , fordi denne protokol ikke udveksler nøgler, men udvekslingsparterne skal have 2 private nøgler til kryptering og dekryptering. Shamirs algoritme bruger eksponentieringsmodulo et stort primtal som funktion af både kryptering og dekryptering, det vil sige, og hvor er et stort primtal [4] . For enhver kryptering er eksponenten i segmentet og er sand for det . Den tilsvarende indikator for dekryptering er valgt således, at . Det følger af Fermats lille sætning , at .
Shamir-protokollen er kommutativ fordi .
Massey-Omura-kryptosystemet blev foreslået af James Massey og Jim K. Omura i 1982 som en forbedring af Shamir-protokollen [5] [6] . Massey-Omura-metoden bruger eksponentiering i Galois-feltet som en funktion af både kryptering og dekryptering, det vil sige, og hvor beregningerne er i Galois-feltet. For enhver kryptering er eksponenten i segmentet og er sand for det . Den tilsvarende indikator for dekryptering er valgt således, at . Da den multiplikative gruppe af Galois-feltet har orden , følger det af Lagranges sætning , at for alle i .
Hvert element i Galois-feltet er repræsenteret som en binær normal basisvektor , hvor hver basisvektor er kvadratet af den foregående. Det vil sige, at basisvektorerne hvor er elementet i feltet med den maksimale rækkefølge . Ved at bruge denne repræsentation kan eksponentiering til en potens af 2 udføres ved hjælp af et cyklisk skift . Det betyder, at forhøjelse til en vilkårlig magt ikke kan gøres med mere end skift og multiplikationer. Desuden kan flere multiplikationer udføres parallelt. Dette giver mulighed for hurtigere hardwareimplementeringer ved at bruge flere multiplikatorer [7] .
En nødvendig betingelse for sikkerheden af trevejsprotokollen er, at angriberen ikke kan fastslå noget om den oprindelige besked fra de tre videresendte beskeder [8] . Denne betingelse pålægger en begrænsning af valget af krypterings- og dekrypteringsfunktioner. For eksempel kan den kommutative funktion xor ikke bruges i en tre-vejs protokol, fordi . Det vil sige, at du ved at kende de tre videresendte beskeder kan gendanne den oprindelige besked [9] .
For de krypteringsfunktioner, der bruges i Shamir-algoritmen og Massey-Omura-algoritmen, afhænger sikkerheden af kompleksiteten i at beregne diskrete logaritmer i et begrænset felt. Hvis en angriber kan beregne diskrete logaritmer til Shamir-metoden eller Massey-Omura-metoden, kan protokollen være brudt. Nøglen kan beregnes ud fra beskeder og . Når det er kendt, er det let at beregne graden, der skal dechifreres . Angriberen kan derefter beregne ved at hæve den opsnappede besked til magten . I 1998 blev det vist, at brud på Massey-Omura-kryptosystemet under visse antagelser svarer til at bryde Diffie-Hellman-kryptosystemet [10] .
Tretrinsprotokollen giver ikke autentificering af udvekslingsparterne [11] . Uden implementering af tredjepartsgodkendelse er protokollen derfor sårbar over for et man-in -the-middle-angreb . Dette betyder, at hvis en angriber har evnen til at oprette falske beskeder eller opsnappe og erstatte rigtige sendte beskeder, så er udvekslingen kompromitteret .