ES2871053T3 - Prevención de la tergiversación de los datos de entrada por parte de los participantes en una computación segura multipartita - Google Patents

Prevención de la tergiversación de los datos de entrada por parte de los participantes en una computación segura multipartita Download PDF

Info

Publication number
ES2871053T3
ES2871053T3 ES19725887T ES19725887T ES2871053T3 ES 2871053 T3 ES2871053 T3 ES 2871053T3 ES 19725887 T ES19725887 T ES 19725887T ES 19725887 T ES19725887 T ES 19725887T ES 2871053 T3 ES2871053 T3 ES 2871053T3
Authority
ES
Spain
Prior art keywords
computing device
mac
computing
input data
trusted
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES19725887T
Other languages
English (en)
Inventor
Lichun Li
Wenzhen Lin
Zheng Liu
Shan Yin
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced New Technologies Co Ltd
Original Assignee
Advanced New Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Advanced New Technologies Co Ltd filed Critical Advanced New Technologies Co Ltd
Application granted granted Critical
Publication of ES2871053T3 publication Critical patent/ES2871053T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/46Secure multiparty computation, e.g. millionaire problem

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

Un método implementado por ordenador para evitar la tergiversación de los datos de entrada en una computación multipartita que implica varios dispositivos de computación que comprenden un primer dispositivo de computación (102b) y un segundo dispositivo de computación (102a), comprendiendo el método: identificar (302), mediante el primer dispositivo de computación (102b), un elemento de datos de entrada de confianza (150) que está cifrado homomórficamente, en donde el elemento de datos de entrada de confianza corresponde a un elemento de datos secretos de entrada (140) asociados con el segundo dispositivo de computación (102a) que es diferente del primer dispositivo de computación (102b), en donde el segundo dispositivo de computación (102a) está asociado con un propietario del elemento de datos secretos de entrada (140), y en donde el primer dispositivo de computación (102b) está asociado a una parte diferente que no es el propietario del elemento de datos secretos de entrada (140), y en donde el primer dispositivo de computación (102b) recibe (210) el elemento de datos de entrada de confianza (150) de una tercera parte de fuente de datos de confianza (110); generar (306, 220), mediante el primer dispositivo de computación (102b), una cuota de código de autentificación de mensajes, MAC, de confianza asociada con el elemento de datos de entrada de confianza (150); generar (308), mediante el primer dispositivo de computación (102b), un texto cifrado basándose, al menos en parte, en la cuota MAC de confianza; enviar (310, 230), mediante el primer dispositivo de computación (102b), el texto cifrado al segundo dispositivo de computación (102a), en donde el segundo dispositivo de computación utiliza (240) el texto cifrado como un componente de una cuota MAC asociada con el elemento de datos secretos de entrada; y después de que la computación multipartita (250) se complete por los varios dispositivos de computación, verificar (312, 260), mediante el primer dispositivo de computación, un resultado de la computación multipartita basándose, al menos en parte, en la cuota MAC asociada con el elemento de datos secretos de entrada.

Description

DESCRIPCIÓN
Prevención de la tergiversación de los datos de entrada por parte de los participantes en una computación segura multipartita
CAMPO TÉCNICO
Esta memoria descriptiva se refiere a la computación segura multipartita.
ANTECEDENTES
La computación segura multipartita consiste en la cooperación de múltiples dispositivos de computación participantes para realizar una computación basándose en los datos de entrada de cada participante, que se deben mantener en secreto para los demás participantes. Las técnicas existentes proporcionan mecanismos para que un participante verifique que un resultado final de la computación es correcto sin conocer los datos secretos de entrada de los demás participantes.
Los sistemas de libro mayor distribuido (DLS), que también se pueden denominar redes de consenso y/o redes de cadenas de bloques, permiten a las entidades participantes almacenar datos de forma segura e inmutable. Los DLS se denominan comúnmente redes de cadenas de bloques sin hacer referencia a ningún caso particular de usuario. Los ejemplos de tipos de redes de cadenas de bloques pueden incluir redes de cadenas de bloques públicas, redes de cadenas de bloques privadas y redes de cadenas de bloques de consorcio. Una red de cadenas de bloques de consorcio se proporciona a un grupo selecto de entidades, que controlan el proceso de consenso, e incluye una capa de control de acceso.
Las técnicas de computación segura multipartita existentes no proporcionan ninguna garantía de que cada participante en la computación represente correctamente sus datos secretos de entrada. Por consiguiente, una parte podría influir en el resultado final de la computación, posiblemente a su favor, manipulando sus propios datos secretos de entrada. Sería deseable disponer de técnicas que permitan a los demás participantes en una computación multipartita verificar que todos los datos secretos de entrada están siendo representados con exactitud por los demás participantes.
Cunningham et al., "Catching MPC Cheaters: Identification and Openability", IACR, International Association For Cryptologic Research, vol. 20160614:172246, 10 de junio de 2016, páginas 1-30, describe extensiones de SPDZ con dos propiedades para desalentar las trampas. La primera de ellas es un refuerzo de abortar identificable donde todas las partes que no sigan el protocolo serán identificadas como tramposas por cada parte honesta. La segunda es la capacidad de apertura que significa que, si se descubre que el resultado de una computación es falso, por ejemplo, mediante un evento del mundo real que lo contradice, una coalición distinguida de partes puede recuperar las entradas MPC. La interrupción identificable se consigue utilizando un esquema de puesta en común de secretos localmente identificable que los autores denominan commitment enhanced secret sharing, o CESS. En el CESS, cada cuota de entrada SPDZ se aumenta con un compromiso linealmente homomórfico. Cuando se produce un engaño, cada parte puede utilizar el homomorfismo lineal para calcular un compromiso con la parte correspondiente del valor de salida. Las partes cuya cuota de salida reclamada no coincide con sus compromisos de cuota de salida se identifican como tramposas. La capacidad de apertura se consigue mediante la utilización de codificación verificable y pruebas especializadas de conocimiento cero. La capacidad de apertura se basa en la disponibilidad de una transcripción pública auditable de la ejecución del MPC.
Damgárd et al., "Practical Covertly Secure MPC for Dishonest Majority - or: Breaking the SPDZ Limits", IACR, International Association For Cryptologic Research, vol. 20130820:164512, 20 de agosto de 2013, páginas 1-45, proporciona una descripción del protocolo Smart-Pastro-Damgárd-Zakarias (SPDZ) para la computación multipartita, MPC, y describe mejoras en el protocolo. Se describe un protocolo de generación de claves encubierto y seguro para obtener una clave pública BGV y una clave secreta asociada compartida. En un modelo de seguridad encubierta, un adversario que se desvíe del protocolo se detecta con una alta probabilidad, pero no necesariamente abrumadora, por ejemplo, del 90%, lo que todavía se traduce en un incentivo para que el adversario se comporte de manera honesta. Por el contrario, la seguridad activa consigue el mismo efecto, pero el adversario sólo puede conseguir hacer trampas con una probabilidad insignificante. También se describe una fase de preprocesamiento encubierta y otra de seguridad activa. También se describe una nueva fase en línea. Esto resuelve el problema de que, antes de este trabajo, los datos preprocesados sólo se podían utilizar para una evaluación de la función y luego se tenían que volver a calcular desde cero para la siguiente evaluación, mientras que la nueva fase en línea puede soportar funcionalidades reactivas. Esta mejora proviene principalmente del hecho de que la nueva construcción no requiere que los jugadores revelen las claves MAC para comprobar la corrección de los valores MAC'd.
RESUMEN
La invención se define por las reivindicaciones adjuntas. Esta memoria descriptiva describe tecnologías para prevenir la tergiversación de los datos de entrada por parte de los participantes en una computación multipartita. Estas tecnologías generalmente implican que una parte obtenga un elemento de datos de entrada de confianza que es una versión cifrada homomórficamente de los datos secretos de entrada de otra parte. A continuación, la parte genera una cuota de código de autentificación de mensajes (MAC) de confianza del elemento de datos de entrada de confianza, y genera un texto cifrado
basándose, al menos en parte, en la cuota MAC de confianza. A continuación, la parte proporciona el texto cifrado a la parte asociada con los datos secretos de entrada, que calcula la cuota MAC de sus datos secretos de entrada con el texto cifrado recibido de la otra parte como un componente.
Esta memoria descriptiva también proporciona uno o más medios de almacenamiento legibles por ordenador no transitorios acoplados a uno o más procesadores y que tienen instrucciones almacenadas en los mismos que, cuando se ejecutan por el uno o más procesadores, hacen que el uno o más procesadores realicen operaciones de acuerdo con las formas de realización de los métodos proporcionados en la presente memoria.
Esta memoria descriptiva proporciona además un sistema para implementar los métodos proporcionados en la presente memoria. El sistema incluye uno o más procesadores, y un medio de almacenamiento legible por ordenador acoplado a uno o más procesadores que tiene instrucciones almacenadas en el mismo que, cuando se ejecutan por el uno o más procesadores, hacen que el uno o más procesadores realicen operaciones de acuerdo con las formas de realización de los métodos proporcionados en la presente memoria.
Se aprecia que los métodos de acuerdo con esta memoria descriptiva pueden incluir cualquier combinación de los aspectos y características descritos en la presente memoria. Es decir, los métodos de acuerdo con esta memoria descriptiva no se limitan a las combinaciones de aspectos y características descritas de forma específica en la presente memoria, sino que también incluyen cualquier combinación de los aspectos y características proporcionados. Los detalles de una o más formas de realización de esta memoria descriptiva se describen en los dibujos adjuntos y en la siguiente descripción. Otras características y ventajas de esta memoria descriptiva serán evidentes a partir de la descripción y los dibujos, y a partir de las reivindicaciones.
BREVE DESCRIPCIÓN DE LOS DIBUJOS
La FIG. 1 es un diagrama que ilustra un ejemplo de un entorno que se puede utilizar para ejecutar las formas de realización de esta memoria descriptiva.
La FIG. 2 representa un ejemplo de un flujo de señales de acuerdo con las implementaciones de la presente descripción.
La FiG. 3 representa un ejemplo de un proceso que se puede ejecutar de acuerdo con las formas de realización de esta memoria descriptiva.
La FIG. 4 representa ejemplos de módulos de un aparato de acuerdo con las formas de realización de esta memoria descriptiva.
Los números de referencia y designaciones similares en los distintos dibujos indican elementos similares.
DESCRIPCIÓN DETALLADA
Para proporcionar un contexto adicional para las formas de realización de esta memoria descriptiva, y según se ha introducido anteriormente, la computación segura multipartita implica que múltiples dispositivos de computación participantes cooperen para realizar una computación basándose en la entrada de cada participante que se debe mantener en secreto para los demás participantes. Una técnica para realizar una computación segura multipartita es el protocolo Smart-Pastro-Damgárd-Zakarias (SPDZ) (el protocolo SPDZ original o una variante del mismo). En SPDZ, las partes acuerdan una clave MAC que se comparte en secreto entre las partes, de modo que ninguna parte conoce la clave. Las partes utilizan partes de la clave MAC para generar un MAC de sus datos secretos de entrada, que se puede utilizar para verificar que las cuotas de los datos secretos de entrada no han sido manipuladas por otras partes durante la computación. A continuación, cada parte comparte en secreto tanto el MAC (como "cuotas MAC") como los datos secretos de entrada con las demás partes, de tal manera que cada una de las partes recibe una cuota. A continuación, cada parte realiza la computación localmente en todas las cuotas de entrada y el MAC que ha recibido para producir una cuota de resultado z y una cuota de resultado MAC M(z). Para una computación de suma con n partes, el resultado final r se determina de acuerdo con la ecuación:
r = z 1 z2 —zn
y el resultado MAC M(r) de la computación multipartita se determina de acuerdo con la ecuación:
Si una parte maliciosa intenta manipular la computación proporcionando un resultado falso z, no podrá alterar el valor MAC correspondiente para hacerlo coincidir con el resultado falso. Por lo tanto, el resultado MAC final M(r) no coincidirá con el resultado r, y las otras partes serán alertadas de la manipulación.
En el enfoque anterior, una parte maliciosa aún puede manipular la computación tergiversando el valor de sus datos secretos de entrada. Una tergiversación de este tipo no sería detectable con el esquema anterior.
Esta memoria descriptiva describe técnicas para impedir la tergiversación de los datos de entrada por parte de los participantes en una computación multipartita. Estas tecnologías generalmente implican que una parte obtenga una versión cifrada homomórficamente de los datos secretos de entrada de otra parte a partir de una fuente de confianza, tal como una cadena de bloques. A continuación, la parte genera un código de autentificación de mensajes (MAC) de los datos cifrados, y proporciona el MAC a la parte asociada con los datos secretos de entrada, que calcula el MAC de sus datos secretos de entrada con el MAC recibido de la otra parte como un componente. Esto puede garantizar que cada parte está representando correctamente sus datos secretos de entrada al vincular el MAC de los datos secretos de entrada con el correspondiente texto cifrado obtenido a partir de una fuente de confianza, tal como una cadena de bloques, una parte de confianza que ha firmado criptográficamente los datos de entrada de confianza, u otras fuentes.
Una cadena de bloques es una estructura de datos que almacena las transacciones de una manera que las transacciones sean inmutables. Por lo tanto, las transacciones registradas en una cadena de bloques son fiables y de confianza. Una cadena de bloques es una estructura de datos descentralizada, o al menos parcialmente descentralizada, para almacenar transacciones. Una red de cadenas de bloques es una red de nodos informáticos que gestionan, actualizan y mantienen una o más cadenas de bloques mediante la difusión, verificación y validación de transacciones, etc. En algunos ejemplos, una cadena de bloques global se proporciona como una cadena de bloques que se replica en todos los nodos. Es decir, todos los nodos de consenso están en perfecto estado de consenso con respecto a la cadena de bloques global. Para lograr el consenso (por ejemplo, el acuerdo para la adición de un bloque a una cadena de bloques), se implementa un protocolo de consenso dentro de la red de cadenas de bloques de consorcio. Por ejemplo, la red de cadenas de bloques de consorcio puede implementar un consenso práctico de tolerancia a fallos bizantinos (PBFT). Las técnicas descritas en la presente memoria aprovechan los mecanismos de consenso de la cadena de bloques para proporcionar una garantía de que los datos de entrada de confianza recuperados de la cadena de bloques no han cambiado desde que se introdujeron en la cadena de bloques.
La FIG. 1 es un diagrama que ilustra un ejemplo de un entorno 100 que se puede utilizar para ejecutar formas de realización de esta memoria descriptiva. En algunos ejemplos, el entorno 100 permite a las entidades participar en una computación multipartita. El entorno 100 incluye nodos 102a-d, y una red 130. En algunos ejemplos, la red 130 incluye una red de área local (LAN), una red de área amplia (WAN), Internet, o una combinación de las mismas, y conecta sitios web, dispositivos de usuario (por ejemplo, dispositivos de computación) y sistemas back-end. En algunos ejemplos, se puede acceder a la red 130 a través de un enlace de comunicaciones por cable y/o inalámbrico. En algunos ejemplos, la red 130 permite la comunicación con y dentro del entorno 100. En general, la red 130 representa una o más redes de comunicación. En algunos casos, los nodos 102a-d pueden ser nodos de un sistema de cálculo en la nube (no mostrado), o cada nodo 102a-d puede ser un sistema de computación en la nube separado que incluye un número de ordenadores interconectados por una red y que funciona como un sistema de procesamiento distribuido.
En el ejemplo representado, los nodos 102a-d pueden incluir cada uno cualquier sistema de cálculo apropiado que permita la participación en una computación multipartita. Los ejemplos de dispositivos de computación incluyen, sin limitación, un servidor, un ordenador de escritorio, un ordenador portátil, un dispositivo de computación tipo tableta y un teléfono inteligente. En algunos ejemplos, los nodos 102a-d alojan uno o más servicios implementados por ordenador para interactuar con los otros nodos que participan en la computación multipartita. En algunas implementaciones, el nodo 102a puede estar asociado con una primera entidad, y puede almacenar datos asociados con la primera entidad. El nodo 102b puede albergar servicios implementados por ordenador de una segunda entidad, y puede almacenar datos asociados con la segunda entidad. En el ejemplo de la FIG. 1, el entorno 100 se representa como una red de igual a igual de nodos 102a-d que participan en la computación multipartita.
El nodo 102a almacena datos secretos de entrada 140 que serán proporcionados por el nodo 102a como entrada de la computación multipartita. En algunos ejemplos, los datos secretos de entrada 140 son datos sensibles cuyo valor no se debe revelar a los otros nodos 102b-d que participan en la computación multipartita. En algunos casos, cada uno de los nodos 102a-d almacena sus propios datos secretos de entrada. Según se describió anteriormente, utilizando algoritmos tales como el SPDZ, los nodos 102a-d pueden realizar una computación multipartita sobre los datos secretos de entrada de cada nodo, y producir un resultado correcto y verificable de la computación sin que ningún nodo revele el verdadero valor de sus datos secretos de entrada a ningún otro nodo.
El nodo 102b almacena datos de entrada de confianza 150 que corresponden a los datos secretos de entrada 140 almacenados por el nodo 102a. En algunos casos, los datos de entrada de confianza 150 pueden ser una representación cifrada de los datos secretos de entrada 140 para los que sólo el nodo 102a contiene la clave de descifrado, lo que significa que el nodo 102b no puede conocer el verdadero valor de los datos secretos de entrada 140 a partir de los datos de entrada de confianza 150. En algunos casos, los datos de entrada de confianza 150 se obtienen por el nodo 102b a partir de una fuente de datos de confianza 110, mostrada en este caso como una cadena de bloques. En algunos ejemplos, los datos de entrada de confianza 150 se obtienen de una fuente que garantiza su autenticidad. Por ejemplo, una cadena de bloques correctamente mantenida asegura que los datos que se almacenan en la cadena de bloques sean inmutables una vez almacenados, lo que significa que hay poco riesgo de que el nodo 102a o cualquier otro actor cambie el valor de los datos de entrada de confianza 150 después de haber sido almacenados en la cadena de bloques. Los datos de entrada de confianza 150 también se pueden obtener de una tercera parte de confianza que firme criptográficamente los datos de entrada de confianza 150 para permitir que se verifique su autenticidad. En algunos casos, los datos de entrada de confianza 150 pueden ser una función hash cifrada de los datos secretos de entrada 140, y el nodo 102b puede obtener un algoritmo de prueba de conocimiento cero del nodo 102a para verificar que la función hash cifrada corresponde a un valor de la función hash de los datos secretos de entrada 140.
La FIG. 2 representa un ejemplo de un flujo de señales 200 de acuerdo con las implementaciones de la presente descripción. En 210, el nodo 102b recupera los datos de entrada de confianza 150 correspondientes a los datos secretos de entrada 140 almacenados por el nodo 102a desde la fuente de datos de confianza 110. En 220, el nodo 102b genera una cuota MAC de confianza basándose en los datos de entrada de confianza 150. En algunos casos, la cuota MAC de confianza se puede basar en una cuota de clave MAC generada por el nodo 102b, que es una cuota de una clave MAC global generada por todos los nodos que participan en la computación multipartita.
En 230, el nodo 102b envía un texto cifrado basándose en parte en la cuota MAC de confianza al nodo 102a. En algunos casos, el nodo 102b genera el texto cifrado basándose en los datos de entrada de confianza, la cuota de clave MAC y la cuota MAC de confianza. En 240, el nodo 102a genera una cuota MAC de los datos secretos de entrada basándose en parte en el texto cifrado. En algunos casos, la cuota MAC se genera basándose en el texto cifrado, una cuota de clave MAC asociada con el nodo 102a, el elemento de datos secretos de entrada, y una clave secreta configurada para descifrar el elemento de datos de entrada de confianza.
En 250, los nodos 102a-b realizan la computación multipartita. En algunos casos, los nodos 102a-b realizan la computación en cooperación con otros nodos que participan en la computación. En algunos ejemplos, la computación multipartita se realiza de acuerdo con el protocolo SPDZ, descrito anteriormente.
En 260, los nodos 102a-b realizan la computación multipartita. En algunos casos, los nodos 102a-b verifican la computación en cooperación con otros nodos que participan en la computación. En algunos ejemplos, la computación multipartita se verifica de acuerdo con el protocolo SPDZ, descrito anteriormente.
La FIG. 3 es un diagrama de flujo de un ejemplo de un proceso 300 para impedir la tergiversación de los datos de entrada en una computación multipartita en la que participan varios dispositivos de computación. Por comodidad, el proceso 300 se describirá como realizado por un sistema de uno o más ordenadores, ubicados en una o más ubicaciones, y debidamente programados de acuerdo con esta memoria descriptiva. Por ejemplo, un sistema, por ejemplo, el sistema 100 de la FIG. 1, debidamente programado, puede realizar el proceso 300.
En 302, un primer dispositivo de computación identifica un elemento de datos de entrada de confianza que está cifrado homomórficamente, en donde el elemento de datos de entrada de confianza corresponde a un elemento de datos secretos de entrada asociado con un segundo dispositivo de computación diferente del primer dispositivo de computación, en donde el segundo dispositivo de computación está asociado con un propietario del elemento de datos secretos de entrada, y en donde el primer dispositivo de computación está asociado con una parte diferente que no es el propietario del elemento de datos secretos de entrada. En algunos casos, el elemento de datos de entrada de confianza es recibido por el primer dispositivo de computación desde una fuente de datos de confianza. En algunos ejemplos, la fuente de datos de confianza es una cadena de bloques.
En 304, el primer dispositivo de computación genera una cuota MAC de confianza asociada con el elemento de datos de entrada de confianza.
En 306, el primer dispositivo de computación genera un texto cifrado basándose, al menos en parte, en la cuota MAC de confianza.
En 308, el primer dispositivo de computación envía el texto cifrado al segundo dispositivo de computación, en donde el segundo dispositivo de computación utiliza el texto cifrado como un componente de una cuota MAC asociada con el elemento de datos secretos de entrada. En algunos casos, la cuota MAC asociada con el elemento de datos secretos de entrada se genera basándose en el texto cifrado, una cuota de clave MAC asociada con el segundo dispositivo de computación, el elemento de datos secretos de entrada y una clave secreta configurada para descifrar el elemento de datos de entrada de confianza.
En 310, después de que los varios dispositivos de computación hayan completado la computación multipartita, el primer dispositivo de computación verifica un resultado de la computación multipartita basándose, al menos en parte, en la cuota MAC asociada con el elemento de datos secretos de entrada.
En algunos casos, el proceso 300 incluye la generación, por parte del primer dispositivo de computación, de una cuota de clave MAC asociada con el primer dispositivo de computación, en donde la cuota de clave MAC es un número aleatorio y en donde el texto cifrado se genera basándose, al menos en parte, en la cuota de clave MAC.
En algunos casos, el proceso 300 incluye la realización de la computación multipartita de acuerdo con el protocolo Smart-Pastro-Damgard-Zakarias (SPDZ) antes de verificar la computación multipartita, y la verificación del resultado de la computación multipartita se realiza de acuerdo con el protocolo SPDZ.
En algunos ejemplos, el resultado r de la computación multipartita se determina de acuerdo con la ecuación:
r = / ( z 1,z 2, ...zn)
donde f es la operación realizada por la computación multipartita, y Z1, Z2 , ... zn son los elementos de datos secretos de entrada asociados con los varios dispositivos de computación; y el resultado MAC M(r) de la computación multipartita se determina de acuerdo con la ecuación:
donde M es una función MAC utilizada para generar la cuota MAC del elemento de datos secretos de entrada. En algunos casos, la función MAC es una operación numérica que genera un número que se utilizará como cuota MAC dados un elemento de datos y una cuota de clave MAC como entrada. En algunas implementaciones, la función MAC producirá el mismo número cuando se le dé la misma entrada, similar a una función hash.
En algunos casos, la operación realizada por la computación multipartita es una operación de suma, y el resultado r de la computación multipartita se determina de acuerdo con la ecuación:
r =z1+ z2 + —zn
y el resultado MAC M(r) de la computación multipartita se determina de acuerdo con la ecuación:
La FIG. 4 es un diagrama de un ejemplo de módulos de un aparato 400 de acuerdo con las formas de realización de esta memoria descriptiva.
El aparato 400 puede ser un ejemplo de una forma de realización de un dispositivo de computación que puede realizar una computación multipartita. El aparato 400 puede corresponder a las formas de realización descritas anteriormente, y el aparato 400 incluye lo siguiente: un módulo de identificación 402 que identifica un elemento de datos de entrada de confianza que está cifrado homomórficamente, en donde el elemento de datos de entrada de confianza corresponde a un elemento de datos secretos de entrada asociado con un segundo dispositivo de computación diferente al primer dispositivo de computación, en donde el segundo dispositivo de computación está asociado con un propietario del elemento de datos secretos de entrada, y en donde el primer dispositivo de computación está asociado con una parte diferente que no es el propietario del elemento de datos de entrada de confianza; un primer módulo generador 404 que genera una cuota MAC de confianza asociada con el elemento de datos de entrada de confianza; un segundo módulo generador 406 que genera un texto cifrado basándose, al menos en parte, en la cuota MAC de confianza; un módulo de envío 408 que envía el texto cifrado al segundo dispositivo de computación, en donde el segundo dispositivo de computación utiliza el texto cifrado como un componente de una cuota MAC asociada con el elemento de datos secretos de entrada; un módulo de verificación 310 que verifica un resultado de la computación multipartita basándose, al menos en parte, en el texto cifrado, basándose en que el elemento de datos de entrada de confianza es un componente de la cuota MAC asociada con el elemento de datos secretos de entrada, después de que la computación multipartita se haya completado por los varios dispositivos de computación.
El sistema, aparato, módulo o unidad ilustrados en las formas de realización anteriores se pueden implementar utilizando un chip informático o una entidad, o se pueden implementar utilizando un producto que tenga una función determinada. Un dispositivo típico de la forma de realización es un ordenador, y el ordenador puede ser un ordenador personal, un ordenador portátil, un teléfono móvil, un teléfono con cámara, un teléfono inteligente, un asistente digital personal, un reproductor multimedia, un dispositivo de navegación, un dispositivo de recepción y envío de correo electrónico, una consola de juegos, un ordenador tipo tableta, un dispositivo para llevar puesto o cualquier combinación de estos dispositivos.
Para un proceso de forma de realización de las funciones y roles de cada módulo en el aparato, se puede hacer referencia a un proceso de forma de realización de las etapas correspondientes en el método anterior. Los detalles se omiten en este caso para simplificar.
Dado que una forma de realización del aparato corresponde básicamente a una forma de realización del método, para las partes relacionadas, se puede hacer referencia a las descripciones relacionadas en la forma de realización del método. La forma de realización del aparato descrita anteriormente es simplemente un ejemplo. Los módulos descritos como partes separadas pueden o no estar físicamente separados, y las partes mostradas como módulos pueden o no ser módulos físicos, pueden estar ubicados en una posición, o pueden estar distribuidos en un número de módulos de red. Algunos o todos los módulos se pueden seleccionar en función de las demandas reales para lograr los objetivos de las soluciones de la memoria descriptiva. Un experto en la técnica puede entender y poner en práctica las formas de realización de la presente solicitud sin esfuerzos creativos.
Con referencia de nuevo a la FIG. 4, se puede interpretar que ilustra un módulo funcional interno y una estructura de dispositivo de computación operable para participar en una computación multipartita. Un cuerpo de ejecución en esencia puede ser un dispositivo electrónico, y el dispositivo electrónico incluye lo siguiente: uno o más procesadores; y una memoria configurada para almacenar una instrucción ejecutable del uno o más procesadores.
Las técnicas descritas en esta memoria descriptiva producen uno o más efectos técnicos. En algunas formas de realización, las técnicas descritas en la presente memoria proporcionan una mayor seguridad de los datos para los participantes de una computación multipartita al permitir que los dispositivos de computación que participan en la computación multipartita verifiquen que todos los demás participantes están proporcionando datos de entrada auténticos a la computación. Esto impide que un participante malintencionado tergiverse sus datos de entrada para influir en el resultado de la computación multipartita. Las técnicas permiten que esta verificación se realice como parte de la computación multipartita, de tal manera que no haya una gran cantidad de tiempo entre la producción del resultado y la verificación.
Las formas de realización descritas de la materia de estudio pueden incluir una o más características, por separado o en combinación.
Por ejemplo, en una primera forma de realización, un método de ejemplo comprende identificar, mediante un primer dispositivo de computación, un elemento de datos de entrada de confianza que está cifrado homomórficamente, en donde el elemento de datos de entrada de confianza corresponde a un elemento de datos secretos de entrada asociado con un segundo dispositivo de computación diferente del primer dispositivo de computación, en donde el segundo dispositivo de computación está asociado con un propietario del elemento de datos secretos de entrada, y en donde el primer dispositivo de computación está asociado con una parte diferente que no es el propietario del elemento de datos de entrada de confianza; generar, mediante el primer dispositivo de computación, una cuota MAC de confianza asociada con el elemento de datos de entrada de confianza; generar, mediante el primer dispositivo de computación, un texto cifrado basándose, al menos en parte, en la cuota MAC de confianza; enviar, mediante el primer dispositivo de computación, el texto cifrado al segundo dispositivo de computación, en donde el segundo dispositivo de computación utiliza el texto cifrado como un componente de una cuota MAC asociada con el elemento de datos secretos de entrada; y después de que la computación multipartita se haya completado mediante los varios dispositivos de computación, verificar, mediante el primer dispositivo de computación, un resultado de la computación multipartita basándose, al menos en parte, en la cuota MAC asociada con el elemento de datos secretos de entrada.
Las anteriores y otras formas de realización descritas pueden incluir, opcionalmente, una o más de las siguientes características:
Una primera característica, combinable con cualquiera de las siguientes características, especifica que el elemento de datos de entrada de confianza se recibe por el primer dispositivo de computación desde una fuente de datos de confianza.
Una segunda característica, combinable con cualquiera de las anteriores o siguientes, características especifica que la fuente de datos de confianza es una cadena de bloques.
Una tercera característica, combinable con cualquiera de las características anteriores o siguientes, especifica que el método comprende además la generación, por parte del primer dispositivo de computación, de una cuota de clave MAC asociada con el primer dispositivo de computación, en donde la cuota de clave MAC es un número aleatorio y en donde el texto cifrado se genera basándose, al menos en parte, en la cuota de clave MAC.
Una cuarta característica, combinable con cualquiera de las características anteriores o siguientes, especifica que la cuota MAC asociada con el elemento de datos secretos de entrada se genera basándose en el texto cifrado, una cuota de clave MAC asociada con el segundo dispositivo de computación, el elemento de datos secretos de entrada y una clave secreta configurada para descifrar el elemento de datos de entrada de confianza.
Una quinta característica, combinable con cualquiera de las características anteriores o siguientes, especifica que el método comprende además, antes de verificar la computación multipartita, realizar la computación multipartita de acuerdo con el protocolo Smart-Pastro-Damgárd-Zakarias (SPDZ), y en donde la verificación del resultado de la computación multipartita se realiza de acuerdo con el protocolo SPDZ.
Una sexta característica, combinable con cualquiera de las anteriores o siguientes características, especifica que el resultado r de la computación multipartita se determina de acuerdo con la ecuación:
donde f es la operación realizada por la computación multipartita, y zi, Z2 , ... zn son los elementos de datos secretos de entrada asociados con los varios dispositivos de computación; y en donde el resultado MAC M(r) de la computación multipartita se determina de acuerdo con la ecuación:
Figure imgf000008_0001
donde M es una función MAC utilizada para generar la cuota MAC del elemento de datos secretos de entrada. Una séptima característica, combinable con cualquiera de las anteriores o siguientes características, especifica que la operación realizada por la computación multipartita es una operación de suma, en donde el resultado r de la computación multipartita se determina de acuerdo con la ecuación:
Figure imgf000008_0002
y en donde el resultado MAC M(r) de la computación multipartita se determina de acuerdo con la ecuación:
Figure imgf000008_0003
Las formas de realización de la materia de estudio y las acciones y operaciones descritas en esta memoria descriptiva se pueden implementar en circuitos electrónicos digitales, en software o firmware incorporados de forma tangible, en hardware informático, incluyendo las estructuras descritas en esta memoria descriptiva y sus equivalentes estructurales, o en combinaciones de uno o más de ellos. Las formas de realización de la materia de estudio descrita en esta memoria descriptiva se pueden implementar como uno o más programas de ordenador, por ejemplo, uno o más módulos de instrucciones de programa de ordenador, codificados en un soporte de programa de ordenador, para su ejecución por, o para controlar la operación de, aparatos de procesamiento de datos. Por ejemplo, un soporte de programa de ordenador puede incluir uno o más medios de almacenamiento legibles por ordenador que tienen instrucciones codificadas o almacenadas en los mismos. El soporte puede ser un medio tangible no transitorio legible por ordenador, tal como un disco magnético, magneto-óptico u óptico, una unidad de estado sólido, una memoria de acceso aleatorio (RAM), una memoria de sólo lectura (ROM) u otros tipos de medios. Como alternativa, o adicionalmente, la portadora puede ser una señal propagada generada artificialmente, por ejemplo, una señal eléctrica, óptica o electromagnética generada por una máquina que se genera para codificar información para su transmisión a un aparato receptor adecuado para su ejecución por un aparato de procesamiento de datos. El medio de almacenamiento informático puede ser o formar parte de un dispositivo de almacenamiento legible por máquina, un sustrato de almacenamiento legible por máquina, un dispositivo de memoria de acceso aleatorio o en serie, o una combinación de uno o más de ellos. Un medio de almacenamiento informático no es una señal propagada.
Un programa informático, que también se puede denominar o describir como un programa, software, aplicación de software, aplicación, módulo, módulo de software, motor, script o código, se puede escribir en cualquier forma de lenguaje de programación, incluidos los lenguajes compilados o interpretados, o los lenguajes declarativos o procedimentales; y se puede poner en práctica de cualquier forma, incluso como un programa independiente o como un módulo, componente, motor, subrutina u otra unidad adecuada para ejecutarse en un entorno de computación, que puede incluir uno o más ordenadores interconectados por una red de comunicación de datos en una o más ubicaciones.
Un programa de ordenador puede corresponder, aunque no necesariamente, a un archivo en un sistema de archivos. Un programa de ordenador se puede almacenar en una parte de un archivo que contenga otros programas o datos, por ejemplo, uno o más scripts almacenados en un documento de lenguaje de marcas, en un único archivo dedicado al programa en cuestión, o en múltiples archivos coordinados, por ejemplo, archivos que almacenen uno o más módulos, subprogramas o partes de código.
Los procesadores para la ejecución de un programa de ordenador incluyen, a modo de ejemplo, tanto microprocesadores de propósito general como especial, y uno o más procesadores de cualquier clase de ordenador digital. Por lo general, un procesador recibirá las instrucciones del programa de ordenador para su ejecución, así como los datos de un medio no transitorio legible por ordenador acoplado al procesador.
El término "aparato de procesamiento de datos" abarca toda clase de aparatos, dispositivos y máquinas para el procesamiento de datos, incluyendo a modo de ejemplo un procesador programable, un ordenador o múltiples procesadores u ordenadores. El aparato de procesamiento de datos puede incluir circuitos lógicos de propósito especial, por ejemplo, una FPGA (matriz de puertas programables en campo), un ASIC (circuito integrado de aplicación específica) o una GPU (unidad de procesamiento gráfico). El aparato también puede incluir, además del hardware, código que cree un entorno de ejecución para los programas informáticos, por ejemplo, código que constituya el firmware del procesador, una pila de protocolos, un sistema de gestión de bases de datos, un sistema operativo, o una combinación de uno o más de ellos.
Los procesos y flujos lógicos descritos en esta memoria descriptiva se pueden realizar por uno o más ordenadores o procesadores que ejecutan uno o más programas informáticos para realizar operaciones operando sobre datos de entrada y generando resultados. Los procesos y flujos lógicos también se pueden realizar mediante circuitos lógicos de propósito especial, por ejemplo, una FPGA, un ASIC o una GPU, o mediante una combinación de circuitos lógicos de propósito especial y uno o más ordenadores programados.
Los ordenadores adecuados para la ejecución de un programa informático pueden estar basados en microprocesadores de propósito general o especial, o ambos, o en cualquier otra clase de unidad central de procesamiento. Por lo general, una unidad central de procesamiento recibirá instrucciones y datos de una memoria de sólo lectura, de una memoria de acceso aleatorio o de ambas. Los elementos de un ordenador pueden incluir una unidad central de procesamiento para ejecutar instrucciones y uno o más dispositivos de memoria para almacenar instrucciones y datos. La unidad central de procesamiento y la memoria se pueden complementar por, o incorporar en, circuitos lógicos de propósito especial.
Por lo general, un ordenador también incluirá, o se acoplará de forma operativa para recibir datos desde o transferir datos a uno o más dispositivos de almacenamiento. Los dispositivos de almacenamiento pueden ser, por ejemplo, discos magnéticos, magneto-ópticos u ópticos, unidades de estado sólido o cualquier otro tipo de medio no transitorio legible por ordenador. Sin embargo, no es necesario que un ordenador tenga dichos dispositivos. Por lo tanto, un ordenador se puede acoplar a uno o más dispositivos de almacenamiento, tales como, una o más memorias, que son locales y/o remotas. Por ejemplo, un ordenador puede incluir una o más memorias locales que sean componentes integrales del ordenador, o el ordenador se puede acoplar a una o más memorias remotas que estén en una red en la nube. Además, un ordenador se puede integrar en otro dispositivo, por ejemplo, un teléfono móvil, un asistente digital personal (PDA), un reproductor de audio o vídeo móvil, una consola de juegos, un receptor del sistema de posicionamiento global (GPS) o un dispositivo de almacenamiento portátil, por ejemplo, una unidad flash de bus serie universal (USB), por nombrar sólo algunos.
Los componentes se pueden "acoplar" entre sí conectándose, por ejemplo, eléctrica u ópticamente entre sí de forma conmutable, ya sea directamente o a través de uno o más componentes intermedios. Los componentes también se pueden "acoplar" entre sí si uno de ellos se integra en el otro. Por ejemplo, un componente de almacenamiento integrado en un procesador (por ejemplo, un componente de caché L2) se "acopla" al procesador.
Para posibilitar la interacción con un usuario, las formas de realización de la materia de estudio descrita en esta memoria descriptiva se pueden implementar en, o se pueden configurar para comunicarse con, un ordenador que tenga un dispositivo de visualización, por ejemplo, un monitor LCD (pantalla de cristal líquido), para mostrar información al usuario, y un dispositivo de entrada mediante el cual el usuario pueda proporcionar información de entrada al ordenador, por ejemplo, un teclado y un dispositivo señalador, por ejemplo, un ratón, una bola de desplazamiento o un panel táctil. También se pueden utilizar otros tipos de dispositivos para proporcionar la interacción con un usuario; por ejemplo, la retroalimentación proporcionada al usuario puede ser cualquier forma de información sensorial, por ejemplo, retroalimentación visual, auditiva o táctil; y la información de entrada del usuario se puede recibir de cualquier forma, incluyendo información acústica, verbal o táctil. Además, un ordenador puede interactuar con un usuario enviando documentos y recibiendo documentos de un dispositivo utilizado por el usuario; por ejemplo, enviando páginas web a un navegador web en un dispositivo de usuario en respuesta a las solicitudes recibidas desde el navegador web, o interactuando con una aplicación que se ejecuta en un dispositivo de usuario, por ejemplo, un teléfono inteligente o una tableta electrónica. Además, un ordenador puede interactuar con un usuario enviando mensajes de texto u otras formas de mensaje a un dispositivo personal, por ejemplo, un teléfono inteligente que esté ejecutando una aplicación de mensajería, y recibiendo a cambio mensajes de respuesta del usuario.
Esta memoria descriptiva utiliza el término "configurado para" en relación con sistemas, aparatos y componentes de programas informáticos. Que un sistema de uno o más ordenadores esté configurado para realizar determinadas operaciones o acciones significa que el sistema tiene instalado software, firmware, hardware o una combinación de ellos que, en funcionamiento, hacen que el sistema realice las operaciones o acciones. Que uno o más programas de ordenador se configuren para realizar operaciones o acciones particulares significa que el o los programas incluyen instrucciones que, cuando son ejecutadas por el aparato de procesamiento de datos, hacen que el aparato realice las operaciones o acciones. Que un circuito lógico de propósito especial se configure para realizar operaciones o acciones particulares significa que el circuito tiene una lógica electrónica que realiza las operaciones o acciones.
Si bien esta memoria descriptiva contiene muchos detalles específicos de las formas de realización, éstos no se deben interpretar como limitaciones del alcance de lo que se reivindica, que se define en las propias reivindicaciones, sino como descripciones de características que pueden ser específicas de determinadas formas de realización. Determinadas características que se describen en esta memoria descriptiva en el contexto de formas de realización separadas también se pueden realizar en combinación en una única forma de realización. Por el contrario, diversas características que se describen en el contexto de una única forma de realización también se pueden realizar en múltiples formas de realización por separado o en cualquier subcombinación adecuada. Además, aunque las características se pueden haber descrito anteriormente como actuando en determinadas combinaciones e incluso inicialmente ser reivindicadas como tales, una o más características de una combinación reivindicada pueden en algunos casos ser extirpadas de la combinación, y la reivindicación se puede dirigir a una subcombinación o variación de una subcombinación.
Del mismo modo, aunque las operaciones se representan en los dibujos y se enumeran en las reivindicaciones en un orden particular, esto no se debe entender como un requisito de que dichas operaciones se realicen en el orden particular mostrado o en orden secuencial, o que se realicen todas las operaciones ilustradas, para lograr los resultados deseados. En determinadas circunstancias, la multitarea y el procesamiento en paralelo pueden ser ventajosos. Además, la separación de diversos módulos y componentes del sistema en las formas de realización descritas anteriormente no se debe entender como una exigencia de dicha separación en todas las formas de realización, y se debe entender que los componentes del programa y los sistemas descritos se pueden integrar por lo general juntos en un único producto de software o empaquetarse en múltiples productos de software.
Se han descrito formas de realización particulares de la materia de estudio. Por ejemplo, las acciones que se enumeran en las reivindicaciones se pueden realizar en un orden diferente y aun así lograr resultados deseables. Como un ejemplo, los procesos representados en las figuras adjuntas no requieren necesariamente el orden particular mostrado, o el orden secuencial, para lograr resultados deseables. En algunos casos, la multitarea y el procesamiento en paralelo pueden ser ventajosos.

Claims (11)

REIVINDICACIONES
1. Un método implementado por ordenador para evitar la tergiversación de los datos de entrada en una computación multipartita que implica varios dispositivos de computación que comprenden un primer dispositivo de computación (102b) y un segundo dispositivo de computación (102a), comprendiendo el método:
identificar (302), mediante el primer dispositivo de computación (102b), un elemento de datos de entrada de confianza (150) que está cifrado homomórficamente, en donde el elemento de datos de entrada de confianza corresponde a un elemento de datos secretos de entrada (140) asociados con el segundo dispositivo de computación (102a) que es diferente del primer dispositivo de computación (102b), en donde el segundo dispositivo de computación (102a) está asociado con un propietario del elemento de datos secretos de entrada (140), y en donde el primer dispositivo de computación (102b) está asociado a una parte diferente que no es el propietario del elemento de datos secretos de entrada (140), y en donde el primer dispositivo de computación (102b) recibe (210) el elemento de datos de entrada de confianza (150) de una tercera parte de fuente de datos de confianza (110);
generar (306, 220), mediante el primer dispositivo de computación (102b), una cuota de código de autentificación de mensajes, MAC, de confianza asociada con el elemento de datos de entrada de confianza (150);
generar (308), mediante el primer dispositivo de computación (102b), un texto cifrado basándose, al menos en parte, en la cuota MAC de confianza;
enviar (310, 230), mediante el primer dispositivo de computación (102b), el texto cifrado al segundo dispositivo de computación (102a), en donde el segundo dispositivo de computación utiliza (240) el texto cifrado como un componente de una cuota MAC asociada con el elemento de datos secretos de entrada; y
después de que la computación multipartita (250) se complete por los varios dispositivos de computación, verificar (312, 260), mediante el primer dispositivo de computación, un resultado de la computación multipartita basándose, al menos en parte, en la cuota MAC asociada con el elemento de datos secretos de entrada.
2. El método de la reivindicación 1, en donde la fuente de datos de confianza (110) es una cadena de bloques.
3. El método de cualquier reivindicación precedente, que comprende además:
generar, mediante el primer dispositivo de computación, una cuota de clave MAC asociada con el primer dispositivo de computación, en donde la cuota de clave MAC es un número aleatorio y en donde el texto cifrado se genera basándose, al menos en parte, en la cuota de clave MAC, el elemento de datos de entrada de confianza y la cuota MAC de confianza.
4. El método de cualquier reivindicación precedente, en donde la cuota MAC asociada con el elemento de datos secretos de entrada se genera basándose en el texto cifrado, una cuota de clave MAC asociada con el segundo dispositivo de computación, el elemento de datos secretos de entrada y una clave secreta configurada para descifrar el elemento de datos secretos de entrada.
5. El método de cualquier reivindicación precedente que comprende además, antes de verificar la computación multipartita, realizar la computación multipartita de acuerdo con un protocolo Smart-Pastro-Damgárd-Zakarias, SPDZ, y en donde la verificación del resultado de la computación multipartita se realiza de acuerdo con el protocolo SPDZ.
6. El método de cualquier reivindicación precedente, en donde el resultado r de la computación multipartita se determina de acuerdo con la ecuación:
r = f (z1,z2, —zn)
donde f es una operación realizada por la computación multipartita, y z1, z2 , ... zn son los elementos de datos secretos de entrada asociados con los varios dispositivos de computación; y
en donde un resultado MAC M(r) de la computación multipartita se determina de acuerdo con la ecuación:
M(r) = M (f ( z1,z 2, . . . z j )
donde M es una función MAC utilizada para generar la cuota MAC del elemento de datos secretos de entrada.
7. El método de la reivindicación 6, en donde la operación realizada por la computación multipartita es una operación de suma, en donde el resultado r de la computación multipartita se determina de acuerdo con la ecuación:
r = z1+ z 2 zn
y en donde un resultado MAC M(r) de la computación multipartita se determina de acuerdo con la ecuación:
M(r) =M(z1) M(z2) -M (zn).
8. El método de la reivindicación 7, en donde las cuotas del resultado MAC M(r) se calculan basándose en las cuotas MAC de los datos de entrada mediante los varios dispositivos de computación.
9. El método de cualquier reivindicación precedente, en donde la cuota MAC de confianza es un número aleatorio.
10. Un sistema para evitar la tergiversación de los datos de entrada en una computación multipartita que implique a varios dispositivos de computación, que comprende:
uno o más procesadores; y
una o más memorias legibles por ordenador acopladas a uno o más procesadores y con instrucciones almacenadas en las mismas que se pueden ejecutar por el o los procesadores para realizar el método de cualquiera de las reivindicaciones 1 a 9.
11. Un aparato para evitar la tergiversación de los datos de entrada en una computación multipartita que implique a varios dispositivos de computación, comprendiendo el aparato varios módulos para realizar el método de cualquiera de las reivindicaciones 1 a 9.
ES19725887T 2019-03-18 2019-03-18 Prevención de la tergiversación de los datos de entrada por parte de los participantes en una computación segura multipartita Active ES2871053T3 (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2019/078516 WO2019101243A2 (en) 2019-03-18 2019-03-18 Preventing misrepresentation of input data by participants in a secure multi-party computation

Publications (1)

Publication Number Publication Date
ES2871053T3 true ES2871053T3 (es) 2021-10-28

Family

ID=66630475

Family Applications (1)

Application Number Title Priority Date Filing Date
ES19725887T Active ES2871053T3 (es) 2019-03-18 2019-03-18 Prevención de la tergiversación de los datos de entrada por parte de los participantes en una computación segura multipartita

Country Status (12)

Country Link
US (2) US10637659B1 (es)
EP (1) EP3616356B1 (es)
JP (1) JP6882512B2 (es)
KR (1) KR102145701B1 (es)
CN (1) CN110800252B (es)
AU (1) AU2019203863B2 (es)
CA (1) CA3058227C (es)
ES (1) ES2871053T3 (es)
PL (1) PL3616356T3 (es)
SG (1) SG11201909014QA (es)
TW (1) TWI720720B (es)
WO (1) WO2019101243A2 (es)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11245536B2 (en) * 2019-04-16 2022-02-08 Meta Platforms, Inc. Secure multi-party computation attribution
CN111931250B (zh) * 2019-07-11 2024-03-22 华控清交信息科技(北京)有限公司 多方安全计算一体机
US11424916B2 (en) * 2019-07-19 2022-08-23 Fujitsu Limited Selectively private distributed computation for blockchain
US20220261507A1 (en) * 2019-07-24 2022-08-18 Nec Corporation Secure computation server, trail management method, and program
CN112769742B (zh) * 2019-11-06 2024-06-14 电科云(北京)科技有限公司 Spdz系列协议中的消息验证方法、装置及存储介质
CN111832074B (zh) * 2020-07-14 2023-04-07 西安电子科技大学 基于spdz安全多方计算的安全验证协作学习方法及系统
CN112184220A (zh) * 2020-09-22 2021-01-05 远光软件股份有限公司 安全多方计算方法、电子设备及存储介质
US11784826B2 (en) * 2020-12-11 2023-10-10 Visa International Service Association System, method, and computer program product for secure real-time n-party computation
CN113067822B (zh) * 2021-03-19 2023-11-10 中国工商银行股份有限公司 基于区块链的信息处理方法、装置、设备、介质和产品
CN113259123B (zh) * 2021-06-08 2022-02-08 清华大学 一种区块链数据写入、访问方法及装置
CN113468564B (zh) * 2021-06-30 2024-07-12 华控清交信息科技(北京)有限公司 一种数据处理方法、装置、电子设备及存储介质
CN114422116B (zh) * 2021-12-14 2023-11-28 阿里巴巴(中国)有限公司 数据处理方法及装置
CN114444069B (zh) * 2021-12-17 2023-04-07 中国科学院信息工程研究所 一种恶意模型下高效的阈值安全多方计算方法
CN114520720B (zh) * 2022-03-22 2023-06-16 暨南大学 一种基于tls协议的多方认证区块链数据上链方法

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7890771B2 (en) * 2002-04-17 2011-02-15 Microsoft Corporation Saving and retrieving data based on public key encryption
US9344438B2 (en) * 2008-12-22 2016-05-17 Qualcomm Incorporated Secure node identifier assignment in a distributed hash table for peer-to-peer networks
EP2348449A3 (en) * 2009-12-18 2013-07-10 CompuGroup Medical AG A computer implemented method for performing cloud computing on data being stored pseudonymously in a database
WO2013101174A1 (en) * 2011-12-30 2013-07-04 Intel Corporation Mobile device position detection
US9503263B2 (en) * 2014-10-16 2016-11-22 Dyce, Llc Method and apparatus for storing encrypted data files across distributed storage media
US9998434B2 (en) * 2015-01-26 2018-06-12 Listat Ltd. Secure dynamic communication network and protocol
US20170293913A1 (en) * 2016-04-12 2017-10-12 The Governing Council Of The University Of Toronto System and methods for validating and performing operations on homomorphically encrypted data
FR3057090B1 (fr) * 2016-09-30 2018-10-19 Safran Identity & Security Procedes d'apprentissage securise de parametres d'un reseau de neurones a convolution, et de classification securisee d'une donnee d'entree
US10333715B2 (en) * 2016-11-14 2019-06-25 International Business Machines Corporation Providing computation services with privacy
GB201705621D0 (en) * 2017-04-07 2017-05-24 Nchain Holdings Ltd Computer-implemented system and method
EP3439234B1 (en) * 2017-07-31 2020-12-30 Koninklijke Philips N.V. Distributing a computation output
CN107819587B (zh) * 2017-12-13 2020-08-11 陈智罡 基于全同态加密的认证方法和用户设备以及认证服务器
CN108683669B (zh) * 2018-05-19 2021-09-17 深圳市图灵奇点智能科技有限公司 数据验证方法和安全多方计算系统
US11201734B2 (en) * 2018-06-04 2021-12-14 Robert Bosch Gmbh Method and system for fault tolerant and secure multiparty computation with SPDZ
CN108718240A (zh) * 2018-06-08 2018-10-30 浙江捷尚人工智能研究发展有限公司 基于全同态加密的认证方法、电子设备、存储介质及系统
CN109120398B (zh) * 2018-08-03 2021-07-27 河南师范大学 一种基于区块链系统的秘密共享方法与装置
CN109255247B (zh) * 2018-08-14 2020-08-14 阿里巴巴集团控股有限公司 多方安全计算方法及装置、电子设备
CN109241016B (zh) * 2018-08-14 2020-07-07 阿里巴巴集团控股有限公司 多方安全计算方法及装置、电子设备

Also Published As

Publication number Publication date
SG11201909014QA (en) 2019-10-30
WO2019101243A3 (en) 2020-01-23
AU2019203863A1 (en) 2019-05-31
AU2019203863B2 (en) 2021-01-28
US10637659B1 (en) 2020-04-28
TW202036292A (zh) 2020-10-01
US10790971B1 (en) 2020-09-29
JP2020537362A (ja) 2020-12-17
JP6882512B2 (ja) 2021-06-02
KR102145701B1 (ko) 2020-08-19
CA3058227A1 (en) 2019-05-31
US20200304294A1 (en) 2020-09-24
EP3616356B1 (en) 2021-03-10
EP3616356A2 (en) 2020-03-04
CA3058227C (en) 2021-02-09
EP3616356A4 (en) 2020-07-01
CN110800252A (zh) 2020-02-14
WO2019101243A2 (en) 2019-05-31
PL3616356T3 (pl) 2021-07-26
TWI720720B (zh) 2021-03-01
CN110800252B (zh) 2023-06-27

Similar Documents

Publication Publication Date Title
ES2871053T3 (es) Prevención de la tergiversación de los datos de entrada por parte de los participantes en una computación segura multipartita
JP6892513B2 (ja) 信頼できる実行環境に基づいたオフチェーンスマートコントラクトサービス
KR102213414B1 (ko) 일반 계정 모델 및 동형 암호화 기반의 블록 체인 데이터 보호
JP6690066B2 (ja) パブリックサイドチェーンを使用してコンソーシアムブロックチェーンに記憶されたデータの完全性を検証すること
RU2736447C1 (ru) Перекрестная торговля активами в сетях блокчейнов
US20200311678A1 (en) Smart contract execution using distributed coordination
KR20200054129A (ko) 동형 암호화를 이용한 블록체인 데이터 보호
KR20200083936A (ko) 블록체인 네트워크에서의 트랜잭션의 병렬 실행
CN108647968A (zh) 一种区块链数据处理方法、装置、处理设备及系统
CN108737403A (zh) 一种区块链数据处理方法、装置、处理设备及系统
WO2019120333A2 (en) Performing parallel execution of transactions in a distributed ledger system
KR102537774B1 (ko) 기밀 지식의 특화된 증명을 제공하는 시스템들 및 방법들
CA3048425A1 (en) System and method for an electronic identity brokerage
JP6921266B2 (ja) パブリックサイドチェーンを使用してコンソーシアムブロックチェーンに記憶されたデータの完全性を検証すること
Liu et al. Privacy-preserving COVID-19 contact tracing solution based on blockchain
CN113420886B (zh) 纵向联邦学习模型的训练方法、装置、设备及存储介质
US20230251905A1 (en) Synchronizing computing resources to proceed with a task
Slayton Democratizing Cryptography: The Work of Whitfield Diffie and Martin Hellman
TWI854899B (zh) 用以基於證明驗證來認證資料饋入之電腦實施方法、運算系統及非暫時性電腦可讀儲存媒體
Khajehpourdezfoli Mitigating maximal extractable value via multiparty delay encryption
JP2024022488A (ja) 匿名メッセージ・ボード・サーバーの検証
Marcedone Secure Computation in the Real World
JP2023010648A (ja) 秘匿取引のための方法およびシステム
Theuermann Reliability and Security for Safety-Critical Service Compositions
CN112926086A (zh) 基于区块链的隐私计算方法、装置、终端设备和介质