Forzando un comportamiento honesto

9

¿Cómo puede obligar a una parte a ser honesta (obedecer las reglas del protocolo)?

He visto algunos mecanismos como compromisos, pruebas, etc., pero simplemente no parecen resolver todo el problema. Me parece que la estructura del diseño del protocolo y tales mecanismos deben hacer el trabajo. ¿Alguien tiene una buena clasificación de eso?
Editar
Al diseñar protocolos seguros, si obliga a una parte a ser honesta, el diseño sería mucho más fácil, aunque esta aplicación tiene su propia recompensa. Al diseñar protocolos seguros, he visto que los diseñadores asumen algo que no me parece realista, por ejemplo, asumir que todas las partes son honestas en el peor de los casos o que asumen la honestidad del servidor que mantiene los datos del usuario. Pero cuando se observa el diseño de protocolos en modelos más estrictos, rara vez se ven tales suposiciones (al menos no lo he visto, principalmente estudio protocolos sobreMarco UC de Canetti, que creo que aún no está totalmente formalizado). Me preguntaba, ¿hay alguna buena clasificación de las formas en que puede obligar a una parte a ser honesta o hay algún compilador que pueda convertir el protocolo de entrada en uno con partes honestas?
Ahora voy a explicar por qué creo que esto simplemente no hace el trabajo aunque parezca irrelevante. Al diseñar protocolos en el marco de UC, que se beneficia del paradigma ideal / real, cada enlace de comunicación en el modelo ideal se autentica, lo que no es cierto en el modelo real. Por lo tanto, los diseñadores de protocolos buscan métodos alternativos para implementar este canal a través de la suposición de PKI o un CRS (Common Reference String). Pero al diseñar protocolos de autenticación, asumir que los canales autenticados es incorrecto. Supongamos que estamos diseñando un protocolo de autenticación en el marco de UC, hay un ataque en el que el adversario falsifica la identidad de una parte, pero debido a la suposición de enlaces autenticados en el modelo ideal, ¡este ataque no se supone en este marco! Puede referirse aModelado de ataques internos en protocolos de intercambio de claves grupales . Puede notar que Canetti en su trabajo seminal Las nociones universalmente componibles de intercambio de claves y canales seguros mencionan una noción previa de seguridad llamada SK-Security, que es simplemente suficiente para garantizar la seguridad de los protocolos de autenticación. De alguna manera confiesa (al afirmar que esto es cuestión de tecnicismo) que la definición de UC en este contexto es demasiado restrictiva y proporciona una variante relajada llamada oráculo de no información (que me confundió, porque no he visto este modelo de seguridad en ningún lado , No puedo hacer coincidir este patrón de seguridad con ningún otro patrón de seguridad, probablemente mi falta de conocimiento: D).

[Como nota al margen, casi puede hacer que cualquier protocolo Sk-secure se convierta en un protocolo UC seguro independientemente del tiempo del simulador. Por ejemplo, puede eliminar las firmas de los mensajes y hacer que el simulador simule todas las interacciones de manera ficticia. ¡Vea Intercambio de claves de grupo contributivo universalmente compostable para la prueba! Ahora supongamos que este es un protocolo de intercambio de claves grupales con muchas partes polinomiales, ¿cuál sería la eficiencia del simulador? Este es el origen de mi otra pregunta en este foro .]

De todos modos, debido a la falta de compromiso en el modelo simple (sobre UC), busqué otros medios para asegurar el protocolo simplemente evitando la necesidad de esa relajación. Esta idea es muy básica en mi mente y me viene a la mente al haber estudiado el último esquema de compromiso de canetti en el modelo simple: dureza adaptativa y seguridad composable en el modelo simple a partir de suposiciones estándar .
Por cierto, no busco pruebas de conocimiento cero porque debido a una razón que no sé, cada vez que alguien ha utilizado uno de ellos en un protocolo concurrente (sobre el marco de UC), los otros han mencionado el protocolo como ineficiente (puede ser debido al rebobinado del simulador).

Yasser Sobhdel
fuente
2
Puede echar un vistazo a esto: wisdom.weizmann.ac.il/~oded/gmw2.html . En ese documento, las partes deshonestas se ven obligadas a actuar con honestidad al demostrar (sin conocimiento) que siguieron el protocolo en el paso anterior.
MS Dousti
44
Creo que "forzar un comportamiento honesto" es una posible definición para la criptografía moderna (que es más que solo ocultar información). En ese caso, cada subárea de criptografía se puede considerar como un enfoque para esa pregunta.
Marc
Estaba a punto de escribir lo mismo que Marc. (Por cierto, las pruebas interactivas o incluso la definición de NP también se pueden ver como "forzar un comportamiento honesto" en el probador, aunque generalmente no se consideran como protocolos criptográficos). La pregunta es realmente amplia, y parece haber No existe una forma única para todos de imponer un comportamiento honesto en diversas situaciones.
Tsuyoshi Ito
1
¿Qué quiere decir exactamente con "pero simplemente no parecen resolver todo el problema?" ¿Podrías ser más específico?
Alon Rosen
@Sadeq: ¡Mira el último párrafo! @Marc & Tsuyoshi lto: Consulte la sección Editar. puede ayudar.
Yasser Sobhdel

Respuestas:

6

Por desgracia, no se puede obligar a las personas a hacer lo que el protocolo dice que deberían hacer.

Incluso las personas bien intencionadas que tenían la intención de seguir el protocolo ocasionalmente cometen errores.

Parece haber al menos 3 enfoques:

  • teoría de la criptografía: suponga que los agentes "buenos" siempre siguen el protocolo, mientras que los agentes "maliciosos" intentan subvertir el protocolo. Diseñe el protocolo criptográfico de modo que los buenos agentes obtengan lo que necesitan, mientras que los agentes maliciosos no obtienen nada.
  • teoría del juego: suponga que cada agente solo se preocupa por su propio interés individual. Utilice el diseño del mecanismo para maximizar el beneficio total para todos.
  • red distribuida tolerante a fallas: suponga que cada agente comete un error ocasional, y unos pocos agentes bot arrojan muchos mensajes maliciosos. Detecta y aísla los 'nodos bot hasta que se arreglen; use la detección y corrección de errores (EDAC) para corregir el error ocasional; use protocolos convergentes que eventualmente se asienten en un estado útil sin importar qué información errónea inicial esté almacenada en las tablas de enrutamiento.

diseño de mecanismos En la teoría de juegos, el diseño de una situación (como establecer las reglas de una subasta) de manera que las personas que buscan egoístamente solo sus propios intereses individuales terminen haciendo lo que el diseñador quiere que hagan, se llama "diseño de mecanismos" . En particular, utilizando la teoría de la implementación , las situaciones se pueden diseñar de tal manera que el resultado final maximice el beneficio total para todos, evitando situaciones mal diseñadas, como la "tragedia de los comunes" o el "dilema del prisionero" donde suceden cosas que no están en el camino de nadie. interés a largo plazo.

Algunos de los procesos más robustos están diseñados para ser compatibles con incentivos .

La teoría del juego suele suponer que todos los agentes relevantes son "racionales". En la teoría de juegos, "racional" significa que un agente prefiere algunos resultados a otros resultados, está dispuesto y puede cambiar sus acciones de la manera que espera (dada la información disponible para él) dará como resultado un resultado más preferido (el suyo propio interés propio estrecho), y es lo suficientemente inteligente como para darse cuenta de que otros agentes racionales actuarán de manera similar para tratar de obtener el resultado más preferido de todos los posibles resultados que podrían resultar de esa elección de acción.

Un diseñador puede hacer temporalmente la suposición simplificadora de que todas las personas solo actúan de acuerdo con su propio interés estrecho. Esa suposición facilita el diseño de una situación utilizando la teoría de implementación. Sin embargo, una vez finalizado el diseño, no importa si las personas actúan de acuerdo con su propio interés estrecho (" Homo economicus "), o si son altruistas y quieren maximizar el beneficio neto total para todos, en un situación bien diseñada, ambos tipos de personas toman exactamente las mismas decisiones y el resultado final maximiza el beneficio total para todos.

protocolos convergentes

Al diseñar un protocolo de enrutamiento , cada nodo en la red envía mensajes a sus vecinos para transmitir información sobre qué otros nodos son accesibles desde ese nodo.

Por desgracia, ocasionalmente estos mensajes tienen errores. Peor aún, a veces un nodo está mal configurado y arroja muchos mensajes engañosos y tal vez incluso maliciosos.

Aunque los humanos sabemos que el mensaje puede ser incorrecto, generalmente diseñamos el protocolo para que un nodo que funcione correctamente confíe en cada mensaje y almacene la información en su tabla de enrutamiento, y tome sus decisiones como si creyera que la información es completamente cierta.

Una vez que un humano apaga un nodo defectuoso (o lo desconecta de la red), generalmente diseñamos el protocolo para pasar rápidamente buena información para eliminar la información corrupta, y así converger rápidamente en un estado útil.

enfoques combinados

El diseño del mecanismo algorítmico parece intentar combinar el enfoque de red tolerante a fallas y el enfoque del mecanismo de teoría de juegos.

@Yoichi Hirai y Aaron, gracias por señalar algunos intentos interesantes de combinar la teoría de juegos y la criptografía.

David Cary
fuente
4

Joe Halpern tiene una diapositiva sobre ese tema. http://games2009.dimi.uniud.it/Halpern.pdf

Se trata de dar incentivos a las partes para que sigan un protocolo. Esos mecanismos requieren racionalidad de las partes y los argumentos se basan en la teoría de juegos.

yhirai
fuente
1
Aquí hay un documento relacionado para acompañar las diapositivas: theory.stanford.edu/~vteague/STOC04.pdf : este enfoque no "obliga" a las personas a seguir el protocolo, sino que trata de diseñar el protocolo para incentivar a las personas a querer para hacerlo Por supuesto, para hacer esto, debes hacer algunas suposiciones sobre lo que exactamente quieren hacer las personas que siguen el protocolo ...
Aaron Roth
si es posible, ¿podría explicar qué significa "racional" en este contexto? por ejemplo, ¿significa adherencia a un conjunto global subyacente de axiomas? ¿O significa que las partes involucradas comparten el mismo conjunto de axiomas subyacentes? la explicación anterior me parece absurda en cualquier escenario del mundo real, ya que las personas a menudo tienen motivaciones subyacentes muy diferentes y, por lo tanto, se puede esperar que traten los 'incentivos' de maneras muy diferentes.
s8soj3o289
@blackkettle: un jugador racional maximiza (la expectativa de) una función de utilidad. por la razón que señala, siempre es difícil encontrar los axiomas correctos que las empresas de servicios públicos deben satisfacer. pero siempre intentamos el conjunto mínimo de axiomas. cualquier buen libro de microeconomía entraría en detalles sobre este tema
Sasho Nikolov
@blackkettle: sobre el documento de Halpern: asume que las partes en el protocolo (de intercambio secreto) prefieren saber el secreto a no saberlo, y prefieren que menos que otras partes sepan el secreto. también la noción de equilibrio que usa es el equilibrio de Nash sobre estrategias no dominadas (es decir, un jugador no jugaría una estrategia si otra siempre es al menos tan buena; también, siempre y cuando otros jugadores no cambien sus estrategias y su estrategia actual sea no peor que cualquier otro, ella tampoco lo cambiaría).
Sasho Nikolov