MQV ( Meneses-Q-Wanstone ) är ett autentiseringsprotokoll baserat på Diffie-Hellman-algoritmen . MQV ger skydd mot aktiva attacker genom att kombinera statiska och temporära nycklar. Protokollet kan modifieras för att fungera i en godtycklig ändlig kommutativ grupp , och i synnerhet i grupper av elliptiska kurvor , där är känt som ECMQV .
MQV föreslogs ursprungligen av Alfred Menezes , Minghua Q och Scott Vanstone 1995. Det modifierades 1998. Det finns en-, två- och trevägsversioner av algoritmen.
MQV ingår i Public Key Cryptosystem Standardization Project - IEEE P1363 .
Patent för vissa varianter av MQV ägs av Certicom [1] .
MQV har några svagheter som fixades av HMQV- algoritmen 2005 [2] ; se [3] , [4] , [5] .
Både MQV- och HMQV-algoritmer har sårbarheter som har åtgärdats av FHMQV-protokollet (se [6] )
Alice har ett statiskt nyckelpar ( ) där hennes publika nyckel och hennes privata nyckel finns. Bob har ett statiskt nyckelpar ( ) där hans publika nyckel och hans privata nyckel. Låt oss definiera . Låt vara en punkt på en elliptisk kurva. Sedan , var är ordningen på den använda punktgeneratorn . Det finns alltså första bitar av koordinaten för . Dessutom inför vi en kofaktor definierad som , var är gruppens ordning , och det bör beaktas att kravet av tekniska skäl måste uppfyllas: [1] .
Steg | Drift |
---|---|
ett | Alice skapar ett nyckelpar ( ) genom att slumpmässigt generera och beräkna = , där är en punkt på den elliptiska kurvan. Hon skickar sedan en tillfällig offentlig nyckel till Bob. |
2 | Bob skapar ett nyckelpar ( ) genom att slumpmässigt generera och beräkna = . Efter parningen skickar han sin tillfälliga offentliga nyckel till Alice. |
3 | Alice kontrollerar att den tillfälliga publika nyckeln tillhör gruppen och även att den inte är ett null-element. Därefter beräknas gruppelementet som , var och . Om , avvisar Alice data som tagits emot från Bob. Annars accepterar den det beräknade resultatet som den delade hemligheten. |
fyra | Bob kontrollerar att den tillfälliga publika nyckeln tillhör gruppen och att den inte är ett null-element. Beräknar gruppelementet som , var och . Om , Bob avvisar data som tas emot från Alice. Annars accepterar den det beräknade resultatet som den delade hemligheten. |
Basprotokollet är en attraktiv lösning av flera skäl:
Resten av beräkningarna är multiplikation med eller . Det är också värt att överväga kostnaden för att multiplicera med kofaktorn. Denna komplexitet (multiplicerad med kofaktorn) beror dock på gruppens storlek. För kryptosystem baserade på elliptiska kurvor är denna komplexitet försumbar, eftersom kofaktorn vanligtvis är liten [2] .
Bobs beräkningar: .
Alices beräkningar: .
Så nycklarna är verkligen ekvivalenta med [3] -tangenten .
Det enklaste alternativet som en angripare (kryptanalytiker) kan använda är att skaffa ett certifikat (identifierare) som associerar hans namn med den publika nyckeln som innehas av Alice. Om han ersätter Alices identifierare med sin egen identifierare i det här protokollet, finns det en betydande chans att Bob kommer att acceptera den givna identifieraren utan att märka utbytet, och faktiskt tror att han pratar med Alice. Här är en attack baserad på källsubstitution. Denna attack indikerar behovet av nyckelägandekrav: begäranden måste känna till den hemliga nyckeln för att få en identifierare som motsvarar den publika nyckeln. I princip skulle identitetscentralen kunna ordna en kontroll av dubbletter av publika nycklar, men detta steg är opraktiskt, eftersom det innebär deltagande av ett stort antal identitetscentraler. Således måste angriparen skaffa en identifierare för en ny offentlig nyckel , så att det finns en matchning för den hemliga nyckeln , och så att Bob skulle beräkna samma delade hemlighet när han interagerar med angriparen som Bob och Alice skulle ha beräknat när de interagerar. Följande implementering uppfyller alla ovanstående mål. Låt oss utse angriparen som Eve [3] .
Steg | Drift |
---|---|
ett | Eve fångar upp Alices tillfälliga offentliga nyckel på väg till Bob. |
2 | Eve väljer ett heltal som hör till gapet och beräknar den tillfälliga publika nyckeln som (observera att Eve inte känner till motsvarande hemliga nyckel ). If , Eve upprepar detta steg med ett annat heltal . |
3 | Eva beräknar det statiska paret som ,
. |
fyra | Eve får en identifierare för sin statiska publika nyckel . Således känner hon till motsvarande hemliga nyckel . Därför uppfyller den kraven för nyckelägande. |
5 | Eve initierar protokollet med Bob genom att skicka hennes tillfälliga offentliga nyckel . |
6 | Eve tar emot Bobs tillfälliga offentliga nyckel och ger den till Alice. |
Som ett resultat av denna attack kommer Alice att kontrollera Bobs ID och beräkna den delade hemligheten , medan Bob kommer att ta emot och verifiera Eves ID och beräkna den delade hemligheten , som , där definierad tidigare och .
Bobs nyckel kommer att vara densamma som den skulle vara om Bob interagerade med Alice.
.
Eve måste skaffa en identifierare för sin statiska publika nyckel när Alice startar protokollet. Således kan Alice märka en fördröjning mellan det att hennes tillfälliga offentliga nyckel skickas och det att hon får Bobs ID.
Först och främst är det första steget att inkludera i protokollet en operation som kommer att reserveras för att kontrollera existensen av nyckeln. Det här tipset gäller alla autentiseringsprotokoll. För att klara Bobs verifiering måste Eve alltså klara en extra kontroll. En annan motåtgärd som kan införas i protokollet är att parterna utbyter enkelriktade hash av sina temporära publika nycklar innan de byter ut de temporära nycklarna. Utbytesmekanismen i det här fallet är verkligen viktig. Varje part måste vara säker på att den andra medlemmen faktiskt tagit emot "paketet" innan de skickar en tillfällig offentlig nyckel till honom. Bekräftelse av detta faktum kan erhållas genom lämplig sekvens. Till exempel skickar Alice sin bekräftelse, Bob tar emot den och skickar sin bekräftelse. Alice får Bobs bekräftelse och skickar hennes nyckel. När Bob får Alices nyckel skickar han sin egen nyckel. Utan en sådan sekvens, till exempel, om Bob och Alice båda skickar samtidigt, kommer detta protokoll att vara sårbart för vissa typer av attacker [4] .
Låt oss ta en titt på andra motåtgärder.
Alla ovanstående förbättringar introducerar minimala modifieringar av protokollstrukturen. Det är värt att notera att det inte finns något formellt bevis på protokollets fullständiga säkerhet, som ändras med hjälp av ovanstående rekommendationer.
Public key kryptosystem | |||||||||
---|---|---|---|---|---|---|---|---|---|
Algoritmer |
| ||||||||
Teori |
| ||||||||
Standarder |
| ||||||||
Ämnen |
|