ANDOS ( All or Nothing Disclosure Of Secrets ) es un protocolo criptográfico para la "venta secreta de secretos" . Que el vendedor de S secrets tenga una lista de preguntas y ponga a la venta las respuestas a cualquiera de ellas. Supongamos que el comprador B quiere comprar un secreto, pero no quiere revelar cuál. El protocolo garantiza que B obtendrá el secreto que necesita y nada más, mientras que S no sabrá exactamente qué secreto obtuvo B.
Veamos los secretos que posee S , cada uno de ellos contiene un pedacito. Para cada S publica una descripción del secreto. Suponga que los compradores B y C quieren comprar secretos y , respectivamente. La idea es que los compradores tengan funciones unidireccionales individuales y cada uno opere sobre los números recibidos por el otro.
Paso 1. S da a B y C funciones unidireccionales individuales f y g , pero mantiene sus inversas para sí mismo. Paso 2. B le dice a C (respectivamente C - B ) números de bits aleatorios (respectivamente ).Para , que asigna números de bits a números de bits y número de bits , digamos que el índice es el índice de bits fijos (FBI) correspondiente al par si el bit -ésimo es igual al bit -ésimo en . Está claro que hay un IFB correspondiente al par si es un IFB correspondiente al par . Si se comporta bastante aleatoriamente cuando cambia bits (como buenas funciones criptográficas), entonces, para random , uno puede estimar aproximadamente que aproximadamente los índices son IFB correspondientes a
Paso 3. B le dice a C (respectivamente C - B ) el conjunto de índices IFB correspondientes respectivamente al conjunto de índices IFB correspondientes a Paso 4. B (respectivamente C ) le dice a S números (respectivamente , donde es el resultado obtenido al reemplazar cada bit en , cuyo índice no es IFB , con su opuesto (respectivamente obtenido de de manera similar). Paso 5. S le dice a B (respectivamente C ) números respectivamente , . Paso 6. B (respectivamente C ) puede calcular (respectivamente ) ya que se conocen respectivamenteB y C aprendieron los secretos que necesitaban. S no aprendió nada sobre su elección. Además, ni B ni C aprendieron más que uno de los secretos o elecciones del otro. Una colusión entre B y C da como resultado que puedan aprender todos los secretos. La colusión entre S y uno de los compradores puede revelar qué secreto quiere el otro comprador.
Así que el principal problema es la colusión. Sin embargo, si hay al menos tres compradores, entonces un comprador honesto es suficiente para que sea imposible engañar al resto, gracias al uso de funciones criptográficas, ya que cada bit de la secuencia enviada a los compradores desde S depende en gran medida de los bits proporcionada por el comprador honesto.
En el caso de que haya varios compradores , el protocolo funciona exactamente de la misma manera, pero cada comprador recibe una función del vendedor junto con conjuntos de números de otros compradores.
.
Si C quiere comprar el secreto , calcula la suma bit a bit del segundo número recibido de S , a saber:.