Feig - Fiat - Shamir protokoll

A Feig-Fiat-Shamir protokoll egy nulla tudású  azonosítási protokoll , a korábbi Fiat-Shamir protokoll általánosítása , amelyet Uriel Feige , Amos Fiat [ ] és Adi Shamir fejlesztett ki 1986-ban .  Ezt az egyszerűen kivitelezhető és kereskedelmileg jelentős konstrukciót a kidolgozása után egy évvel szabadalmaztatták a szerzők.   

A protokoll lehetővé teszi, hogy az egyik fél (A bizonyító) bebizonyítsa egy másik félnek (B ellenőrző), hogy titkos információi vannak anélkül, hogy ezekből egyetlen bitet is felfedne.

A protokoll biztonsága azon a nehézségen alapszik, hogy a négyzetgyök modulo egy kellően nagy n összetett számból nyerhető ki, amelynek faktorizációja ismeretlen.

A protokoll fő verziója néhány fejlesztést tartalmaz a résztvevők közötti interakciók bonyolultságának csökkentése vagy az identitások sémába való beágyazása érdekében.

Ezenkívül a Feig-Fiat-Shamir azonosítási séma könnyen átalakítható aláírási sémává.

Történelem

1986-ban a Wyman Institute izraeli tudósai, Uriel Feige, Amos Fiat és Adi Shamir kifejlesztettek egy gyakorlati tudás nélküli azonosítási sémát, amely még alacsony fogyasztású processzorral rendelkező eszközökön is megvalósítható, mint például intelligens kártyák, személyi számítógépek, személyazonosító okmányok . 1] . Kereskedelmi okokból a szerzők 1986. július 9-én kérték az Egyesült Államok szabadalmát . Az Egyesült Államok Szabadalmi és Védjegyhivatalának hat hónapon belül kellett döntenie a titoktartási rendszer felszámolásáról szóló határozatról [2] [3] .

A szabadalmi hivatal néhány nappal egy bizonyos időszak lejárta előtt megtiltotta a jegyzőkönyvvel kapcsolatos információk nyilvánosságra hozatalát vagy közzétételét, ezt nemzetbiztonsági veszélyként értelmezve. Sőt, a szerzőknek értesíteniük kellett minden amerikai állampolgárt, aki ismeri a Feig-Fiat-Shamir rendszert, hogy nyilvánosságra hozataluk súlyos szankciókat vonhat maga után - két év börtönt vagy tízezer dolláros bírságot. Emellett be kellett jelenteni minden olyan külföldi államot, amelyhez a tanulmányról információt közöltek [2] [3] .

Ekkorra Feige, Fiat és Shamir már számos előadást tartott Izrael, Európa és az Egyesült Államok egyetemein, és jelentkezett az Association for Computing Machinery konferenciára , amelyet 1987 májusában New Yorkban tartottak . 2] [3] .

Bár a protokoll kidolgozói abban reménykedtek, hogy a Weizmann Intézet, ahol a vizsgálatot végezték, fellebbez a végzés ellen, ennek ellenére levelet küldtek a konferencia bizottságának, amelyben ismertették a helyzetet. Ezt követően számos szervezet, például a Bell Labs és a The New York Times gyorsan csatlakozott a probléma megoldásához. A legnagyobb hozzájárulást a Nemzetbiztonsági Ügynökség (NSA) tette, amely kezdetben nem tudott a kiadott végzésről. Miután erről értesítették az NSA-t, két napon belül a rendelést törölték [2] [3] .

Shamir május 26-án felszólalt az Association for Computing Machinery konferenciáján [4] , majd 5 nappal később a szerzők szabadalmat kaptak a kifejlesztett protokollra [5] .

Azonosítási séma

A körök során bizonyítja B -nek a titok ismeretét anélkül, hogy a titok egyetlen darabját is felfedné [1] .

Rendszerbeállítások kiválasztása

A T megbízható központ nagy számot tesz közzé , ahol és olyan prímszámok, amelyeket titokban tartanak. Az egész számok és a biztonsági paraméterek [6] is ki vannak választva .

Titkok generálása a résztvevők számára

Minden résztvevő véletlenszerű egész számokat és véletlenszerű biteket választ .

Aztán kiszámolja .

A résztvevő a nyilvános kulcsaként működő értékek segítségével azonosítja magát mások előtt, míg a titkos kulcsot csak a résztvevő ismeri [6] .

Protokoll akciók egy körön belül

  1. A véletlenszerű egész számot választ kiszámítja: és elküldi B félnek .
  2. B egy véletlen bites vektort küld A-nak, ahol vagy .
  3. A kiszámítja és elküldi B -nek : .
  4. B kiértékeli: és ellenőrzi, hogy és [7] [6] .

Biztonság

1. lemma: Ha A és B követi a protokollt, akkor B mindig elfogadja az A bizonyítást : Bizonyítás: definíció szerint

- Amos Fiat, Adi Shamir "Hogyan bizonyítsd magad: gyakorlati megoldások az azonosítási és aláírási problémákra"

Feltételezve, hogy a faktoring számításilag lehetetlen feladat, a sikeres protokolltámadás valószínűsége . A támadó megpróbálhat becsületes felhasználót kiadni úgy, hogy kitalálja a helyes értékeit , felkészül az első lépésre, és megadja a harmadik lépésben. Akkor B gondoskodik róla . De az értékek helyes megválasztásának valószínűsége egy körben van, és ezért a teljes protokollban [1] .

Így például a biztonsági szint eléréséhez elegendő a és a . Ez azt jelenti, hogy egy tisztességtelen felhasználó által az ellenőrző megtévesztésére tett millió kísérletből csak egy lehet sikeres.

A protokoll bizonyítja, hogy A -nak van privát kulcsa anélkül, hogy felfedné, hogy mikor és [1] .

Példa

  1. Hagyja , hogy T megbízható központ válasszon prímszámokat , és tegye közzé . Rendszerbiztonsági beállítások: , .
  2. Az A résztvevő számára véletlenszerű számok kerülnek kiválasztásra: , , és 3 bit: , , . az értékek kiszámítása: , , . Nyilvános kulcs A : , privát kulcs: .
  3. (a) A kiválaszt egy véletlenszámot , egy véletlen bitet , kiszámítja: és elküldi B -nek .
(b) B küld A-nak egy 3 bites vektort: ​​. (c) A kiszámítja és elküldi B -nek : . (d) B kiszámítja: és elfogadja A bizonyítását mivel és .

Azonosítási séma fejlesztései és módosításai

  1. Megtagadhatja a közös szám kiválasztását minden résztvevő számára , és megengedheti, hogy mindegyikük válassza ki a saját számát. Mindazonáltal egy T megbízható központ meglétére továbbra is szükség lesz ahhoz, hogy minden résztvevőt hozzá lehessen rendelni a moduljához [6] .
  2. Az A és B közötti interakció bonyolultságának csökkentése érdekében az A - ból B -be küldött első üzenetet lecserélheti egy hash értékre . Ennek megfelelően a protokoll utolsó iterációjában B - nek kell működnie a [6] helyett .
  3. A séma módosítható az egyes résztvevők személyazonossága alapján. Ehhez a T megbízható központ minden A felhasználóhoz hozzárendel egy egyedi azonosító karakterláncot a résztvevővel kapcsolatos információkkal (például név, cím, útlevélszám stb.). Ezután a központ kiszámítja azokat az értékeket , amelyek polinomiális időben nem különböztethetők meg egy véletlen függvénytől. Ezután a faktorizáció ismeretében a megbízható központ kiszámítja és kiadja az értékeit A. Az értékek és az A résztvevő nyilvános és privát kulcsaivá válnak, és a további műveleteket a fent leírt séma szerint hajtják végre [7] [6] [3] .
  4. A leírt protokoll párhuzamosan is végrehajtható. Ebben az esetben az A-ból B-be és vissza küldött üzeneteknek tartalmazniuk kell egyidejűleg minden körre vonatkozó adatokat . Ennek a megközelítésnek az az előnye, hogy lehetővé teszi a végrehajtás bonyolultságának csökkentését az előállított iterációk számának csökkentésével. Egy ilyen séma biztonságos, de technikai okok miatt elveszti tudás nélküli tulajdonságát. A helyzet az, hogy a párhuzamos végrehajtás lehetővé teszi a tisztességtelen B ellenőrző számára, hogy ne véletlenszerűen, hanem az A -tól első lépésben neki küldött teljes halmaz függvényeként határozzon . Ha B ezt egy egyirányú hash függvény segítségével teszi meg, akkor csak akkor tud olyan információt szerezni, amelyet egyébként ki tudna számítani, ha ismeri A titkát . Úgy véljük azonban, hogy ez az információ nem "hasznos" (ennek ismeretében B nem fogja tudni kiadni A -t egy másik résztvevőnek), ami lehetővé teszi számunkra, hogy a sémát továbbra is megbízhatónak tekintsük [1] [8] .

Aláírás Feig - Fiat - Shamira

B fél nagyon fontos szerepet játszik az interaktív identitássémában - véletlenszerű értékeket generál , amelyek megakadályozzák, hogy A résztvevő csaljon .

Ahhoz, hogy az azonosítási sémát aláírási sémává alakítsuk, elegendő ezt a B műveletet megváltoztatni , hogy egy titkos hash függvényt használjunk a [7] [6] [3] kiszámításához .

Üzenet aláírása

Hagyja , hogy A aláírjon egy üzenetet .

  1. A kiválaszt egy véletlenszerű egész számot , és kiszámítja: .
  2. A kiszámítja: .
  3. A kiszámítja: .
  4. A küld B -nek egy üzenetet , aláírást és .

Aláírás ellenőrzése

Hagyja , hogy B ellenőrizze az aláírást az üzenet alatt .

  1. B kiszámítja: .
  2. B a kiszámításához használja : .
  3. Ha a számított értékek megegyeznek az A - tól kapott aláírással , akkor B elfogadja az aláírást .

Jegyzetek

  1. 1 2 3 4 5 Feige, Uriel; Fiat, Amos; Shamir, Adi. Zero-knowledge identitásigazolások  (angol)  (elérhetetlen link) (1987). Letöltve: 2015. november 10. Az eredetiből archiválva : 2015. november 17..
  2. 1 2 3 4 Susan Landau. Zero Knowledge and the Department of Defense  (angol) (1988). Letöltve: 2015. november 10. Az eredetiből archiválva : 2016. január 16..
  3. 1 2 3 4 5 6 Schneier B. Alkalmazott kriptográfia. Protokollok, algoritmusok, C-forráskódok (2002). Letöltve: 2015. november 10. Az eredetiből archiválva : 2015. november 20..
  4. Alfred V. Aho. STOC'87 19. éves ACM konferencia a számítástechnika elméletéről . ACM New York, NY, USA (1987).  
  5. Az azonosításra és aláírásra szolgáló módszer, készülék és cikk  ( 1987. május 31.). Letöltve: 2015. november 11. Az eredetiből archiválva : 2015. november 21..
  6. 1 2 3 4 5 6 7 A. Menezes, P. van Oorschot és S. Vanstone. Handbook of Applied Cryptography  (angol) (1996). Letöltve: 2015. november 10. Az eredetiből archiválva : 2015. december 8..
  7. 1 2 3 Amos Fiat, Adi Shamir. Hogyan bizonyítsd magad: Gyakorlati megoldások azonosítási és aláírási problémákra  (angol)  (hivatkozás nem elérhető) (1986). Letöltve: 2015. november 10. Az eredetiből archiválva : 2016. március 3.
  8. Gilles Brassard, Claude Crepeau, Moti Yung. Az NP-ben minden tökéletes nulla tudásban vitatható korlátozott számú körben  (angolul) (1989). Hozzáférés időpontja: 2015. november 13. Az eredetiből archiválva : 2015. november 17.

Irodalom