Az MQV ( Meneses-Q-Wanstone ) egy Diffie-Hellman algoritmuson alapuló hitelesítési protokoll . Az MQV védelmet nyújt az aktív támadások ellen a statikus és ideiglenes kulcsok kombinálásával. A protokoll módosítható úgy, hogy egy tetszőleges véges kommutatív csoportban működjön , és különösen elliptikus görbék csoportjaiban, ahol az ECMQV néven ismert .
Az MQV-t eredetileg Alfred Menezes , Minghua Q és Scott Vanstone javasolta 1995-ben. 1998-ban módosították. Az algoritmusnak létezik egy-, két- és háromutas változata.
Az MQV az IEEE P1363 nyilvános kulcsú kriptorendszer szabványosítási projekt része .
Az MQV egyes fajtáira vonatkozó szabadalmak a Certicom tulajdonában vannak [ 1] .
Az MQV-nek van néhány gyenge pontja, amelyeket a HMQV algoritmus javított ki 2005-ben [2] ; lásd [3] , [4] , [5] .
Mind az MQV, mind a HMQV algoritmusnak vannak olyan sebezhetőségei, amelyeket az FHMQV protokoll javított (lásd [6] )
Alice-nek van egy statikus kulcspárja ( ), amelyben a nyilvános kulcsa és a privát kulcsa található. Bobnak van egy statikus kulcspárja ( ), amelyben a nyilvános kulcsa és a privát kulcsa található. Határozzuk meg . Legyen egy pont egy elliptikus görbén. Ezután hol van a használt pontgenerátor sorrendje . Így vannak a koordinátájának első bitjei . Ezen kívül bevezetünk egy kofaktort, amelyet a következőképpen definiálunk: , ahol a csoport sorrendje , és figyelembe kell venni, hogy technikai okokból teljesíteni kell a következő követelményt: [1] .
Lépés | Művelet |
---|---|
egy | Alice egy kulcspárt ( ) hoz létre úgy, hogy véletlenszerűen generálja és kiszámítja az = értéket , ahol az elliptikus görbe egy pontja. Ezután ideiglenes nyilvános kulcsot küld Bobnak. |
2 | Bob egy kulcspárt ( ) hoz létre a = véletlenszerű generálásával és kiszámításával . A párosítás után elküldi ideiglenes nyilvános kulcsát Alice-nek. |
3 | Alice ellenőrzi, hogy az ideiglenes nyilvános kulcs a csoporthoz tartozik-e, és azt is, hogy nem null elem. Ezután kiszámítja a csoport elemet a következőképpen: , hol és . Ha , Alice elutasítja a Bobtól kapott adatokat. Ellenkező esetben a kiszámított eredményt elfogadja megosztott titokként. |
négy | Bob ellenőrzi, hogy az ideiglenes nyilvános kulcs a csoporthoz tartozik-e, és azt is, hogy nem null elem. Kiszámítja a csoportelemet a következőképpen: , hol és . Ha , Bob elutasítja az Alice-től kapott adatokat. Ellenkező esetben a kiszámított eredményt elfogadja megosztott titokként. |
Az alapprotokoll több okból is vonzó megoldás:
A többi számítás a vagy -vel való szorzás . A kofaktorral való szorzás költségét is érdemes figyelembe venni. Ez a komplexitás azonban (a kofaktorral szorozva) a csoport méretétől függ. Az elliptikus görbén alapuló kriptorendszereknél ez a bonyolultság elhanyagolható, mivel a kofaktor általában kicsi [2] .
Bob számításai: .
Alice számításai: .
Tehát a billentyűk valóban egyenértékűek a [3] billentyűvel .
A támadó (kriptaelemző) legegyszerűbb módja egy tanúsítvány (azonosító) beszerzése, amely a nevét az Alice birtokában lévő nyilvános kulccsal társítja. Ha ebben a protokollban lecseréli Alice azonosítóját a saját azonosítójára, akkor jelentős esély van arra, hogy Bob elfogadja az adott azonosítót anélkül, hogy észrevenné a helyettesítést, valójában azt gondolva, hogy Alice-szel beszél. Itt van egy támadás, amely a forráshelyettesítésen alapul. Ez a támadás a kulcstulajdonosi követelmények szükségességét jelzi: a kérelmezőnek ismernie kell a titkos kulcsot, hogy a nyilvános kulcsnak megfelelő azonosítót kapjon. Elvileg az identitásközpont intézhetné a duplikált nyilvános kulcsok ellenőrzését, de ez a lépés nem praktikus, mivel nagyszámú identitásközpont részvételével jár. Így a támadónak meg kell szereznie egy azonosítót egy új nyilvános kulcshoz , hogy legyen egyezés a titkos kulcshoz , és hogy Bob ugyanazt a megosztott titkot számítsa ki, amikor interakcióba lép a támadóval, mint amit Bob és Alice számított volna interakció közben. A következő megvalósítás a fenti célok mindegyikét kielégíti. Jelöljük ki a támadót Évának [3] .
Lépés | Művelet |
---|---|
egy | Eve elkapja Alice ideiglenes nyilvános kulcsát Bob felé vezető úton. |
2 | Eve kiválaszt egy egész számot , amely a réshez tartozik, és kiszámítja az ideiglenes nyilvános kulcsot (megjegyezzük , hogy Eve nem ismeri a megfelelő titkos kulcsot ). Ha , Eve megismétli ezt a lépést egy másik egész számmal . |
3 | Eve kiszámítja a statikus párt a következőképpen :
. |
négy | Eve azonosítót kap a statikus nyilvános kulcsához . Így ismeri a megfelelő titkos kulcsot . Ezért megfelel a kulcstulajdonosokkal szemben támasztott követelményeknek. |
5 | Eve ideiglenes nyilvános kulcsának elküldésével kezdeményezi a protokollt Bobbal . |
6 | Eve megkapja Bob ideiglenes nyilvános kulcsát , és átadja Alice-nek. |
A támadás eredményeként Alice ellenőrzi Bob azonosítóját és kiszámítja a megosztott titkot , míg Bob megkapja és ellenőrzi Éva azonosítóját, és kiszámítja a megosztott titkot , ahogyan a korábban definiált és .
Bob kulcsa ugyanaz lesz, mint ha Bob kommunikálna Alice-szel.
.
Évának meg kell szereznie egy azonosítót statikus nyilvános kulcsához, amikor Alice elindítja a protokollt. Így Alice késést észlelhet az ideiglenes nyilvános kulcsának elküldése és Bob azonosítójának kézhezvétele között.
Mindenekelőtt az első lépés az, hogy a protokollba be kell foglalni egy műveletet, amely a kulcs meglétének ellenőrzésére lesz fenntartva. Ez a tipp minden hitelesítési protokollra vonatkozik. Így ahhoz, hogy átmenjen Bob igazolásán, Eve-nek egy további ellenőrzésen kell átmennie. Egy másik, a protokollba bevezethető ellenintézkedés az, hogy a felek kicserélik ideiglenes nyilvános kulcsaik egyirányú kivonatát az ideiglenes kulcsok cseréje előtt. A cseremechanizmus ebben az esetben nagyon fontos. Mindkét félnek meg kell bizonyosodnia arról, hogy a másik tag valóban megkapta a "csomagot", mielőtt ideiglenes nyilvános kulcsot küldene neki. Ennek a ténynek a megerősítése a megfelelő sorrendben érhető el. Például Alice elküldi a visszaigazolását, Bob megkapja és elküldi a nyugtát. Alice megkapja Bob visszaigazolását, és elküldi a kulcsát. Amikor Bob megkapja Alice kulcsát, elküldi a saját kulcsát. Ilyen szekvencia nélkül például, ha Bob és Alice egyszerre küldenek, ez a protokoll sebezhető lesz bizonyos típusú támadásokkal szemben [4] .
Vessünk egy pillantást a többi ellenintézkedésre.
A fenti fejlesztések mindegyike minimális módosításokat vezet be a protokollstruktúrában. Érdemes megjegyezni, hogy nincs hivatalos bizonyíték a protokoll teljes biztonságosságára, amelyet a fenti ajánlások alapján módosítottak.