A BB84 protokollnál ahhoz, hogy detektálhassuk a "hallgatózó" felet mekkora a szükséges minimum*? *Bővebben lent...
A kérdés háttere:
Kitaláltam, hogy - just for fun - készítek egy demót a BB84 protokoll kapcsán arról, miként is működik. Egyelőre, még csak C -ben (mert abban kódolok a leggyorsabban) hamar készítettem hozzá egy konzolos alkalmazást (majd később megírom mondjuk Java -ban, hogy szép grafikus is legyen, de momentán csak egy működő projektet akartam minél előbb).
"Leszimuláltam" ugye a protokollt, azaz a küldőnek van n darab (klasszikus) bitje, ezek mindegyikéhez véletlenszerűen választ egy bázist (nevezzük most horizontálisnak és rektilineárisnak a szóba jöhető bázisokat), majd mindegyik bit esetében az értékének (0 vagy 1) megfelelő állapotot preparálja az adott bithez választott bázison.
Az így preparált kvantumbiteket átküldi a fogadónak, aki elvégzi rajtuk a kvantummérést, de ő is véletlenszerűen választ ugye mérési bázist minden egyes kvantumbithez. A mérések után a fogadónak van n darab 0-val vagy 1-gyel címkézett kvantumállapotban lévő kvantumbitje, s ezekből a 0-ákból és 1-ekből máris van n darab 0 vagy 1 értékű klasszikus bitje.
Nyilvánvaló, hogy azoknak a biteknek / kvantumbiteknek az esetében, ahol a küldő és a fogadó ugyanazt a bázist választotta, a küldött és a fogadónál mért értékek meg kell, hogy egyezzenek.
Ez eddig trivi: szépen, nyilvánosan egyeztetik, hogy ki, milyen bázist választott az egyes esetekben, s ahol ugyanazt választották, azokat a biteket megtartják, ez lesz a nyers kulcs (raw key). Ha nincs hallgatózó, akkor a küldő és a fogadó által birtokolt kulcs megegyezik.
Ha viszont valaki elcsípi mondjuk a küldött kvantumbiteket, amiket persze tovább kell küldenie, különben lebukik, akkor azelőtt kell bázist választania a saját méréséhez, mielőtt megtudhatná, hogy a küldő és a fogadó hol, milyen bázist választott, azaz könnyen lehet, hogy azokban az esetekben, ahol a küldő és a fogadó ugyanazon a bázison dolgozott, ő a másikon végzi a mérést.
Ugye ennek az a következménye, hogy az egyébként egyforma bázisú esetekben, ahol a fogadó már egy - a választott bázisán - sajátállapotot kellett volna, hogy kapjon, egy, a mérési bázis két bázisállapotára egyenlő valószínűségi amplitúdóval "vetülő" szuperpozíciót kap. Ennek ugye lehet a következménye, hogy "rossz" állapotba kerül a mérés után a kvantumbit, azaz nem fog megegyezni a küldött és a fogadott / mért érték ott, ahol egyébként meg kellene, hogy egyezzen. Vagyis a hallgatózó jelenléte detektálható lesz, azaz: lebukik. (Szóba jöhetne még ugye, hogy másolatokat készít az elfogott, majd továbbküldött kvantumbitekről, s mindkét másolaton végez mérést különböző bázisokon, de ez lehetetlen a
no cloning miatt)
A fenti folyamatot "leszimuláltam": a programban van egy opció, amikor hallgatózó nélkül megy le a protokoll, s, van egy olyan is, amikor a user, a hallgatózó fél szerepébe bújva, választhat bázisokat magának az egyes mérésekhez.
A konzolon megjelennek a küldő bitjei, alattuk a választott bázisai, alattuk a fogadó által választott bázisok és a fogadó bitjei. Azokat a biteket, ahol a bázisok megegyeztek, megtartjuk, s ez lesz a raw key.
Ebből a raw key -ből kell ugye feláldozni egy részt, s megvizsgálni, van -e olyan eset, ahol nem egyeznek meg a küldő és fogadó bitjei, azaz, van - e hallgatózó.
MOST ÉRTÜNK EL A KÉRDÉSHEZ:
Egyfelől, a hallgatózó véletlenül beletrafálhat, s választhat pont ugyanúgy, mint a kommunikálni akaró felek, másfelől pedig, ha rosszul is választ és a fogadó által használt mérési bázison kifejtve szuperponált állapotot küld tovább, a fogadó 1 / 2 valószínűséggel mérheti pont "megfelelőnek" a beérkező állapotot.
Vagyis a fentiek szerint, nem feltétlenül lepleződik le a harmadik fél minden esetben. Nyilvánvalónak tűnik, hogy szükség van valamiféle statisztikai "kiértékelésre", valamiféle minimálisan szükséges kulcshosszra, mely esetben már bizonyosan (vagy kielégítő valószínűséggel) lebuktatható a kémkedő alany.
A kérdés tehát az, hogy konkrétan miként adható meg egy ilyen jellegű "minimum érték"?
Bocs a hosszú kifejtésért, s előre is köszi a válasz(oka)t!
Valami exponenciális, 1-1/2^n jellegű lesz a lebukás valószínűsége.
Például az átvitt kulcsból le tud hallgatni b/2 bitet 1-(3/4)^b eséllyel lebukva* a következő módszerrel: 4b mérést végez, mindet horizontálisan mérve. A 4b jelből 2b-t kidob A és B mert nem ugyanarra a bázisra mértek, a maradék egyik fele a kulcsban lesz, a másik fele meg ellenőrzésre megy. Ha C úgy küldi tovább a jelet hogy horizontálisan preparálja és abba az állapotba, amit mért, akkor 1/4 eséllyel bukik le, és 3/4 eséllyel nem bukik le.
A kulcsba tartozó b darab mérésének meg a fele lesz jó bázisra. Tehát b/2 bitet megtud a kulcsból, és 1-(3/4)^b eséllyel fogadja el A és B az ellenőrző biteket.
* ha a csatorna zajos, akkor C nem "lebukik", hanem csak növeli a zajt valamennyire.
** az átküldött kulcs is megváltozik közben, szóval lehet hogy A és B később észreveszik hogy valami nem stimmel, mindenesetre a protokoll szerint ha az ellenőrző bitek stimmelnek, akkor elfogadják az eredményt.
Köszönöm szépen, pont ilyen jellegű választ vártam! Teljesen érthető.
*Egyelőre zajjal nem számoltam, de igen, ez is fontos tényező.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!