MÉTODO PARA LA OBTENCIÓN DE UN RESULTADO IMPARCIAL DE UN JUEGO A TRAVÉS DE UNA RED DE COMUNICACIÓN Y PROTOCOLOS Y
PROGRAMAS ASOCIADOS
Campo de la invención
La presente invención describe un método que permite garantizar que el resultado de un juego donde intervienen eventos del azar es honesto, y auditable entre un conjunto de n participantes o jugadores que interactúan directa o indirectamente entre sí a través de una red de comunicación como puede ser Internet, sin que sea necesaria una tercera parte de confianza para asegurar la honestidad y auditoria en dicho juego, y pudiendo ser uno de estos participantes un representante de una entidad de juego tipo casino. La presente invención se refiere al juego electrónico, y más precisamente a procesos y protocolos criptográficos, así como a programas informáticos para su implement ación, empleados para dotar a sistemas de juego electrónico, preferentemente remoto, de las medidas apropiadas de seguridad, honestidad y auditoria. A lo largo de esta memoria descriptiva se entenderá por proceso criptográfico cualquier conjunto ordenado de pasos de transformación de la información que incluya operaciones criptográficas. La expresión protocolo criptográfico se utilizará aquí para referir un proceso criptográfico realizado entre diversos participantes, que se intercambian información mediante cualquier sistema de comunicación de datos. Según una tal nomenclatura, el objetivo de la presente invención es proporcionar un método de juego electrónico incluyendo diversos protocolos criptográficos para conducir, de manera segura, honesta y auditable juegos, en especial aquellos que incluyen sucesos del azar, como pueden ser los de tipo casino, qué se realizan a través de redes de comunicación tales como Internet, redes de comunicación de datos inalámbricas, o cualquier otro tipo de red informática.
La exposición de esta invención contiene material que es susceptible de protección mediante Copyright. Los titulares de dicho Copyright no tienen objeción alguna respecto a la reproducción de la descripción de este documento de solicitud de patente tal como aparezca en su versión publicada o final en las Oficinas de Patentes por terceros, pero se reserva todos los derechos en cuanto a Copyright en otros aspectos derivables de dicho documento.
Antecedentes de la invención
Las redes de ordenadores, y sobre todo el sistema de redes interconectadas de alcance mundial que se conoce como Internet, han permitido que ciertas actividades comunes, como por ejemplo comprar, buscar información, o jugar se puedan realizar remotamente. La presente invención concierne al juego a través de medios electrónicos, en particular al juego remoto, ya sea para llevar a cabo los juegos de azar habituales en los casinos, con ruletas, dados, cartas, ruedas de máquinas de azar o de otros juegos de azar menos popularizados, jugados con un número finito de elementos.
Sin embargo, el juego remoto conlleva una serie de problemas que es necesario resolver para garantizar que el desarrollo del juego reúna las mismas condiciones de seguridad, honestidad y auditoria que el juego tradicional.
En un casino tradicional los jugadores pueden ver todas las acciones que realizan el resto de participantes, de forma que si detectan cualquier acción deshonesta lo pueden denunciar públicamente de inmediato. En el mundo digital la situación es mucho más compleja. Por ejemplo, en un casino tradicional cualquier jugador puede pedir una carta sin que el resto de participantes en el juego la pueda ver. En un casino online, sin embargo, si la red de comunicación es abierta y los datos que se transmiten no van cifrados, una tercera parte puede obtener la información intercambiada, e incluso llegar a alterarla. Por otra parte, en los países donde los jugadores que acceden al casino tradicional son registrados en la entrada, el proceso de registro de un jugador a la entrada del mismo es una cuestión privada entre dicho jugador y el casino. En un casino online, dicha privacidad podría ser violada si un posible intruso obtuviera acceso remoto a la base de datos de jugadores del casino.
Existe un amplio abanico de medidas de seguridad digital genéricas que pueden ser empleadas para aportar seguridad a un sistema de juego remoto. Sistemas cortafuegos, herramientas de monitorización y de registro de eventos, zonas desmilitarizadas, sistemas de detección de intrusos o sistemas de control de la integridad (anti-virus, anti-troyanos, etc.) pueden todos ellos emplearse para proteger los servidores de un casino online contra eventuales ataques externos a través de la red de comunicaciones. Redes Privadas Virtuales (VPN) pueden usarse para aportar seguridad a las transmisiones de datos entre diferentes nodos del sistema, si ello fuera necesario. Protocolos de cifrado de datos a nivel de transporte, tales como WTLS [WAP Forum, Wireless Transport Layer Security specification, Versión 06-Apr-2001, abril 2001], TLS [Dierks, T. y Alien, O The TLS protocol, versión 1.0. Request for Comments 2246, enero 1999],
o su predecesor SSL [Freier, A. O., Karlton, P. y Kocher, P.C. The SSL protocol, versión 3.0. Internet-Draft, noviembre 1996], pueden usarse para asegurar la autenticidad, integridad y confidencialidad de los datos intercambiados a través de la red entre los dispositivos usados por los jugadores y los servidores del casino online. Mecanismos de firma digital como el descrito en [Rivest, R.L., Shamir, A. Y Adleman, L.M. A method for obtaining digital signatures and public-key cryptosystems. Communications of the ACM, v. 21, n. 2, pages 120-126, 1978] proporcionan medios adicionales para asegurar, ante terceras partes, la autenticidad y el no repudio de algunos de los mensajes intercambiados. En lo que se refiere a la honestidad, un punto central a considerar es la reproducción del azar. En una partida convencional los jugadores pueden ver como gira la ruleta, o como se mezclan las cartas que van a repartirse. En el juego remoto, sin embargo, se deben generar los resultados del juego sin estos elementos presenciales. La forma más usual es mediante la generación de números pseudo aleatorios. Se genera un valor de forma pseudo aleatoria, y a partir de éste se obtiene el resultado del juego.
Idealmente, los valores pseudo aleatorios deberían ser generados de forma que nadie pudiera manipular el valor obtenido. Una forma de conseguir este objetivo es mediante la incorporación en el juego de un ente independiente merecedor de confianza, que recibe el nombre de tercera parte de confianza (Trusted Third Party) en adelante TTP. Usualmente, los casinos online ejercen de TTP y, simultáneamente, participan activamente en el juego.
El casino por tanto está en una situación privilegiada. Tal como se detalla en [Gam- bling Review Body, Department for Culture Media and Sport of Great Britain, chapter 13, page 167, htt : //ww . culture . gov . uk/role/ga bling_review . html, 17 de julio de 2001] el número de manipulaciones en el juego remoto es muy elevado. Los jugadores están en una situación de indefensión sin ningún tipo de certeza respecto la honestidad del juego, y sin poder verificar las acciones de los otros jugadores, ni las del casino.
Otra opción es la generación del valor de forma conjunta por todos los participante en el juego, mediante un protocolo criptográfico de juego. Los protocolos criptográficos de la presente invención garantizan que el valor obtenido no ha sido manipulado por ninguna parte, o en caso de manipulación garantizan una detección de la misma.
Para garantizar la honestidad del juego remoto diversos autores han propuesto protocolos criptográficos para juego en entornos virtuales (a menudo denominados protocolos para juego mental). Estos protocolos tienen como objetivo asegurar que si alguna de las partes no sigue las reglas del juego su actividad y/o origen será detectada y que
ninguna de las partes podrá situarse en una situación privilegiada respecto a las demás.
La mayoría de estos protocolos utilizan un protocolo de compromiso. Este concepto fue introducido por Blum en el año 1982 [Blum M., Coin flipping by telephone: a protocol for solving impossible problems, Proc. IEEE Computer Conference, pages 133-137, 5 IEEE, 1982]. Un protocolo de compromiso es un protocolo de dos fases, una fase de compromiso seguida de una fase de liberación del compromiso. Se puede ejemplificar de forma física dicho esquema de la forma siguiente: En la primera fase cada participante introduce una determinada información en una caja, la cual cierra con una llave y entrega dicha caja al resto de participantes. En la segunda fase entrega la llave que
10 permite abrir la caja y recuperar la información dentro de la caja inicial. La información se denomina comprometida porque no puede ser alterada por el propietario de la misma entre las fases primera y segunda.
Una visión general sobre el estado de la técnica en relación con los protocolos de compromiso se puede hallar en [Schneier B., Applied Cryptography: protocols, algorit-
15 hms, and source code in C, Second Edition, Wiley, 1996]. La mayoría de los protocolos criptográficos para juego propuestos se ocupan del caso del Poker, por ser uno de los juegos de azar más complejos desde el punto de vista de la teoría de la información. La primera propuesta [Shamir A., Rivest L., Adleman L., Mental Poker, Mathematical Gardner, pages 37-43, 1981] sólo sirve para dos jugadores, y el criptosistema conmuta-
20 tivo que utiliza puede desvelar información de las cartas al adversario. Este protocolo fue mejorado en [Goldwasser S., Micali S., Probabilistic Encryption and How to Play Mental Poker Keeping Secret all Partial Information, In Proc. of the 14th STOC, pages 365-377, 1982], pero su propuesta sigue sirviendo únicamente para dos jugadores. El protocolo de Fortune y Merritt citado anteriormente permite más de dos jugadores
25 pero requiere la presencia de una TTP, con los consiguientes problemas que esto conlleva. De hecho, la necesidad de una TTP suele considerarse en todas las propuestas de protocolos criptográficos del tipo citado como un requisito imprescindible, incluso en las más recientes como [Chou J-S., Yeh Y-S., Mental poker game based on a bit commitment scheme through network, Computer Networks, v. 38, pages 247-255, Elsevier,
30 2002]. Por otra parte, diversas propuestas como las de [Crepeau O, A Zero-Knowledge Poker Protocol that Achieves Confidentially of the Players or How to Achieve an Electronic Poker Face, Advances in Cryptology - Crypto '86, LCNS 263, pages 239-250, Springer-Verlag, 1986], [Kurosawa K., Katayama Y., Ogata W., Tsujii S., General Public Key Residue Cryptosystems and Mental Poker Protocols, Advances in Cryptology
35 - Eurocrypt '90, LCNS 473, pages 374-388, Springer-Verlag, 1990] y [Schindelhauer
O, A Toolbox for Mental Card Games, Medizinische Universitát Lübeck, 1998] deben considerarse como meras soluciones teóricas, ya que requieren de excesivo tiempo de cómputo para poder ser utilizadas en cualquier implantación práctica.
Además de la seguridad y de la honestidad del juego, el tercer aspecto fundamental a considerar es el de la auditoria del proceso de juego para resolver posibles disputas entre los mismos jugadores o entre éstos y el casino en cuanto a los resultados del juego.
En los casinos tradicionales existen mecanismos de grabación a distancia que permiten resolver dichas disputas revisando a posteriori el desarrollo del juego. En el caso de los casinos online, si no se adoptan las medidas apropiadas, pueden aparecer situaciones en las cuales por ejemplo el jugador gane y el casino no quiera pagar dichas ganancias, quedando el jugador sin ninguna prueba válida ante un tribunal o autoridad encargada de resolver la disputa para demostrar que ha sido víctima de un abuso por parte del casino.
En general, debería registrarse suficiente información sobre el desarrollo del juego para que un análisis posterior de la misma permita resolver cualquier disputa que se presente. Dicho registro debe garantizar que no sea posible añadir, eliminar o modificar ninguna entrada del juego sin que ello sea detectado. En caso contrario la parte que posea el registro podría alterarlo a su conveniencia cuando quisiera. Por otra parte, cada entrada en el registro debe contener una prueba de su autoría, para impedir que la parte que haya generado dicha entrada pueda repudiarla posteriormente.
Algunas invenciones previas presentan sistemas y/o métodos para juego remoto en una red de comunicaciones. Los ejemplos más remarcables son las invenciones descritas en US 4,926,327, Sidley J., Computerized Gaming System; US 4,958,835, Tashi- ro K., Okamoto S., Okamoto T., Game Playing System; US 5,038,022, Lucero J.L., Apparatus and Method for Providing Credits for Operating a Gaming Machine; US 6,196,920, Spaur C.W., Lappin E., Wisler J.M., On-line Game Playing with Adverti- sing; GB2307184, Arthur J., Gaming Network; US 5,755,621, Marks H.M., Singer A.M., Modified Poker Card/Tournament Game and Interactive Network Computer System for Implementing Same; US 5,823,879. Goldberg S.F., van Antwerp J., Network ga- ming system. Todas estas invenciones únicamente describen la operatividad del juego remoto, pero no hacen hincapié en los problemas de seguridad, honestidad y auditoria anteriormente mencionados.
Un segundo grupo, siendo ejemplos representativos US 6,106,396, Alcorn A.E., Bar- nett M., Giacalone Jr L.D., Levinthal A.E., Electronic Casino Gaming System with Improved Play Capacity, Authentication and Security; US 6,117,011, Lvov D.E.. Elec-
tronic Game System, Method of Managing and Regulating Said System; US 6,264,560.
Goldberg S. F., van Antwerp J., Method and System for Playing Games on a Network; y WO9811686, Evensen K., Troxel R., Wakai B.M., Booth M., Ninh L., Takata K., Combined Digital Audio/Video on Demand And Broadcast Distribution System, contemplan tan sólo la seguridad a nivel de red. Dichas invenciones cifran las comunicaciones entre las partes del juego únicamente para asegurar su privacidad, sin aportar ningún protocolo de juego para garantizar que el juego sea honesto. Tampoco definen ningún método para guardar la información que se genera durante el juego, de forma que en base a la misma se puedan generar pruebas inalterables de la ejecución de dicho juego. Esto no permite garantizar una auditoria honesta en caso de conflicto, puesto que las pruebas pueden haber sido alteradas fácilmente.
Las invenciones descritas en US 6,264,557, Schneier B., Walker J.S., Jorasch J.A., Method and Apparatus for Securing Electronic Games; y US 6,165,072, Benjamín D.S., Susan C.C., Apparatus and Process for Verifying Honest Gaming Transactions Over a Communications Network, contemplan la seguridad en las comunicaciones y la honestidad de algunos de los juegos. Ambas utilizan un protocolo de compromiso como base. En la primera invención uno de los protocolos de compromiso presentados utiliza un criptosistema simétrico. Cada jugador se compromete a un valor generado de forma pseudo aleatoria cifrando dicho valor con una clave de sesión de dicho criptosistema y enviando la información cifrada al resto de los participantes. Con el conjunto de los valores de los distintos jugadores el casino compone el resultado del juego. El problema de dicho protocolo de compromiso es que si un participante, en la citada segunda fase de liberación del compromiso, entrega una clave de sesión distinta a la utilizada en la fase de compromiso, el resto de participantes obtendrán un valor pseudo aleatorio dis- tinto al comprometido inicialmente, sin poder denunciar la manipulación. Realmente, el jugador no se compromete a un valor. En la invención de Benjamín y Susan se genera conjuntamente entre todos los participantes una semilla para un generador pseudo aleatorio. Con este generador se obtienen los resultados del juego. Para realizar el compromiso se utiliza una función irreversible, pero no detalla que sea libre de colisiones. Se entenderá que una función / es libre de colisión si es computacionalmente difícil hallar dos entradas diferentes, x y, que den lugar a una misma salida f(x) = f(y). Si el jugador puede hallar fácilmente varios valores diferentes que colisionen no se compromete realmente a un valor. Según le interese puede aportar uno o otro. Además, en ambas invenciones el casino está actuando como TTP, lo que conlleva los problemas comentados anteriormente.
En las dos invenciones citadas en último lugar se guardan los datos intercambiados entre los jugadores en un registro, y ambas incluyen la posibilidad que estos datos vayan firmados digitalmente. Esto garantiza que no se puedan repudiar ni modificar entradas del registro pero no impide que se puedan añadir o eliminar entradas.
Breve exposición de la invención
La presente invención describe un método y protocolos asociados para la obtención de un resultado imparcial de un juego a través de una red de comunicación, mediante medios de computación y/o programas informáticos.
Un primer objetivo de la presente invención es aportar un método para la obtención de un resultado de un juego a través de una red de comunicación de forma honesta, segura y auditable, sin la necesidad de que una tercera parte de confianza gestione el juego y garantice las propiedades mencionadas.
La presente invención se centra principalmente, pero no de forma exclusiva, en los juegos de azar más conocidos, usuales en los casinos, sin embargo también es posible su utilización en juegos de azar menos conocidos, dada la menor difusión de sus reglas, o que provienen de otros entornos o culturas.
La presente invención divide los juegos de azar en varios grupos, dado que cada juego tiene unas reglas de funcionamiento específicas, y por consiguiente unas necesidades diferentes, si bien en todos ellos se aplican unos principios comunes. Concretamente se establecen tres grupos: juegos de tirada, juegos de cartas descubiertas, y juegos de cartas tapadas.
En el primer grupo el resultado del juego se basa en la obtención de un valor o conjunto de valores al azar, comunes a todos los participantes en el juego. La ruleta o los dados son ejemplos característicos de juegos basados en la obtención de un único valor; el bingo o el keno son ejemplos característicos de juegos basados en la obtención de varios valores.
El segundo grupo se refiere a los juegos de azar en los que cada jugador obtiene en propiedad varios valores de forma abierta. Los juegos de cartas descubiertas son los más conocidos de este grupo, y por este motivo dicho grupo recibe el nombre de juegos de cartas descubiertas. El Black Jack es un ejemplo significativo de este grupo.
El tercer grupo es el más complejo pues en el mismo cada participante obtiene en propiedad una o varias cartas de forma que únicamente dicho participante conoce su valor. Un ejemplo representativo de este grupo es el Poker.
Es otro objetivo de la presente invención superar las limitaciones y los inconvenientes prácticos de los trabajos previos en protocolos criptográficos de juegos de cartas tapadas que no utilizan una tercera parte de confianza, y alcanzar un mismo nivel de honestidad que en el juego convencional. Es otro objetivo de la presente invención describir mecanismos que permitan la auditoria del juego, garantizando que cada participante pueda demostrar a una tercera parte las acciones ocurridas durante el juego. A tal efecto, cada operación del protocolo criptográfico pasa a ser un eslabón de una cadena de información. Dicha cadena recibe el nombre de cadena resumen distribuida no repudiable, en adelante cadena CDNE, o cadena resumen en las reivindicaciones. Cuando un participante construye un eslabón de la cadena CDNE lo comunica al resto de participantes y por consiguiente todos ellos disponen de la misma cadena CDNE. Los eslabones van firmados digitalmente. La firma digital garantiza la autenticidad, integridad, y no repudio de cada eslabón. Solo se puede añadir un eslabón al final de la cadena, y ningún participante puede modificar, o eliminar un eslabón. La cadena es eficiente porqué permite que los participantes en el juego puedan realizar cálculos de forma paralela.
Es otro objetivo de la presente invención describir un protocolo de compromiso robusto alternativo a los ya existentes. El protocolo de compromiso tiene los pasos siguientes. La parte que se compromete a un cierto valor Rl dispone de un par de claves asimétricas. Dicha parte genera un valor R2 de forma pseudo aleatoria y añade cierta redundancia a Rl, de forma que se obtiene R3. Cifra R3 con el componente privado del par de claves asimétricas de que dispone, y cifra R2 con el componente público, obteniendo el compromiso Cp realizando un or exclusivo de los valores cifrados. Para deshacer el compromiso y verificarlo, revela R2. El verificador cifra R2 con la clave pública de la parte que se compromete, y calcula el or exclusivo con Cp. Cifra el resultado obtenido con la clave pública de la parte que se compromete obteniendo R3. Si R3 tiene la redundancia esperada, el compromiso es válido.
En el método de juego remoto descrito en la presente invención participa un conjunto de n jugadores o partes, siendo n al menos dos, estando dotadas cada una de las partes de un conjunto de programas denominado Agente del jugador, y de una Plataforma de juego o dispositivo con capacidad computacional suficiente para ejecutar dicho conjunto de programas. El método en general se ha concebido para que se puedan desarrollar juegos de tipo casino, pudiendo participar un gran número de jugadores y una entidad de juego central (tal como un casino), si bien también es factible implementar dicho método y protocolos asociados entre un grupo de jugadores sin la
colaboración de dicha entidad central o casino.
En la presente descripción de la invención se entenderá por jugador i el conjunto formado por el propio jugador i que inicia el proceso y el componente software o hardware que implementa los protocolos criptográficos de juego más la plataforma de juego del jugador i. Por consiguiente, las acciones que en la descripción se indica que realiza el jugador i realmente son realizadas por el software que implementa el método y la plataforma del jugador i. Se ha utilizado esta convención para facilitar la comprensión del método.
Dicho método de juego remoto descrito comprende por lo general algunos de los elementos siguientes: cartas, caras de uno o varios dados, números de una o varias ruletas y las figuras de una o varias ruedas de una máquina de azar de monedas, o sus representaciones similares. Como paso previo al juego, y aplicable a todas sus variantes ejemplificadas en la invención, se realiza una identificación de los distintos elementos del juego. Dicha identificación permite establecer una ordenación de los elementos, y por consiguiente hacer corresponder a cada elemento un número natural entre 1 y í. Una vez iniciado el juego cada jugador obtiene una permutación arbitraria de los t elementos del juego. El jugador mantiene dicha permutación en secreto, y se compromete a ella aplicando un protocolo de compromiso que envía al resto de participantes en el juego. El resultado del juego se obtiene operando al menos parte de dichas permutaciones secretas de dichos n jugadores.
Antes de obtener el resultado se establece una ordenación de las permutaciones de dichos n jugadores, basada en un determinado criterio tal como el orden de entrada de dichos jugadores en el juego. Esta ordenación se utilizará para componer las permutaciones y calcular el resultado del juego. La ordenación de las permutaciones permite establecer un orden entre los jugadores, asignando a cada uno de ellos un número natural entre 1 y n.
Inicialmente se determina al menos un valor tu. Este valor puede ser elegido por los jugadores, o ser prefijado por las reglas del juego. Las reglas del juego pueden definir explícitamente los valores w a utilizar, o que los jugadores elijan de forma conjunta dichos valores w. Dicho valor w se opera con al menos las permutaciones de los jugadores que no han intervenido en su elección, y con todas ellas si el valor ha sido prefijado, obteniendo al menos un valor p. El valor p es un elemento del juego que formará parte del resultado final de dicho juego. Los jugadores pueden verificar la correcta y honesta obtención de dicho valor p. Un jugador i de los n citados obtiene un elemento del juego p, es decir una carta, en
los juegos de cartas descubiertas mediante la ejecución del siguiente protocolo de juego.
En primer lugar se determina un valor w y se hace público. Dicho valor w se establece mediante cualquiera de las opciones descritas previamente. En la implementación preferida el jugador i genera un valor w de forma pseudo aleatoria que pertenece al rango de elementos del juego, y que no ha sido seleccionado anteriormente por ningún otro jugador. El jugador i envía w al primer jugador, según el orden preestablecido.
El primer jugador opera dicho valor w con su permutación secreta, y a la cual se ha comprometido, obteniendo un valor permutado que envía o hace accesible al siguiente jugador. Cada jugador entre 2 y n, después de recibir o acceder al valor permutado del jugador anterior, lo opera con su permutación secreta obteniendo un nuevo valor permutado que envía al siguiente jugador. El valor permutado obtenido por el último jugador n corresponde a dicho elemento del juego p, que envía al jugador i.
El valor p, según la ordenación inicial, corresponde a la carta de la baraja pedida por el jugador i. Este proceso se repite hasta que cada jugador dispone de todas las cartas necesarias para el desarrollo del juego. A partir de las cartas obtenidas por cada jugador y las reglas del juego se determina el ganador del juego. En el proceso intervienen únicamente los participantes del juego, que actúan por igual en el protocolo criptográfico, sin necesidad de una tercera parte de confianza. Con ello se consigue garantizar la honestidad del proceso, porque cada uno de los jugadores está en igualdad de condiciones, y puede probar cualquier alteración o acción deshonesta en el juego.
En el protocolo criptográfico de juego desarrollado para el grupo de juegos de cartas tapadas, el jugador i obtiene un valor p correspondiente a una carta a través de los pasos siguientes. En primer lugar se determina un valor w y se hace público. Dicho valor w se establece mediante cualquiera de las opciones descritas previamente. En la implementación preferida el jugador i genera un valor w de forma pseudo aleatoria que pertenece al rango de elementos del juego, y que no ha sido seleccionado anteriormente por ningún otro jugador. El jugador i envía w al primer jugador, según el orden preestablecido. El primer jugador opera dicho valor w con su permutación secreta, y a la cual se ha comprometido, obteniendo un valor permutado que envía al siguiente jugador. Cada jugador entre 2 y . — 1, después de recibir el valor permutado del jugador anterior, lo opera con su permutación secreta obteniendo un nuevo valor permutado que envía al siguiente jugador. El jugador i recibe del jugador . — 1 el valor permutado y lo opera con su permutación secreta. A continuación protege el valor permutado ocultando su contenido con un sistema que permita operar con valores protegidos, y lo envía al siguiente jugador. El resto de jugadores, de i + 1 hasta n, después de recibir
el valor permutado protegido del jugador anterior lo operan con su permutación secreta generando un nuevo valor permutado protegido, y envían el resultado al siguiente jugador. Este paso se repite hasta el jugador n, quien envía el nuevo valor permutado protegido al jugador i. El jugador i desprotege el valor permutado protegido recibido del jugador n obteniendo un valor p. Dicho valor p corresponde a una carta de la baraja según la ordenación establecida inicialmente. La carta obtenida por el jugador i es una componente del resultado.
Este proceso se repite hasta que cada jugador dispone de todas las cartas necesarias para el desarrollo del juego. A partir de las cartas obtenidas por cada jugador y las reglas y operativa del juego se determina el ganador del juego y el pago de las apuestas realizadas con anterioridad o durante el desarrollo del juego. Como en el caso anterior todos los jugadores participan por igual en el protocolo de juego, redundando ello en la honestidad del mismo. El protocolo criptográfico de juego presentado para el grupo de juegos de tirada consta de los pasos siguientes. En primer lugar se determina un valor w y se hace público. Dicho valor w se establece mediante cualquiera de las opciones descritas previamente. En el caso de los juegos como el bingo, keno o similares no se determina un único valor, sino los valores necesarios para el desarrollo del juego. Todos los jugadores generan una permutación secreta y se comprometen a ella mediante un protocolo de compromiso que comunican al resto de jugadores. Una vez todos los jugadores disponen de los compromisos del resto de jugadores revelan los datos necesarios para comprobar el protocolo de compromiso, y obtienen o calculan dicha permutación de cada jugador. Con la composición de las permutaciones de dichos jugadores en el orden establecido se halla la permutación resultado. Se aplica el valor w a dicha permutación resultado obteniendo un valor p. El valor p corresponde a un resultado del juego según la ordenación establecida inicialmente. En el caso de los juegos de tipo bingo, keno o similares el proceso se repite con el resto de valores w mencionados, hasta obtener todos los valores p necesarios para determinar el resultado del juego.
En resumen, la presente invención describe un método honesto, auditable y seguro de juego electrónico y los protocolos criptográficos de juego para garantizar dichas propiedades. La invención permite que el juego electrónico a través de una red de comunicaciones alcance niveles de honestidad, auditoria y seguridad similares a los que se dan en el juego físico, sin necesidad de una tercera parte de confianza.
Otros aspectos y detalles de la invención aparecen referidos en la exposición detallada de la misma con ayuda de figuras.
Breve descripción de las figuras
En la Figura 1 una pluralidad de jugadores 101 mediante un agente del jugador 103 que se ejecuta en un plataforma de juego 105, establecen una conexión 107 a una red de comunicación 109, y juegan de forma remota.
En la Figura 2 se puede apreciar un ejemplo de cadena CDNE. El resumen encadenado del eslabón 203 se construye a partir del resumen encadenado del eslabón anterior 201, y de los datos del eslabón 203. Los eslabones 207 son una expansión de la cadena CDNE. El resumen encadenado de cada eslabón 207 se calcula a partir del resumen encadenado del eslabón 205, y de los datos de dicho eslabón 207. El eslabón 211 es una contracción de la cadena. El resumen encadenado del eslabón 211 se realiza a partir de los resúmenes de los eslabones 209, y de los datos del eslabón 211.
La Figura 3 muestra los pasos del protocolo criptográfico de juego con cartas ta- padas. En el paso 301 el jugador J
t pide a Ji la carta que corresponde a la posición w. {Ji, . . . , Jj} realizan el paso 303. En dicho paso cada jugador una vez ha recibido el valor uι
3 del jugador anterior aplica su permutación secreta a w
3 , y envía el resultado obtenido
al siguiente jugador. J no envía w
l a J+i, sino que realiza el paso 305. En dicho paso 305 J
% protege el elemento del juego w
t, obteniendo w
l que es enviado a J
l+χ. En el paso 307 J
l+ι aplica su permutación secreta al valor protegido w
τ, y envía w
i+1 a J
l+ι. El paso 307 se repite hasta el jugador J
n, quien envía w
n a J
%. En el paso 309 Ji desprotege w
n, y obtiene el elemento del resultado del juego deseado w
n, indicado en las reivindicaciones como valor p.
En la Figura 4 se puede ver de forma gráfica los pasos del protocolo criptográfico de juego con cartas destapadas. En el paso 401 el jugador J% pide la carta que corresponde a la posición w. En el paso 403 el jugador J! aplica su permutación secreta a dicho elemento del juego w, y envía el resultado obtenido W al siguiente jugador. El proceso 403 se repite hasta llegar a Jn que envía wn a J. ιυn es un elemento del resultado del juego deseado, indicado en las reivindicaciones como valor p. La Figura 5 muestra una visión general de los pasos del protocolo criptográfico de juego de tirada. En el paso 501 el jugador J se compromete a una permutación secreta y a un valor, enviando el compromiso al resto de jugadores. En el paso 503 los jugadores se comprometen a una permutación secreta, y envían dicho compromiso al resto de jugadores. En el paso 505 los jugadores muestran la información comprometida. En el
paso 507 cada jugador verifica el protocolo de compromiso del resto de participantes en el juego, y calcula el elemento resultado del juego de azar p .
Descripción detallada de la invención
En la Figura 1 se puede apreciar una pluralidad de jugadores 101 dotados cada 5 uno de ellos de un componente software denominado Agente del jugador 103 y de una Plataforma de juego 105 con capacidad computacional suficiente para ejecutar dicho Agente del jugador 103, todos ellos jugando de forma remota por medio de una conexión 107 a una red de comunicación 109. El Agente del jugador 103, puede ser una aplicación con capacidad de conexión remota segura, o un Plug-In en el navegador del jugador
10 101. La Plataforma de Juego 105, es un dispositivo que permite la ejecución del Agente del Jugador 103, y que dispone de capacidad de conexión a una red de comunicación 109. Dicha Plataforma de Juego 105 puede ser por ejemplo un ordenador personal, un asistente digital personal, o un terminal de telefonía móvil. La red de comunicación 109 puede ser Internet, redes de comunicación de datos inalámbricas, o cualquier otro
15 tipo de red informática. La conexión 107 a la red de comunicación puede ser física, o inalámbrica.
En la descripción de los protocolos criptográficos de la presente invención se ha utilizado la notación siguiente: m J¿: El jugador 101 i-ésimo.
20 « H{m}: Mensaje resumen de m, obtenido mediante una función hash unidireccional y libre de colisiones.
» mι|m : Concatenación de los mensajes vti\ y m2.
" Pentid d, Sentid d- Pareja de claves asimétricas de entidad, correspondiendo Pentidad a la componente pública, y Senudad a la componente privada.
25 " Sentidad {TΠ}: Cifrado del mensaje m, realizado con la clave asimétrica privada de entidad.
" P
enti
dad{ }-' Cifrado del mensaje m, creado con la clave asimétrica pública de entidad. S
eniidad (^)
: Firma digital del mensaje m. Entendiendo la firma digital como el 30 cálculo del resumen del mensaje m mediante una función hash, y el cifrado de este resumen con la clave asimétrica privada de entidad.
m K
enti
dad'- Clave simétrica secreta de entidad. m
Cifrado del mensaje m creado con la clave simétrica de entidad.
m Dκ
entidad{c}: Descifrado del mensaje c obtenido con la clave simétrica de entidad.
Para el desarrollo de los juegos de azar es necesario la utilización de una serie de elementos, por ejemplo las caras de unos dados, las cartas de una baraja, etc. En el mundo digital no se disponen de estos elementos físicos, sino de su representación. Una representación típica podría ser un número natural. Antes de iniciar el juego es necesario ordenar dichos elementos del juego según un determinado criterio, de manera que cada elemento puede identificarse de forma única por un número natural entre 1 y t. En la descripción de los protocolos se establece una ordenación de los jugadores 101 según un determinado criterio tal como el orden de entrada en el juego, y se identifica a cada jugador 101 por un número natural entre 1 y n.
Para que los jugadores 101 puedan demostrar a una tercera parte que el juego ha sido honesto la presente invención utiliza preferentemente una forma especial de cade- ñas resumen, que reciben el nombre de cadenas resumen distribuidas no repudiables calculadas de forma eficiente (de forma abreviada CDNE). Cada mensaje que se intercambian los jugadores 101 es un eslabón de una cadena CDNE. Las propiedades de este tipo de cadena garantizan que la información que los jugadores 101 se intercambian durante el juego no pueda ser alterada posteriormente sin que dicha modificación sea detectada. Entendiendo una modificación como la eliminación, inclusión o alteración de los datos enviados por un participante en el juego.
El concepto de cadenas resumen (cadenas hash) fue introducido en [Lamport L., Password Authentication with Insecure Communications, Communications of the ACM, v. 24, pages 770-771, 1981]. En su propuesta las cadenas resumen se utilizaban para autenticar a un usuario. Las cadenas resumen secuenciales son una herramienta ampliamente utilizada.
Las cadenas resumen CDNE propuestas en la presente invención tienen la particularidad que se calculan de forma eficiente. En los puntos en que se pueden realizar cálculos de forma paralela la cadena se expande. Cada jugador 101 construye su eslabón utilizando el resumen encadenado del eslabón a partir del que se expande la cadena. En el momento en que el protocolo vuelve a exigir la ejecución secuencial se realiza una contracción de la cadena. Dicha contracción consiste en crear un nuevo eslabón de la cadena a partir del resumen encadenado del último eslabón expandido de cada jugador 101.
Las cadenas CDNE tienen las propiedades siguientes:
" Ningún participante en la construcción de la cadena puede añadir eslabones erróneos o falsos sin que esta acción sea detectada por el resto de participantes.
» En el caso de que alguien elimine uno o más eslabones, la cadena mostrará una inconsistencia en el punto de eliminación.
» Si se modifica un eslabón de la cadena ésta queda inconsistente, y la modificación será fácilmente detectable.
» Los eslabones de la cadena permiten saber el momento exacto y el orden en que se calcularon.
» Los eslabones de la cadena incorporan pruebas sobre la autoría de cada uno de ellos, es decir, que la entidad que ha proporcionado el eslabón de la cadena es la única que lo ha podido generar.
» El cálculo de los eslabones de la cadena se realiza en paralelo cuando el proto- coló lo permite. Esta medida mejora su eficiencia manteniendo las propiedades anteriores.
La construcción de las cadenas CDNE se realiza del siguiente modo: Cada eslabón πik de la cadena está formado por dos campos, el primer campo contiene los datos (£)&) y el segundo campo contiene el resumen encadenado (X¡¡)-'
mk = Dk, Xk (1)
El campo de datos Dk típicamente tiene la estructura siguiente: el instante de tiempo (_" &), concepto relacionado (Ck) con el eslabón y valores o atributos adicionales (Vk).
El instante de tiempo, Tk, se refiere al instante de tiempo según el reloj del participante que genera el eslabón. No es necesario que los relojes de los participantes estén sincronizados.
El concepto, Ck, describe la información que contiene el eslabón. Cada eslabón puede ser, por ejemplo, un paso del protocolo de juego, un compromiso, o el resultado del juego. En cada caso el concepto detalla el tipo de eslabón. Los atributos adicionales Vk varían según el concepto. Por ejemplo, en el caso de que el eslabón contenga el
resultado de un protocolo de compromiso, el atributo contendrá la transformación del elemento comprometido:
Dk = Tk, Ck, Vk (2)
El resumen encadenado del eslabón Xk se construye en tres fases: En primer lugar se concatena el resumen encadenado del eslabón anterior Xk-\ con los datos del mensaje actual Dk. A continuación se calcula el resumen del conjunto concatenado. Finalmente se firma digitalmente dicho resumen con la clave privada del autor del eslabón:
Xk = SJt (Dk\Xk-ι) (3)
En la Figura 2 se puede ver un ejemplo gráfico de la descripción anterior. El resumen encadenado del eslabón 203 se construye a partir de los datos del eslabón 203, Dk, y del resumen encadenado del eslabón 201, Xk-\.
Cada participante en la construcción de la cadena normalmente tendrá una potencia de cálculo diferente. Si la construcción es secuencial, el tiempo total para la ejecución de un paso del protocolo será la suma de todos los tiempos individuales. En el caso de una ejecución en paralelo, el tiempo será igual al tiempo de la plataforma más lenta. En la expresión 4 se muestra una expansión de la cadena. Dicha expansión consiste en que todos los participantes en el protocolo {Ji, . . . , Jn} calculan su resumen encadenado de forma independiente utilizando el resumen encadenado del eslabón anterior Xk-χ.
X = Sj ' r Jn \X kι,-1 . (4)
Como se ve en la Figura 2 los eslabones 207 se construyen en paralelo. El resumen encadenado de cada eslabón 207 se construye con los datos de dicho eslabón 207 más el resumen encadenado del eslabón 205 anterior. En la expresión 5, se muestra la contracción de la cadena. Este es el proceso inverso de la expansión, y se produce cuando el protocolo exige de nuevo una ejecución secuencial después de una fase de ejecución en paralelo. Se obtiene un único eslabón que está vinculado a los eslabones anteriores. El participante en el juego que inicia el proceso secuencial concatena los datos Dk, con todos los resúmenes encadenados de los eslabones anteriores {N/ii] . . . |Nfc"ι}, calcula el resumen de este mensaje concatenado y firma digitalmente dicho resumen:
Como se ve gráficamente en la Figura 2, la cadena del eslabón 211 está formada por los datos de dicho eslabón 211, más los resúmenes encadenados de los eslabones 209.
La cadena CDNE impide que posteriormente un jugador 101 pueda añadir, eliminar o modificar cualquier eslabón en su beneficio, sin que el resto de jugadores detecten con la verificación dicha modificación.
En efecto, eliminar uno o varios eslabones conlleva que la cadena quede inconsistente. Cualquier parte puede comprobar que existe una pieza que no está bien construida, verificando la construcción de la cadena. Esta inconsistencia de la cadena recibe el nombre de punto de ruptura. El jugador 101 deshonesto debería ser capaz de rehacer la cadena para evitar ser detectado. Pero para ello necesitaría la clave privada del resto de participantes que han colaborado en el proceso de construcción.
Por tanto, eliminar un eslabón sin que se detecte la alteración equivale a hallar la clave secreta de los jugadores a partir del componente público. Operación que se supone de extrema dificultad. En el caso que se modifiquen los datos de un eslabón, el resumen encadenado correspondiente no coincidirá. Esto permite detectar fácilmente la modificación en el momento de verificar el eslabón. Evitar la detección de la modificación supone, como en el caso anterior, rehacer la cadena y por consiguiente tener acceso a la clave secreta del resto de participantes. El mismo grado de dificultad se obtiene para el caso de intentar añadir una entrada sin que se detecte la manipulación.
La cadena CDNE no está en posesión de una única parte, sino de todos los participantes en el juego. Cuando un jugador 101 genera un eslabón nuevo lo envía al resto de los participantes. Todos los participantes tienen la cadena CDNE, y con ella pueden demostrar a una tercera parte que la ejecución del juego ha sido honesta. En el supuesto caso que un jugador 101 manipule la cadena ésta será diferente del resto.
Cuando muestre su cadena no coincidirá con el resto, y se detectará la manipulación.
Se puede concluir que los eslabones de la cadena no se pueden alterar una vez creados.
Una herramienta utilizada frecuentemente en los protocolos de juego remoto es el protocolo de compromiso. Un protocolo de compromiso es un protocolo criptográfico que permite a un participante A comprometerse a un valor (ya sea un bit o una cadena de ellos), frente a otro participante B de modo que:
_ B no puede conocer el valor comprometido por A a partir del compromiso.
_ A puede descubrir el compromiso revelando a B el valor comprometido.
m Dado un compromiso, A no puede engañar a B revelando un valor distinto del valor comprometido en dicho compromiso.
El primer protocolo de compromiso (para un solo bit) fue presentado en [Blum M., Coin flipping by telephone: a protocol for solving impossible problems, Proc. IEEE Computer Conference, pages 133-137, 1982]. Una visión general sobre los diferentes protocolos de compromiso propuestos se pueden encontrar en [Schneier B., Applied Cryptography Second Edition: Protocols, Algorithms, and Source Code in C, John Wiley & Sons, 1996].
Los protocolos de compromiso más eficientes en tiempo de cálculo son los basados en funciones resumen. Estas funciones idealmente deben cumplir los requisitos que se detallan en [Menezes A., Van Oorschot P.C., Vanstone S.A., Handbook of Applied
Cryptography, pages 323-331, CRC Press, 1996]. Pero algunas de las funciones resumen utilizadas son débiles contra colisiones, como se describe en [Van Rompay B., Preneel
B., Vandewalle J., On security of dedicated hash functions, 19th Symp. On Information Theory in the Benelux, pages 103-110, 1998], y [Preneel B., The state of cryptographic hash functions, Lectures on Data Security: Modern Cryptology in Theory and Practice,
LNCS 1561, pages 158-182, Springer-Verlag, 1999]. La fortaleza de la mayoría de estas funciones se demuestra mediante pruebas empíricas. Esto origina que no se disponga de una completa certeza sobre su seguridad. Otro factor a considerar es la posibilidad de repudiar el compromiso realizado. Para que el compromiso no sea repudiable debe incorporar la firma digital de la parte que se compromete.
En la presente invención se aporta un compromiso robusto que incorpora el no repudio y cumple los requisitos de fortaleza mencionados anteriormente. De esta forma se superan las debilidades, ya mencionadas, presentes en los protocolos de compromiso de las invenciones US 6,264,557, y US 6,165,072.
El protocolo de compromiso presentado es una evolución de una propuesta de [Ja- kobsson M., Sako K., Impagliazzo R., Designated Verifier Proofs and Their Applica- tions,Theory and Application of Cryptographic Techniques, pages 143-154, 1996] en un campo de la criptografía ajeno al considerado en la presente invención como es la construcción de protocolos de conocimiento nulo no interactivos.
En el presente caso el compromiso se obtiene a partir de los componentes público y privado del único jugador (denotado por A), que se compromete:
El jugador A dispone de un par de claves asimétricas (PA, SA), siendo PA el com- ponente público y SA el privado que es mantenido en secreto por A. El componente
público está debidamente certificado por una Autoridad de Certificación, y es accesible para el resto de participantes en el protocolo.
El jugador A genera de forma secreta los valores siguientes:
« Rl: Valor secreto al que se compromete el jugador 101.
» R2: Valor pseudo aleatorio secreto de longitud k.
Siendo Id el identificador del jugador A, éste concatena su identificador con el valor Rl: R3 = Id\Rl. A continuación cifra con su clave privada la cadena R3, ιSU{R }, y con su clave pública el valor R2, PA{R2}. El compromiso de bit será la operación or exclusiva bit a bit de los dos criptogramas anteriores, obteniendo el compromiso Cp, que es enviado a otro jugador 101 o resto de jugadores 101 (denotados por B):
Cp = SA{R3} Θ PA{R2}. (6)
Para deshacer el compromiso A revela el valor R2 y B realiza las operaciones siguientes:
» Cifra el valor R2 con la clave pública de A, PA{R2}.
' Obtiene la firma sobre el valor comprometido, calculando la or exclusiva bit a bit del compromiso Cp, con R4{R2}, SA{R3} = Cp φ PA{R2}-
Con la clave pública de A obtiene R3, R3 = PA{SA{R3}}.
B comprueba que R3 contiene el identificador del jugador A, R3 = Id\Rl. En el caso que R3 no contenga el Id correcto el compromiso no es válido.
» Si Id es el correcto B obtiene el valor comprometido Rl, con la certeza que únicamente ha podido ser comprometido por A.
La operación de obtención del valor Cp descrita en 6, debido al tamaño del valor R2 y al uso de la operación or exclusiva bit a bit y a la inclusión del identificador Id del jugador 101 que realiza el compromiso, cumple las dos características siguientes:
No invertible: Una función es no invertible o irreversible cuando a partir de la salida no se pueden hallar los valores de entrada.
» Libre de colisiones: Una función f(x) es libre de colisiones si es computacionalmente imposible hallar varios valores {fe, . . . , fe}, tales que /(fe) = /(fe) —
A continuación se presenta el protocolo criptográfico de juego para los juegos de cartas tapadas. En dichos juegos el participante que pide una carta o un conjunto de cartas es el único que conoce su valor. En los antecedentes de la invención este problema recibe el nombre de Mental Poker. El primer protocolo para jugar al poker de forma remota, sin la ayuda de una tercera parte de confianza (Trusted Third Party- TTP) fue el presentado en [Shamir A., Rivest R., Adleman L., Mental Poker, Mathematical
Gardner, pages 37-43, 1981]. Este protocolo se basa en un criptosistema conmutativo, pero el criptosistema presentado revela cierta información, como se detalla en [Cop- persmith D., Cheating at mental poker. In Crypto '85, LCNS 218, pages 104-107, Springer-Verlag, 1986], y solo permite que el juego tenga dos participantes. Posteriormente el protocolo de [Goldwasser S., Micali S., Probabilistic encryption and how to play mental poker keeping secret all partial Information, In Proceedings of the 14th STOC, pages 365-377, 1982] garantiza un juego honesto, pero una vez más con solo dos jugadores. La propuesta de [Banary I., Furedi Z., Mental poker with three or more pla- yers, Technical report, Mathematical Institute of the Hungarian Academy of Sciences, 1983] no utiliza primitivas criptográficas para garantizar un juego honesto, pero si dos jugadores 101 se confabulan pueden saber las cartas del resto de participantes. Esta propuesta es la primera en proponer la utilización de permutaciones y la composición de éstas para barajar las cartas. En el protocolo presentado en [Fortune S., Merritt M., Poker protocols, In Crypto '84, LCNS 196, pages 454-466, Springer-Verlag, 1985] pueden jugar más de dos jugadores simultáneamente, pero en un estadio inicial se requiere una TTP, con los consiguientes problemas que conlleva. Posteriormente [Crepeau O, A zero-knowledge poker protocol that achieves confidenciality of the player's strategy or how to achive an electronic poker face, In Crypto '86, LCNS 263, pages 239-250, Springer Verlag, 1986] presenta un protocolo de juego que resuelve los problemas del juego remoto. El protocolo se basa en la utilización de permutaciones y de protocolos específicos con un alto coste computacional y elevada complejidad de implementación. Estas dos limitaciones no hacen posible que sea factible la utilización de este protocolo en un casino online real. En el protocolo de la presente invención la mezcla de los elementos del juego, es decir el proceso de barajar las cartas, se realiza sin la participación de ninguna TTP. Las cartas son barajadas con la colaboración de todos los participantes en el juego. De esta forma se asegura que en el proceso ningún jugador 101, o coalición de ellos, pueda forzar la componente del resultado final, es decir, el valor final de la carta obtenida. Cada jugador 101 genera una permutación de las cartas de la baraja al azar que mantiene
en secreto y se compromete a ella mediante un protocolo de compromiso. La baraja de cartas barajada está formada por la composición de las permutaciones de todos los jugadores 101.
Un jugador i pide una carta a partir de un valor w. Dicho valor w puede ser elegido por los jugadores, o ser prefijado por las reglas del juego. Las reglas del juego pueden definir explícitamente los valores w a utilizar, o que sean elegidos de forma conjunta por los jugadores.
El primer jugador, según el orden establecido, aplica su permutación a ui y envía el resultado al siguiente jugador. Cada jugador 101, en el orden establecido, aplica su permutación al valor recibido del jugador 101 anterior. La utilización de permutaciones asegura la unicidad de las cartas. Pero también es necesario que el propietario de la carta sea el único que conozca su valor. Para ello el jugador i protege la carta, o preferiblemente la cifra con su clave secreta.
Cada uno de los restantes participantes aplica sus permutaciones a los valores cifra- dos. Al final el jugador i destapa la carta y solo él conoce su valor. Para poder aplicar una permutación a un valor cifrado es necesario representar los valores y las permutaciones de forma que se pueda operar con ellas. Dichas representaciones se describen más adelante. Los criptosistemas que permiten operar con datos cifrados reciben el nombre de criptosistemas homomórficos u homomorfismos de privacidad. A priori el protocolo de juego de esta invención se puede desarrollar con cualquier homomorfismo de privacidad que preserve las operaciones de suma y producto, siendo dos ejemplos característicos los propuestos en [Domingo- Ferrer J., A New Privacy Homomorphism and Applications, Information Processing Letters, vol. 60, no. 5, Dec. 1996, pp. 277-282] y [Domingo-Ferrer J., A provably secure additive and multiplicative privacy homomorp- hism, Lecture Notes in Computer Science, vol. 2433, sep. 2002. ISSN 0302-9743. Vol. Information Security, eds. A. Chan and V. Gligor, Berlín: Springer-Verlag].
A continuación se describen los conceptos y herramientas que se utilizan posteriormente en el protocolo de cartas tapadas.
Normalmente se asigna a cada carta un cierto valor natural que dado un orden preestablecido corresponde a una figura, o carta concreta de la baraja de cartas tradicional. Por ejemplo, si en una baraja de cartas española se fija el orden de los palos Oros, Bastos, Espadas y Copas y dentro de cada palo el orden creciente de las cartas entre uno (As) y doce (Rey), el valor 15 correspondería al tres de Bastos.
En el presente protocolo de cartas tapadas se necesita una representación de las cartas que permita operar con ellas y con las permutaciones de cartas. Se define por
tanto una carta en forma vectorial, como sigue:
Sea i el número de cartas de la baraja, con una ordenación prefijada, y z un valor primo entero escogido por un jugador 101. Se define una carta w como un vector:
υ = (αι, - - - , í) (7)
Donde existe un único elemento α¿, tal que α¿ mod z Φ 0, y el resto de valores del vector, Vθj | i j, se cumple 3- mod z = 0. El valor de la carta es igual al valor del índice i del vector tal que α¿ mod z φ 0.
Por su parte las permutaciones de cartas se representan como una matriz para poder operar con ellas, tal como se ha mencionado anteriormente. Para una mejor comprensión de la invención se definen a continuación una serie de conceptos que se utilizarán en la descripción que sigue.
Permutación de cartas: Una permutación π sobre un conjunto S es una función biyectiva de S en S (ir : S → S). En el presente caso S es la baraja de cartas utilizada. Las permutaciones típicamente se representan como tablas de conver- sión, donde cada índice tiene un valor de salida que pertenece al mismo conjunto inicial.
Matriz de permutación de cartas: Se puede representar una permutación de cartas, π, sobre un conjunto de t elementos como una matriz cuadrada de t filas, que recibe el nombre de Matriz de Permutación de cartas, donde el vector de cada fila y el de cada columna son de la forma w descrita en 7. Se denota por LT la
Matriz de Permutación de cartas de π.
Cada fila i de la matriz II es una carta, cuyo valor es igual a la permutación de r (i). Para construir la matriz de permutación de cartas II, a partir de la permutación de cartas π, se calcula para cada fila i la permutación de i en π, ir (i). Todos los elementos de la fila son cero módulo z, a excepción de la posición j tal que j = ir (i).
Calcular una permutación: En la representación escogida se puede operar una carta con una matriz de permutación de cartas. El resultado de esta operación es
una nueva carta. La operación para obtener una nueva carta es la multiplicación de la carta inicial w por la matriz de permutación de cartas II, w = v - II .
ω = (&_, • • ' ) (10)
Es necesario que la carta y la matriz de permutación de cartas utilicen la misma z, para realizar de forma correcta esta operación. Si no se sigue esta regla no se obtiene la permutación correcta.
Matriz de permutación de cartas equivalente: Cada jugador 101 tiene una matriz con una z¿ propia, y representa las cartas utilizando esta z¿. Para que J¡ pueda operar su matriz de permutación de cartas con la carta de J¿_ι, J¿ debe representar su matriz de permutación de cartas con la Zi-\ de J¿_χ. Se denomina matriz de permutación de cartas equivalente II¿ a la matriz creada a partir de la permutación 7r¿ tomando z .
Se define la matriz de permutación de cartas equivalente de II como la matriz II tal que para cada índice de la matriz se cumple que: m Si IΓÍJ mod z φ 0, entonces ir^' mod z φ 0, donde π¿j € II y π j € II'. » Si i¿ mod z = 0, entonces π¿ í- mod z = 0, donde π¿j- € II y πi¡3- £ II .
Una baraja de cartas está formada por t cartas de la forma descrita anteriormente. Cada Ji crea una permutación 7r¿ y la guarda en secreto. La baraja barajada está formada por la composición de las permutaciones de los n jugadores 101 en un orden preestablecido, πn o π„_ι • • • π2 o πi. Se consigue de esta forma mezclar la baraja de forma conjunta entre todos los jugadores 101, sin que ninguno de ellos tenga ninguna ventaja. La composición de permutaciones nos asegura la unicidad de las cartas, ya que no es posible que se repitan las cartas.
Como se ha mencionado anteriormente el jugador 101 cifra su carta para ocultar su valor, y el resto de jugadores 101 aplican su permutación a dicho valor cifrado. El criptosistema a utilizar debe garantizar la privacidad de los datos, y permitir operar con datos cifrados. Un homomorfismo de privacidad HP es un esquema de cifrado que conserva ciertas operaciones. Es decir, suponiendo que EK es un HP que preserva la suma, dados dos valores £ y y es lo mismo sumar los dos valores y luego cifrar el resultado, que cifrar los datos y luego calcular la suma:
Eκ(x + y) = Eκ(x) + Eκ(y) (13)
En la presente descripción detallada se utiliza de forma preferente el homomorfismo de privacidad propuesto en [Domingo- Ferrer J., A provably secure additive and multi- plicative privacy homomorphism, Lecture Notes in Computer Science, vol. 2433, sep. 2002. ISSN 0302-9743. Vol. Information Security, eds. A. Chan and V. Gligor, Berlin: Springer-Verlag] , pero se puede utilizar cualquier otro que preserve dichas operaciones de suma y producto.
A continuación se describe con detalle y de manera formal, con ayuda de las Figuras 1 y 3 el protocolo de juego de cartas tapadas. En la Figura 3 se puede ver una descripción general de los pasos del protocolo criptográfico para obtener una carta.
En primer lugar se determina un valor w y se hace público. Dicho valor w pertenece al rango de elementos del juego y no ha sido seleccionado anteriormente. El valor w puede ser elegido por dicho jugador i, o prefijado las reglas del juego. Las reglas del juego pueden definir explícitamente los valores w a utilizar, o que los jugadores elijan de forma conjunta dichos valores w. En la implementación preferida, y en la explicación detallada de la misma, el valor w es elegido por el jugador i. Puede garantizarse que dicho valor w no ha sido escogido previamente porqué los valores w elegidos son conocidos, o porque cada jugador dispone de un rango disjunto de valores para escoger. En el paso 301 el jugador i envía el valor w a Ji .
En el paso 303 Ji calcula la permutación de dicho valor con su permutación secreta, y envía el valor resultante u>ι a J2. En la Figura 3 se puede apreciar como este proceso 303 se repite hasta llegar a J{. Dicho jugador J¡ aplica su permutación al valor _j¿_ι recibido de J¿_ι, obteniendo Wi. Ji debe enviar el resultado al resto de jugadores {J¿+ι, • • • , Jn} para que apliquen su permutación. Sin embargo, si envía el valor obtenido sin cifrar se sabrá el valor de su carta. Para garantizar la privacidad de dicha carta, en el paso 305 J¿ cifra Wi obteniendo wi que es enviado a Ji+1. En el paso 307 J¿+ι
aplica su permutación a IÜ¿ obteniendo wi+1 que es enviado al siguiente jugador. Este proceso 307 se repite hasta llegar al último jugador Jn que envía el valor obtenido wn
Dicho jugador J¿, en el paso 309, descifra el valor wn obteniendo el valor wn, que según dicha identificación inicial corresponde a la carta de la baraja pedida por J¿. ' Dicho valor wn se indica en las reivindicaciones como valor p.
En la Figura 3 las acciones realizadas por J¿ se encuentran en el interior de un rectángulo con línea continua. Se utiliza un candado para simbolizar las operaciones de cifrado, y descifrado. Los cálculos que se realizan con datos cifrados se hallan en el interior de un rectángulo de línea discontinua.
Para aplicar una permutación a un dato cifrado es necesario que los valores y las permutaciones se representen de forma que se puedan operar matemáticamente. Dicha representación se basa en representar a los valores en forma de vectores, y a las permutaciones en forma de matrices. Calcular una permutación es realizar la multiplicación del vector por la matriz. Para conseguir la privacidad de la carta se cifran los índices del vector y de la matriz con un homomorfismo de privacidad. Este criptosistema permite operar con los datos cifrados. Gracias a la representación y al cifrado homomórfico se pueden calcular las permutaciones, preservando la privacidad de la carta de J¿.
Cada mensaje que se intercambian los jugadores 101 es un eslabón de la cadena CDNE descrita anteriormente. En el supuesto caso que se produzca una manipulación esta cadena permitirá demostrarlo a una tercera parte.
En la inicialización del protocolo cada jugador 101 antes de iniciar la partida realiza las operaciones que se describen seguidamente.
Al: Cada jugador J¿ dispone de un par de claves asimétricas (PJ^ SJ^ y la certificación del componente público por una autoridad certificadora reconocida.
A2: Genera una permutación 7r, de la baraja de t cartas y la mantiene en secreto.
A3: Crea su clave simétrica -¿ correspondiente al HP. Cada J¿ tiene una -j diferente y secreta.
A4: Elije un valor primo zi tal que z¡ < K{. A5: Construye un eslabón de la cadena, donde el concepto Ck describe que el eslabón contiene la z¡ utilizada por J¿, y el campo Vk contiene Zi. Al realizar esta acción de forma simultánea todos los jugadores 101 la cadena CDNE se expande en este punto.
A6: Construye la matriz de la permutación H, correspondiente a πτ, utilizando zτ.
A7: Se compromete a esta permutación IIj mediante un protocolo de compromiso de bit. Obteniendo como valor comprometido Cp%.
A8: Construye el siguiente eslabón de la cadena utilizando el eslabón expandido ante- rior. El concepto Ck indica que dicho eslabón contiene el compromiso, y el campo
Vk contiene Cp%. El protocolo será preferentemente el presentado anteriormente, o cualquiera de los mencionados en los antecedentes de la invención.
A9: Elije s valores {δ-¡_, • • • , δ¡¡}, tal que δτ mod z = 0, V. €• {1, • • • , s}, y s > í.
A10: Elije s valores {_!, - • • , es}, tal que eτ mod z φ 0, Vz G {1, • • • , s}, y s > t.
All: Cifra con la clave secreta K
% los valores anteriores, d
3 =
e
d = Eκ
τ e
3) /j {ι, - - - , s}.
A12: Construye el siguiente eslabón de la cadena donde el campo Vk contiene el conjunto D de los valores {di, . . . , dn}. El concepto Ck detalla que el eslabón contiene un conjunto de valores que son cero módulo zly y que se encuentran cifrados.
A13: Construye otro eslabón de la cadena donde el campo Vk contiene el conjunto E de los valores {_ι, . . . , en}. El concepto Ck detalla que el eslabón contiene un conjunto de valores que son diferentes de cero módulo zt, y que se encuentran cifrados.
A14: Genera la representación vectorial de las t cartas de la baraja {ι_ , . . . , wt}, y las cifra con la clave secreta Kτ, wJ = Eκz wj).
A15: Permuta el orden de las cartas cifradas, {w-^, . . . , wt}.
A16: Construye el siguiente eslabón de la cadena. El concepto Ck del eslabón indica que éste contiene una baraja de cartas cifrada por J. El campo Vk contiene dichas cartas cifradas, {w , . . . , wt}, según el orden del paso A15.
El jugador 101 que ejerce de croupier una vez finalizada esta fase de inicialización, realiza la contracción de la cadena. La cadena del eslabón resultante esta formado a partir de los últimos eslabones construidos por cada jugador 101, Jτ. El concepto Ck detalla que ha finalizado la fase de inicialización, y puede iniciarse el juego. El campo valor Vk no contiene ningún dato.
Cuando Jx quiere elegir una carta realiza las operaciones siguientes.
Bl: Escoge un valor υ tal que 1 < v < t, que nadie ha seleccionado anteriormente.
Esta operación es sencilla porque la petición se realiza de forma pública. Todos los participantes conocen los valores iniciales que se han seleccionado previamente.
B2: Construye el siguiente eslabón de la cadena, donde Vk contiene w que es la repre- sentación vectorial del valor v , y Ck detalla que J% desea la carta que corresponde al valor w.
Ji una vez recibe el eslabón de J realiza las operaciones siguientes: Cl: Comprueba la validez del eslabón enviado por Jτ.
C2: Calcula la matriz de permutación de cartas equivalente II x de su matriz IIi. Esta operación la puede realizar porque conoce el valor z% que J, ha hecho público en el paso Ab.
C3: Calcula la permutación de la carta w con su matriz de permutación de cartas equivalente I_ , ι_ι = w • I-j .
C4: Construye el siguiente eslabón de la cadena. El concepto Ck describe que dicho eslabón contiene wι, y que J2 debe realizar el cálculo siguiente. El campo V contiene el valor ι_ι.
El proceso se repite con los jugadores 101 siguientes, {J2, . . . , J-i}, hasta llegar a J%. Jτ a partir del eslabón construido por J_ι, obtiene w^χ y realiza los cálculos siguientes:
DI: Comprueba la validez del eslabón enviado por J_ι.
D2: Aplica su permutación a wt-ι, y obtiene wí = w -\ - Ω.τ.
D3: Modifica la fila de IIj, donde es igual al valor de la carta Í_V_I - Cambia todos los elementos de la fila ι Jtι, . . . , π-,., por valores diferentes de cero módulo zx. Si un jugador 101 pide a Jτ las cartas que éste ha pedido anteriormente obtendrá una carta no válida como se detalla posteriormente.
D4: Escoge la carta cifrada w correspondiente al valor de la carta wτ obtenida. Esta carta cifrada se ha publicado en la fase de inicialización, concretamente en el paso A16.
D5: Construye el eslabón cuyo Vk — w^ y Ck detalla que Jl+ι debe aplicar su permu- tación a dicho valor cifrado.
Ji+i debe multiplicar la carta cifrada wi por su matriz π¿+ para obtener la siguiente carta cifrada wi+1. Para poder realizar esta operación debe cifrar su matriz II¿+ι con la clave secreta i-¿ de J¿. Pero esta clave únicamente está en posesión de J¿. Para cifrar la matriz J+ι utiliza los valores cifrados aportados por J¿ en la fase de inicialización (paso _ 12 y -413), {di • • • , ds, e\, - - - , es}. El proceso de construcción de la matriz cifrada, impide que posteriormente J¿ pueda obtener la información necesaria para reproducir
II¿+ι a partir de la carta cifrada, wi+1. Se denotará la matriz cifrada de J¿+i con la clave de i-¿, como il?+1. J+i realiza las operaciones siguientes:
El: Comprueba la validez del eslabón recibido de J¿.
E2: Cifra su matriz Tli+ι con la clave Ü de J¿ a partir de los valores { i • • • , d_, , • • • , es} del paso A12 y .413, y obtiene la matriz cifrada que se denotará como Ir?+1:
Para construir los elementos cifrados π? - de la matriz del paso E2, Jj+i realiza las operaciones siguientes: Fl: Obtiene de forma pseudo aleatoria un valor g, tal que, 1 < g < s.
F2: Escoge aleatoriamente g valores del conjunto D publicado en la fase inicial (paso A12), {di, . . . , ds}. Estos son los valores cifrados de {¿i, . . . , δ¡¡}, que cumplen que ó¿ mod 2¿ = 0, V. € {1, . . . , _}.
F3: Calcula la suma de estos valores, h = ∑j=χ dj, j G {1, • • • , g}. La suma de valores 0 módulo zx da lugar a un valor que también es 0 módulo 2¿.
F4: Obtiene de forma pseudo aleatoria un valor c, tal que c mod Zi φ 0.
F5: Realiza el producto siguiente h = c • h.
F6: Si la componente de la matriz es π¿ mod Zi = 0, entonces la componente de la matriz cifrada es πf ,- = h'. F7: Si la componente de la matriz es π„ mod zx φ 0, realiza las operaciones adicionales siguientes:
Gl: Obtiene de forma pseudo aleatoria un valor l tal que 1 < l < s. G2: El componente de la matriz será la suma de h con el valor cifrado e¡ del conjunto E, que se ha publicado en el paso A13; π° • = h + e¡.
E3: Calcula la siguiente permutación de forma cifrada multiplicando la carta cifrada w , por su matriz cifrada Ωξ+1 con la clave K%.
wt+1 = w[ - Ui c +1 (15)
E4: Construye el eslabón de la cadena, cuyo concepto indica que el eslabón contiene w ι+ι y Ψλe Jι+2 es quien debe realizar la siguiente operación. El campo Vk contiene el valor cifrado wϊ+1.
El proceso se repite con J+ , • • • , Jn, hasta llegar a Jn. J recibe el eslabón construido por Jn, y realiza las operaciones siguientes.
Hl: Comprueba la validez del eslabón creado por J„. H2: Obtiene la carta wn, descifrando wn, con su clave privada wn = Dκ (wn' ).
Con el paso anterior finaliza el protocolo por el cual el jugador J obtiene una carta de forma tapada.
Un jugador 101 para descartar una carta W construye un eslabón de la cadena CDNE. El concepto Ck de dicho eslabón indica que el jugador Jt descarta una carta. El campo Vk contiene el valor cifrado de dicha carta descartada.
En el protocolo de juego de cartas tapadas descrito anteriormente Jτ elige una única carta en cada ejecución del mismo. Pero el protocolo permite que un jugador 101 obtenga varias cartas en una única ejecución. Para esta optimización es necesario que primero se defina el concepto de multicarta.
Multicarta: Se define multicarta como un vector de t elementos, siendo t el número de cartas de la baraja, y z un valor primo dado,
ξ = (αι, - - - , o.) (16)
Donde este vector tiene más de un índice a% tal que aτ mod z φ 0. El resto de índices a3 son de la forma a3 mod z = 0. El índice i, de cada elemento aτ mod z φ 0, indica uno de los valores de la multicarta. Es decir, una multicarta es un vector que representa más de una carta.
El protocolo varía en los puntos siguientes:
• J escoge los valores que desea, {ι_ι, • • • , wx}. Suma estas cartas y obtiene una multicarta ξ = ∑_ =1 wx.
'J <_Jli l!_ ÜJ U ¿_ i l_J
30
" Construye el eslabón de la cadena CDNE con la multicarta ξ en lugar de w, como se detalla en el paso B2, y prosigue el protocolo.
« En el paso E>3 J¿ anula todas las filas cuyo índice es igual a uno de los valores de la multicarta ¿.
» Εl protocolo se desarrolla del mismo modo descrito anteriormente. J¿ al final del protocolo descifra la carta tapada que ha calculado Jn, y obtiene una multicarta, es decir, el conjunto de cartas escogidas.
Como se ha mencionado en el paso D3, si una coalición de jugadores 101 intenta obtener las cartas de otro jugador J¿ durante la segunda, o posteriores veces que se reparten cartas en el juego, dicha coalición debe construir una multicarta con los valores que ha pedido J¿, y cifrarla. Sin embargo no obtendrá las cartas de J¿, porque la carta que se obtiene al pedir una carta ya solicitada es un vector con todos los índices diferentes de cero módulo 2¿. Esto es así, debido a la transformación de la matriz H del paso E>3. La multicarta obtenida es una carta nula, porque no aporta ninguna información.
Todos los índices son diferentes de cero módulo 2¿. Al final del protocolo la coalición de jugadores 101 deshonestos que han pedido una carta ya pedida no podrán enseñar sus cartas.
Una vez finalizada la mano de juego los jugadores 101 desvelan su clave privada y su permutación. Cada participante en el juego realiza las operaciones siguientes:
• Verifica que cada jugador J¿ haya utilizado la permutación 7r¿ con la que se ha comprometido enviando Cpt, en el paso A5. Para ello verifica el protocolo de compromiso de cada jugador 101.
m Descifra las cartas {w1, . . . , wt} que cada jugador 101 ha hecho públicas en el paso -416, y comprueba que la baraja es correcta.
* Con la clave privada de cada jugador 101 descifra el resultado de aplicar las permutaciones a las cartas tapadas, descritas en los pasos D5 y E4. Comprueba que estas operaciones coinciden con la permutación del jugador 101 que ha realizado la acción.
» Comprueba que las cartas que ha descartado cada jugador 101 no han sido utilizadas en el resultado del juego.
* La cadena CDNE permite demostrar a una tercera parte las acciones incorrectas que ha realizado un jugador 101 deshonesto.
A continuación se detallan algunas manipulaciones que podrían realizar los jugadores 101, y la manera en la cual todas ellas se detectan mediante una verificación de las acciones que contiene la cadena CDNE.
Un jugador utiliza una Z{ equivocada: Si Jk en la construcción de la matriz de cartas equivalentes con la 2¿ de J¿ utiliza z3 tal que z3 φ Zi, cuando J¿ descifre wn obtendrá una carta nula. J¿ forzosamente denunciará esta acción, porque sino al final de la partida no podrá enseñar sus cartas. La verificación de la mano de juego descubrirá a Jk.
Un jugador no utiliza la IIj con la que se ha comprometido: Un jugador puede utilizar una permutación diferente con la que se ha comprometido durante todo el juego, o cambiarla durante algunos instantes del mismo. En el primer caso al final del juego se detectará dicha acción deshonesta. En el segundo caso los juga- dores 101 pueden obtener cartas duplicadas. El jugador 101 que recibe una carta repetida pide la revisión de la mano de juego. Si la acción no se detecta durante el juego, en la fase de verificación se descubrirá el autor de la manipulación.
Los valores del conjunto D {di, . . . , ds} son incorrectos: Si un jugador 101 no aporta los valores correctos, las cartas que se obtendrán serán nulas. Los jugadores 101 construirán su matriz II? con estos valores, y al operar con esta matriz las cartas resultantes serán nulas. El jugador 101 que obtiene una carta nula pide una revisión de la partida.
Los valores del conjunto E {_ι, . . . , es} son incorrectos: Igual que en el punto anterior, la construcción de la matriz de permutación de cartas será incorrecta. Los jugadores 101 obtendrán cartas nulas. Una verificación del juego permitirá hallar al infractor.
Las cartas cifradas {w . . . , wn} no son válidas: En la fase de verificación se comprobará que el jugador 101 ha aportado una baraja incorrecta. El jugador 101 no obtiene ningún beneficio de esta acción, porque se descubrirá su manipulación.
Un participante en el juego construye un eslabón incorrecto: Durante la ejecución del protocolo cada jugador 101 verifica la correcta construcción de los
eslabones. En el momento que un jugador 101 introduce un eslabón no correcto los jugadores 101 denuncian la acción.
Un jugador elige un valor w ya seleccionado: Los valores pedidos en el paso B2 se encuentran en la cadena CDNE. Si un jugador 101 pide un valor ya seleccionado 5 el resto pueden demostrar que debe pedir un valor diferente.
Un jugador no cifra de forma correcta su matriz: Un cifrado incorrecto da lugar a cartas nulas, o valores repetidos. En caso que esto ocurra en la fase de verificación el resto de jugadores 101 podrán detectar la manipulación.
Un jugador se retira durante la fase de inicialización: Si un jugador 101 se re- 10 tira durante la fase de inicialización la partida sigue sin este jugador 101.
Un jugador se retira una vez terminada la fase de inicialización: Si un jugador 101 se retira antes de iniciar el juego, éste se desarrolla sin el jugador 101. La composición de permutaciones se realizará sin utilizar su permutación.
Un jugador se retira en medio del juego: En este caso la partida debe terminar 15 en ese momento. Los jugadores 101 enseñan las cartas, y se procede a verificar el juego. Si el jugador que ha abandonado el juego no justifica su abandono es sancionado.
A continuación y con referencia a las Figuras 1 y 4 se presenta el protocolo criptográfico de juego para los juegos de cartas descubiertas. En dichos juegos los jugadores
20 101 juegan contra el Casino Online, representado por el croupier. Un ejemplo característico de juego de cartas descubiertas es el Black Jack. Igual que ocurre en la forma de juego tradicional, en el protocolo que se presenta las cartas se reparten de forma abierta. El objetivo del protocolo es que estas cartas se obtengan al azar, sin que ninguna parte pueda forzar su valor.
25 En el protocolo presentado la mezcla de los elementos del juego, es decir el proceso de barajar las cartas, se realiza sin la participación de ninguna TTP. Las cartas son barajadas con la colaboración de todos los participantes en el juego. De esta forma se asegura que en el proceso ningún jugador 101, o coalición de ellos, pueda forzar la componente del resultado final, es decir, el valor final de la carta obtenida. Cada
30 jugador 101 genera una permutación de las cartas de la baraja al azar que mantiene en secreto y se compromete a ella mediante un protocolo de compromiso. La baraja de cartas barajada está formada por la composición de las permutaciones de todos los
jugadores 101. Cada jugador 101, en el orden preestablecido, aplica su permutación al valor enviado por el jugador anterior. La utilización de permutaciones asegura la unicidad de las cartas obtenidas.
En el primer paso del protocolo se establece una ordenación de los elementos del juego, basado en la baraja de cartas que se utiliza. Por ejemplo, si la baraja de cartas es española, y se ordena por: Oros, Copas, Bastos y Espadas, el valor 27 corresponderá al tres de bastos. Todos los jugadores 101 se comprometen a este orden. También se fija el orden de los jugadores 101 {Jι, . . . , Jn}, siendo este el orden con el que se realizará la composición de las permutaciones, πg = πn o 7rn_ι . . . ιcχ. La última posición normalmente corresponderá al croupier.
En el inicio del protocolo se determina un valor w y se hace público. Dicho valor w pertenece al rango de elementos del juego y no ha sido seleccionado anteriormente.
Dicho valor w puede ser elegido por los jugadores, o ser prefijado por las reglas del juego. Las reglas del juego pueden definir explícitamente los valores w a utilizar, o que sean elegido por los jugadores de forma conjunta.
En la implementación preferida, y en la exposición detallada de la misma, el valor w es elegido por el jugador i. Este valor w no ha sido escogido previamente porqué los valores w elegidos son conocidos, o porque cada jugador dispone de un rango disjunto de valores para escoger. Como se puede apreciar en el paso 401 de la Figura 4 J¿ envía w al primer jugador Ji. En el paso 403 Ji aplica dicho valor w a su permutación ιτχ, obteniendo W = πχ(w) que es enviado a J2. Este proceso 403 se repite hasta el último jugador, Jn. Dicho jugador aplica la última permutación wn = πn(wn-.χ) obteniendo wn que es enviado a j¡. _n según la ordenación inicialmente establecida corresponde a una carta de la baraja, y durante la mano de juego pertenece a J¿. Las acciones del juego se incluyen en la cadena CDNE que se construye durante la partida. Esta medida permite que los jugadores 101 puedan demostrar la acciones ocurridas a una tercera parte.
A continuación se describe el protocolo formalmente. En primer lugar se detalla la fase de inicialización, después el proceso para obtener una carta, y finalmente la verificación de la honestidad durante el juego.
La fase de inicialización se ejecuta al inicio de cada mano de juego. El croupier construye un eslabón de la cadena. El concepto Ck indica el inicio del periodo para generar un resultado de forma conjunta.
Cada jugador J¿ preferiblemente realiza las operaciones siguientes:
» Obtiene una permutación de las t cartas de la baraja π¿, mediante un generador
pseudo aleatorio.
m Calcula las operaciones para realizar el protocolo de compromiso de bit, Cpk- En la implementación preferida se utiliza el protocolo de compromiso descrito, sin embargo se puede utilizar cualquiera de los que se mencionan en los antecedentes de la invención.
• Cada jugador J¿ calcula su eslabón de forma independiente, dando lugar esta acción a una expansión de la cadena CDNE. El concepto Ck del eslabón detalla que el eslabón es el compromiso de J¿. El campo Vk contiene dicho compromiso
Cpi. El eslabón como se ha definido se envía a todos los participantes. Cada participante verifica que la expansión es correcta.
El croupier de forma paralela realiza las operaciones siguientes:
» Mediante un generador pseudo aleatorio obtiene una permutación de la baraja de t cartas, πc.
» Calcula el compromiso para su permutación πc, Cpc.
Una vez el croupier ha recibido todos los eslabones que contienen los compromisos de los jugadores 101 realiza la compresión de la cadena. El concepto Ck de este eslabón detalla que ha finalizado el periodo de compromiso, y que dicho eslabón contiene el compromiso Cpc del croupier, en el campo Vk.
Un jugador 101 cualquiera, J¿, para obtener una carta realiza las operaciones si- guientes.
» Elige un valor inicial w que no ha sido pedido anteriormente. J¿ sabe los valores que han sido escogidos porque las peticiones son públicas.
» Construye el siguiente eslabón de la cadena. El concepto C del eslabón describe que J, desea la carta que corresponde al valor que contiene el campo Vk = w.
Ji a partir del eslabón enviado por J¿ realiza las operaciones siguientes.
m Comprueba la correcta construcción del eslabón recibido de J¿, y obtiene w.
m Obtiene el valor w, y aplica el valor recibido a su permutación, uiχ = πχ(w).
m Construye el siguiente eslabón de la cadena, el concepto C de dicho eslabón indica que J2 debe aplicar su permutación al valor uiχ. El campo Vk contiene ιvχ.
El proceso se repite con el resto de jugadores 101 {Ji, . . . , Jn}, hasta llegar a Jn.
Este calcula la última permutación, wn = πn(wn-χ), que es el valor de la carta de J¿. Jn construye el siguiente eslabón de la cadena. El concepto Ck, describe que dicho eslabón contiene la carta de J¿, en el campo Vk = wn. Dicho valor wn en las reivindicaciones es indicado como valor p.
Cuando la mano de juego ha finalizado el croupier construye el eslabón que indica el final de la mano de juego. El valor Vk de dicho eslabón contiene los datos para verificar el protocolo de compromiso del croupier. Cada jugador 101 una vez dispone de dicho eslabón construye el siguiente eslabón de la cadena. El concepto Ck indica que el campo Vk contiene la información para verificar el protocolo de compromiso de J¿.
Esta información típicamente incluirá la permutación del jugador 101. La operación se realiza en paralelo por todos los jugadores 101. Esto significa una expansión de la cadena en este punto. Cuando todos los participantes en el juego disponen de la información para verificar los protocolos de compromiso realizan las acciones siguientes:
» Verifican los protocolos de compromiso del resto de participantes en el juego.
« Calculan la permutación de la mano de juego πg, a partir de la composición de la permutaciones aportadas por los jugadores 101, ιτg = ιn o 7rn_ι o . . . o τζX.
' Con ιτg, y los valores w solicitados durante la partida verifican que se obtienen las mismas cartas.
» En el caso que en el paso anterior se encuentre algún error el cálculo de la permutación se realiza con cada π¿. Con este análisis exhaustivo y la cadena CDNE se halla al jugador 101 no honesto.
Una vez la mano de juego se ha verificado satisfactoriamente, el croupier construye el eslabón cuyo concepto Ck detalla que el campo Vk, contiene los resultados del juego. Este eslabón supone una contracción de la cadena CDNE.
A continuación, y con referencia a la Figura 5, se presenta el protocolo criptográfico de juego para los juegos de tirada ejecutables mediante una ruleta, la tirada de unos dados o una máquina de azar o sus representaciones equivalentes. En dicho juego se genera un único valor p o resultado, caracterizado porque cada uno de los jugadores obtiene su componente del resultado que es coincidente con dicho valor o resultado único. El objetivo del protocolo es que dicho resultado se obtenga al azar, sin que ninguna parte pueda forzar su valor y sin la participación de ninguna TTP.
En la Figura 5 se pueden ver los pasos del protocolo criptográfico de juegos de tirada.
Inicialmente se determina un valor w y se hace público. Dicho valor w puede ser elegido por los jugadores, o ser prefijado por las reglas del juego. Las reglas del juego pueden definir explícitamente los valores w a utilizar, o que sean elegidos por los jugadores de forma conjunta. En la implementación preferida, y en la explicación detallada de la misma, el valor w es elegido por J%. En el paso 501 J , obtiene de forma pseudo aleatoria un valor y una permutación de los elementos del juego, se compromete a ellos mediante un protocolo de compromiso y envía al resto de jugadores 101 el compromiso obtenido. El protocolo de compromiso descrito anteriormente es el utilizado en la implementación preferida, pero se puede utilizar cualquiera de los mencionados en los antecedentes de la invención. Todos los jugadores 101 en el paso 503 calculan una permutación de forma pseudo aleatoria de los elementos del juego, y se comprometen a ella enviando al resto de participantes en el juego el compromiso a dicha permutación. En el paso 505 los jugadores 101 han recibido los compromisos de los jugadores 101, y muestran la información necesaria para verificar el compromiso, o la información comprometida. En el paso 507 los jugadores 101 verifican el protocolo de compromiso del resto de participantes en el juego, y obtienen el resultado del juego p.
El protocolo garantiza que este valor se genera de forma conjunta y honesta. Todas las acciones del juego se incluyen en una cadena CDNE para ser analizadas en el caso que sea necesario.
Al inicio de la tirada se establece un orden entre los jugadores 101. El croupier construye el eslabón cuyo concepto Ck indica el inicio del periodo para generar el resultado del juego. El croupier es uno de los jugadores 101 que participan en el juego. El valor de dicho eslabón contiene el orden mencionado y el jugador 101 que ejecuta la tirada. Cada J, incluido el crupier, una vez ha recibido dicho eslabón realiza las operaciones siguientes:
» Obtiene una permutación de los resultados del juego πτ, mediante un generador pseudo aleatorio. En el caso de la ruleta por ejemplo, generaría una permutación de los 38 valores posibles. Si J. es quien tira los dados, o gira la ruleta, realiza la siguiente operación adicional: obtiene un valor w de forma pseudo aleatoria, y lo incluye en el protocolo de compromiso junto la permutación πτ.
» Calcula las operaciones del protocolo de compromiso, obteniendo Cp%.
» Construye el eslabón cuyo concepto Ck, describe que el eslabón en el campo Vk contiene el compromiso Cp% de J. En este punto la cadena CDNE se expande,
porque todos los jugadores 101 construyen su eslabón en paralelo.
Una vez finalizado el periodo de compromiso el croupier construye el siguiente eslabón de la cadena, cuyo concepto Ck indica que el campo Vk contiene la permutación del croupier, πc, y que ha finalizado la fase inicial. Este eslabón contrae la cadena CDNE. La contracción también impide que algún jugador 101 varíe posteriormente su compromiso.
Una vez el resto de los jugadores 101 reciben el eslabón con la permutación del croupier construyen el siguiente eslabón de la cadena. Cada J¿ realiza esta operación de forma independiente, por consiguiente la cadena CDNE en este punto se expande. El concepto Ck, de dicho eslabón describe que el el campo Vk contiene los valores para verificar el compromiso de J¿. Esta información normalmente incluye la permutación 7íj, y el valor w en el caso del participante que ejecuta la tirada.
Los participantes disponen ya de la información necesaria para verificar el protocolo de compromiso y realizan las acciones siguientes:
m Comprueban que el resto de participantes en el juego han mantenido su compromiso.
« Con las permutaciones {ιrχ, . . . , πn}, de todos los participantes y el orden establecido construyen la permutación general, ιrg — πn o 7r„_ι o . . . o 7Tι.
• Aplican el valor w, aportado por el jugador 101 que ejecuta la tirada a la permu- tación y obtienen el resultado del juego, p = πg(w).
Una vez el croupier ha obtenido el resultado de la tirada construye el siguiente eslabón. El concepto de dicho eslabón describe que el campo Vk contiene el resultado p obtenido. La cadena CDNE en este punto se contrae.
Esta misma operativa se podría utilizar en los juegos similares al bingo o keno. En dichos juegos no se escogería un único valor w sino un conjunto de valores {ιυχ, . . . , wk} que permitirían obtener todos los valores p necesarios en dichos juegos.
La representación vectorial y matricial de los elementos del juego recogida en las reivindicaciones 13 y 14 sería también aplicable a los protocolos de juego de cartas descubiertas y de tirada. Sin embargo, al no representar ninguna ganancia computacional, la implementación preferida no recoge este aspecto.
En la implementación preferida no se describe la utilización de un nodo central para gestionar las comunicaciones entre los n jugadores. Sin embargo, sería posible utilizar
dicha entidad central de comunicaciones para desarrollar el juego. En este caso esta unidad central merecedora de confianza podría disponer de las permutaciones de los jugadores y calcular con ellas los valores del resultado, correspondientes a cartas, bolas de bingo, o similares. Mediante esta disposición no se consiguen las mismas garantías de honestidad que con la descripción preferida, al precisar dicha entidad merecedora de confianza. No obstante, una tal disposición permitiría conseguir las mismas garantías que ofrecen las invenciones previamente descritas US 6,264,557 y US 6,165,072.