ANDOS ( All or Nothing Disclosure Of Secrets ) er en kryptografisk protokol til "hemmeligt salg af hemmeligheder" . Lad sælgeren af S -hemmeligheder have en liste med spørgsmål og sæt svarene på ethvert af dem til salg. Antag, at køber B ønsker at købe en hemmelighed, men ikke ønsker at afsløre hvilken. Protokollen garanterer, at B får den hemmelighed, den har brug for, og intet andet, mens S ikke ved præcis, hvilken hemmelighed B har fået .
Lad de hemmeligheder, som S besidder , hver af dem indeholder en smule. For hver S udgiver en beskrivelse af hemmeligheden. Antag, at købere B og C ønsker at købe hemmeligheder og hhv. Tanken er, at køberne har individuelle envejsfunktioner, og hver af dem opererer på de tal, den anden modtager.
Trin 1. S giver B og C individuelle envejsfunktioner f og g , men holder deres inverse for sig selv. Trin 2. B fortæller C (henholdsvis C - B ) tilfældige -bit-tal (henholdsvis ).For , som kortlægger -bittal til -bittal og -bittal , sig, at indekset er det faste bitindeks (FBI) svarende til parret, hvis -th bit i er lig med -th bit i . Det er klart, at der er en IFB, der svarer til parret , hvis det er en IFB, der svarer til parret . Hvis det opfører sig ret tilfældigt, når der skiftes bits i (som gode kryptografiske funktioner), så kan man for random groft estimere, at ca. indeksene er IFB'er svarende til
Trin 3. B fortæller C (hhv. C - B ) det sæt af IFB - indekser, der henholdsvis svarer til sættet af IFB - indekser svarende til Trin 4. B (henholdsvis C ) fortæller S - tal (hhv . hvor er resultatet opnået ved at erstatte hver bit i , hvis indeks ikke er IFB , med sin modsætning (henholdsvis opnået fra på en lignende måde). Trin 5. S fortæller B (henholdsvis C ) tal hhv . _ Trin 6. B (hhv. C ) kan beregne (hhv. ), da de er kendte hhv.B og C lærte de hemmeligheder, de havde brug for. S lærte ikke noget om deres valg. Desuden lærte hverken B eller C mere end én af hinandens hemmeligheder eller valg. Et samarbejde mellem B og C resulterer i, at de kan lære alle hemmelighederne. Samarbejde mellem S og en af køberne kan afsløre, hvilken hemmelighed den anden køber ønsker.
Så hovedproblemet er samordning. Men hvis der er mindst tre købere, så er en ærlig køber nok til at gøre det umuligt at snyde resten, takket være brugen af kryptografiske funktioner, da hver bit af sekvensen sendt til købere fra S er meget afhængig af bitsene leveret af den ærlige køber.
I det tilfælde, hvor der er et antal købere , fungerer protokollen på nøjagtig samme måde, men hver køber modtager en funktion fra sælgeren sammen med sæt tal fra andre købere.
.
Hvis C ønsker at købe hemmeligheden , så beregner den den bitvise tilføjelse af det 2. tal modtaget fra S , nemlig:.