ANDOS (criptografie)

Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită pe 8 iulie 2019; verificările necesită 2 modificări .

ANDOS ( All or Nothing Disclosure Of Secrets ) este un protocol criptografic pentru „vânzarea secretă a secretelor” .  Lăsați vânzătorul de secrete S să aibă o listă de întrebări și să pună la vânzare răspunsurile la oricare dintre ele. Să presupunem că cumpărătorul B dorește să cumpere un secret, dar nu dorește să dezvăluie care dintre ele. Protocolul garantează că B va obține secretul de care are nevoie și nimic altceva, în timp ce S nu va ști exact ce secret a primit B.

Algoritm

Lasă secretele deținute de S , fiecare dintre ele conține câte un pic. Pentru fiecare S publică o descriere a secretului. Să presupunem că cumpărătorii B și C doresc să cumpere secrete și , respectiv. Ideea este că cumpărătorii au funcții individuale unidirecționale și fiecare dintre aceștia operează pe numerele primite de celălalt.

Pasul 1. S oferă B și C funcții unidirecționale individuale f și g , dar păstrează inversele lor pentru sine. Pasul 2. B îi spune lui C (respectiv C  - B ) numere aleatorii de biți (respectiv ).

Pentru , care mapează numerele -biți la numerele -biților și numărul -biților , spunem că indexul  este Fixed Bit Index (FBI) corespunzător perechii dacă -al-lea bit în este egal cu --lea bit în . Este clar că există un IFB corespunzător perechii dacă este un IFB corespunzător perechii . Dacă se comportă destul de aleatoriu la schimbarea biților (cum ar fi funcțiile criptografice bune), atunci, pentru random , se poate estima aproximativ că aproximativ indicii sunt IFB-uri corespunzători lui

Pasul 3. B îi spune lui C (respectiv C  - B ) setul de indici IFB corespunzători respectiv setului de indici IFB corespunzători lui Pasul 4. B (respectiv C ) spune S numere (respectiv , unde  este rezultatul obținut prin înlocuirea fiecărui bit în , al cărui indice nu este IFB , cu opusul său (respectiv obținut dintr- un mod similar). Pasul 5. S spune numerelor B (respectiv C ). respectiv , . Pasul 6. B (respectiv C ) poate calcula (respectiv ) deoarece sunt cunoscute respectiv

B și C au învățat secretele de care aveau nevoie. S nu a aflat nimic despre alegerea lor. De asemenea, nici B , nici C nu au aflat mai mult de unul dintre secretele sau alegerile celuilalt. O coluziune între B și C îi face ca aceștia să poată învăța toate secretele. Coluziunea dintre S și unul dintre cumpărători poate dezvălui ce secret dorește celălalt cumpărător.

Deci principala problemă este coluziunea. Cu toate acestea, dacă există cel puțin trei cumpărători, atunci un cumpărător onest este suficient pentru a face imposibilă înșelarea pe restul, datorită utilizării funcțiilor criptografice, deoarece fiecare bit din secvența trimis cumpărătorilor de la S este foarte dependent de biți. furnizate de cumpărătorul cinstit.

În cazul în care există un număr de cumpărători , protocolul funcționează exact în același mod, dar fiecare cumpărător primește o funcție de la vânzător împreună cu seturi de numere de la alți cumpărători.

Exemple

Să alegem . Luați în considerare că S are următoarele 8 secrete pe 12 biți de vândut: Pasul 1. S oferă B și C funcții unidirecționale individuale f și g bazate pe numere prime (respectiv ), modulo (respectiv ). Exponenții deschis și închis sunt egali (respectiv ). Pasul 2 B îi spune lui C opt numere de 12 biți : C îi spune lui B opt numere de 12 biți : Pasul 3 Să dorească B să cumpere secretul . El calculează Comparând reprezentarea binară și B îi spune lui C un set de IFB-uri ale corespunzătoare Să C vrea să cumpere un secret . După calcule, C îi spune lui B un set de IFB -uri corespunzătoare Pasul 4 B îi spune lui S numărul , unde  este rezultatul obținut prin înlocuirea fiecărui bit din , al cărui indice nu aparține lui , cu opusul, de exemplu: C îi spune lui S numerele , unde  este rezultatul obținut prin înlocuirea fiecărui bit din , al cărui indice nu aparține lui , cu opusul, de exemplu: Pasul 5 S le spune numerelor B funcția inversă , de exemplu: S le spune numerelor C o funcție inversă , de exemplu. Pasul 6 B învață adăugarea secretă pe biți a celui de-al 7-lea număr primit de la S , și anume:

.

Dacă C dorește să cumpere secretul , atunci calculează adăugarea pe biți a celui de-al 2-lea număr primit de la S , și anume:

.

Literatură