Yaos miljonärers problem
Yaos miljonärsproblem är ett säkert flerpartsberäkningsproblem som introducerades 1982 av datavetaren och beräkningsteoretikern Andrew Yao . Problemet diskuterar två miljonärer, Alice och Bob, som är intresserade av att veta vem av dem som är rikare utan att avslöja deras faktiska rikedom.
Detta problem är analogt med ett mer generellt problem där det finns två siffror och och målet är att avgöra om olikheten är sann eller false utan att avslöja de faktiska värdena för och .
Miljonärernas problem är ett viktigt problem inom kryptografi , vars lösning används inom e-handel och datautvinning . Kommersiella applikationer måste ibland jämföra nummer som är konfidentiella och vars säkerhet är viktig.
Många lösningar har införts för problemet. Den första lösningen, presenterad av Yao, är exponentiell i tid och rum.
Protokoll och bevis
Hsiao-Ying Lins och Wen-Guey Tzengs protokoll
Låt vara en binär sträng med längden n .
Beteckna 0-kodning av s som och 1-kodning av s som
Sedan är protokollet baserat på följande påstående:
- Antag att a och b är binära strängar med längden n bitar.
- Då har om mängderna och ett gemensamt element (där a och b är de binära kodningarna för motsvarande heltal).
Protokollet utnyttjar denna idé till en praktisk lösning på Yaos miljonärers problem genom att utföra en privat uppsättning korsning mellan och .
Ioannidis och Ananths protokoll
Protokollet använder en variant av oblivious transfer , kallad 1-2 oblivious transfer. I den överföringen överförs en bit på följande sätt: en avsändare har två bitar och . Mottagaren väljer , och avsändaren skickar med det oblivious överföringsprotokollet så att
- mottagaren får ingen information om ,
- värdet av exponeras inte för avsändaren.
För att beskriva protokollet indikeras Alices nummer som , Bobs nummer som , och det antas att längden på deras binära representation är mindre än för vissa . Protokollet tar följande steg.
- Alice skapar en matris av storleken av -bittal, där är längden på nyckeln i det oblivious överföringsprotokoll. Dessutom väljer hon två slumpmässiga tal och , där och .
-
kommer att vara den -te biten av talet som visas i cell (där indikerar den minst signifikanta biten ). Dessutom betecknas -te biten av Alices tal . För varje , utför Alice följande åtgärder.
- För varje bit sätter hon och till slumpmässiga bitar.
- Om , låt , annars låt och för varje sätter till en slumpmässig bit.
- För sätt och till .
- För varje kommer att vara ett slumpmässigt -bittal, och kommer att vara ytterligare ett antal bitar där alla bitar utom de två sista är slumpmässiga, och de två sista beräknas som och \ är bitvis XOR- operation.
- För set . Där indikerar den bitvisa rotationen av åt vänster med bitar.
- För varje , överför Bob med det omedvetna överföringsprotokollet, där , och är den -te biten av .
- Alice skickar till Bob .
- Bob beräknar den bitvisa XOR av alla siffror han fick i steg 3 och från steg 4. Bob skannar resultatet från vänster till höger tills han hittar en stor sekvens med nollbitar. Låt vara biten till höger om den sekvensen ( är inte noll). Om biten till höger om är lika med 1, då , annars .
Bevis
Rätthet
Bob beräknar slutresultatet från , och resultatet beror på . K , och därför även c , kan delas upp i 3 delar. Den vänstra delen påverkar inte resultatet. Den högra delen har all viktig information, och i mitten finns en sekvens av nollor som skiljer de två delarna åt. Längden på varje partition av c är kopplad till säkerhetsschemat.
För varje i har endast en av höger del som inte är noll, och det är om , och annars. Dessutom, om och har en höger del som inte är noll, då har också en högerdel som inte är noll, och de två bitarna längst till vänster i denna högra del kommer att vara samma som den av . Som ett resultat är den högra delen av c en funktion av posterna som Bob överförde motsvarar de unika bitarna i a och b , och de enda bitarna i den högra delen i c som inte är slumpmässiga är de två längst till vänster, exakt de bitar som bestämmer resultatet av , där i är den högsta ordningens bit där a och b skiljer sig åt. I slutändan, om , så blir de två bitarna längst till vänster 11, och Bob kommer att svara att . Om bitarna är 10, då och han kommer att svara . Om kommer det inte att finnas någon högerdel i c , och i detta fall kommer de två bitarna längst till vänster i c att vara 11, och kommer att indikera resultatet.
säkerhet
Informationen som Bob skickar till Alice är säker eftersom den skickas genom omedveten överföring, vilket är säkert.
Bob får 3 nummer av Alice:
- . För varje får Bob ett sådant nummer, och är slumpmässigt, så ingen säker information omvandlas.
- N . Detta är en XOR av slumpmässiga tal, och avslöjar därför ingen information. Den relevanta informationen avslöjas först efter beräkning av c .
- c . Detsamma gäller för c . Den vänstra delen av c är slumpmässig, och den högra delen är också slumpmässig, förutom de två bitarna längst till vänster. Att härleda all information från dessa bitar kräver att man gissar några andra värden, och chansen att gissa dem korrekt är mycket låg.
Komplexitet
Protokollets komplexitet är ) } . Alice konstruerar d -längdsnummer för varje bit av a , och Bob beräknar XOR d gånger av d -längdstalen. Komplexiteten för dessa operationer är . Kommunikationsdelen tar också . Därför protokollets komplexitet
Se även
- Kryptografi
- RSA
- Säker flerpartsberäkning
- Socialistiskt miljonärsproblem , en variant där miljonärerna vill avgöra om deras förmögenheter är lika.