¿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).
fuente
Respuestas:
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:
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.
fuente
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.
fuente