ES2906346T3 - Divulgación selectiva de atributos y entradas de datos de un registro - Google Patents

Divulgación selectiva de atributos y entradas de datos de un registro Download PDF

Info

Publication number
ES2906346T3
ES2906346T3 ES20181834T ES20181834T ES2906346T3 ES 2906346 T3 ES2906346 T3 ES 2906346T3 ES 20181834 T ES20181834 T ES 20181834T ES 20181834 T ES20181834 T ES 20181834T ES 2906346 T3 ES2906346 T3 ES 2906346T3
Authority
ES
Spain
Prior art keywords
data
attributes
record
secret
identifier
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
ES20181834T
Other languages
English (en)
Inventor
Adriaan Joris H Larmuseau
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.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips NV
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 Koninklijke Philips NV filed Critical Koninklijke Philips NV
Application granted granted Critical
Publication of ES2906346T3 publication Critical patent/ES2906346T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2379Updates performed during online database operations; commit processing
    • 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/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • 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/3218Cryptographic 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 proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
    • 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/3226Cryptographic 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 a predetermined code, e.g. password, passphrase or PIN
    • H04L9/3231Biological data, e.g. fingerprint, voice or retina
    • 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/3247Cryptographic 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 involving digital signatures
    • 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/42Anonymization, e.g. involving pseudonyms
    • 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/88Medical equipments

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Bioethics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biodiversity & Conservation Biology (AREA)
  • Biomedical Technology (AREA)
  • Computing Systems (AREA)
  • Medical Informatics (AREA)
  • Storage Device Security (AREA)

Abstract

Un sistema (100) para revelar selectivamente atributos y entradas de datos de un registro (172), el sistema comprende un dispositivo emisor (110), un dispositivo selector (111) y un dispositivo receptor (112), - el dispositivo emisor (110) es para proporcionar un registro a un dispositivo selector para la divulgación selectiva, el dispositivo emisor que comprende: - una memoria (130) configurada para almacenar: - una clave privada del emisor (170), formando la clave privada del emisor un par de claves públicas y privadas con la correspondiente clave pública del emisor (171); - el registro, que comprende uno o más atributos (181,182) y que incluye múltiples entradas de datos (191,192); - un procesador (140) configurado para: - determinar un identificador de registro secreto (173); - generar una firma digital (180) en un mensaje de atributos utilizando la clave privada del emisor, el mensaje de atributos que comprende uno o más atributos y el identificador de registro secreto; - generar múltiples firmas digitales (191',192') en múltiples mensajes de datos para las múltiples entradas de datos utilizando la clave privada del emisor, un mensaje de datos para una entrada de datos que comprende la entrada de datos y el identificador de registro secreto; - proporcionar el registro, el identificador de registro secreto, la firma digital del mensaje de atributos y las firmas digitales de los mensajes de datos al dispositivo selector; - el dispositivo selector (111) que permite revelar selectivamente los atributos y las entradas de datos del registro a un dispositivo receptor, comprendiendo el dispositivo selector: - una memoria (131) configurada para almacenar: - el registro, el identificador secreto del registro, la firma digital del mensaje de atributos y las firmas digitales de los mensajes de datos; - un procesador (141) configurado para: - determinar uno o más atributos a revelar (183,184) como un subconjunto de los uno o más atributos, y una o más entradas de datos a revelar (193) como un subconjunto de las múltiples entradas de datos; - proporcionar los uno o más atributos a revelar y las una o más entradas de datos a revelar al dispositivo receptor; - realizar una prueba de conocimiento cero (174) con el dispositivo receptor, en la que el dispositivo selector prueba el conocimiento de: - el identificador de registro secreto; - la firma digital en el mensaje de atributos como una firma digital en un mensaje que comprende al menos uno o más atributos a revelar y el identificador de registro secreto, firmado con una clave privada correspondiente a la clave pública del emisor; - las firmas digitales en los mensajes de datos para las entradas de datos que se van a revelar como firmas digitales en los mensajes que comprenden las entradas de datos que se van a revelar y cada una de las cuales comprende el identificador de registro secreto, firmado con una clave privada correspondiente a la clave pública del emisor; - el dispositivo receptor (112) es para obtener selectivamente los atributos y entradas de datos del registro desde el dispositivo selector, comprendiendo el dispositivo receptor: - una memoria (132) configurada para almacenar la clave pública del emisor; 0 - un procesador (142) configurado para: - obtener del dispositivo selector el o los atributos y la o las entradas de datos; - realizar la prueba de conocimiento cero con el dispositivo selector con respecto a los valores y entradas de datos obtenidos y la clave pública del emisor para comprobar que los valores y entradas de datos obtenidos pertenecen al registro del dispositivo emisor.

Description

DESCRIPCIÓN
Divulgación selectiva de atributos y entradas de datos de un registro
CAMPO DE LA INVENCIÓN
La invención se refiere a un sistema para revelar selectivamente atributos, por ejemplo, atributos de fenotipo, y entradas de datos, por ejemplo, porciones de datos genómicos, de un registro. La invención también se refiere a un dispositivo emisor, un dispositivo selector y un dispositivo receptor para su uso en dicho sistema. La invención se refiere además a un método emisor, un método selector y un método receptor correspondientes a los respectivos dispositivos. La invención también se refiere a un medio de almacenamiento legible por ordenador.
ANTECEDENTES DE LA INVENCIÓN
El uso de datos genómicos para la investigación y el tratamiento médico es muy prometedor en cuanto a posibles aplicaciones, pero si no se trata con cuidado, también conlleva grandes riesgos en cuanto a la privacidad y seguridad de los datos. A medida que se dispone de los datos genómicos de más y más personas, aumentan las posibilidades de realizar investigaciones médicas, por ejemplo, para encontrar un tratamiento mejor o más adaptado. Al mismo tiempo, este tipo de investigación médica implica datos de genotipo y fenotipo muy sensibles, y en muchos casos, por ejemplo, en los estudios de asociación de todo el genoma, se pueden utilizar datos sobre muchos pacientes diferentes. Por lo tanto, es necesario tomar las medidas adecuadas para evitar el acceso y la modificación no autorizados de dichos datos.
Una forma conocida de limitar la exposición de los datos en un entorno de investigación médica es la desidentificación. Por ejemplo, en un sistema conocido, los datos genómicos pueden recogerse de varias partes originarias, por ejemplo, datos de varios dispositivos o ensayos médicos, y almacenarse en una plataforma central. Un investigador puede solicitar datos genómicos de pacientes con determinadas características. De acuerdo con las leyes y las normas mundiales, estos datos deben ser desidentificados. En consecuencia, la plataforma puede seleccionar datos sobre uno o más pacientes; desidentificar los datos, por ejemplo, seleccionar un subconjunto de datos de fenotipo y genotipo; y proporcionar los datos desidentificados al investigador.
En términos más generales, la desidentificación, es decir, el suministro de una versión redactada de un registro de información personal lo suficientemente limitada en su especificidad y detalles para que ya no pueda vincularse a su sujeto de datos, es cada vez más común, impulsada por empujes legislativos como el Reglamento General de protección de Datos (GDPR por sus siglas inglés), así como por normas médicas como Proyecto Beacon - Alianza Mundial para la Genómica y la Salud (GA4GH Beacon por sus siglas en inglés). Por ejemplo, los datos desidentificados pueden utilizarse para investigaciones médicas distintas de la investigación genómica, pero también en otros ámbitos de aplicación como los servicios financieros y la publicidad. En el caso de los registros más generales, por ejemplo, los que no contienen información personal, la desidentificación puede considerarse un tipo de divulgación selectiva, por ejemplo, dejar que un proveedor de datos decida qué partes de un registro comparte con un destinatario.
Desde el punto de vista del receptor de los datos desidentificados, por ejemplo, el investigador que recibe datos genómicos y fenotípicos desidentificados sobre un paciente, el hecho de que los datos estén desidentificados puede introducir riesgos de fraude o manipulación por parte de malos actores. Dado que los datos desidentificados pueden no estar vinculados a su fuente original, puede ser difícil discernir entre los datos reales, que tienen una fuente legítima, y los datos falsos, que no tienen una fuente legítima. Por lo tanto, es deseable realizar la desidentificación de tal manera que el receptor, por ejemplo, alguien que paga por los datos o alguien que inspecciona los datos con fines reglamentarios, pueda confiar en que los datos desidentificados son legítimos, por ejemplo, procedentes de fuentes fiables.
El documento de publicación de la Solicitud de Patente de los Estados Unidos US2012/0005098 a Gross et al. revela la validación que preserva la privacidad de una muestra de datos genéticos enviada por el usuario utilizando una prueba de conocimiento cero.
J. Camenisch et al: "Atributos eficientes para credenciales anónimas", Procedimientos de la 15a Conferencia ACM sobre Seguridad Informática y de las Comunicaciones, CCS '08, revela un mecanismo eficiente para la divulgación selectiva de atributos utilizando credenciales anónimas.
El documento de publicación de la Solicitud de Patente de los Estados Unidos US2010/00115281 a Camenisch et al. divulga un sistema para certificar los atributos del usuario utilizando credenciales anónimas.
M. Maffei et al: "La privacidad y el control de acceso para los registros personales subcontratados", 2014 IEEE Simposio sobre Seguridad y Privacidad, divulga la subcontratación para preservar la privacidad de los datos sensibles, en particular los registros genéticos.
RESUMEN DE LA INVENCIÓN
La garantía de autenticidad puede realizarse mediante técnicas convencionales, por ejemplo, enviando una solicitud a todos los autores de los datos para que firmen digitalmente los datos desidentificados, demostrando que los aprueban. Sin embargo, esto es complicado, a menudo costoso y puede que ni siquiera sea posible, por ejemplo, si el emisor es una organización o una máquina que ha sido retirada del servicio. En consecuencia, es necesario mejorar las técnicas automatizadas para garantizar la fiabilidad de los registros divulgados selectivamente.
Para resolver estos y otros problemas, se propone un sistema para revelar selectivamente los atributos y las entradas de datos de un registro, tal como se define en las reivindicaciones. El sistema puede comprender un dispositivo emisor para proporcionar un registro a un dispositivo selector para su revelación selectiva; un dispositivo selector para revelar selectivamente partes del registro a un dispositivo receptor; y un dispositivo receptor para obtener selectivamente las partes del registro.
El registro puede comprender dos tipos diferentes de datos, es decir, el registro puede comprender uno o más atributos y múltiples entradas de datos. En una divulgación selectiva, el dispositivo selector puede determinar uno o más atributos a ser divulgados como un subconjunto de los uno o más atributos, y una o más entradas de datos a ser divulgadas como un subconjunto de las múltiples entradas de datos. El registro puede ser un registro de información personal, por ejemplo, los atributos y las entradas de datos pueden comprender información sobre una persona. Sin embargo, los registros que comprenden otros tipos de información sensible son igualmente posibles.
Los atributos suelen ser de un conjunto predefinido, por ejemplo, si el sistema procesa varios registros, cada uno de ellos puede proporcionar valores para el mismo conjunto de atributos. Por ejemplo, uno o más registros pueden representar información sobre el fenotipo de una persona, por ejemplo, la longitud, el color del pelo, el diagnóstico de una condición médica particular, etc. Los valores de los atributos de un registro concreto suelen ser fijos durante toda la vida de un registro. Los atributos suelen ser numéricos, categóricos, cadenas de longitud fija, etc. El número de atributos también es relativamente pequeño, por ejemplo, como máximo 10, como máximo 20 o como máximo 50.
Por otro lado, las entradas de datos pueden ser utilizadas para diferentes tipos de información que los atributos. Por ejemplo, una entrada de datos puede representar una porción del genoma de la persona que el registro representa, por ejemplo, un polimorfismo de nucleótido único (SNP), por ejemplo, tal y como está codificado por una línea de datos de un archivo formato de llamada variante (VCF) de datos genómicos. El número de entradas de datos asociadas a un registro suele ser mayor que el número de atributos, por ejemplo, al menos 100, al menos 500 o al menos 1000 entradas de datos pueden estar asociadas a un registro. Las entradas de datos tampoco suelen ser numéricas o categóricas, sino que pueden ser cadenas, por ejemplo, de longitud flexible, o datos binarios, por ejemplo, una imagen. Además, el número de entradas de datos asociadas a un registro no tiene por qué ser fijo, por ejemplo, diferentes registros pueden tener diferentes números de entradas de datos asociados a ellos. El conjunto de entradas de datos puede incluso ser dinámico, por ejemplo, se pueden añadir nuevas entradas de datos a un registro a medida que estén disponibles, se pueden eliminar o actualizar las entradas de datos existentes, etc. Estas características hacen que no sea práctico manejar las entradas de datos de la misma manera que se manejan los atributos.
Para seguir permitiendo la divulgación selectiva tanto de los atributos como de las entradas de datos de forma segura, los inventores han ideado que el dispositivo emisor genere firmas digitales sobre los atributos y las entradas de datos, utilizando una clave privada del emisor de la que el dispositivo receptor conoce la correspondiente clave pública del emisor. Como es sabido, una firma digital en un mensaje permite a alguien con la clave pública del emisor establecer que el mensaje ha sido firmado por una parte que posee la clave privada correspondiente. En este caso, el dispositivo emisor puede generar una firma digital en un mensaje de atributos que comprende uno o más atributos, y las respectivas firmas digitales en los mensajes de datos que comprenden las respectivas entradas de datos, por ejemplo, una para cada entrada de datos. En consecuencia, estas firmas digitales pueden permitir establecer la autenticidad de los atributos y entradas de datos del registro. En este caso, las firmas digitales se eligen preferentemente de forma que permitan realizar de forma eficiente las denominadas pruebas de conocimiento cero sobre ellas, tal y como se comentará en breve.
Resulta interesante que al utilizar una firma digital que comprenda los atributos y firmas digitales separadas en las respectivas entradas de datos, se pueden lograr varios efectos beneficiosos. La firma digital que comprende los atributos puede comprender un número fijo de atributos, y también una firma digital en una entrada de datos puede tener una entrada de longitud fija, por ejemplo, un compendio de la entrada de datos. Esto es útil porque las firmas digitales pueden tener así un tamaño de mensaje fijo y, en consecuencia, un formato fijo. Esto es particularmente importante cuando se utilizan las firmas para las pruebas de conocimiento cero, como se discute más adelante, ya que las técnicas eficientes para realizar tales pruebas pueden depender del uso de mensajes de formato fijo.
Además, el uso de firmas digitales separadas en las entradas de datos puede permitir que se realice una divulgación selectiva procesando sólo las firmas digitales en las entradas de datos que realmente se divulgan, por ejemplo, en lugar de tener que realizar operaciones en una firma digital que comprenda todas las entradas de datos, lo que es particularmente importante ya que el número de entradas de datos, y los tamaños de las entradas de datos individuales, pueden ser sustanciales. Por ejemplo, los datos genómicos, como un archivo VCF, pueden incluir miles de alteraciones del genoma. Si una divulgación selectiva de sólo algunas de estas alteraciones implicara el procesamiento de cada una de las alteraciones del genoma o incluso la realización de operaciones criptográficas avanzadas para cada alteración, los costes podrían resultar prohibitivos. Además, el número de entradas de datos comprendidas en un registro puede permanecer oculto en una revelación de la parte receptora, por ejemplo, una parte receptora puede no ser capaz de vincular el registro obtenido en diferentes interacciones con el sistema sobre la base de que contienen el mismo número de entradas de datos.
Sin embargo, los inventores se dieron cuenta de que, cuando se implementa de forma ingenua, el uso de múltiples firmas digitales para firmar un registro tiene un problema cuando el dispositivo emisor proporciona múltiples registros. Concretamente, en este caso, las firmas digitales de diferentes registros pueden mezclarse, por ejemplo, mediante un dispositivo selector, para obtener un registro firmado con información genómica de diferentes personas. Así, el dispositivo emisor según una realización puede determinar un identificador de registro secreto, por ejemplo, un identificador generado aleatoriamente que es específico para el registro particular, y puede incluirlo en el mensaje de atributos y los mensajes de datos que firma para ese registro. El dispositivo emisor puede entonces proporcionar el registro, el identificador de registro secreto y las firmas digitales al dispositivo selector. El identificador de registro secreto puede utilizarse así para garantizar que las respectivas firmas digitales corresponden a un único registro proporcionado por el dispositivo emisor. Sin embargo, como se comenta más adelante, el identificador de registro secreto puede permanecer oculto para un dispositivo receptor.
Al realizar una divulgación selectiva, el dispositivo selector podría ahora proporcionar los atributos y las entradas de datos a revelar, junto con sus firmas, al dispositivo receptor. Sin embargo, esta solución no sería óptima desde el punto de vista de la minimización de datos. Por ejemplo, el mensaje de atributos también puede contener atributos no revelados, pero el dispositivo receptor normalmente seguiría necesitando esos atributos para verificar la firma. Además, las firmas contienen el identificador de registro secreto, por lo que el destinatario normalmente necesitaría el identificador de registro secreto para verificar las firmas. Así, si en dos divulgaciones diferentes, el receptor obtiene conjuntos de atributos y entradas de datos que no se solapan del mismo registro, el receptor puede vincular estos dos registros parciales diferentes entre sí basándose en el identificador de registro secreto. O bien, el destinatario puede utilizar el identificador de registro secreto para vincular su registro parcial con otros registros parciales recibidos por diferentes destinatarios.
Sin embargo, es interesante que los inventores hayan ideado que el dispositivo selector utilice una prueba de conocimiento cero para demostrar al receptor que los valores y las entradas de datos proporcionados pertenecen a un único registro firmado por el dispositivo emisor. Como se sabe de la criptografía, una prueba de conocimiento cero es un método por el cual una parte, el comprobador, puede demostrar a otra parte, el verificador, que conoce un valor que satisface una determinada propiedad. En una prueba de conocimiento cero, curiosamente, esto se hace sin que el comprobador revele el valor al verificador. Por ejemplo, en una prueba de conocimiento cero conocida, el verificador conoce una clave pública y el comprobador puede demostrar al verificador que conoce la clave privada correspondiente a esa clave pública sin revelar la clave privada al verificador.
En este caso, el dispositivo selector puede realizar una prueba de conocimiento cero con el dispositivo receptor en la que el dispositivo selector prueba el conocimiento del identificador de registro secreto, la firma digital del mensaje de atributos y las firmas digitales de los mensajes de datos. En otras palabras, el dispositivo selector no suele revelar el identificador de registro secreto ni ninguna de las firmas digitales al dispositivo receptor, sino que demuestra que conoce un identificador y unas firmas válidas. A continuación se ofrecen ejemplos concretos de construcción eficiente de dichas pruebas, aunque cabe señalar que en la literatura existen técnicas genéricas que permiten demostrar el conocimiento de datos que satisfacen relaciones arbitrarias, de modo que, en principio, se puede utilizar cualquier esquema de firma digital y cualquier sistema general de prueba de conocimiento cero.
Con respecto a los atributos, el dispositivo selector puede probar que la firma digital en el mensaje de atributos es una firma digital en un mensaje que comprende al menos uno o más atributos a revelar y el identificador de registro secreto. El dispositivo receptor puede verificar esta parte de la prueba con respecto a uno o más atributos que ha obtenido del dispositivo selector para determinar la corrección de los atributos recibidos. El dispositivo selector también puede demostrar que la firma digital está firmada con una clave privada correspondiente a la clave pública del emisor, que el receptor puede verificar utilizando la clave pública del emisor. Al realizar esta parte de la prueba como verificador, el dispositivo receptor puede así obtener la seguridad de que los atributos que ha obtenido del dispositivo receptor son realmente parte de un registro proporcionado por el dispositivo emisor.
En lo que respecta a las entradas de datos, el dispositivo selector puede probar que las firmas digitales de los mensajes de datos son firmas digitales de mensajes que comprenden las entradas de datos que se van a revelar y cada una de ellas comprende el identificador de registro secreto, por ejemplo, los respectivos mensajes que comprenden cada una de las entradas de datos y el segundo identificador de registro. El dispositivo receptor puede verificar esta parte de la prueba con respecto a las entradas de datos que ha obtenido del dispositivo selector para comprobar su corrección. El dispositivo selector también puede demostrar que la firma digital está firmada con una clave privada correspondiente a la clave pública del emisor, que el receptor puede verificar utilizando la clave pública del emisor. Al realizar esta parte de la prueba como verificador, el dispositivo receptor puede obtener así la garantía de que las entradas de datos que ha obtenido del dispositivo receptor forman parte del registro proporcionado por el dispositivo emisor. En particular, la prueba puede garantizar que cada una de las firmas digitales comprende el identificador de registro secreto y, por lo tanto, forma parte del mismo registro proporcionado por el dispositivo emisor; aun así, el dispositivo receptor puede no conocer realmente el identificador de registro secreto, lo que impide la vinculación entre registros parciales obtenidos en diferentes divulgaciones selectivas.
Así, se proporciona un sistema en el que un dispositivo selector puede proporcionar atributos y entradas de datos de un registro a un dispositivo receptor con garantías de privacidad y/o autenticidad mejoradas. Además, se proporcionan diferentes dispositivos que aportan cada uno características particulares que contribuyen a las diversas ventajas. Por ejemplo, el dispositivo emisor puede determinar un identificador de registro secreto e incluirlo en las respectivas firmas digitales de un registro. Las firmas digitales son preferiblemente de un tipo que permite realizar pruebas eficientes de conocimiento cero sobre ellas, de las que se dan ejemplos a continuación, aunque se puede utilizar cualquier tipo de firma digital en combinación con un sistema de prueba de conocimiento cero adecuado. Como otro ejemplo, el dispositivo selector y el receptor pueden realizar una prueba de conocimiento cero para determinar al dispositivo receptor que los valores y entradas de datos revelados selectivamente pertenecen a un único registro del dispositivo emisor.
Debido a las medidas comentadas, el dispositivo receptor puede obtener garantías de que los atributos y entradas de datos obtenidos pertenecen a un único registro proporcionado por el dispositivo emisor. Sin embargo, el dispositivo receptor no suele conocer los atributos o entradas de datos no revelados, ni siquiera cuántas entradas de datos comprende el registro. En particular, aunque las partes de los registros están vinculadas por un identificador, este identificador puede ser un identificador de registro secreto que el dispositivo receptor no conoce. La carga de realizar la divulgación selectiva se elimina del dispositivo emisor, que puede que sólo tenga que proporcionar su registro una vez al dispositivo selector y no tenga que intervenir después. El sistema puede ser particularmente adecuado para conjuntos grandes y/o dinámicos de entradas de datos, ya que una divulgación selectiva de un subconjunto de las múltiples entradas de datos suele implicar un escalado de cálculo y comunicación en el número de entradas de datos divulgadas, no en el número total de entradas de datos. Por ejemplo, en lugar de revelar un genoma completo, sólo se pueden revelar porciones relevantes, y la revelación sólo se escala en el número de porciones relevantes. En consecuencia, se proporciona una divulgación selectiva mejorada de partes de un registro.
En una realización, los atributos del registro pueden comprender uno o más atributos de fenotipo sobre una persona. Las entradas de datos del registro pueden comprender una o más porciones del genoma de la persona. Por ejemplo, el sistema puede ser un sistema para proporcionar datos genómicos a un investigador para la investigación médica. Dada la sensibilidad de los datos genómicos y también para mejorar el cumplimiento de la normativa sobre privacidad en diversas jurisdicciones, es importante que dicho registro sea desanonimizado; al mismo tiempo, el número de porciones genómicas en el registro puede ser grande, por ejemplo, el registro puede comprender todo el genoma secuenciado de la persona o grandes partes del mismo. En tales casos, permitir la divulgación selectiva de un subconjunto del conjunto de porciones genómicas como se describe, por lo que las características beneficiosas de la escala como se describe aquí son particularmente relevantes.
Se pueden utilizar varios esquemas de firma digital para firmar el mensaje de atributos y los mensajes de datos para las entradas de datos múltiples. Como ya se ha comentado, en principio se puede utilizar cualquier esquema de firma digital. A continuación se comentan varias opciones especialmente ventajosas.
Varias formas de realización se basan en credenciales anónimas. Las credenciales anónimas son conocidas per se en la técnica como una forma de que un usuario obtenga una certificación por parte de un emisor de credenciales sobre uno o más de sus atributos, por ejemplo, la edad y el país de origen del usuario. El usuario puede mostrar la credencial de forma anónima a un tercero para demostrar que cumple determinadas propiedades, por ejemplo, que tiene al menos 18 años, sin revelar información que permita relacionarlo con el usuario. Los atributos de los esquemas de credenciales anónimas se asumen típicamente como numéricos; otros tipos de atributos pueden ser codificados de varias maneras, por ejemplo, un atributo textual puede ser codificado como un atributo numérico aplicando una función unidireccional al texto, etc.
Ejemplos de tales esquemas de credenciales anónimas se divulgan, por ejemplo, en J. Camenisch et al., " Esquemas de firma y credenciales anónimas a partir de mapas bilineales", Procedimientos CRYPTO '04 en lo que se refiere a la descripción del esquema de credenciales anónimas) y en J. Camenisch et al., " Un acumulador basado en mapas bilineales y revocación eficiente para credenciales anónimas", Procedimientos PKC '09 en lo que se refiere a la descripción del esquema de credenciales anónimas).
Curiosamente, en una realización, las credenciales anónimas pueden ser reutilizadas para los sistemas presentados aquí, en el sentido de que la firma digital en el mensaje de atributos como se presenta aquí comprende una credencial anónima firmada con la clave privada del emisor. La credencial anónima puede tener como atributos uno o más atributos del registro y el identificador secreto del registro. En efecto, las credenciales anónimas se utilizan "al revés". T radicionalmente, un usuario y un emisor ejecutan un protocolo de emisión para que el usuario obtenga una credencial sobre atributos de los que el emisor puede desconocer los valores; a petición de un tercero para demostrar una propiedad, el usuario utiliza la credencial anónima emitida. En cambio, en el presente caso, no se necesita dicho protocolo de emisión y el dispositivo emisor puede proporcionar la credencial al dispositivo selector directamente. A diferencia del caso tradicional, el dispositivo selector que posee la credencial suele ser una parte intermedia con la que la credencial no está relacionada, por ejemplo, el dispositivo selector puede poseer diferentes registros sobre diferentes entidades, por ejemplo, personas, con las que no está relacionado. El dispositivo selector puede entonces revelar selectivamente partes de estos registros y/o mostrar o demostrar propiedades de atributos por su propia voluntad. A pesar de estas diferencias, es interesante que las credenciales anónimas puedan seguir utilizándose como un bloque de construcción en el sistema actual.
En algunas realizaciones, el esquema de firma digital utilizado para los mensajes de datos es el mismo que el del mensaje de atributos, por ejemplo, una firma digital para una entrada de datos puede ser una credencial anónima con el identificador de registro secreto y la entrada de datos, o una función unidireccional aplicada a la entrada de datos, como atributos. Esto lleva a un diseño especialmente sencillo.
Sin embargo, también es posible optimizar la firma de los mensajes de datos de varias maneras, por ejemplo, basándose en el hecho de que los mensajes de datos no necesitan contener los valores de múltiples atributos.
En algunas realizaciones, la firma digital del mensaje de datos se basa en una suma de, al menos, el identificador de registro secreto y y un compendio H(m) de la entrada de datos m. Por ejemplo, el compendio H puede ser una función hash criptográfica o similar. Según se dieron cuenta los inventores, al firmar el valor y H(m) en lugar de los valores individuales y y H(m), es posible utilizar esquemas de firma más eficientes, por ejemplo, esquemas de firma para firmar y/o probar propiedades de valores individuales en lugar de esquemas de firma para firmar y/o probar propiedades de múltiples atributos. Curiosamente, incluso cuando y y H(m) se combinan tomando una suma, todavía, ya que H(m) es un compendio, puede no ser factible para el dispositivo selector encontrar otro mensaje de datos m' que dé el mismo valor para la suma, por ejemplo, y H(m) = y H(m'), o incluso que lleve a una suma para otro identificador secreto, por ejemplo, y H(m) = y' H(m'), por lo que la suma todavía puede proporcionar suficiente autenticidad tanto para el identificador secreto como para la entrada de datos.
En algunas realizaciones, la firma digital de la entrada de datos m se calcula calculando una exponenciación de un elemento de grupo g a un inverso multiplicativo de un valor que se basa al menos en la clave privada del emisor x, el identificador de registro secreto Dy la entrada de datos m. Los esquemas de firma basados en la exponenciación a un inverso multiplicativo son conocidos en la técnica per se y pueden proporcionar firmas pequeñas con pruebas eficientes de conocimiento cero, por ejemplo, véase D. Boneh y otros, " Breves firmas sin oráculos aleatorios y el supuesto SDH en grupos bilineales", J. Cryptology, 21(2):149-177, 2008 . Por ejemplo, el identificador de registro secreto y la entrada de datos pueden combinarse para formar el mensaje a firmar. En una realización, el texto plano comprende una suma del identificador de registro secreto y un compendio del mensaje como se ha comentado anteriormente, por ejemplo, la firma puede ser g1/x+v+H(m) . Este es un ejemplo de una firma especialmente eficiente en cuanto a almacenamiento, ya que sólo consta de un elemento de grupo. La persona experta podrá ver varias alternativas al uso de la suma anterior, por ejemplo, una suma de un compendio del identificador de registro secreto y un compendio del mensaje, etc.
En una realización, el dispositivo emisor está configurado además para obtener datos actualizados para una de las múltiples entradas de datos. El dispositivo emisor puede generar una firma digital actualizada en un mensaje de datos para esta entrada de datos actualizada. El dispositivo emisor puede entonces proporcionar la firma digital actualizada al dispositivo selector. De esta manera, el dispositivo emisor puede actualizar dinámicamente el registro de una entrada de datos a la vez. Curiosamente, dado que las entradas de datos se firman en las respectivas firmas digitales, en términos de complejidad computacional y de comunicación la actualización de una sola entrada de datos puede escalar bien, por ejemplo, no es necesario volver a calcular la firma sobre todas las entradas de datos, etc.
De forma similar a la actualización de una entrada de datos, también se pueden añadir entradas de datos al registro, por ejemplo, por el dispositivo emisor proporcionando la entrada de datos añadida y la firma al dispositivo selector, que actualiza el registro, o eliminada del registro por el dispositivo emisor, por ejemplo, indicando al dispositivo selector qué entrada de datos eliminar, que entonces actualiza el registro. Además, estas operaciones pueden implementarse de forma eficiente gracias a las firmas separadas para entradas de datos independientes. También es posible que el dispositivo emisor actualice el conjunto de atributos del registro, por ejemplo, proporcionando un conjunto actualizado de atributos o modificaciones a uno o más atributos, junto con una firma digital de actualización en un mensaje de atributos al dispositivo selector que entonces actualiza el registro. Además, esta operación puede llevarse a cabo de forma eficiente, ya que no es necesario incluir las entradas de datos.
En varias realizaciones, el dispositivo selector obtiene múltiples registros, por ejemplo, múltiples registros de un único dispositivo emisor, múltiples registros de múltiples dispositivos emisores, etc. El dispositivo selector puede así actuar como un sistema para proporcionar acceso a los múltiples registros a los dispositivos receptores, por ejemplo, un punto de acceso centralizado que selecciona y proporciona datos a los receptores, por ejemplo, investigadores médicos que quieren realizar investigaciones sobre datos genómicos.
En una realización, el dispositivo emisor está configurado para obtener una consulta de registro y seleccionar uno o más de los múltiples registros que se van a revelar de acuerdo con la consulta de registro. Por ejemplo, el dispositivo receptor puede proporcionar la consulta del registro, o la consulta del registro puede ser determinada de otra manera. Generalmente, la consulta de registros proporciona una o más condiciones para que los registros sean satisfechos. Por ejemplo, el dispositivo emisor puede seleccionar todos los registros que satisfagan las condiciones, los primeros X registros que satisfagan las condiciones, X registros aleatorios que satisfagan las condiciones, etcétera. Por ejemplo, una condición puede ser una condición sobre un atributo, es decir, la condición puede indicar que un atributo es igual a un valor particular o a otro atributo, que el atributo se encuentra en un determinado rango, etcétera. Una condición también puede ser una condición en una entrada de datos, por ejemplo, la existencia de una entrada de datos que contenga ciertos datos, es decir, un genoma que tenga una mutación particular. El dispositivo emisor puede entonces revelar selectivamente atributos y entradas de datos para cada registro actual de los registros seleccionados, por ejemplo, repitiendo la determinación de los atributos a revelar, la provisión de los atributos y entradas de datos del registro actual, y la realización de la prueba de conocimiento cero, para cada registro actual de los uno o más registros seleccionados. De este modo, el dispositivo receptor puede recibir registros relevantes para su uso particular.
En una realización, el dispositivo selector prueba al dispositivo receptor, utilizando la prueba de conocimiento cero para un registro actual, que el registro actual satisface la consulta de registro. Por ejemplo, la consulta del registro puede incluir una condición, por ejemplo, edad > 65, en un atributo que no se proporciona al dispositivo receptor. La prueba de conocimiento cero puede utilizarse para demostrar que dicha condición se cumple. También es posible demostrar las propiedades de las entradas de datos que no se proporcionan al dispositivo receptor. Las condiciones con respecto a los atributos revelados y las entradas de datos normalmente no necesitan ser probadas en el conocimiento cero porque el receptor las conoce. Tampoco es estrictamente necesario probar la consulta de registros completa, por ejemplo, por razones de eficiencia sólo se pueden probar las condiciones más relevantes de la consulta de registros. Curiosamente, mediante la prueba de conocimiento cero, el dispositivo receptor puede recibir la seguridad de que los registros que recibe satisfacen la consulta del registro, por ejemplo, una edad superior a los 65 años, mientras que no conoce los detalles, por ejemplo, la edad exacta. En consecuencia, se puede obtener una combinación particularmente beneficiosa de minimización de datos y autenticidad.
En una realización, el dispositivo selector obtiene además una consulta de entrada de datos, por ejemplo, recibida del dispositivo receptor o determinada de otro modo. El dispositivo selector puede determinar la o las entradas de datos que se van a revelar según la consulta de entrada de datos. Por ejemplo, la consulta de entrada de datos puede especificar una o más condiciones para que las entradas de datos se satisfagan, puede especificar una o más entradas de datos particulares para incluir, por ejemplo, datos del genoma en lugares particulares, etc. De este modo, es posible controlar qué entradas de datos se deben proporcionar. Se puede utilizar un enfoque similar para determinar los atributos que se deben revelar.
Por supuesto, el uso de consultas de registros y/o consultas de entrada de datos para controlar qué registros y/o partes de registros se van a revelar, no excluye la posibilidad de que el dispositivo selector realice comprobaciones sobre los datos que se van a revelar a un dispositivo receptor, por ejemplo, el dispositivo selector puede realizar una comprobación de que los atributos y las entradas de datos de un conjunto de registros que se van a revelar a un dispositivo receptor satisfacen una determinada propiedad de minimización de datos, por ejemplo, una propiedad de privacidad como la k-anonimidad.
En una realización, la prueba de conocimiento cero puede implicar que el dispositivo selector proporcione un acuerdo con el identificador de registro secreto al dispositivo receptor y pruebe el conocimiento de las firmas digitales con respecto al acuerdo. Por ejemplo, el acuerdo puede ser un acuerdo de tipo Pedersen como se conoce en la técnica. Proporcionar el comentario al dispositivo receptor puede permitir al dispositivo receptor establecer eficientemente que el mismo identificador de registro secreto está incluido en las respectivas firmas digitales proporcionando que cada una de esas firmas digitales incluye el mismo identificador de registro secreto que el comentario.
En una realización, la prueba de conocimiento cero puede ser una prueba de conocimiento cero no interactiva determinada y enviada por el dispositivo selector y recibida y verificada por el dispositivo receptor. Esto puede reducir la cantidad de comunicación necesaria, y/o permitir la transferencia de datos cuando ambas partes no están en línea al mismo tiempo.
Las técnicas aquí descritas pueden aplicarse en una amplia gama de aplicaciones prácticas. Estas aplicaciones prácticas incluyen plataformas para proporcionar conjuntos de datos desanonimizados, por ejemplo, a los investigadores en un contexto médico o financiero. Por ejemplo, dicha plataforma puede ser operada por varios hospitales o por un proveedor de servicios externo. De manera más general, cualquier tipo de aplicación en la que se necesite la divulgación selectiva de partes de un registro, especialmente un registro que contenga un conjunto flexible o grande de entradas de datos, puede beneficiarse de las técnicas aquí descritas.
Una realización del método puede implementarse en un ordenador como método implementado por ordenador, o en hardware dedicado, o en una combinación de ambos. El código ejecutable para una realización del método puede almacenarse en un producto de programa informático. Algunos ejemplos de productos de programas informáticos son los dispositivos de memoria, los dispositivos de almacenamiento óptico, los circuitos integrados, los servidores, el software en línea, etc. Preferentemente, el producto de programa informático comprende un código de programa no transitorio almacenado en un medio legible por ordenador para realizar una realización del método cuando dicho producto de programa se ejecuta en un ordenador.
En una realización, el programa de informático comprende un código de programa de informático adaptado para realizar todos los pasos de una realización del método cuando el programa informático se ejecuta en un ordenador.
Preferiblemente, el programa informático está plasmado en un medio legible por ordenador.
Otro aspecto de la invención proporciona un método para hacer que el programa informático esté disponible para su descarga. Este aspecto se utiliza cuando el programa informático se carga en, por ejemplo, la App Store de Apple, la Play Store de Google o la Windows Store de Microsoft, y cuando el programa informático está disponible para su descarga desde dicha tienda.
BREVE DESCRIPCIÓN DE LOS DIBUJOS
Otros detalles, aspectos y realizaciones de la invención se describirán, sólo a modo de ejemplo, con referencia a los dibujos. Los elementos de las figuras se ilustran para simplificar y aclarar y no se han dibujado necesariamente a escala. En las figuras, los elementos que corresponden a elementos ya descritos pueden tener los mismos números de referencia. En los dibujos:
- La figura 1a muestra de forma esquemática un ejemplo de sistema de divulgación selectiva que no implica pruebas de conocimiento cero;
- la figura 1b muestra de forma esquemática un ejemplo de una realización de un sistema de divulgación selectiva;
- la figura 2 muestra de forma esquemática un ejemplo de una realización de un dispositivo emisor; - la figura 3 muestra de forma esquemática un ejemplo de una realización de un dispositivo selector; - la figura 4 muestra de forma esquemática un ejemplo de una realización de un dispositivo receptor; - la figura 5 muestra de forma esquemática un ejemplo de una realización de un método de emisión; - la figura 6 muestra de forma esquemática un ejemplo de realización de un método de selección;
- la figura 7 muestra de forma esquemática un ejemplo de una realización de un método de recepción;
- la figura 8 muestra esquemáticamente un medio legible por ordenador que tiene una parte grabable que comprende un programa informático según una realización,
- la figura 9 muestra de forma esquemática una representación de un sistema procesador según una realización.
Lista de números de referencia:
100 un sistema de divulgación selectiva
010, 110,210 un dispositivo emisor
011, 111, 311 un dispositivo selector
012, 112,412 un dispositivo receptor
130, 131, 132 una memoria
140, 141, 142 un procesador
150, 151, 152 una interfaz de red
160 una red informática
070, 170, 270 una clave privada del emisor
071, 171, 471 una clave pública del emisor
072, 172, 272, 372 un registro
173, 273, 373 un identificador de registro secreto
174, 374, 474 una prueba de conocimiento cero
075 una firma digital en los atributos y entradas de datos divulgados
180, una firma digital sobre un mensaje de atributos
081-084, 181-184, 281-282, 381-384, 483-484 un atributo
091-093, 191-193, 291-292, 391-393, 493 una entrada de datos
191'-192', 291'-292', 393' una firma digital en un mensaje de datos
241 una unidad de generación de identificadores
242 una unidad de firma de atributos
243 una unidad de firma de entrada de datos
341 una unidad de selección
342 una unidad de prueba
441 una unidad de verificación
800 un medio legible por ordenador
810 una parte escrita
820 un programa informático
910 circuito(s) integrado(s)
920 una unidad de procesamiento
922 una memoria
924 un circuito integrado dedicados
926 un elemento de comunicación
930 una interconexión
940 un sistema procesador
DESCRIPCIÓN DETALLADA DE LAS REALIZACIONES
Si bien esta invención es capaz de realizarse en muchas formas diferentes, en los dibujos se muestran y se describen en detalle una o más realizaciones específicas, en el entendimiento de que la presente divulgación debe considerarse como un ejemplo de los principios de la invención y no pretende limitar la invención a las realizaciones específicas mostradas y descritas.
A continuación, para facilitar la comprensión, se describen los elementos de las realizaciones en funcionamiento. Sin embargo, será evidente que los elementos respectivos están dispuestos para realizar las funciones que se describen como realizadas por ellos.
Además, la invención no se limita a las realizaciones, y la invención se basa en todas y cada una de las características novedosas o combinaciones de características descritas en el presente documento o recitadas en reivindicaciones dependientes mutuamente diferentes.
La figura 1a muestra un ejemplo de sistema 000 para la divulgación selectiva de atributos y entradas de datos de un registro, según las mejores prácticas actuales. El sistema 000 no utiliza firmas de mensajes de atributos y de datos ni pruebas de conocimiento cero, tal como se define en las reivindicaciones.
En la figura se muestra un dispositivo emisor 010 que desea permitir que un dispositivo selector 011, por ejemplo, una plataforma genómica, divulgue selectivamente partes de un registro 072. El registro particular 072 mostrado en la figura comprende valores para un conjunto predefinido de atributos 081-082, por ejemplo, datos de fenotipo, y un conjunto de entradas de datos 091-092, por ejemplo, datos de genotipo. El dispositivo emisor 010 proporciona el registro al dispositivo selector 011.
Cuando el dispositivo selector 011 quiere revelar selectivamente partes del registro 011 a un dispositivo receptor 012, el dispositivo selector puede seleccionar uno o más de los atributos 081-082, en este caso, los atributos 083 y 084, y una o más de las entradas de datos 091-092, en este caso, la entrada de datos 093, para ser revelada al dispositivo receptor 012. El dispositivo receptor 012 puede recibir los atributos 083, 084 y las entradas de datos 093 que se van a revelar.
Aunque los pasos hasta ahora proporcionan una divulgación selectiva, por ejemplo, sólo una parte del registro es obtenida por el dispositivo receptor 012, todavía no se proporciona autenticidad, por ejemplo, el dispositivo receptor 012 no obtiene la seguridad de que los atributos y las entradas de datos recibidos se originan en un dispositivo emisor de confianza 010, y/o que los atributos y las entradas de datos recibidos pertenecen al mismo registro, por ejemplo, todos se refieren a la misma persona. Para obtener dicha garantía utilizando técnicas de última generación, se puede emplear una firma digital 075. La firma digital 075 en este ejemplo puede ser una firma convencional, por ejemplo, una firma RSA o ECDSA. La notación S(X; Y) adoptada en la figura y a lo largo de esta descripción puede denotar una firma con clave privada X sobre un mensaje Y. En el momento de la revelación, el dispositivo emisor 010 puede proporcionar al dispositivo receptor 012, por ejemplo, solicitado por el dispositivo selector 011, la firma digital 075, firmada con una clave privada del emisor 070, sobre los atributos y entradas de datos que se van a divulgar. El dispositivo receptor 012 puede verificar la firma digital 075 con respecto a una clave pública del emisor 071 correspondiente a la clave privada del emisor 070. La firma digital es normalmente sin recuperación del mensaje, por ejemplo, el mensaje no se deriva de la firma y en su lugar la firma y el mensaje se verifican juntos con respecto a la clave pública 071.
Aunque el sistema anterior puede proporcionar una divulgación selectiva con garantías de autenticidad, tiene la característica indeseable de que el dispositivo emisor 010 debe participar en cada divulgación selectiva. Esto es complicado, a menudo costoso, y a veces no es posible, por ejemplo, el dispositivo emisor 010 o su organización puede dejar de existir. En consecuencia, un problema que se aborda a continuación es cómo realizar una divulgación selectiva con garantías de autenticidad comparables, pero de tal manera que no sea necesario que un dispositivo emisor participe en una divulgación selectiva.
La figura 1 b muestra esquemáticamente un ejemplo de una realización de un sistema 100 para revelar selectivamente atributos y entradas de datos de un registro 172. El sistema 100 puede comprender un dispositivo emisor 100, un dispositivo selector 111, y/o un dispositivo receptor 112.
El dispositivo emisor 110 puede servir para proporcionar el registro 172 al dispositivo selector 111 para su divulgación selectiva. El dispositivo emisor 110 puede comprender un procesador 130 y una memoria 140. La memoria 140 puede utilizarse para el almacenamiento de datos y/o instrucciones. Por ejemplo, la memoria 140 puede comprender software y/o datos sobre los que el procesador 130 está configurado para actuar. La memoria 140 también puede almacenar una clave privada del emisor 170 que forma un par de claves públicas y privadas con la correspondiente clave pública del emisor 171. La memoria 140 también puede almacenar el registro 172. El registro 172 puede comprender uno o más atributos 181-182 y múltiples entradas de datos 191-192. A modo de ejemplo, se muestran dos atributos y dos entradas de datos. El procesador 130 puede implementarse como uno o más circuitos procesadores, por ejemplo, microprocesadores, ASIC, FPGA y similares. La memoria 140 puede contener instrucciones de programa informático que son ejecutables por el procesador 130. El procesador 130, posiblemente junto con la memoria 140, está configurado de acuerdo con una realización de un dispositivo emisor. El dispositivo emisor 110 también puede comprender una interfaz de comunicación 150 dispuesta para comunicarse con otros dispositivos, en particular, el dispositivo selector 111. Por ejemplo, la interfaz de comunicación puede comprender un conector, por ejemplo, un conector con cable, por ejemplo, un conector Ethernet, o un conector inalámbrico, por ejemplo, una antena, por ejemplo, una antena Wi-Fi, 4G o 5G. La interfaz de comunicación también puede ser una interfaz de almacenamiento a un almacenamiento de datos interno o externo, un teclado, una interfaz de aplicación (API), etc.
El dispositivo emisor 110 puede estar configurado para determinar un identificador de registro secreto 173. El dispositivo emisor 110 también puede estar configurado para generar una firma digital 180 en un mensaje de atributos utilizando la clave privada del emisor 170, donde el mensaje de atributos comprende uno o más atributos 181-182 y el identificador de registro secreto 173. El dispositivo emisor 110 también puede estar configurado para generar múltiples firmas digitales 191 '-192' en múltiples mensajes de datos para las múltiples entradas de datos 191-192 utilizando la clave privada emisora 170. Un mensaje de datos para una entrada de datos 191-192 puede comprender la entrada de datos y el identificador de registro secreto 173. El dispositivo emisor 110 puede estar configurado para proporcionar el registro 172, el identificador de registro secreto 173, la firma digital 180 en el mensaje de atributos y las firmas digitales 191'-192' en los mensajes de datos al dispositivo selector 111.
Como se muestra en la figura y se utiliza a lo largo de esta descripción, S1(X; Y) y S2(X; Y) pueden utilizarse para referirse a las firmas digitales firmadas utilizando la clave privada X en los mensajes Y. Como muestran los subíndices, pueden utilizarse diferentes esquemas de firma digital para la firma 180 y las firmas 191 '-192', aunque esto no es necesario. Las firmas digitales son típicamente sin recuperación del mensaje, por ejemplo, la firma digital puede ser verificada junto con el mensaje utilizando una clave pública correspondiente a la clave privada.
El dispositivo selector 111 puede ser para revelar selectivamente atributos y entradas de datos del registro 172 al dispositivo receptor 112. El dispositivo selector 111 puede comprender un procesador 131 y una memoria 141. La memoria 141 puede utilizarse para el almacenamiento de datos y/o instrucciones. Por ejemplo, la memoria 141 puede comprender software y/o datos sobre los que el procesador 131 está configurado para actuar. La memoria 141 también puede almacenar el registro 172, el identificador de registro secreto 173, la firma digital 180 en el mensaje de atributos y/o las firmas digitales 191'-192' en los mensajes de datos. El procesador 131 puede implementarse como uno o más circuitos procesadores, por ejemplo, microprocesadores, ASIC, FPGA y similares. La memoria 141 puede contener instrucciones de programa informático que son ejecutables por el procesador 131. El procesador 131, posiblemente junto con la memoria 141, está configurado de acuerdo con una realización de un dispositivo selector. El dispositivo selector 111 también puede comprender una interfaz de comunicación 151 dispuesta para comunicarse con otros dispositivos, en particular, el dispositivo emisor 110 y el dispositivo receptor 112. Por ejemplo, la interfaz de comunicación puede comprender un conector, por ejemplo, un conector con cable, por ejemplo, un conector Ethernet, o un conector inalámbrico, por ejemplo, una antena, por ejemplo, una antena Wi-Fi, 4G o 5G. La interfaz de comunicación también puede ser una interfaz de almacenamiento a un almacenamiento de datos interno o externo, un teclado, una interfaz de aplicación (API), etc.
El dispositivo selector 111 puede estar configurado para obtener el registro 172, el identificador de registro secreto 173, la firma digital 180 en el mensaje de atributos y las firmas digitales 191'-192' en los mensajes de datos. El dispositivo selector 111 puede estar configurado, además, para determinar uno o más atributos a revelar como un subconjunto de los uno o más atributos 181-182. A modo de ejemplo, la figura muestra dos atributos 183-184 que deben ser revelados. El dispositivo selector 111 puede estar configurado además para determinar una o más entradas de datos que se divulguen como un subconjunto de las múltiples entradas de datos 191-192. A modo de ejemplo, se muestra una única entrada de datos 193 que se va a revelar El dispositivo selector 111 puede estar configurado para proporcionar uno o más atributos a revelar 183, 184 y una o más entradas de datos a revelar 193 al dispositivo receptor 112.
El dispositivo selector 111 puede estar configurado además para realizar una prueba de conocimiento cero 174 con el dispositivo receptor 112. La prueba de conocimiento cero se muestra aquí como un mensaje que se envía desde el dispositivo selector 111 al dispositivo receptor 112, por ejemplo, una prueba de conocimiento cero no interactiva, pero esto no es necesario, por ejemplo, la prueba de conocimiento cero puede comprender múltiples mensajes que se intercambian entre las partes.
T al como se utiliza en esta figura y a lo largo de la descripción, la notación ZK(X; Y) denota una prueba de conocimiento cero de que los valores X satisfacen una determinada propiedad con respecto a los valores Y. Por ejemplo, los valores X están comprendidos en el llamado testigo de la prueba de conocimiento cero. El comprobador suele utilizar los valores X para realizar la prueba y el verificador suele verificar la prueba utilizando los valores Y.
En la prueba de conocimiento cero, el dispositivo selector puede probar el conocimiento de:
- el identificador de registro secreto 173;
- la firma digital 180 en el mensaje de atributos como una firma digital en un mensaje que comprende al menos uno o más atributos a revelar 183-184 y el identificador de registro secreto, firmado con una clave privada correspondiente a la clave pública del emisor 171; y
- las firmas digitales 191-192' en los mensajes de datos para las entradas de datos a revelar 193 como firmas digitales en los mensajes que comprenden las entradas de datos a revelar 193 y cada una de las cuales comprende el identificador de registro secreto, firmado con una clave privada correspondiente a la clave pública del emisor 172.
El dispositivo receptor 112 puede ser para obtener selectivamente los atributos 183-184 y las entradas de datos 193 del registro 172 desde el dispositivo selector 111. El dispositivo receptor 112 puede comprender un procesador 132 y una memoria 142. La memoria 142 puede utilizarse para el almacenamiento de datos y/o instrucciones. Por ejemplo, la memoria 142 puede comprender software y/o datos sobre los que el procesador 132 está configurado para actuar. La memoria 142 también puede almacenar la clave pública del emisor 171. El procesador 132 puede implementarse como uno o más circuitos procesadores, por ejemplo, microprocesadores, ASIC, FPGA y similares. La memoria 142 puede contener instrucciones de programa informático que son ejecutables por el procesador 132. El procesador 132, posiblemente junto con la memoria 142, está configurado de acuerdo con una realización de un dispositivo receptor. El dispositivo receptor 112 también puede comprender una interfaz de comunicación 152 dispuesta para comunicarse con otros dispositivos, en particular, con el dispositivo selector 111. Por ejemplo, la interfaz de comunicación puede comprender un conector, por ejemplo, un conector con cable, por ejemplo, un conector Ethernet, o un conector inalámbrico, por ejemplo, una antena, por ejemplo, una antena Wi-Fi, 4g o 5G. La interfaz de comunicación también puede ser una interfaz de almacenamiento a un almacenamiento de datos interno o externo, un teclado, una interfaz de aplicación (API), etc.
El dispositivo receptor 112 puede estar configurado para obtener del dispositivo selector 111 el o los atributos 183­ 184 y la o las entradas de datos 193. El dispositivo receptor 112 puede estar configurado además para realizar la prueba de conocimiento cero con el dispositivo selector 111 con respecto a los valores obtenidos 183-184 y las entradas de datos 193 y la clave pública del emisor 174 para comprobar que los valores obtenidos 183-184 y las entradas de datos 193 pertenecen al registro 172 del dispositivo emisor 110.
Los distintos dispositivos del sistema 100 se comunican entre sí a través de una red informática 160. La red informática puede ser Internet, una intranet, una LAN, una WLAN, etc. La red informática 160 puede ser Internet. La red informática puede ser total o parcialmente cableada, y/o total o parcialmente inalámbrica. Por ejemplo, la red informática puede incluir conexiones Ethernet. Por ejemplo, la red informática puede comprender conexiones inalámbricas, como Wi-Fi, ZigBee y similares La red informática 160 puede comprender elementos adicionales, por ejemplo, un router, un hub.
Los distintos dispositivos de la figura 1 pueden tener sus respectivas interfaces de usuario, que pueden incluir elementos bien conocidos como uno o más botones, un teclado, una pantalla, una pantalla táctil, etc. Por ejemplo, la interfaz de usuario del dispositivo receptor 112 puede estar dispuesta para acomodar la interacción del usuario para obtener partes de registros que satisfagan consultas particulares de registros y/o entrada de datos.
La figura 2 muestra de forma esquemática un ejemplo de una realización de un dispositivo emisor 210 para proporcionar un registro a un dispositivo selector para la divulgación selectiva, por ejemplo, para su uso en el sistema 100 de la figura 1b.
La figura 2 muestra esquemáticamente unidades funcionales que pueden ser unidades funcionales de un procesador del dispositivo emisor 210 (no se muestra por separado). Por ejemplo, la figura 2 puede utilizarse como esquema de una posible organización funcional del procesador. Por ejemplo, las unidades funcionales mostradas en la figura 2, es decir, las unidades 241-243, pueden implementarse total o parcialmente en instrucciones informáticas que se almacenan en el dispositivo 210, por ejemplo, en una memoria electrónica del dispositivo 210, y son ejecutables por un microprocesador del dispositivo 210. En las realizaciones híbridas, las unidades funcionales se implementan parcialmente en hardware, por ejemplo, como coprocesadores, y parcialmente en software almacenado y ejecutado en el dispositivo 210. A efectos de explicación, la figura 2 también muestra diversos elementos que pueden ser almacenados por el dispositivo 210 en diversas etapas de su funcionamiento.
En la figura se muestra un registro 272 que comprende uno o más atributos 281-282 y múltiples entradas de datos 291-292. Por ejemplo, el registro 272 puede ser un registro genómico. En tal caso, los atributos 281-282 pueden comprender atributos de fenotipo de una persona, por ejemplo, uno o más de una edad, un IMC, banderas que indican diagnósticos para una o más condiciones médicas, etcétera. En este ejemplo, los atributos son enteros u otro tipo de valores codificados como enteros. Los enteros son típicamente de un rango 0, ..., N - 1 donde el valor N está definido por el esquema(s) de firma utilizado, como se discute más adelante. Las entradas de datos 291-292 pueden comprender porciones de genoma de la persona.
Como ejemplo ilustrativo, las entradas de datos del registro 272 pueden representar polimorfismo de nucleótido único (SNP) del genoma de una persona. Por ejemplo, el registro 272 puede derivarse de, o ser codificado por, un archivo de Formato de Llamada Variante (VCF). Como es sabido en bioinformática, un archivo VCF puede utilizarse para almacenar las variaciones de la secuencia de genes con respecto a un genoma de referencia. Opcionalmente, un archivo VCF también puede almacenar información sobre el fenotipo. A continuación se muestra una parte de un archivo VCF:
#CHROM POS ID REF ALT QUAL FORMATO DE INFORMACIÓN DEL
FILTRO
chr1 82154 rs4477212 a . GT 0/0 chr1 752566 rs3094315 g A . . . GT 1/1 chr1 752721 rs3131972 A G . . . GT 1/1 chr1 798959 rs11240777 g . GT 0/0 chr1 800007 rs6681049 T c . . . GT 1/1 chr1 838555 rs4970383 c . GT 0/0 chr1 846808 rs4475691 C . GT 0/0 chr1 854250 rs7537756 A . GT 0/0 chr1 861808 rs13302982 A . GT 1/1 chr1 873558 rs1110052 A G . . . GT 1/1 chr1 882033 rs2272756 G T . . . GT 0/1
chr1 888659 rs3748597 T C . . . GT 1/1 chr1 891945 rs13303106 A G . . . GT 0/1
Por ejemplo, para un registro correspondiente a un archivo VCF como el ilustrado anteriormente, las entradas de datos del registro pueden corresponder a líneas del archivo VCF. Por ejemplo, una entrada de datos puede ser una cadena que representa una línea de un archivo VCF.
También se muestra en la figura una unidad de generación de identificadores 241. La unidad de generación de identificadores 241 puede generar el identificador de registro secreto 273. Normalmente, el identificador de registro secreto 273 es un número entero, por ejemplo, del mismo rango 0, ..., N - 1 que los atributos 281-282. Es beneficioso generar el identificador de registro secreto 273 de forma aleatoria a partir de un gran dominio, de manera que sea imprevisible para otros dispositivos y para minimizar la probabilidad de colisión entre identificadores, por ejemplo, generados por otros dispositivos. Por ejemplo, la unidad de generación de identificadores 241 puede generar el identificador de registro secreto 273 de forma aleatoria entre al menos 230, al menos 262 o 2126 valores posibles.
También se muestra una clave privada del emisor 270, que puede ser generada por el dispositivo emisor 210 u obtenida de otro modo. La clave privada del emisor 270 puede ser cualquier tipo de clave secreta compatible con los esquemas de firma digital utilizados para generar firmas digitales 280, 291 '-292' que se analizan a continuación.
Se muestra además una unidad de firma de atributos 242. La unidad de firma de atributos 242 puede generar una firma digital 280 sobre un mensaje de atributos utilizando la clave privada del emisor 270. El mensaje de atributos puede incluir uno o más atributos 281-282 y el identificador de registro secreto 273. Si bien, como ya se ha comentado, en principio se puede utilizar cualquier esquema de firma S1, resulta especialmente beneficioso que la firma digital 280 sea una credencial anónima; es decir, que la generación de la firma sea un algoritmo para generar una credencial anónima. El identificador de registro secreto 273 puede utilizarse como un atributo de la credencial anónima.
Como ejemplo concreto, utilizando el esquema de credenciales anónimas de los artículos "Esquemas de firma y credenciales anónimas a partir de mapas bilineales" y "Un acumulador basado en mapas bilineales y revocación eficiente para credenciales anónimas" mencionados anteriormente, dada una lista ordenada de atributos m, la firma puede ser un cuádruple (c, s, y, o) en el que la unidad de firma de atributos 242 genera los valores c, s e y de forma aleatoria y calcula o como
Figure imgf000013_0001
donde x es la clave secreta 273 cuya clave pública asociada y es de confianza para el dispositivo receptor. H puede ser un conjunto de generadores hi de un grupo G de orden primo q, y de forma similar para h y ho. Aquí, y, 273 es el identificador de registro secreto que en esta notación se considera parte de la firma. Curiosamente, h puede ser un generador del grupo G utilizado para incluir el identificador de registro secreto y en la firma.
También se muestra una unidad de firma de entrada de datos 243. La unidad de firma de entrada de datos 243 puede generar múltiples firmas digitales 291', 292' en múltiples mensajes de datos para las múltiples entradas de datos 291­ 292 utilizando la clave privada del emisor 270, por ejemplo, una firma para cada entrada de datos. Como se ha comentado anteriormente, son posibles varias opciones para el esquema de firma S2, incluyendo el uso del esquema de firma S1 también utilizado para el mensaje de atributos. En este caso, un mensaje de datos puede considerarse como un mensaje de atributos que contiene dos atributos: el identificador de registro secreto y la entrada de datos o su compendio. El esquema de firma S2 utiliza preferentemente una clave secreta compatible con la clave secreta del esquema de firma Si, aunque la clave secreta 270 también podría ser un par de claves secretas respectivas para los esquemas Si y S2.
Un mensaje de datos para una entrada de datos puede comprender la entrada de datos m, 291-292 y el identificador de registro secreto y, 273. En particular, la firma digital del mensaje de datos puede basarse en una suma y H(m) de al menos el identificador de registro secreto y y un resumen H(m) de la entrada de datos, por ejemplo, un hash SHA256 de la entrada de datos, por ejemplo, la línea del archivo VCF. Como ya se ha dicho, esa suma puede vincular eficazmente la firma tanto al identificador secreto de registro y como al mensaje m, en el sentido de que es difícil que un receptor encuentre otro mensaje m' que dé lugar a la misma suma y H(m) para el identificador secreto actual y u otro identificador secreto en uso en el sistema.
La unidad de firma de datos 243 puede generar la firma digital 291', 292' calculando una exponenciación de un elemento de grupo g a un inverso multiplicativo de un valor, donde el valor puede estar basado en al menos la clave privada del emisor x, 270, el identificador de registro secreto y, 273, y la entrada de datos, 291-292, es decir, el valor x y H(m) basado en la suma y H(m) discutida anteriormente. Por ejemplo, la firma S, para la entrada de datos m, puede calcularse como:
1
S £ — f i X Y H [ n i i ) _
El concepto general de utilizar una exponenciación a un inverso multiplicativo como firma digital se conoce per se de D. Boneh et al., " Breves firmas sin oráculos aleatorios y el supuesto SDH en grupos bilineales ", J. Cryptology, 21(2): 149-177, 2008. Sin embargo, es interesante que en la firma S, anterior, el identificador de registro secreto y que estaba previamente incrustado en o también puede incluirse en la firma aquí. De este modo, las firmas S, y o pueden estar unidas, permitiendo a un dispositivo selector demostrar que el dispositivo emisor 210 las generó como parte del mismo registro 272.
El dispositivo emisor 210 puede proporcionar además el registro 272, el identificador de registro secreto 273, la firma digital 280 en el mensaje de atributos y las firmas digitales 291'-292' en los mensajes de datos al dispositivo selector, por ejemplo, enviándolos a través de una interfaz de comunicación (no mostrada).
Aunque, hasta ahora, el proceso de firma se ha discutido con respecto a un solo registro 272, las mismas unidades 241-243 también pueden utilizarse para producir los respectivos identificadores secretos y conjuntos de firmas para múltiples registros. Asimismo, el dispositivo emisor 210 puede añadir entradas de datos, actualizar entradas de datos o actualizar atributos de un registro haciendo que las unidades 242, 243 determinen nuevas firmas de mensajes de atributos o firmas de mensajes de datos, según corresponda. Por ejemplo, el dispositivo emisor 210 puede obtener datos actualizados para una entrada de datos, por ejemplo, la entrada de datos 292; generar una firma digital actualizada 292' en un mensaje de datos para la entrada de datos actualizada 292, y proporcionar la firma digital actualizada 292' al dispositivo selector 210, y de forma similar para otras modificaciones.
La figura 3 muestra esquemáticamente un ejemplo de una realización de un dispositivo selector 311 para revelar selectivamente atributos y entradas de datos de un registro 372 a un dispositivo receptor, por ejemplo, para su uso en el sistema 100 de la figura 1b.
La figura 3 muestra esquemáticamente unidades funcionales que pueden ser unidades funcionales de un procesador del dispositivo selector 311 (no se muestra por separado). Por ejemplo, la figura 3 puede utilizarse como esquema de una posible organización funcional del procesador. Por ejemplo, las unidades funcionales mostradas en la figura 3, es decir, las unidades 341-342, pueden implementarse total o parcialmente en instrucciones informáticas que se almacenan en el dispositivo 311, por ejemplo, en una memoria electrónica del dispositivo 311, y son ejecutables por un microprocesador del dispositivo 311. En las realizaciones híbridas, las unidades funcionales se implementan parcialmente en hardware, por ejemplo, como coprocesadores, y parcialmente en software almacenado y ejecutado en el dispositivo 311. A efectos de explicación, la figura 3 también muestra diversos elementos que pueden ser almacenados por el dispositivo 311 en diversas etapas de su funcionamiento.
En la figura se muestra un registro 372 que comprende uno o más atributos 381-382 y que comprende múltiples entradas de datos 391-392; un identificador de registro secreto 370; una firma digital 380 en un mensaje de atributos generado utilizando una clave privada del emisor, donde el mensaje de atributos comprende los uno o más atributos 381-392 y el identificador de registro secreto 370; y una firma digital 393' en un mensaje de datos generado utilizando la clave privada del emisor, donde un mensaje de datos para una entrada de datos comprende la entrada de datos y el identificador de registro secreto 370. Aunque no se muestra en la figura, el dispositivo 311 normalmente almacena una firma digital respectiva para cada entrada de datos 391-392. Por ejemplo, el registro, el identificador de registro secreto y las firmas digitales pueden corresponder a los de la figura 2. Por ejemplo, estos datos pueden obtenerse de un dispositivo emisor.
También se muestra una unidad de selección 341. La unidad de selección 341 puede determinar uno o más atributos que se revelarán al dispositivo receptor como un subconjunto de los uno o más atributos 381-382, y una o más entradas de datos que se revelarán al dispositivo receptor como un subconjunto de las múltiples entradas de datos 391-392. En este ejemplo particular, se seleccionan los atributos 383, 384 y la entrada de datos 393. Los atributos y las entradas de datos a revelar pueden determinarse basándose en una consulta de entrada de datos, por ejemplo, proporcionada por el dispositivo receptor, por ejemplo, la consulta de entrada de datos puede indicar entradas de datos particulares a revelar y/o criterios para seleccionar las entradas de datos, y de forma similar para los atributos. La unidad de selección 341 puede realizar adicionalmente la selección basándose en criterios y/o comprobaciones que no son proporcionados por el dispositivo receptor, por ejemplo, una política de privacidad, por ejemplo, proporcionada por el dispositivo emisor junto con el registro.
Se muestra además una unidad de prueba 342. La unidad de prueba 342 puede realizar una prueba de conocimiento cero 374 con el dispositivo receptor. Como se sabe en criptografía y se discute en otra parte, una prueba de conocimiento cero sirve para que un comprobador pruebe una declaración a un verificador. La prueba de conocimiento cero satisface preferentemente las propiedades de integridad, validez y conocimiento cero.
La integridad significa que si la afirmación es verdadera, entonces un comprobador que sigue el protocolo convencerá a un verificador que sigue el protocolo. La validez significa que, si la afirmación es falsa, es poco probable que un comprobador tramposo pueda convencer a un verificador que siga el protocolo. En el caso de una prueba de conocimiento, la integridad también puede significar no sólo que el enunciado es verdadero, sino también que el comprobador conoce ciertos valores, llamados testigos, que ocurren en el enunciado. La integridad suele mantenerse hasta un cierto error de validez por el que un verificador tramposo consigue convencer al verificador; sin embargo, la prueba de conocimiento cero puede comprender múltiples instancias del protocolo para reducir el error de validez. El conocimiento cero significa que el verificador no aprende información de la prueba, aparte del hecho de que la declaración es verdadera. El conocimiento cero puede ser computacional y/o estadístico.
En este caso, el dispositivo selector puede utilizar la prueba de conocimiento cero 374 para demostrar el conocimiento del identificador de registro secreto 373; la firma digital 380 en el mensaje de atributos como una firma digital en un mensaje que comprende al menos uno o más atributos 383, 384 a revelar y el identificador de registro secreto 373, firmado con una clave privada correspondiente a la clave pública del emisor; y las firmas digitales 393' en los mensajes de datos para las entradas de datos a revelar 393 como firmas digitales en los mensajes que comprenden las entradas de datos a revelar 393 y cada una de las cuales comprende el identificador de registro secreto 373, firmado con una clave privada correspondiente a la clave pública del emisor. En otras palabras, los testigos de la prueba de conocimiento cero pueden incluir el identificador de registro secreto y las firmas; los valores públicos con respecto a los cuales se prueba su validez pueden incluir los atributos 383, 384, las entradas de datos 393' y la clave pública del emisor.
En particular, para probar que las firmas 380, 393' comprenden cada una el mismo identificador de registro secreto 373 sin revelar el identificador de registro secreto al dispositivo receptor, la unidad de prueba 342 puede construir un acuerdo con el identificador de registro secreto, por ejemplo, un acuerdo de tipo Pedersen, y proporcionarlo al dispositivo receptor. En consecuencia, la prueba de conocimiento cero 374 puede demostrar que el mismo identificador de registro secreto 373 está incluido en cada firma y en el acuerdo. Para varios tipos de pruebas de conocimiento cero y esquemas de firma, esta puede ser una forma eficiente de probar la existencia de un identificador secreto común.
Se conocen muchos tipos diferentes de pruebas de conocimiento cero en la técnica y pueden aplicarse fácilmente, por ejemplo, protocolos X como el protocolo Schnorr; pruebas de conocimiento cero no interactivas, por ejemplo, obtenidas a partir de un protocolo de conocimiento cero interactivo mediante la heurística Fiat-Shamir; argumentos de conocimiento cero sucintos no interactivos (zkSNARKs), etc.
Sin embargo, resulta especialmente beneficioso si, en lugar de recurrir a técnicas genéricas, se utiliza un esquema de firmas S1 para los atributos y S2 para las entradas de datos que admita pruebas eficientes de conocimiento de las firmas. Por ejemplo, puede ser beneficioso basar los esquemas de firma S1 y/o S1 en un esquema de credenciales anónimas, por ejemplo, el esquema de Camenisch et al. comentado anteriormente, ya que admiten la realización de pruebas eficientes de conocimiento cero. Para las firmas S2 en las entradas de datos, también el uso de firmas basadas en el principio de exponenciación de un elemento del grupo a un inverso multiplicativo es particularmente eficiente, ya que de nuevo, esto admite pruebas eficientes de conocimiento cero.
Una implementación particularmente beneficiosa basada en una firma de atributos 380 de la forma
Figure imgf000015_0001
y las firmas de entrada de datos 393' del formulario
1
S i = h x y H (m í'>l
se discute ahora en detalle.
Cabe señalar que la prueba de conocimiento cero se presenta aquí como una prueba interactiva, pero entendiendo que puede hacerse no interactiva, por ejemplo, utilizando la heurística Fiat-Shamir. La prueba también puede extenderse para demostrar propiedades sobre valores de atributos, por ejemplo, para demostrar que el registro satisface una consulta de registro, por ejemplo, 30 < IMC < 40. Las pruebas sobre múltiples registros también pueden realizarse en paralelo y/o combinarse en una prueba de conocimiento cero no interactiva utilizando técnicas conocidas.
En detalle, en este ejemplo, la unidad de prueba 342 puede construir un acuerdo,
, X =
h y ■ h c.
para el generador h y el va lo r generado a leatoriam ente t, al iden tificador de registro secreto y. El acuerdo puede proporcionarse al dispositivo receptor.
En una primera parte de la prueba de conocimiento cero, la unidad de prueba 342 puede probar el conocimiento de la firma 380 como una firma en un mensaje que comprende uno o más atributos a revelar y un identificador de registro secreto correspondiente al acuerdo X descrito anteriormente, y firmado con la clave privada x correspondiente a la clave pública y = hx. Por ejemplo, utilizando la notación Camenisch-Stadler descrita en J. Camenisch et al., " Un acumulador basado en mapas bilineales y revocación eficiente para credenciales anónimas ", Actas PKC '09, una primera parte de la prueba de conocimiento cero puede utilizarse para demostrar que:
Figure imgf000015_0002
Aquí, A = ahpes un cegamiento de firma o con valor aleatorio p generado por la unidad de prueba 342 y proporcionado al dispositivo receptor. . n j hj suma sobre los atributos revelados mientras que Uje(hj, h) m\ suma sobre los atributos no revelados, codificados opcionalmente como hashes, etc.
Anteriormente, e se utiliza para denotar un emparejamiento criptográfico, por ejemplo, un emparejamiento de curva elíptica de tipo 3, como un emparejamiento sobre una curva Barreto-Naehrig (BN) de 256 bits, como se conoce en la técnica. El emparejamiento sobre la curva BN puede denotarse formalmente como sigue: e(Gi X G2) ^ GT. Los diversos generadores utilizados anteriormente, por ejemplo, los generadores de H, el generador introducido h, etc., pueden ser generadores de Gi, generados en un método de no hacer nada, por ejemplo, haciendo un hashing de un generador base de Gi hasta encontrar un punto. Con estas opciones, por ejemplo, las firmas de entrada de datos 393' pueden ser de sólo 32 bytes.
En una segunda parte de la prueba de conocimiento cero, se puede demostrar,
X = & ■ h 1
por ejemplo, el conocimiento del identificador secreto en el compromiso X. Las pruebas anteriores pueden llevarse a cabo mediante una adaptación adecuada de las pruebas discutidas en J. Camenisch et al., " Un acumulador basado en mapas bilineales y revocación eficiente para credenciales anónimas", basado a su vez en el sistema de pruebas de Schnorr tal y como se divulga, por ejemplo, en la solicitud de patente estadounidense US4995082A. Curiosamente, las pruebas anteriores pueden desviarse de la prueba de conocimiento cero de Camenisch en que se requiere que el acuerdo X coincida con el identificador de registro secreto y en las firmas 380, 393'. Por lo tanto, una parte fraudulenta no podrá combinar las firmas sobre varios registros en una divulgación única.
En este punto se observa que en las partes anteriores de la prueba de conocimiento cero sólo se utilizan los atributos, por ejemplo, los datos del fenotipo, y no las entradas de datos, por ejemplo, la información genómica. Por lo tanto, estas partes no escalan en el número de entradas de datos.
En otra parte de la prueba de conocimiento cero, se puede probar el conocimiento de las firmas digitales 393' en los mensajes que comprenden las entradas de datos 393 y el identificador de registro secreto 370. Esta parte de la prueba de conocimiento cero puede obtenerse adaptando una versión vectorizada de la conocida prueba de conocimiento cero sobre firmas Boneh-Boyen a la inclusión del identificador de registro secreto. Esta parte de la prueba de conocimiento cero puede funcionar sobre una base de entrada de datos por entrada de datos. Por ejemplo, para cada entrada de datos que se divulgue, el dispositivo receptor puede obtener una prueba de que la entrada de datos corresponde al registro. En consecuencia, se obtiene una solución eficiente, ya que las pruebas son sólo con respecto a las entradas de datos que se van a revelar, y no con respecto a las entradas de datos no reveladas, como ocurriría si se incluyeran todas en la misma firma o similar; y además, en lugar de utilizar pruebas relativamente costosas con respecto a las firmas de tipo Camenisch, se pueden utilizar pruebas más eficientes con respecto a las firmas de tipo Boneh-Boyen.
En detalle, en esta parte de la prueba de conocimiento cero, la unidad de prueba 342 puede aleatorizar las respectivas firmas de entrada de datos S, utilizando la respectiva aleatoriedad vi para obtener firmas de entrada de datos ciegas V„ por ejemplo, . V i = <\Vi . La unidad de comprobación 342 puede proporcionar las firmas ciegas al dispositivo verificador y demostrar el conocimiento de las firmas Si con respecto a los acuerdos, las entradas de datos y la clave pública del emisor.
Por ejemplo, la unidad de comprobación 342 puede generar al azar s, q, , o, con i que se ejecuta sobre las entradas de datos a revelar, y proporcionar
Y = hs -h°, a L = e(Vl,h')-se(h,h')qi
al dispositivo receptor. Al recibir un desafío c, por ejemplo, desde el dispositivo receptor o mediante la heurística Fiat-Shamir, la unidad de prueba 342 puede generar respuestas
zY = s - ye, zv. = qt - v¿c, zt = o - te
y proporcionarlas al dispositivo receptor.
Aunque el procedimiento anterior se ha discutido para un solo registro, se entenderá que el dispositivo selector 311 puede adaptarse fácilmente al caso en que almacene múltiples registros e información asociada, por ejemplo, de múltiples dispositivos emisores. De este modo, el dispositivo selector 311 también puede revelar selectivamente partes de los múltiples registros. Por ejemplo, como también se discute en otra parte, el dispositivo selector 311 puede obtener una consulta de registro y seleccionar uno o más de los múltiples registros de acuerdo con la consulta de registro. Los pasos realizados por las unidades 341 y 342 pueden repetirse para los respectivos registros seleccionados para realizar la revelación selectiva de los respectivos registros.
Curiosamente, también la prueba de conocimiento cero de un registro puede utilizarse para demostrar que el registro actual satisface la consulta del registro. Por ejemplo, la consulta del registro puede comprender una condición sobre un atributo, por ejemplo, edad > 65, 40 < edad < 65, etc. Por ejemplo, en el caso particular de utilizar las credenciales anónimas de Camenisch adaptadas como firmas 380, se pueden utilizar fácilmente técnicas conocidas para demostrar propiedades sobre los atributos de dichas credenciales.
La figura 4 muestra esquemáticamente un ejemplo de una realización de un dispositivo receptor 412 para obtener selectivamente atributos y entradas de datos de registro de un dispositivo selector, por ejemplo, para su uso en el sistema 100 de la figura 1b.
La figura 4 muestra esquemáticamente unidades funcionales que pueden ser unidades funcionales de un procesador del dispositivo receptor 412 (no se muestra por separado). Por ejemplo, la figura 4 puede utilizarse como esquema de una posible organización funcional del procesador. Por ejemplo, las unidades funcionales mostradas en la figura 4, por ejemplo, la unidad 441, pueden implementarse total o parcialmente en instrucciones informáticas que se almacenan en el dispositivo 412, por ejemplo, en una memoria electrónica del dispositivo 412, y son ejecutables por un microprocesador del dispositivo 412. En las realizaciones híbridas, las unidades funcionales se implementan parcialmente en hardware, por ejemplo, como coprocesadores, y parcialmente en software almacenado y ejecutado en el dispositivo 412. A efectos de explicación, la figura 4 también muestra diversos elementos que pueden ser almacenados por el dispositivo 412 en diversas etapas de su funcionamiento.
En la figura se muestra una clave pública del emisor 471 almacenada en una memoria del dispositivo receptor 412. La autenticidad de las partes del registro puede establecerse con respecto a esta clave pública. Se muestran además los atributos 483, 484 del registro, dos en este ejemplo, las entradas de datos 493 del registro, en este caso una. El dispositivo receptor 412 puede recibir esta información de un dispositivo selector, como ya se ha comentado.
También se muestra en la figura una unidad de verificación 441. La unidad de verificación 441 puede realizar una prueba de conocimiento cero con el dispositivo selector con respecto a los valores obtenidos 483, 484 y las entradas de datos 493 y la clave pública del emisor 471. Aquí se muestra una prueba de conocimiento cero no interactiva 474 que la unidad de verificación 441 puede verificar de forma no interactiva, pero la prueba también puede ser interactiva, por ejemplo, con la unidad de verificación 441 generando un reto y proporcionándolo al dispositivo selector. La prueba puede ser como la discutida, desde la perspectiva del comprobador, con respecto al dispositivo selector 311. La prueba 474 puede determinar que los valores obtenidos 483-484 y las entradas de datos 493 pertenecen a un registro de un dispositivo emisor correspondiente a la clave pública del emisor 481. En consecuencia, el dispositivo selector puede probar el conocimiento de un identificador de registro secreto; una firma digital en un mensaje que comprenda al menos uno o más atributos a revelar 483-484 y el identificador de registro secreto, firmado con una clave privada correspondiente a la clave pública del emisor 471; y firmas digitales en mensajes que comprendan las entradas de datos a revelar 493 y cada una de ellas comprenda el identificador de registro secreto, firmado con una clave privada correspondiente a la clave pública del emisor 471.
La verificación de la prueba de conocimiento cero puede llevarse a cabo en correspondencia con el sistema de prueba de conocimiento cero que el dispositivo selector utiliza para probar las afirmaciones comentadas anteriormente. Como ejemplo concreto, de nuevo, una firma adaptada del tipo Camenisch
Figure imgf000017_0001
para los atributos y las firmas adaptadas de tipo Boneh-Boyen
i
5 ¿ = hx+y+H^mo
para ser utlizadas en las entradas de datos. En este ejemplo particular, la prueba en partes múltiples mencionada con respecto al dispositivo selector 311 puede utilizarse como se ha descrito anteriormente. Por ejemplo, el dispositivo receptor 412 puede recibir un acuerdo con el identificador secreto desde el dispositivo selector. El dispositivo selector puede entonces demostrar el conocimiento, que la unidad de verificación 441 verifica, de una apertura del acuerdo con el identificador de registro secreto y de las firmas en los atributos 483-484 y el mismo identificador secreto, como se ha comentado anteriormente.
En cuanto a la parte de la prueba relativa a las entradas de datos, como se ha comentado con respecto al dispositivo selector 311, la unidad de verificación 441 puede recibir las respectivas firmas ciegas V r i — Vi de las entradas de datos 493 que se van a revelar. El dispositivo selector puede probar el conocimiento de las firmas correspondientes a las firmas cegadas y que contienen las respectivas entradas de datos. Concretamente, la recepción de valores
Y = hs ■ h°, aL = e(Vit h)~se(h, h)*
y respuestas
zY = s — ye, zv. = Qi — ViC, zt = o — te
a un desafío c que genera, la unidad de verificación 441 puede verificar estas respuestas comprobando que donde y es la clave pública del emisor 471 y mi son las respectivas entradas de datos 493. En particular, se observa que la clave pública del emisor 471 se multiplica en este ejemplo con la exponenciación del hash H(m, ) de la entrada de datos divulgada. En consecuencia, el identificador de registro secreto y puede mantenerse en secreto mientras que la entrada de datos m, puede seguir verificándose para que corresponda al mismo registro que otras entradas de datos y atributos.
Aunque no se muestra explícitamente en la figura, como también se ha comentado anteriormente, las técnicas de divulgación selectiva aquí descritas pueden aplicarse a múltiples registros, posiblemente de diferentes dispositivos emisores, en cuyo caso la unidad de verificación 442 puede repetir el procedimiento anterior para cada registro divulgado. El dispositivo receptor también puede proporcionar consultas de registros y/o consultas de entrada de datos al dispositivo receptor para influir en qué registros obtener. La unidad de verificación 441 también puede estar adaptada para verificar que dicha consulta de entrada de datos es satisfecha por el registro obtenido, por ejemplo.
En consecuencia, mediante las diversas medidas comentadas anteriormente, el dispositivo receptor 412 puede obtener la información que necesita, por ejemplo, los atributos 483, 484 y las entradas de datos 493, así como las garantías de autenticidad adecuadas con respecto a la clave pública 471, mientras que no necesita acceder a otro material sensible, como los atributos y las entradas de datos no revelados, el identificador de registro secreto o la clave privada del emisor.
La figura 5 muestra de forma esquemática un ejemplo de una realización de un método emisor 500 para proporcionar un registro a un dispositivo selector para su divulgación selectiva. El método 500 se implementa típicamente por ordenador.
El método 500 del emisor puede comprender el almacenamiento de 510 una clave privada del emisor, la clave privada del emisor formando un par de claves públicas y privadas con una clave pública del emisor correspondiente; y el registro, el registro que comprende uno o más atributos y que comprende múltiples entradas de datos;
El método 500 del emisor puede comprender la determinación de 520 un identificador de registro secreto.
El método 500 del emisor puede comprender la generación de 530 una firma digital en un mensaje de atributos utilizando la clave privada del emisor, el mensaje de atributos que comprende uno o más atributos y el identificador de registro secreto.
El método 500 del emisor puede comprender la generación de 540 firmas digitales múltiples en múltiples mensajes de datos para las múltiples entradas de datos utilizando la clave privada del emisor, un mensaje de datos para una entrada de datos que comprenda la entrada de datos y el identificador de registro secreto.
El método 500 del emisor puede comprender proporcionar 550 el registro, el identificador de registro secreto, la firma digital en el mensaje de atributos y las firmas digitales en los mensajes de datos al dispositivo selector.
La figura 6 muestra esquemáticamente un ejemplo de una realización de un método de selección 600 para revelar selectivamente atributos y entradas de datos de un registro a un dispositivo receptor. El método 600 se implementa típicamente por ordenador.
El método de selección 600 puede comprender el almacenamiento de 610 el registro, que comprende uno o más atributos y que comprende múltiples entradas de datos; un identificador de registro secreto; una firma digital en un mensaje de atributos generado utilizando una clave privada del emisor, el mensaje de atributos que comprende el uno o más atributos y el identificador de registro secreto; y firmas digitales en los mensajes de datos generados utilizando la clave privada del emisor, un mensaje de datos para una entrada de datos que comprende la entrada de datos y el identificador de registro secreto.
El método selector 600 puede comprender la obtención 620 del registro, el identificador secreto del registro, la firma digital del mensaje de atributos y las firmas digitales de los mensajes de datos.
El método de selección 600 puede comprender la determinación de 630 uno o más atributos a ser revelados como un subconjunto de los uno o más atributos, y una o más entradas de datos a ser reveladas como un subconjunto de las múltiples entradas de datos.
El método de selección 600 puede comprender la provisión de 640 de uno o más atributos a revelar y de una o más entradas de datos a revelar al dispositivo receptor.
El método selector 600 puede comprender la realización de 650 una prueba de conocimiento cero con el dispositivo receptor, en la que se prueba el conocimiento de
- el identificador de registro secreto;
- la firma digital en el mensaje de atributos como una firma digital en un mensaje que comprende al menos uno o más atributos a revelar y el identificador de registro secreto, firmado con una clave privada correspondiente a la clave pública del emisor;
- las firmas digitales en los mensajes de datos para las entradas de datos que se van a revelar como firmas digitales en los mensajes que comprenden las entradas de datos que se van a revelar y cada una de las cuales comprende el identificador de registro secreto, firmado con una clave privada correspondiente a la clave pública del emisor.
La figura 7 muestra esquemáticamente un ejemplo de una realización de un método receptor 700 de obtención selectiva de atributos y entradas de datos de registro de un dispositivo selector. El método 700 se implementa típicamente por ordenador.
El método del receptor 700 puede comprender el almacenamiento 710 de una clave pública del emisor.
El método receptor 700 puede comprender la obtención 720 del dispositivo selector de uno o más atributos y una o más entradas de datos.
El método receptor 700 puede comprender la realización de 730 una prueba de conocimiento cero con el dispositivo selector con respecto a los valores y entradas de datos obtenidos y la clave pública del emisor para determinar que los valores y entradas de datos obtenidos pertenecen a un registro de un dispositivo emisor correspondiente a la clave pública del emisor, donde el dispositivo selector prueba el conocimiento de:
- un identificador de registro secreto;
- una firma digital sobre un mensaje que comprenda al menos el o los atributos que se van a revelar y el identificador de registro secreto, firmado con una clave privada correspondiente a la clave pública del emisor;
- las firmas digitales de los mensajes que comprenden las entradas de datos que se van a revelar y cada una de las cuales comprende el identificador de registro secreto, firmadas con una clave privada correspondiente a la clave pública del emisor.
Son posibles muchas formas diferentes de ejecutar el método, como será evidente para un experto en la materia. Por ejemplo, el orden de los pasos puede variar o algunos pasos pueden ejecutarse en paralelo. Además, entre los pasos se pueden insertar otros pasos del método. Los pasos insertados pueden representar refinamientos del método como los descritos aquí, o pueden no estar relacionados con el método. Por ejemplo, los pasos 530 y 540 del método 500 pueden ejecutarse, al menos parcialmente, en paralelo. Además, un paso determinado puede no haber terminado completamente antes de que se inicie el siguiente.
Las realizaciones de los métodos pueden ejecutarse mediante software, que comprende instrucciones para hacer que un sistema procesador realice un método 500, 600 o 700. El software sólo puede incluir los pasos realizados por una determinada subentidad del sistema. El software puede almacenarse en un medio de almacenamiento adecuado, como un disco duro, un disquete, una memoria, un disco óptico, etc. El software puede enviarse como una señal a lo largo de un cable, o de forma inalámbrica, o utilizando una red de datos, por ejemplo, Internet. El software puede estar disponible para su descarga y/o para su uso remoto en un servidor. Las realizaciones del método pueden ejecutarse utilizando un flujo de bits dispuesto para configurar la lógica programable, por ejemplo, una matriz de puerta programable en campo (FPGA), para realizar el método.
Se apreciará que la invención también se extienda a los programas informáticos, en particular a los programas informáticos sobre o en un soporte, adaptados para poner en práctica la invención. El programa puede estar en forma de código fuente, código objeto, una fuente intermedia de código y código objeto como forma parcialmente compilada, o en cualquier otra forma adecuada para su uso en la implementación de una realización del método. Una realización relativa a un producto de programa informático comprende instrucciones ejecutables por ordenador correspondientes a cada uno de los pasos de procesamiento de al menos uno de los métodos expuestos. Estas instrucciones pueden subdividirse en subrutinas y/o almacenarse en uno o más archivos que pueden enlazarse estática o dinámicamente. Otra realización relativa a un producto de programa informático comprende instrucciones ejecutables por ordenador correspondientes a cada uno de los medios de al menos uno de los sistemas y/o productos expuestos.
La figura 8 muestra un medio legible por ordenador 800 que tiene una parte grabable 810 que comprende un programa informático 820, el programa informático 820 comprende instrucciones para hacer que un sistema procesador realice un método emisor, un método selector o un método receptor, según una realización. El programa informático 820 puede plasmarse en el medio legible por ordenador 800 como marcas físicas o mediante la magnetización del medio legible por ordenador 800. Sin embargo, también es concebible cualquier otra forma de realización adecuada. Además, se apreciará que, aunque el medio legible por ordenador 800 se muestra aquí como un disco óptico, el medio legible por ordenador 800 puede ser cualquier medio legible por ordenador adecuado, como un disco duro, una memoria de estado sólido, una memoria flash, etc., y puede ser no grabable o grabable. El programa informático 820 comprende instrucciones para hacer que un sistema procesador realice uno o dichos métodos.
La figura 9 muestra en una representación esquemática de un sistema procesador 940 según una realización. El sistema procesador comprende uno o más circuitos integrados 910. La arquitectura de uno o más circuitos integrados 910 se muestra esquemáticamente en la Figura 7b. El circuito 910 comprende una unidad de procesamiento 920, por ejemplo, una CPU, para ejecutar componentes de programa informático para ejecutar un método según una realización y/o implementar sus módulos o unidades. El circuito 910 comprende una memoria 922 para almacenar código de programación, datos, etc. Parte de la memoria 922 puede ser de sólo lectura. El circuito 910 puede comprender un elemento de comunicación 926, por ejemplo, una antena, conectores o ambos, y similares. El circuito 910 puede comprender un circuito integrado dedicado 924 para realizar parte o todo el procesamiento definido en el método. El procesador 920, la memoria 922, el CI dedicado 924 y el elemento de comunicación 926 pueden estar conectados entre sí a través de una interconexión 930, digamos un bus. El sistema procesador 910 puede estar dispuesto para la comunicación con contacto y/o sin contacto, utilizando una antena y/o conectores, respectivamente.
Por ejemplo, en una realización, el sistema procesador 940, por ejemplo, el dispositivo emisor, el dispositivo selector o el dispositivo receptor, puede comprender un circuito procesador y un circuito de memoria, estando el procesador dispuesto para ejecutar el software almacenado en el circuito de memoria. Por ejemplo, el circuito del procesador puede ser un procesador Intel Core i7, ARM Cortex-R8, etc. En una realización, el circuito del procesador puede ser ARM Cortex M0. El circuito de memoria puede ser un circuito ROM, o una memoria no volátil, por ejemplo, una memoria flash. El circuito de memoria puede ser una memoria volátil, por ejemplo, una memoria SRAM. En este último caso, el dispositivo puede comprender una interfaz de software no volátil, por ejemplo, un disco duro, una interfaz de red, etc., dispuesta para proporcionar el software.
Por lo general, cada uno de los dispositivos comprende un microprocesador que ejecuta el software apropiado almacenado en los dispositivos; por ejemplo, ese software puede haber sido descargado y/o almacenado en una memoria correspondiente, por ejemplo, una memoria volátil como la RAM o una memoria no volátil como la Flash. Alternativamente, los dispositivos pueden, en su totalidad o en parte, ser implementados en lógica programable, por ejemplo, como matriz de puerta programable en campo (FPGA). Los dispositivos pueden ser implementados, en su totalidad o en parte, como un llamado circuito integrado de aplicación específica (ASIC), por ejemplo, un circuito integrado (CI) personalizado para su uso particular. Por ejemplo, los circuitos pueden implementarse en CMOS, por medio de un lenguaje de descripción de hardware como Verilog, VHDL, etc.
En una realización, el dispositivo emisor comprende un circuito de generación de identificadores, un circuito de firma de atributos y una unidad de firma de entrada de datos. En una realización, el dispositivo selector comprende un circuito de selección y un circuito de prueba. En una realización, el dispositivo receptor comprende un circuito de verificación. Los dispositivos pueden incluir circuitos adicionales. Los circuitos implementan las unidades correspondientes aquí descritas. Los circuitos pueden ser un circuito procesador y un circuito de almacenamiento, el circuito procesador ejecuta instrucciones representadas electrónicamente en los circuitos de almacenamiento. Un circuito procesador puede implementarse de forma distribuida, por ejemplo, como múltiples circuitos subprocesadores. Parte del almacenamiento puede ser de sólo lectura. Los circuitos también pueden ser, FPGA, ASIC o similares. Un almacenamiento puede estar distribuido en múltiples subalmacenes distribuidos. Una parte o la totalidad de la memoria puede ser una memoria electrónica, una memoria magnética, etc. Por ejemplo, el almacenamiento puede tener una parte volátil y otra no volátil.
Debe tenerse en cuenta que las realizaciones mencionadas anteriormente ilustran más que limitan la invención, y que los expertos en la materia podrán diseñar muchas realizaciones alternativas.
El alcance de la protección está definido por las reivindicaciones.
En las reivindicaciones, cualquier signo de referencia colocado entre paréntesis no se interpretará como una limitación de la reivindicación. El uso del verbo "comprender" y sus conjugaciones no excluye la presencia de elementos o pasos distintos de los indicados en una reivindicación. El artículo " un " o " una " que precede a un elemento no excluye la presencia de una pluralidad de tales elementos. La invención puede implementarse por medio de un hardware que comprende varios elementos distintos, y por medio de un ordenador adecuadamente programado. En la reivindicación del dispositivo que enumera varios medios, varios de estos medios pueden estar incorporados por un mismo elemento de hardware. El mero hecho de que ciertas medidas se mencionan en reivindicaciones dependientes mutuamente diferentes no indica que una combinación de estas medidas no pueda usarse como ventaja.
En las reivindicaciones, las referencias entre paréntesis se refieren a los signos de referencia en los dibujos de las realizaciones ejemplificadoras o a las fórmulas de las realizaciones, lo que aumenta la inteligibilidad de la reivindicación. Estas referencias no deben interpretarse como una limitación de la reivindicación.

Claims (18)

REIVINDICACIONES
1. Un sistema (100) para revelar selectivamente atributos y entradas de datos de un registro (172), el sistema comprende un dispositivo emisor (110), un dispositivo selector (111) y un dispositivo receptor (112),
- el dispositivo emisor (110) es para proporcionar un registro a un dispositivo selector para la divulgación selectiva, el dispositivo emisor que comprende:
- una memoria (130) configurada para almacenar:
- una clave privada del emisor (170), formando la clave privada del emisor un par de claves públicas y privadas con la correspondiente clave pública del emisor (171);
- el registro, que comprende uno o más atributos (181,182) y que incluye múltiples entradas de datos (191,192); - un procesador (140) configurado para:
- determinar un identificador de registro secreto (173);
- generar una firma digital (180) en un mensaje de atributos utilizando la clave privada del emisor, el mensaje de atributos que comprende uno o más atributos y el identificador de registro secreto;
- generar múltiples firmas digitales (191',192') en múltiples mensajes de datos para las múltiples entradas de datos utilizando la clave privada del emisor, un mensaje de datos para una entrada de datos que comprende la entrada de datos y el identificador de registro secreto;
- proporcionar el registro, el identificador de registro secreto, la firma digital del mensaje de atributos y las firmas digitales de los mensajes de datos al dispositivo selector;
- el dispositivo selector (111) que permite revelar selectivamente los atributos y las entradas de datos del registro a un dispositivo receptor, comprendiendo el dispositivo selector:
- una memoria (131) configurada para almacenar:
- el registro, el identificador secreto del registro, la firma digital del mensaje de atributos y las firmas digitales de los mensajes de datos;
- un procesador (141) configurado para:
- determinar uno o más atributos a revelar (183,184) como un subconjunto de los uno o más atributos, y una o más entradas de datos a revelar (193) como un subconjunto de las múltiples entradas de datos;
- proporcionar los uno o más atributos a revelar y las una o más entradas de datos a revelar al dispositivo receptor; - realizar una prueba de conocimiento cero (174) con el dispositivo receptor, en la que el dispositivo selector prueba el conocimiento de:
- el identificador de registro secreto;
- la firma digital en el mensaje de atributos como una firma digital en un mensaje que comprende al menos uno o más atributos a revelar y el identificador de registro secreto, firmado con una clave privada correspondiente a la clave pública del emisor;
- las firmas digitales en los mensajes de datos para las entradas de datos que se van a revelar como firmas digitales en los mensajes que comprenden las entradas de datos que se van a revelar y cada una de las cuales comprende el identificador de registro secreto, firmado con una clave privada correspondiente a la clave pública del emisor;
- el dispositivo receptor (112) es para obtener selectivamente los atributos y entradas de datos del registro desde el dispositivo selector, comprendiendo el dispositivo receptor:
- una memoria (132) configurada para almacenar la clave pública del emisor;
- un procesador (142) configurado para:
- obtener del dispositivo selector el o los atributos y la o las entradas de datos;
- realizar la prueba de conocimiento cero con el dispositivo selector con respecto a los valores y entradas de datos obtenidos y la clave pública del emisor para comprobar que los valores y entradas de datos obtenidos pertenecen al registro del dispositivo emisor.
2. El sistema (100) según la reivindicación 1, en el que los atributos comprenden uno o más atributos de fenotipo sobre una persona; y las entradas de datos comprenden una o más porciones de genoma de la persona.
3. Un dispositivo emisor (110,210) para proporcionar un registro a un dispositivo selector para su divulgación selectiva, el dispositivo emisor comprende:
- una memoria (130) configurada para almacenar:
- una clave privada del emisor (170), formando la clave privada del emisor un par de claves públicas y privadas con la correspondiente clave pública del emisor;
- el registro (172), el registro que comprende uno o más atributos y que incluye múltiples entradas de datos;
- un procesador (140) configurado para:
- determinar un identificador de registro secreto (173);
- generar una firma digital (180) en un mensaje de atributos utilizando la clave privada del emisor, el mensaje de atributos que comprende uno o más atributos y el identificador de registro secreto;
- generar múltiples firmas digitales (191',192') en múltiples mensajes de datos para las múltiples entradas de datos utilizando la clave privada del emisor, un mensaje de datos para una entrada de datos que comprende la entrada de datos y el identificador de registro secreto;
- proporcionar el registro, el identificador de registro secreto, la firma digital del mensaje de atributos y las firmas digitales de los mensajes de datos al dispositivo selector.
4. El dispositivo emisor (110,210) según la reivindicación 3, en el que la firma digital del mensaje de datos se basa en una suma de al menos el identificador de registro secreto y un compendio de la entrada de datos.
5. El dispositivo emisor (110,210) según la reivindicación 3 o 4, en el que el procesador (140) está configurado para generar la firma digital (g1/(x+v+H(m») en el mensaje de datos calculando una exponenciación de un elemento de grupo (g) a un inverso multiplicativo de un valor (x y H(m)), estando dicho valor basado en al menos la clave privada del emisor (x), el identificador de registro secreto (y), y la entrada de datos (m).
6. El dispositivo emisor (110,210) según cualquiera de las reivindicaciones 3 a 5, en el que la firma digital del mensaje de atributos comprende una credencial anónima firmada con la clave privada del emisor, teniendo la credencial anónima uno o más atributos y el identificador de registro secreto como atributos.
7. El dispositivo emisor (110,210) según cualquiera de las reivindicaciones 3 a 6, en el que el dispositivo emisor está configurado además para obtener datos actualizados para una de las múltiples entradas de datos, para generar una firma digital actualizada en un mensaje de datos para dicha entrada de datos actualizada, y para proporcionar la firma digital actualizada al dispositivo selector.
8. Un dispositivo selector (111,311) para revelar selectivamente atributos y entradas de datos de un registro a un dispositivo receptor, el dispositivo selector comprende:
- una memoria (131) configurada para almacenar:
- el registro, que comprende uno o más atributos y que incluye múltiples entradas de datos; un identificador de registro secreto; una firma digital en un mensaje de atributos generado utilizando una clave privada del emisor, el mensaje de atributos que comprende uno o más atributos y el identificador de registro secreto; y firmas digitales en los mensajes de datos generados utilizando la clave privada del emisor, un mensaje de datos para una entrada de datos que comprende la entrada de datos y el identificador de registro secreto;
- un procesador (141) configurado para:
- obtener el registro, el identificador de registro secreto, la firma digital del mensaje de atributos y las firmas digitales de los mensajes de datos;
- determinar uno o más atributos a revelar (183,184) como un subconjunto de los uno o más atributos, y una o más entradas de datos a revelar (193) como un subconjunto de las múltiples entradas de datos;
- proporcionar los uno o más atributos a revelar y las una o más entradas de datos a revelar al dispositivo receptor; - realizar una prueba de conocimiento cero (174) con el dispositivo receptor, en la que el dispositivo selector prueba el conocimiento de:
- el identificador de registro secreto;
- la firma digital en el mensaje de atributos como una firma digital en un mensaje que comprende al menos uno o más atributos a revelar y el identificador de registro secreto, firmado con una clave privada correspondiente a la clave pública del emisor;
- las firmas digitales en los mensajes de datos para las entradas de datos que se van a revelar como firmas digitales en los mensajes que comprenden las entradas de datos que se van a revelar y cada una de las cuales comprende el identificador de registro secreto, firmado con una clave privada correspondiente a la clave pública del emisor.
9. El dispositivo selector (111,311) según la reivindicación 8, en el que la memoria (131) está configurada para almacenar múltiples registros, estando el procesador (141) configurado para:
- obtener una consulta de registro;
- seleccionar uno o más de los múltiples registros según la consulta de registros; y
- repetir la determinación, el suministro y la realización de la prueba de conocimiento cero para cada registro actual de los uno o más registros seleccionados.
10. El dispositivo selector (111,311) según la reivindicación 9, en el que el procesador (141) está configurado para realizar la prueba de conocimiento cero para un registro actual para probar además que el registro actual satisface la consulta de registro.
11. El dispositivo selector (111,311) según una cualquiera de las reivindicaciones 8 a 10, en el que el procesador (141) está configurado además para obtener una consulta de entrada de datos, estando el procesador configurado para determinar las una o más entradas de datos que se van a revelar según la consulta de entrada de datos.
12. El dispositivo selector (111,311) según una cualquiera de las reivindicaciones 8 a 11, en el que la realización de la prueba de conocimiento cero comprende proporcionar un acuerdo con el identificador de registro secreto al dispositivo receptor y probar el conocimiento de las firmas digitales con respecto al acuerdo.
13. Un dispositivo receptor (112,412) para obtener selectivamente atributos y entradas de datos de registro de un dispositivo selector, el dispositivo receptor que comprende:
- una memoria (132) configurada para almacenar una clave pública del emisor;
- un procesador (142) configurado para:
- obtener del dispositivo selector uno o más atributos y una o más entradas de datos;
- realizar una prueba de conocimiento cero con el dispositivo selector con respecto a los valores y entradas de datos obtenidos y la clave pública del emisor para determinar que los valores y entradas de datos obtenidos pertenecen a un registro de un dispositivo emisor correspondiente a la clave pública del emisor, en el que el dispositivo selector prueba el conocimiento de:
- un identificador de registro secreto;
- una firma digital sobre un mensaje que comprenda al menos el o los atributos que se van a revelar y el identificador de registro secreto, firmado con una clave privada correspondiente a la clave pública del emisor;
- las firmas digitales de los mensajes que comprenden las entradas de datos que se van a revelar y cada una de las cuales comprende el identificador de registro secreto, firmadas con una clave privada correspondiente a la clave pública del emisor.
14. El dispositivo receptor (112,412) según la reivindicación 13, en el que el dispositivo receptor está configurado para realizar la prueba de conocimiento cero obteniendo una prueba de conocimiento cero no interactiva del dispositivo selector y verificando la prueba de conocimiento cero no interactiva.
15. Un método emisor (500) de proporcionar un registro a un dispositivo selector para su divulgación selectiva, el método emisor comprende:
- almacenaje (510):
- una clave privada del emisor, formando la clave privada del emisor un par de claves públicas y privadas con la correspondiente clave pública del emisor;
- el registro, que incluye uno o más atributos y comprende múltiples entradas de datos;
- determinar (520) un identificador de registro secreto;
- generar (530) una firma digital en un mensaje de atributos utilizando la clave privada del emisor, el mensaje de atributos que comprende uno o más atributos y el identificador de registro secreto;
- generar (540) múltiples firmas digitales en múltiples mensajes de datos para las múltiples entradas de datos utilizando la clave privada del emisor, un mensaje de datos para una entrada de datos que comprende la entrada de datos y el identificador de registro secreto;
- proporcionar (550) el registro, el identificador de registro secreto, la firma digital en el mensaje de atributos y las firmas digitales en los mensajes de datos al dispositivo selector.
16. Un método selector (600) de divulgación selectiva de atributos y entradas de datos de un registro a un dispositivo receptor, el método selector comprende:
- almacenaje (610):
- el registro, que comprende uno o más atributos y que incluye múltiples entradas de datos; un identificador de registro secreto; una firma digital en un mensaje de atributos generado utilizando una clave privada del emisor, el mensaje de atributos que comprende uno o más atributos y el identificador de registro secreto; y firmas digitales en los mensajes de datos generados utilizando la clave privada del emisor, un mensaje de datos para una entrada de datos que comprende la entrada de datos y el identificador de registro secreto;
- obtener (620) el registro, el identificador de registro secreto, la firma digital del mensaje de atributos y las firmas digitales de los mensajes de datos;
- determinar (630) uno o más atributos que se revelarán como un subconjunto de los uno o más atributos, y una o más entradas de datos que se revelarán como un subconjunto de las múltiples entradas de datos;
- proporcionar (640) los uno o más atributos a revelar y las una o más entradas de datos a revelar al dispositivo receptor;
- realizar (650) una prueba de conocimiento cero con el dispositivo receptor, en la que se prueba el conocimiento de:
- el identificador de registro secreto;
- la firma digital en el mensaje de atributos como una firma digital en un mensaje que comprende al menos uno o más atributos a revelar y el identificador de registro secreto, firmado con una clave privada correspondiente a la clave pública del emisor;
- las firmas digitales en los mensajes de datos para las entradas de datos que se van a revelar como firmas digitales en los mensajes que comprenden las entradas de datos que se van a revelar y cada una de las cuales comprende el identificador de registro secreto, firmado con una clave privada correspondiente a la clave pública del emisor.
17. Un método receptor (700) de obtención selectiva de atributos y entradas de datos de registro de un dispositivo selector, el método receptor comprende:
- almacenar (710) una clave pública del emisor;
- obtener (720) del dispositivo selector uno o más atributos y una o más entradas de datos;
- realizar (730) una prueba de conocimiento cero con el dispositivo selector con respecto a los valores y entradas de datos obtenidos y a la clave pública del emisor para determinar que los valores y entradas de datos obtenidos pertenecen a un registro de un dispositivo emisor correspondiente a la clave pública del emisor, en el que el dispositivo selector prueba el conocimiento de:
- un identificador de registro secreto;
- una firma digital sobre un mensaje que comprenda al menos el o los atributos que se van a revelar y el identificador de registro secreto, firmado con una clave privada correspondiente a la clave pública del emisor;
- las firmas digitales de los mensajes que comprenden las entradas de datos que se van a revelar y cada una de las cuales comprende el identificador de registro secreto, firmadas con una clave privada correspondiente a la clave pública del emisor.
18. Un medio de almacenamiento legible por ordenador (800) que comprende datos transitorios o no transitorios (820) que representan instrucciones para hacer que un sistema procesador realice el método según cualquiera de las reivindicaciones 15 a 17.
ES20181834T 2019-06-27 2020-06-24 Divulgación selectiva de atributos y entradas de datos de un registro Active ES2906346T3 (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
EP19182989.4A EP3758279A1 (en) 2019-06-27 2019-06-27 Selective disclosure of attributes and data entries of a record

Publications (1)

Publication Number Publication Date
ES2906346T3 true ES2906346T3 (es) 2022-04-18

Family

ID=67211504

Family Applications (1)

Application Number Title Priority Date Filing Date
ES20181834T Active ES2906346T3 (es) 2019-06-27 2020-06-24 Divulgación selectiva de atributos y entradas de datos de un registro

Country Status (6)

Country Link
US (1) US11658827B2 (es)
EP (2) EP3758279A1 (es)
JP (1) JP7219740B2 (es)
CN (1) CN112149156B (es)
ES (1) ES2906346T3 (es)
RU (1) RU2760633C1 (es)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11652639B1 (en) 2022-03-28 2023-05-16 Veiovia Ltd. Cryptographically generated data tethered to biological dataset through synchronization over peer-to-peer nodes
US11683186B1 (en) 2022-03-28 2023-06-20 Veiovia Ltd. Cryptographically generated data tethered to biological dataset through synchronization over peer-to-peer nodes for certification
CN116232763B (zh) * 2023-05-05 2023-07-07 敏于行(北京)科技有限公司 选择性披露的动态组合可验证凭证生成方法及系统

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0383985A1 (de) 1989-02-24 1990-08-29 Claus Peter Prof. Dr. Schnorr Verfahren zur Identifikation von Teilnehmern sowie zur Generierung und Verifikation von elektronischen Unterschriften in einem Datenaustauschsystem
US7134021B2 (en) * 1999-10-22 2006-11-07 Hitachi, Ltd. Method and system for recovering the validity of cryptographically signed digital data
US20030159070A1 (en) * 2001-05-28 2003-08-21 Yaron Mayer System and method for comprehensive general generic protection for computers against malicious programs that may steal information and/or cause damages
JP2002024385A (ja) * 2000-06-30 2002-01-25 Coreflow Technologies:Kk 遺伝子情報管理システム及びその管理方法
JP2002215028A (ja) * 2001-01-22 2002-07-31 Ntt Data Technology Corp 遺伝子情報のセキュリティ管理方法及びそのシステムとプログラム
JP2002278449A (ja) * 2001-03-15 2002-09-27 Dainippon Printing Co Ltd 原本性保証システム、及びサーバ
JP4510392B2 (ja) * 2002-03-15 2010-07-21 パナソニック株式会社 個人情報認証を行うサービス提供システム
JP4078454B2 (ja) * 2002-03-22 2008-04-23 株式会社日立製作所 ディジタル署名管理方法とディジタル署名処理装置およびプログラムと記録媒体
JP2003296453A (ja) * 2002-04-04 2003-10-17 Matsushita Electric Ind Co Ltd 医療データ通信システム
JP3701633B2 (ja) * 2002-06-21 2005-10-05 株式会社日立製作所 複数データベースにまたがる項目パターン抽出方法、ネットワークシステム及び処理装置
JP2004185192A (ja) * 2002-12-02 2004-07-02 Naoaki Ishii 健康情報の解析・研究及び健康維持・長寿実現のための総合支援システム
JP4499542B2 (ja) * 2004-12-08 2010-07-07 株式会社エヌ・ティ・ティ・データ 医療情報処理装置、および、プログラム
US7979473B2 (en) * 2005-10-07 2011-07-12 Hitachi, Ltd. Association rule extraction method and system
JP4876075B2 (ja) * 2005-11-08 2012-02-15 パナソニック株式会社 認証システム、署名生成装置、署名検証装置
US8280039B2 (en) * 2005-12-28 2012-10-02 Panasonic Corporation Signature generating device, signature generating method and signature generating program
WO2008069011A1 (ja) * 2006-12-04 2008-06-12 Nec Corporation 情報管理システム、匿名化方法、及び記憶媒体
US8281131B2 (en) * 2008-08-28 2012-10-02 International Business Machines Corporation Attributes in cryptographic credentials
US8468346B2 (en) * 2008-11-05 2013-06-18 Nec Corporation Data reference system, database presentation/distribution system, and data reference method
JP4884509B2 (ja) * 2009-09-29 2012-02-29 株式会社ソニー・コンピュータエンタテインメント コンテンツ管理サーバ、コンテンツ管理システム、およびコンテンツ管理方法
EP2336933B1 (en) * 2009-12-18 2014-09-10 CompuGroup Medical AG A computer implemented method for analyzing data of a user with the data being stored pseudonymously in a database
US8825555B2 (en) * 2010-06-30 2014-09-02 International Business Machines Corporation Privacy-sensitive sample analysis
EP2768177A1 (en) * 2013-02-15 2014-08-20 Thomson Licensing Cryptographic devices and methods for generating and verifying commitments from linearly homomorphic signatures
JP6063821B2 (ja) * 2013-06-12 2017-01-18 株式会社日立ソリューションズ センサデータ管理システム
JP6250497B2 (ja) * 2014-03-13 2017-12-20 株式会社日立製作所 情報管理システム
US9407654B2 (en) * 2014-03-20 2016-08-02 Microsoft Technology Licensing, Llc Providing multi-level password and phishing protection

Also Published As

Publication number Publication date
EP3758291B1 (en) 2021-12-01
CN112149156A (zh) 2020-12-29
JP7219740B2 (ja) 2023-02-08
US11658827B2 (en) 2023-05-23
RU2760633C1 (ru) 2021-11-29
EP3758291A1 (en) 2020-12-30
JP2021007217A (ja) 2021-01-21
US20200412546A1 (en) 2020-12-31
CN112149156B (zh) 2022-12-13
EP3758279A1 (en) 2020-12-30

Similar Documents

Publication Publication Date Title
ES2906346T3 (es) Divulgación selectiva de atributos y entradas de datos de un registro
ES2572810T3 (es) Descubrimiento y validación de rutas delegadas y distribuidas
JP5419056B2 (ja) Cartier対形成の暗号化適用
ES2960797T3 (es) Encadenamiento seguro e implícito de certificados
CN112541757A (zh) 使区块链系统的第一实体能向其它实体证明的方法
JP2022533753A (ja) 知識証明
CN106161350A (zh) 一种管理应用标识的方法及装置
EP3977673B1 (en) Blockchain transaction comprising runnable code for hash-based verification
US20230308287A1 (en) Threshold signatures
US20220255761A1 (en) Summarizing a genomic data entry
Liu et al. Authenticated medical documents releasing with privacy protection and release control
Cambou et al. Post quantum cryptographic keys generated with physical unclonable functions
CN113875190A (zh) 包括基于哈希的验证的可运行代码的区块链交易
Zajac Ephemeral keys authenticated with Merkle trees and their use in IoT applications
JP2008005090A (ja) 複数公開鍵の証明書を発行及び検証するシステム、並びに、複数公開鍵の証明書を発行及び検証する方法
US20220329416A1 (en) Provenance verification for selective disclosure of attributes
EP3805963A1 (en) Provenance verification for selective disclosure of attributes
Doroodgar et al. Seluge++: A secure over-the-air programming scheme in wireless sensor networks
EP3786961A1 (en) Summarizing a genomic data entry
Yesmin Mobile Application for Secure Healthcare System
Odoom et al. Blockchain-assisted sharing of electronic health records: a feasible privacy-centric constant-size ring signature framework
Krenn et al. Fully invisible protean signatures schemes<? show [AQ ID= Q1]?>
Xu et al. Patients’ privacy protection against insurance companies in eHealth systems
CN117714145A (zh) 数据共享方法、装置、设备及存储介质
Chen et al. Lattice-Based DAA Cross-Domain Authentication Protocol for Internet of Things