En criptografía, el problema de los criptógrafos comensales estudia cómo realizar un cálculo seguro entre múltiples partes de la función booleana XOR. David Chaum propuso este problema a principios de la década de 1980 y lo utilizó como ejemplo ilustrativo para demostrar que era posible enviar mensajes anónimos con imposibilidad de rastrear al remitente y al destinatario de forma incondicional. Las redes de comunicación anónimas basadas en este problema se conocen a menudo como redes DC (donde DC significa "criptógrafos comensales"). [ 1 ]
A pesar de la palabra "comer" , el problema de los criptógrafos comensales no tiene relación con el problema de los filósofos comensales .
Descripción

Tres criptógrafos se reúnen alrededor de una mesa para cenar. El camarero les informa que la cena ha sido pagada por alguien, que podría ser uno de los criptógrafos o la Agencia de Seguridad Nacional (NSA). Los criptógrafos respetan el derecho de cada uno a realizar un pago anónimo, pero quieren averiguar si fue la NSA quien pagó. Así que deciden ejecutar un protocolo de dos etapas.
En la primera etapa, cada par de criptógrafos establece un secreto compartido de un bit, por ejemplo, lanzando una moneda detrás de un menú de manera que solo dos criptógrafos vean el resultado por turno para cada par de criptógrafos. Supongamos, por ejemplo, que después del lanzamiento de la moneda, los criptógrafos A y B comparten un bit secreto., A y C comparteny B y C comparten.
En la segunda etapa, cada criptógrafo anuncia públicamente un bit, que es:
- si no pagaron la comida, el OR exclusivo (XOR) de los dos bits compartidos que tienen con sus dos vecinos,
- Si pagaron la comida, lo contrario de eso XOR.
Suponiendo que ninguno de los criptógrafos pagó, entonces A anuncia, B anunciay C anunciaPor otro lado, si A pagó, ella anuncia.
Los tres comunicados públicos, en conjunto, revelan la respuesta a su pregunta. Basta con calcular la operación XOR de los tres bits anunciados. Si el resultado es 0, implica que ninguno de los criptógrafos pagó (por lo que la NSA debe haber pagado la factura). De lo contrario, uno de los criptógrafos pagó, pero su identidad permanece desconocida para los demás.
David Chaum acuñó el término red de criptógrafos comensales , o DC-net, para este protocolo.
Limitaciones
El protocolo DC-net es sencillo y elegante. Sin embargo, presenta varias limitaciones, algunas de las cuales se han explorado en investigaciones posteriores para encontrar soluciones (véase la sección de Referencias más abajo).
- Colisión
- Si dos criptógrafos pagaran la cena, sus mensajes se cancelarían entre sí y el resultado final de XOR sería:Esto se denomina colisión y permite que solo un participante transmita a la vez mediante este protocolo. En un caso más general, se produce una colisión siempre que un número par de participantes envíe mensajes.
- Ruptura
- Cualquier criptógrafo malicioso que no desee que el grupo se comunique correctamente puede interferir con el protocolo para que el resultado final de la operación XOR sea inútil, simplemente enviando bits aleatorios en lugar del resultado correcto. Este problema surge porque el protocolo original se diseñó sin utilizar ninguna tecnología de clave pública y carece de mecanismos fiables para comprobar si los participantes siguen el protocolo con honestidad. [ 2 ]
- Complejidad
- El protocolo requiere claves secretas compartidas por pares entre los participantes, lo cual puede resultar problemático si hay muchos participantes. Además, si bien el protocolo DC-net es "incondicionalmente seguro", en realidad se basa en la suposición de que ya existen canales "incondicionalmente seguros" entre pares de participantes, lo cual no es fácil de lograr en la práctica.
Un algoritmo de red de veto anónimo relacionado calcula la OR lógica de las entradas de varios usuarios, en lugar de una XOR lógica como en las redes DC, lo que puede ser útil en aplicaciones para las que una operación de combinación OR lógica es naturalmente adecuada.
Historia
David Chaum pensó por primera vez en este problema a principios de la década de 1980. La primera publicación que describe las ideas básicas subyacentes es suya. [ 3 ] La versión de la revista apareció en el primer número del Journal of Cryptology . [ 4 ]
Generalizaciones
Las redes DC se pueden generalizar fácilmente para permitir transmisiones de más de un bit por ronda, para grupos de más de tres participantes y para "alfabetos" arbitrarios distintos de los dígitos binarios 0 y 1, como se describe a continuación.
Transmisiones de mensajes más largos
Para que un remitente anónimo pueda transmitir más de un bit de información por ronda de DC-nets, el grupo de criptógrafos puede simplemente repetir el protocolo tantas veces como sea necesario para generar el ancho de banda de transmisión deseado. Estas repeticiones no tienen por qué realizarse en serie. En los sistemas DC-net prácticos, es habitual que pares de participantes acuerden de antemano una clave maestra compartida, utilizando, por ejemplo, el intercambio de claves Diffie-Hellman . A continuación, cada participante introduce localmente esta clave maestra compartida en un generador de números pseudoaleatorios para producir tantos lanzamientos de moneda compartidos como se desee y permitir que un remitente anónimo transmita varios bits de información.
Grupos más grandes
El protocolo puede generalizarse a un grupo deLos participantes comparten una clave secreta con todos los demás. En cada ronda del protocolo, si un participante desea transmitir un mensaje indetectable al grupo, invierte el bit que ha anunciado públicamente. Los participantes pueden representarse como un grafo completamente conectado, donde los vértices representan a los participantes y las aristas, sus claves secretas compartidas.
Grafos de compartición de secretos dispersos
El protocolo puede ejecutarse con grafos de compartición de secretos no completamente conectados , lo que puede mejorar el rendimiento y la escalabilidad de las implementaciones prácticas de DC-net, con el riesgo potencial de reducir el anonimato si los participantes coludidos pueden dividir el grafo de compartición de secretos en componentes conectados separados. Por ejemplo, una generalización intuitivamente atractiva pero menos segura aparticipantes que utilizan una topología de anillo , donde cada criptógrafo sentado alrededor de una mesa comparte un secreto solo con el criptógrafo a su izquierda y derecha inmediatas, y no con todos los demás criptógrafos. Esta topología es atractiva porque cada criptógrafo necesita coordinar dos lanzamientos de moneda por ronda, en lugar deSin embargo, si Adam y Charlie son en realidad agentes de la NSA sentados inmediatamente a la izquierda y a la derecha de Bob, una víctima inocente, y si Adam y Charlie conspiran en secreto para revelarse sus secretos mutuamente, entonces pueden determinar con certeza si Bob fue o no el remitente de un bit 1 en una ejecución de la red DC, independientemente del número total de participantes. Esto se debe a que los participantes conspiradores, Adam y Charlie, efectivamente "dividen" el gráfico de compartición de secretos en dos componentes separados y desconectados: uno que contiene solo a Bob y otro que contiene a todos los demás participantes honestos.
Otra topología de red DC de intercambio de secretos de compromiso, empleada en el sistema Dissent para la escalabilidad, [ 5 ] puede describirse como una topología cliente/servidor o usuario/fiduciario . En esta variante, asumimos que hay dos tipos de participantes que desempeñan diferentes roles: un número potencialmente grande n de usuarios que desean anonimato y un número mucho menorde fideicomisarios cuyo rol es ayudar a los usuarios a obtener ese anonimato. En esta topología, cada uno de losLos usuarios comparten un secreto con cada uno de losfideicomisarios, pero los usuarios no comparten secretos directamente con otros usuarios, y los fideicomisarios no comparten secretos directamente con otros fideicomisarios, lo que resulta en unamatriz de compartición de secretos. Si el número de fideicomisariosSi la red es pequeña, cada usuario solo necesita gestionar unos pocos secretos compartidos, lo que mejora la eficiencia de la misma manera que lo hace la topología de anillo. Sin embargo, siempre que al menos un fideicomisario actúe con honestidad y no divulgue sus secretos ni colabore con otros participantes, ese fideicomisario honesto forma un "centro" que conecta a todos los usuarios honestos en un único componente totalmente conectado, independientemente de cuántos otros usuarios o fideicomisarios puedan estar colaborando deshonestamente. Los usuarios no necesitan saber ni adivinar qué fideicomisario es honesto; su seguridad depende únicamente de la existencia de al menos un fideicomisario honesto y que no colabore.
Alfabetos alternativos y operadores de combinación
Si bien el sencillo protocolo DC-nets utiliza dígitos binarios como alfabeto de transmisión y el operador XOR para combinar textos cifrados, el protocolo básico se generaliza a cualquier alfabeto y operador de combinación adecuado para el cifrado con clave de un solo uso . Esta flexibilidad surge naturalmente del hecho de que los secretos compartidos entre los numerosos pares de participantes son, en efecto, simplemente claves de un solo uso combinadas simétricamente dentro de una única ronda de DC-net.
Una alternativa útil para elegir el alfabeto y el operador de combinación de las redes DC consiste en utilizar un grupo finito adecuado para la criptografía de clave pública como alfabeto —como un grupo de Schnorr o una curva elíptica— y el operador de grupo asociado como operador de combinación de la red DC. Esta elección de alfabeto y operador permite a los clientes utilizar técnicas de prueba de conocimiento cero para demostrar la corrección de los textos cifrados de la red DC que generan, como por ejemplo que el participante no está interfiriendo en el canal de transmisión, sin comprometer el anonimato que ofrece la red DC. Esta técnica fue propuesta inicialmente por Golle y Juels [ 6 ] , desarrollada posteriormente por Franck [ 7 ] y luego implementada en Verdict , una implementación criptográficamente verificable del sistema Dissent [ 8 ] .
Manejo o prevención de colisiones
La medida sugerida originalmente por David Chaum para evitar colisiones consiste en retransmitir el mensaje una vez detectada una colisión, pero el artículo no explica exactamente cómo organizar la retransmisión.
Dissent evita la posibilidad de colisiones no intencionadas mediante el uso de una mezcla verificable para establecer un programa de transmisión de DC-nets, de modo que cada participante sabe exactamente qué bits en el programa corresponden a su propio espacio de transmisión, pero no sabe quién posee otros espacios de transmisión. [ 9 ]
Contrarrestar los ataques disruptivos
Herbivore divide una gran red de anonimato en grupos DC-net más pequeños, lo que permite a los participantes evadir los intentos de interrupción abandonando un grupo interrumpido y uniéndose a otro, hasta que encuentren un grupo libre de perturbadores. [ 10 ] Este enfoque de evasión introduce el riesgo de que un adversario que posee muchos nodos pueda interrumpir selectivamente solo los grupos que no ha comprometido por completo , "guiando" así a los participantes hacia grupos que pueden ser funcionales precisamente porque están completamente comprometidos. [ 11 ]
Dissent implementa varios esquemas para contrarrestar las interrupciones. El protocolo original [ 9 ] utilizaba una mezcla criptográfica verificable para formar un cronograma de transmisión de DC-net y distribuir "asignaciones de transmisión", lo que permitía verificar la corrección de los textos cifrados subsiguientes de DC-net mediante una simple comprobación de hash criptográfico . Sin embargo, esta técnica requería una nueva verificación antes de cada ronda de DC-net, lo que generaba altas latencias. Un esquema posterior, más eficiente, permite que una serie de rondas de DC-net se desarrollen sin mezclas intermedias en ausencia de interrupciones, pero en respuesta a un evento de interrupción utiliza una mezcla para distribuir acusaciones anónimas , lo que permite a la víctima de la interrupción exponer y probar la identidad del perpetrador. [ 5 ] Finalmente, las versiones más recientes admiten redes DC totalmente verificables, a un costo sustancial en eficiencia computacional debido al uso de criptografía de clave pública en la red DC, así como un modo híbrido que utiliza redes DC eficientes basadas en XOR en el caso normal y redes DC verificables solo en caso de interrupción, para distribuir acusaciones más rápidamente de lo que es factible utilizando barajados verificables. [ 8 ]
Referencias
- ↑ Chaum DL (1988). "El problema de los criptógrafos comensales: la imposibilidad de rastrear al remitente y al destinatario de forma incondicional". J Cryptol . 1(1):65–75.
- ↑ Caballeros y bribones .
- ↑ David Chaum (1985). "Seguridad sin identificación: sistemas de transacciones para hacer obsoleto al Gran Hermano" (PDF) . Communications of the ACM . 28 (10): 1030– 1044. CiteSeerX 10.1.1.319.3690 . doi : 10.1145/4372.4373 . S2CID 15340054 .
- ↑ David Chaum (1988). "El problema de los criptógrafos comensales: la imposibilidad de rastrear incondicionalmente al remitente y al destinatario" . Journal of Cryptology . 1 (1): 65– 75. CiteSeerX 10.1.1.127.4293 . doi : 10.1007/BF00206326 . S2CID 2664614 .
- 1 2 David Isaac Wolinsky; Henry Corrigan-Gibbs; Bryan Ford; Aaron Johnson (8-10 de octubre de 2012). Disidencia en números: Cómo lograr una escala de anonimato sólida . 10.º Simposio USENIX sobre diseño e implementación de sistemas operativos (OSDI). Hollywood, CA, EE. UU.
- ↑ Philippe Golle; Ari Juels (2–6 de mayo de 2004). Criptógrafos en la mesa: una revisión (PDF) . Eurocrypt 2004. Interlaken, Suiza.
- ↑ Franck, Christian (2008). Nuevas direcciones para criptógrafos gastronómicos (PDF) (tesis de maestría).
- 1 2 Henry Corrigan-Gibbs; David Isaac Wolinsky; Bryan Ford (14-16 de agosto de 2013). Mensajería anónima proactivamente responsable en Verdict . 22.º Simposio de Seguridad de USENIX. Washington, DC, EE. UU.
- 1 2 Henry Corrigan-Gibbs; Bryan Ford (octubre de 2010). Disidencia: Anonimato grupal responsable . 17.ª Conferencia ACM sobre seguridad informática y de comunicaciones (CCS). Chicago, IL, EE. UU. Archivado del original el 29 de noviembre de 2012. Recuperado el 9 de septiembre de 2012 .
- ↑ Emin Gün Sirer; Sharad Goel; Mark Robson; Doğan Engin (19-22 de septiembre de 2004). Evadiendo a los carnívoros: Intercambio de archivos con anonimato estricto (PDF) . Taller europeo ACM SIGOPS. Lovaina, Bélgica.
- ↑ Nikita Borisov; George Danezis; Prateek Mittal; Parisa Tabriz (octubre de 2007). ¿ Denegación de servicio o denegación de seguridad? Cómo los ataques a la fiabilidad pueden comprometer el anonimato (PDF) . Conferencia ACM sobre seguridad informática y de comunicaciones (CCS). Alexandria, VA, EE. UU.
- Criptografía
- Problemas matemáticos
- Protocolos de conocimiento cero