ES2626533T3 - Intersección privada de conjuntos (PSI) asistida por servidor con transferencia de datos - Google Patents

Intersección privada de conjuntos (PSI) asistida por servidor con transferencia de datos Download PDF

Info

Publication number
ES2626533T3
ES2626533T3 ES14810066.2T ES14810066T ES2626533T3 ES 2626533 T3 ES2626533 T3 ES 2626533T3 ES 14810066 T ES14810066 T ES 14810066T ES 2626533 T3 ES2626533 T3 ES 2626533T3
Authority
ES
Spain
Prior art keywords
intersection
data
server
secret key
labels
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
ES14810066.2T
Other languages
English (en)
Inventor
Seny Kamara
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Application granted granted Critical
Publication of ES2626533T3 publication Critical patent/ES2626533T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/02Services making use of location information
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • G06F21/445Program or device authentication by mutual authentication, e.g. between devices or programs
    • 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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/606Protecting data by securing the transmission between two devices or processes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0478Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload applying multiple layers of encryption, e.g. nested tunnels or encrypting the content with a first key and then with at least a second key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/083Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2115Third party
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/46Secure multiparty computation, e.g. millionaire problem

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Computing Systems (AREA)
  • Storage Device Security (AREA)

Abstract

Uno o más medios legibles por ordenador (960) que comprenden instrucciones ejecutables por ordenador incorporadas en los mismos que, cuando se ejecutan por un dispositivo informático (702, 900) que representa una tercera parte (812), realizan un proceso (600) para transferir alguna información asociada con elementos de un conjunto de datos mantenido por una primera parte (808) a una segunda parte (810) sin revelar el conjunto de datos, que comprende: recibir (602) desde la primera parte (808), para cada elemento en un conjunto S1: una etiqueta para cada elemento, un identificador para el elemento, y la primera parte de una clave secreta de dos partes; recibir (604) desde la segunda parte (810) etiquetas generadas por los elementos de un segundo conjunto S2; calcular (606) la intersección de las etiquetas de los conjuntos S1 y S2; enviar (608) a la segunda parte (810), para cada elemento en la intersección de las etiquetas: la etiqueta, el identificador para el elemento y la primera parte de la clave secreta de dos partes

Description

5
10
15
20
25
30
35
40
45
50
DESCRIPCION
Interseccion privada de conjuntos (PSI) asistida por servidor con transferencia de datos Antecedentes
La interseccion privada de conjuntos (PSI) permite a dos partes encontrar la interseccion de sus conjuntos sin revelar los elementos de los datos de sus conjuntos una a otra. PSI tiene numerosas aplicaciones en el mundo real incluyendo extraccion de datos de preservacion de privacidad, servicios basados en localizacion, y calculos genomicos. Mas espedficamente, un protocolo PSI permite a dos partes Pi y P2 encontrar una interseccion de dos conjuntos S1 y S2 de algun universo U sin tener que revelar los conjuntos una a otra. En otras palabras, con un protocolo PSI Pi y P2 pueden encontrar la interseccion I = Si H S2 de sus conjuntos sin averiguar ninguna informacion acerca del conjunto de la otra parte mas alla de su tamano.
Con un protocolo PSI asistida por servidor, las dos partes Pi y P2 pueden, ademas, externalizar algunos de sus calculos a un servidor no de confianza - ejemplificado, por ejemplo, en la nube. Los protocolos PSI asistida por servidor son mas eficientes para clientes que los protocolos PSI tradicionales en varios ordenes de magnitud.
El artfculo “Outsourcing Multi-Party Computation” de S. Kamara et al., publicado el 25 de octubre de 2011, describe un estudio de calculo seguro de multiples partes en un ajuste asistido por servidor, y un protocolo asistido por servidor para interseccion privada de conjuntos.
El articulo “Design and implementation of privacy-preserving reconciliation protocols” de G. Neugebauer et al., publicado el 18 de marzo de 2013, describe dos protocolos para reconciliacion de preservacion de privacidad, y su generalizacion.
El artfculo “Fair Private Set Intersection with a Semi-trusted Arbiter” de D. Changyu et al., publicado el 15 de julio de 2013, describe un protocolo de interseccion privada de conjuntos con un arbitro fuera de lmea, de semi confianza.
Compendio
Este Compendio se proporciona para introducir una seleccion de conceptos de una forma simplificada que se describen ademas a continuacion en la Descripcion Detallada. Este Compendio no se pretende que identifique las caractensticas clave o las caractensticas esenciales de la materia objeto reivindicada, ni se pretende que sea usado para limitar el alcance de la materia objeto reivindicada.
La tecnica de interseccion privada de conjuntos asistida por servidor con transferencia de datos descrita en la presente memoria proporciona un protocolo de interseccion privada de conjuntos (PSI) asistida por servidor que soporta transferencias de datos. El protocolo PSI de la tecnica puede operar en un ajuste asistido por servidor, donde las partes tienen acceso a un servidor no de confianza que pone a disposicion sus recursos de calculo como un servicio. En una realizacion, el protocolo requiere solamente un numero lineal de invocaciones de cifrado de bloque (una permutacion pseudoaleatoria), y la ejecucion de un algoritmo de interseccion de conjuntos estandar/de texto plano.
La tecnica permite que dos clientes transfieran informacion acerca de alguno de sus elementos de datos sobre una red a traves de un servidor. Para este fin, en una realizacion de la tecnica, un primer cliente genera para cada elemento en el conjunto del primer cliente S1: una etiqueta para el elemento, un identificador para el elemento, y una forma cifrada para la para los datos asociados con el elemento que se cifro usando una clave secreta de dos partes. El primer cliente envfa a un servidor para cada elemento en el conjunto S1, la etiqueta para cada elemento, el identificador para cada elemento, y la primera parte de la clave secreta de dos partes. El primer cliente tambien envfa al segundo cliente, para cada elemento en el conjunto S1, el identificador para cada elemento, los datos cifrados asociados con cada elemento y la segunda parte de la clave secreta de dos partes. Similar al primer cliente, el segundo cliente envfa etiquetas generadas por los elementos del conjunto del segundo cliente S2, al servidor. El servidor calcula la interseccion de las etiquetas de los conjuntos recibidos, y envfa a una segunda parte, para cada elemento en la interseccion, la etiqueta, el identificador para el elemento y la primera parte de la clave de dos partes. El segundo cliente entonces puede descifrar los datos asociados con cada elemento en la interseccion de los conjuntos usando las etiquetas, los identificadores y la primera y segunda partes de la clave secreta de dos partes. En virtud a esta tecnica, ninguna parte de la transaccion, ni los clientes ni el servidor, descubren ningun dato de los clientes que no deseen revelar.
Breve descripcion de los dibujos
Las caractensticas, aspectos, y ventajas espedficos de la descripcion llegaran a ser entendidos mejor con respecto a la siguiente descripcion, las reivindicaciones adjuntas, y los dibujos anexos en los que:
La FIG. 1 representa un diagrama de flujo de un protocolo de interseccion privada de conjuntos asistida por servidor en la que no hay transferencia de datos entre las partes.
5
10
15
20
25
30
35
40
45
50
La FIG. 2 representa un diagrama de flujo de una realizacion ejemplar del protocolo de interseccion privada de conjuntos asistida por servidor con transferencia de datos descrita en la presente memoria.
La FIG. 3 representa un diagrama de flujo de otra realizacion ejemplar de la tecnica de interseccion privada de conjuntos asistida por servidor con transferencia de datos descrita en la presente memoria.
La FIG. 4 representa un diagrama de flujo del procesamiento del primer cliente de la tecnica de interseccion privada de conjuntos asistida por servidor con transferencia de datos descrita en la FIG. 3.
La FIG. 5 representa un diagrama de flujo del procesamiento del segundo cliente de la tecnica de interseccion privada de conjuntos asistida por servidor con transferencia de datos descrita en la FIG. 3.
La FIG. 6 representa un diagrama de flujo del procesamiento de de la tercera parte/del servidor de la tecnica de la interseccion privada de conjuntos asistida por servidor con transferencia de datos descrita en la FIG. 3.
La FIG. 7 representa una arquitectura para implementar una realizacion ejemplar de la tecnica de interseccion privada de conjuntos asistida por servidor con transferencia de datos descrita en la presente memoria.
La FIG. 8 representa un diagrama de flujo de datos para implementar una realizacion ejemplar de la tecnica de interseccion privada de conjuntos asistida por servidor con transferencia de datos descrita en la presente memoria.
La FIG. 9 es un esquema de un entorno informatico ejemplar que se puede usarse para poner en practica la tecnica de interseccion privada de conjuntos asistida por servidor con transferencia de datos.
Descripcion detallada
En la siguiente descripcion de la tecnica de interseccion privada de conjuntos asistida por servidor con transferencia de datos, se hace referencia a los dibujos anexos, que forman una parte de la misma, y que muestran a modo de ilustracion ejemplos mediante los cuales se puede poner en practica la tecnica de interseccion privada de conjuntos asistida por servidor con transferencia de datos descrita en la presente memoria. Se tiene que entender que se pueden utilizar otras realizaciones y se pueden hacer cambios estructurales sin apartarse del alcance de la materia objeto reivindicada.
1.0 Tecnica de interseccion privada de conjuntos asistida por servidor con transferencia de datos
Las siguientes secciones proporcionan una introduccion, una vision de conjunto de calculo de multiples partes, una vision de conjunto de la notacion usada en esta descripcion, una descripcion de la interseccion privada de conjuntos asistida por servidor sin transferencia de datos, asf como realizaciones ejemplares de tecnica de interseccion privada de conjuntos asistida por servidor con transferencia de datos descrita en la presente memoria. Tambien se describen un diagrama de flujo de datos ejemplar y escenarios ejemplares para poner en practica la tecnica.
Como materia preliminar, algunas de las figuras que siguen describen conceptos en el contexto de uno o mas componentes estructurales, denominados de diversas maneras funcionalidad, modulos, caractensticas, elementos, etc. Los diversos componentes mostrados en las figuras se pueden implementar de cualquier manera. En un caso, la separacion ilustrada de diversos componentes en las figuras en distintas unidades puede reflejar el uso de componentes distintos correspondientes en una implementacion real. Alternativa o adicionalmente, cualquier componente unico ilustrado en las figuras se puede implementar mediante componentes plurales reales. Alternativa o adicionalmente, la representacion de cualesquiera dos o mas componentes separados en las figuras puede reflejar diferentes funciones realizadas por un componente unico real.
Otras figuras describen los conceptos en forma de diagrama de flujo. De esta forma, ciertas operaciones se describen como que constituyen bloques distintos realizados en un cierto orden. Tales implementaciones son ilustrativas y no limitativas. Ciertos bloques descritos en la presente memoria se pueden agrupar juntos y realizar en una operacion unica, ciertos bloques se pueden separar en bloques de componentes plurales, y ciertos bloques se pueden realizar en un orden que difiere del que se ilustra en la presente memoria (incluyendo una manera paralela de realizacion de los bloques). Los bloques mostrados en los diagramas de flujo se pueden implementar de cualquier manera.
1.1 Introduccion
En el problema de la interseccion privada de conjuntos (PSI), dos partes quieren averiguar la interseccion de sus conjuntos sin revelar una a otra cualquier informacion acerca de sus conjuntos mas alla de la interseccion. PSI es un problema fundamental de seguridad y privacidad que aparece en muchos contextos diferentes. Consideremos, por ejemplo, el caso de dos o mas instituciones que desean obtener una lista de clientes comunes con propositos de extraccion de datos; o una agencia gubernamental que quiere averiguar si cualquiera en su lista de exclusion aerea esta en una lista de pasajeros del vuelo. PSI ha encontrado aplicaciones en una amplia gama de ajustes tales como calculo genomico, servicios basados en localizacion, y deteccion colaborativa de red infectada.
5
10
15
20
25
30
35
40
45
50
1.1.1 Calculo seguro de multiples partes
PSI es un caso especial del problema mas general de calculo de multiples partes (MPC) segura. En este problema, cada parte mantiene su propia entrada privada y la meta es calcular colectivamente una funcion de union de las entradas de los participantes sin fuga de informacion adicional y al tiempo que se garantiza la exactitud de la salida. El diseno y la implementacion de protocolos MPC practicos ha sido un area activa de investigacion durante la ultima decada con numerosos esfuerzos para mejorar y optimizar las implementaciones de software y para desarrollar nuevos marcos de referencia. Una gran cantidad de trabajo, por lo tanto, se ha centrado en el diseno y la implementacion de protocolos PSI de proposito especial eficientes.
1.1.2 Limitaciones de MPC
Como continua la tendencia hacia mas y mas grandes bases de datos, gobiernos y organizaciones privadas a menudo gestionan bases de datos masivas que almacenan miles de millones de registros. Por lo tanto, para que cualquier solucion PSI (y MPC en general) sea de interes practico en tales ajustes, se necesitan procesar eficientemente conjuntos con decenas o cientos de millones de registros.
1.1.3 MPC asistido por servidor
Un planteamiento prometedor para abordar el calculo de multiples partes es MPC asistido por servidor o asistido por la nube. En esta variante de MPC, el ajuste estandar se aumenta con un pequeno conjunto de servidores que no tienen entradas al calculo y que no reciben salida pero que ponen a disposicion sus recursos de calculo a las partes.
1.1.4 Preliminares y notacion
Esta seccion proporciona diversos preliminares y notacion que son utiles en la comprension de la siguiente descripcion de la tecnica de interseccion privada de conjuntos asistida por servidor descrita en la presente memoria.
A lo largo de esta descripcion, partes para un protocolo descrito que no son el servidor o terceras partes no de confianza se pueden denominar clientes. Los terminos la tercera parte, la tercera parte no de confianza y el servidor tambien se pueden usar intercambiablemente.
Los protocolos descritos en la presente memoria son protocolos de una sola vuelta y tienen aproximadamente la siguiente estructura. Primero los clientes procesan sus conjuntos de entrada para generar un conjunto de etiquetas T, las cuales enviaran al servidor o a la tercera parte. El servidor entonces realiza una interseccion sobre los conjuntos que recibe y devuelve los resultados. Para los protocolos seguros contra un servidor malicioso o no de confianza, los clientes entonces realizan algunas comprobaciones locales y extraen la interseccion del mensaje del servidor. Con el proposito de esta descripcion se usa una nocion de no confabulacion simplificada en donde dos partes Pi y P2 se consideran que no confabulan si no se danan simultaneamente por la adversaria (por ejemplo, o bien Pi es maliciosa o bien o P2, pero no ambas).
En algunas realizaciones de la tecnica, el servidor se trata de una manera conservativa como indigno de confianza (lo que significa, por ejemplo, que no se puede confiar en el servidor para mantener la confidencialidad de la informacion proporcionada al servidor). No obstante, en algunos escenarios, se supondra que el servidor no se confabula con ningun modulo participante para eludir las provisiones de seguridad descritas en la presente memoria. Ademas, en algunos escenarios, se supondra que las partes para el calculo conjunto son entidades semi honestas en lo peor de los casos. Esto significa que se puede esperar de las entidades que sigan un protocolo de seguridad prescrito. Pero las entidades pueden tratar de aprovechar la informacion que descubren en el curso de este protocolo para destapar informacion adicional (a la cual no tienen derecho).
Un esquema de cifrado con clave privada, como el descrito en la presente memoria, es un conjunto de tres algoritmos de polinomio-tiempo (Gen, Enc, Dec) que funcionan como sigue. Gen es un algoritmo probabilfstico que toma un parametro de seguridad k en unario y devuelve una clave secreta K. Enc es un algoritmo probabilistic que toma una clave K y un mensaje m de n bits y devuelve el texto cifrado C. Dec es un algoritmo deterministic que toma la clave K y un texto cifrado c y devuelve m si K era la clave bajo la cual se produjo c.
En todos los protocolos descritos a continuacion, k denota el parametro de seguridad de calculo (es decir, la longitud de clave para una Permutacion Pseudoaleatoria (PRP)) mientras s denota un parametro de seguridad estadfstico. Para X > 1, el conjunto SX se define como
SX = {x || 1, ..., x || X: x e S}
y (SX)"X = S. Si F: U^Ves una funcion, la evaluacion S de F es el conjunto F(S)={F(s): s e S}. F1 se denota como la inversa de F donde F1(F(S)) = S. Si n: [ISI] ^ [ISI] es una permutacion, entonces el set n(S) es el conjunto que resulta de permutar los elementos de S segun n (suponiendo una ordenacion natural de los elementos). En otras palabras:
n(S) = {x„(i): xi e S}.
5
10
15
20
25
30
35
40
La union y diferencia establecidas de dos conjuntos Si y S2 se denota como S1 + S2 y S1 - S2, respectivamente.
1.2 PSI asistida por servidor semi honesto sin transferencia de datos
A modo de antecedentes, y antes de describir la tecnica de interseccion privada de conjuntos asistida por servidor con transferencia de datos, se describe primero un protocolo de interseccion privada de conjuntos asistida por servidor sin transferencia de datos para un servidor semi honesto o cualquier confabulacion de las partes maliciosas. El protocolo se muestra en la Tabla 1 y se describe en la FIG. 1.
Con referencia a la FIG. 1, permitamos que Si sea el conjunto de la parte Pi. Las partes comienzan generando conjuntamente una clave secreta K de k bits para una Permutacion Pseudoaleatoria (PRP) F, como se muestra en el bloque 102. Cada parte permuta aleatoriamente el conjunto Fk(S) que consiste en etiquetas calculadas evaluando la PRp sobre los elementos del conjunto adecuado de la parte (como se muestra en el bloque 104), y envfa el conjunto permutado al servidor (como se muestra en el bloque 106). El servidor entonces simplemente calcula y devuelve la interseccion de las etiquetas Fk(Si) hasta FK(Sn) (veanse los bloques 108, 110). Cada parte puede conocer entonces que elementos tienen en comun con las otras partes.
Intuitivamente, la seguridad del protocolo sigue a partir del hecho de que las partes nunca reciben ningun mensaje una de otra, y su unico comportamiento malicioso posible es cambiar sus propias etiquetas PRP lo cual simplemente se traduce en cambiar su conjunto de entrada. El servidor semi honesto solamente recibe etiquetas que debido a la pseudoaleatoriedad de la PRP no revela informacion acerca de los elementos del conjunto.
Configuracion y entradas: Permitamos que F: {0,1}K x U ^ {0, 1}>K sea una PRP. Cada parte Pi tiene un conjunto Si c U como entrada mientras que el servidor no tiene entrada:
1. Pi muestrea una clave K de k bits aleatoria y la envfa a Pi para i e [2,n];
2. Cada parte Pi para i e [n] envfa Ti = rci(FK(Si)) al servidor, donde m es una permutacion aleatoria;
3. El servidor calcula I = fni=1n Ti y la devuelve a todas las partes;
4. Cada parte Pi saca Fk-1(I).
Tabla 1. Un protocolo PSI asistida por servidor con un servidor semi honesto
El protocolo descrito en la Tabla 1 es seguro en presencia (1) de un servidor semi honesto y partes honestas o (2) un servidor honesto y cualquier confabulacion de las partes maliciosas.
Cada Pi invoca la PRP, ISiI veces, mientras el servidor (en una realizacion) solamente realiza una interseccion de conjuntos de “texto plano” y no operaciones criptograficas. No obstante, la tecnica puede usar cualquiera de los algoritmos existentes para interseccion de conjuntos. En una realizacion de la tecnica se usa una insercion/busqueda de tabla de generacion de claves de folclore que funciona casi en tiempo lineal.
El protocolo se puede ejecutar asincronicamente donde cada parte conecta en un tiempo diferente para presentar su mensaje al servidor y mas tarde para obtener la salida.
1.3 PSI semi honesto con transferencia de datos
En muchas aplicaciones practicas de PSI, una de las partes tambien desea transferir alguna informacion relacionada con los elementos en la interseccion. Mas precisamente, consideremos un escenario donde Pi tiene, ademas de su conjunto S1, una base de datos db que asocia con cada elemento x de S1 algunos datos que se denotan como db(x). En tal escenario, Pi puede desear transferir el conjunto {db(x): xe S1 fl S2} a P2, donde S2 es el conjunto de P2. Mientras el protocolo PSI descrito anteriormente no es suficiente para este escenario, se puede usar como un bloque de construccion en un protocolo mas complejo para logrartal transferencia de datos.
La FIG. 2 describe un proceso implementado por ordenador 200 para crear un protocolo para PSI asistida por servidor con transferencia de datos segun la tecnica. El proceso transfiere alguna informacion asociada con los elementos de datos en la interseccion de dos conjuntos de datos mantenidos por dos partes sin revelar su conjunto de datos.
Como se muestra en el bloque 202, una primera parte genera un conjunto de triples para cada elemento en el conjunto Si que comprende: una etiqueta para el elemento, un identificador para el elemento, y una forma cifrada para los datos asociados con el elemento que se cifro usando una clave secreta de dos partes. Las etiquetas para cada elemento en Si se generan usando una clave compartida y una PRP.
Como se muestra en el bloque 204, la primera parte envfa a la segunda parte, para cada elemento en el conjunto Si, el identificador para cada elemento, los datos cifrados asociados con cada elemento y la segunda parte de la clave
5
10
15
20
25
secreta de dos partes. Adicionalmente, la primera parte envfa a una tercera parte, para cada elemento en el conjunto Si, la etiqueta para cada elemento, el identificador para los datos asociados con cada elemento, y la primera parte de la clave secreta de dos partes, como se muestra en el bloque 206. La segunda parte tambien envfa etiquetas generadas para los elementos del conjunto S2 a la tercera parte (bloque 208). Las etiquetas para los elementos del conjunto S2 se generan usando la misma clave compartida y PRP que uso la primera parte.
Una vez que la tercera parte recibe los datos antes mencionados desde la primera y segunda partes, la tercera parte calcula la interseccion de las etiquetas de los conjuntos y envfa a la segunda parte, para cada elemento en la interseccion, la etiqueta, el identificador asociado con el elemento y la primera parte de la clave secreta de dos partes, como se muestra en el bloque 210.
La segunda parte puede entonces descifrar los datos asociados con cada elemento en la interseccion de los conjuntos usando las etiquetas, los identificadores y la primera y segunda parte de la clave secreta de dos partes, como se muestra en el bloque 212. Esto se puede hacer aplicando una funcion XOR a las partes para recuperar la clave y entonces usar la clave para descifrar los datos.
La Tabla 2 representa un protocolo PSI de dos partes con transferencia de datos que es seguro contra un servidor semi honesto y una Pi y P2 semi honestas. El protocolo se describe en mayor detalle con respecto a la FIG. 3.
Configuracion y entradas: Permitamos que F: {0,1}K x U ^ {0, 1}>K sea una PRP. La parte Pi tiene conjuntos Si c U y db c {0,1}* como entradas y P2 tiene un conjunto S2 c U como entrada. El servidor no tiene ninguna entrada.
1. Pi muestrea tres claves de k bits Ke, Ki, Ki y envfa Ki a P2,
2. Para todo xe S1, Pi calcula:
(a) zx,1: = FKe(x || 1) y Zx,2: = FKe(x || 2)
(b) Kx = zx,1© zx,2
(c) Cx ^ Enq<x(db(x))
(d) idx: = Fki(x)
(e) lx. = Fki(x).
3. Pi envfa
T1 = ^({(idx, Zx,1, lx)})xe S1)
al servidor y
D = rc1,({(idx, zx,2, cx)})xe S1)
a P2, donde my%i, son permutaciones aleatorias;
4. P2 envfa T2 = m(FKi(S2)) al servidor, donde %2 es una permutacion aleatoria;
5. El servidor envfa a P2
I = {(id, Z1) : (id, Z1, l) e T1 a l e T2};
6. P2 saca
P = {Decz1®z2(c): (id, Z2, c) e D a (id, z1)e I}
Tabla 2. Un protocolo PSI de dos partes con transferencia de datos que es seguro contra partes semi honestas.
La FIG. 3 representa otro proceso 300 implementado por ordenador para transferir alguna informacion db(x) asociada con los elementos Xi de datos en la interseccion de dos conjuntos de datos S1 y S2 mantenidos por dos partes Pi y P2 usando una tercera parte, por ejemplo, una tercera parte no de confianza, sin ninguna de las dos partes Pi o P2 que revela los datos en sus conjuntos. El proceso implementado por ordenador generalmente se refiere al protocolo mostrado en Tabla 2.
Como se muestra en el bloque 302, la primera parte Pi genera una primera clave secreta Ke, una segunda clave secreta K, y una tercera clave secreta Ki; y envfa la segunda clave secreta Ki a la segunda parte P2. La clave Ke se usa para generar claves de cifrado para datos db(x) asociados con cada elemento del conjunto S1, mientras que la clave Ki se usa para generar una etiqueta para un elemento x de un conjunto. La clave Ki se usa para generar un identificador idx para cada elemento x de un conjunto.
5
10
15
20
25
30
35
40
45
50
Como se muestra en el bloque 304, para cada elemento en el conjunto Si de P{.
(1) Usando Ke, se genera una clave secreta de dos partes Kx. Esta clave secreta de dos partes K se compone de una primera parte zx,i y una segunda parte Zx,2. En una realizacion de la tecnica esto se hace generando la primera parte Zx,i aplicando una permutacion pseudoaleatoria al elemento x, concatenada con una primera cadena usando la clave Ke. Del mismo modo la segunda parte Zx,2 se genera aplicando una permutacion pseudoaleatoria al elemento x, concatenada con una segunda cadena usando la clave Ke. La clave Kx se genera entonces realizando una operacion XOR en la primera parte Zx,i y una segunda parte Zx,2. Es importante senalar que se generan una primera parte Zx,i y una segunda parte Zx,2 de una clave para cada elemento de Si. Ademas, tambien se podrian usar otros procedimientos para generar una clave de dos partes o incluso de multiples partes.
(2) Los datos db(x) para el elemento se cifran usando la clave Kx para crear los datos cifrados C(db(x));
(3) Un identificador idx para el elemento se crea aplicando una PRP al elemento usando la clave Ki; y
(4) La etiqueta lx para el elemento se crea aplicando la clave secreta Ki y una PRP al elemento.
Como se muestra en el bloque 306, la primera parte Pi envfa a la tercera parte un conjunto de triples para cada elemento que comprende el identificador idx, la primera parte de la clave Zx,i y la etiqueta lx. El orden de los triples se puede mezclar aleatoriamente anterior a enviarlos. La primera parte Pi tambien envfa a P2 un conjunto de triples para cada elemento que comprende el identificador idx, la segunda parte de la clave Zx,i y los datos cifrados C(db(x)), como se muestra en el bloque 308. Este conjunto de triples tambien se puede mezclar aleatoriamente anterior a enviarlos a P2.
La segunda parte P2 genera etiquetas para los elementos en el conjunto S2 de P2 permutando los elementos usando la clave Ki y una PRP, y envfa las etiquetas para cada elemento en el conjunto S2 a la tercera parte no de confianza (vease el bloque 310).
La tercera parte compara el conjunto de etiquetas recibidas desde Pi y el conjunto de etiquetas recibido desde P2 para encontrar la interseccion I de las etiquetas permutadas de Pi y P2, y envfa a P2 todos los triples que recibe desde Pi que tienen una etiqueta dentro de la interseccion (bloque 312). P2 puede descifrar entonces los triples que P2 recibio de Pi que comprenden datos cifrados de Pi C(db(x)) para los elementos que Pi y P2 mantienen en la interseccion de los conjuntos Si y S2 usando ambas partes de la clave secreta de dos partes (block 312).
Cada Pi invoca la PRP, ISiI veces, mientras el servidor (en una realizacion) solamente realiza una interseccion de conjuntos de “texto plano” y no operaciones criptograficas. No obstante, la tecnica puede usar cualquiera de los algoritmos existentes para la interseccion de conjuntos. En una realizacion de la tecnica se usa una insercion/busqueda de tabla de generacion de claves de folclore que funciona en tiempo casi lineal.
El protocolo se puede ejecutar asincronicamente donde cada parte conecta en un tiempo diferente para presentar su mensaje al servidor y mas tarde para obtener la salida.
1.4 Procesamiento servidor-cliente
Como se menciono anteriormente, aunque las descripciones de los protocolos se refieren a las partes que mantienen conjuntos de datos (por ejemplo, una primera y segunda partes por ejemplo) y una tercera parte que calcula la interseccion de los conjuntos de datos, los expertos en la tecnica comprenderan que las partes mencionadas pueden operar en una configuracion servidor-cliente. Las partes para un protocolo descrito que no se referencian como el servidor o la tercera parte no de confianza se pueden denominar por lo tanto clientes. Ademas, los terminos la tercera parte, la tercera parte no de confianza y el servidor tambien se pueden usar intercambiablemente. La siguiente descripcion describe el protocolo descrito en FIG. 3 en terminos de procesamiento del lado de cliente y de servidor. Se debena senalar que el servidor puede ser realmente mas de un servidor o entidad informatica trabajando en una nube informatica. Del mismo modo, aunque la descripcion se refiere a un primer y segundo clientes, muchos mas clientes pueden transferir datos acerca de sus conjuntos usando el servidor.
1.4.1 Procesamiento del lado de cliente
La FIG. 4 representa un procesador implementado por ordenador 400 que muestra el procesamiento del primer cliente con respecto al protocolo descrito en la FIG. 3. Las operaciones principales durante el paso de procesamiento de cliente son la aplicacion de una PRP para generar etiquetas y la aplicacion de una permutacion aleatoria para mezclar aleatoriamente los datos antes de su transferencia. Hay muchas posibilidades para aplicar una PRP para generar las etiquetas. Por ejemplo, en una realizacion de la tecnica las permutaciones aleatorias se ejemplificaron usando el Estandar de Cifrado Avanzado (AES) (por ejemplo, el modo contador (CTR), por ejemplo, si los elementos son mayores de 128 bits). Se puede usar cualquier otro cifrado de bloque, no obstante.
5
10
15
20
25
30
35
40
45
50
Con referencia a FIG. 4, como se muestra en el bloque 402, el primer cliente Pi genera una primera clave secreta Ke, una segunda clave secreta K, y una tercera clave secreta Ki; y env^a la segunda clave secreta Ki al segundo cliente P2.
Como se muestra en el bloque 404, para cada elemento en el conjunto S1 de Pi.
(1) usando Ke, se genera una clave secreta de dos partes Kx. Esta clave secreta de dos partes Kx comprende una primera parte Zx,i y una segunda parte Zx,2.
(2) Los datos db(x) para el elemento se cifran usando la clave Kx para crear los datos cifrados C(db(x));
(3) Se crea un identificador idx para los datos db(x) asociados con el elemento; y
(4) Una etiqueta lx para el elemento se crea aplicando la clave secreta Ki y una PRP aleatoria al elemento.
Como se muestra en el bloque 406, el primer cliente Pi envfa al servidor un conjunto de triples para cada elemento que comprende el identificador idx, la primera parte de la clave Zx,i y la etiqueta lx. El primer cliente Pi envfa a P2 un conjunto de triples para cada elemento que comprende el identificador idx, la segunda parte de la clave Zx,i y los datos cifrados C(db(x)), como se muestra en el bloque 408. El conjunto de triples en ambos de estos ejemplos se mezclar aleatoriamente anterior a enviar.
La FIG. 5 proporciona un diagrama de flujo de un procesador implementado por ordenador 500 que representa solamente el procesamiento del segundo cliente del protocolo tratado en la FIG. 3. Como se muestra en el bloque 502, el segundo cliente P2 recibe la clave secreta K. El cliente P2 tambien recibe un conjunto de triples para cada elemento que comprende el identificador idx, la segunda parte de la clave Zx,i y los datos cifrados C(db(x)), como se muestra en el bloque 504. El segundo cliente P2 genera etiquetas para los elementos en el conjunto S2 de P2 permutando los elementos usando la clave Ki y una PRP, y envfa las etiquetas para cada elemento en el conjunto S2 al servidor, como se muestra en el bloque 506. P2 recibe todos los triples de Pi que tienen una etiqueta dentro de la interseccion (bloque 508). P2 entonces puede descifrar los triples que P2 recibio desde Pi que comprenden los datos cifrados de Pi C(db(x)) por los elementos que Pi y P2 mantienen en la interseccion de los conjuntos S1 y S2 usando ambas partes de la clave secreta de dos partes (bloque 510).
1.4.2 Procesamiento del lado de servidor
La FIG. 6 proporciona un diagrama de flujo que representa solamente el procesamiento de servidor (por ejemplo, una tercera parte) 600 mostrado en la FIG. 3. Una de las funciones del servidor es calcular la interseccion de los conjuntos de las partes usando las etiquetas. En una realizacion de la tecnica, se realiza una interseccion de texto simple en las etiquetas con el fin de determinar que elementos de datos tienen en comun los clientes. Esto no implica operaciones criptograficas en la parte del servidor (por ejemplo, una tercera parte no de confianza). En otra realizacion de la tecnica, el planteamiento de comparacion trivial por pares para calcular la interseccion de conjuntos tiene una complejidad cuadratica y no escala a grandes conjuntos. Por lo tanto, en una realizacion de la tecnica, se implemento un algoritmo de interseccion de conjuntos de folclore basado en tablas de generacion de claves. En esta realizacion, el servidor genera claves de los elementos del primer conjunto en una tabla de generacion de claves, y entonces intenta buscar los elementos del segundo conjunto en la misma tabla. Cualquier elemento con una busqueda exitosa se anade a la interseccion. El servidor entonces saca un vector booleano que indica que elementos del segundo conjunto estan en la interseccion y cuales no.
Con referencia de nuevo a la FIG. 6, como se muestra en el bloque 602, el servidor recibe desde el primer cliente Pi un conjunto de triples para cada elemento que comprende el identificador idx, la primera parte de la clave zx,i y la etiqueta lx. El servidor recibe desde la segunda parte P2 las etiquetas para cada elemento en el conjunto S2 (vease el bloque 604).
El servidor compara el conjunto de etiquetas recibidas desde Pi y el conjunto de etiquetas recibidas desde P2 para encontrar la interseccion I de las etiquetas permutadas de Pi y P2 (bloque 606) y envfa a P2 todos los triples que recibio desde Pi que tienen una etiqueta dentro de la interseccion (bloque 608). Como se trato anteriormente, la interseccion de las etiquetas se puede encontrar de una variedad de formas, tales como, por ejemplo, calculando una interseccion de texto plano en las etiquetas.
1.5 Arquitectura ejemplar para poner en practica la tecnica
Se han proporcionado procesos ejemplares para poner en practica la tecnica, la siguiente seccion proporciona una discusion de una arquitectura ejemplar para poner en practica la tecnica.
La FIG. 7 muestra una vista general de un sistema 700 ilustrativo que incluye un modulo de servidor 702 para realizar una tarea de procesamiento en nombre de uno o mas modulos cliente. En este ejemplo, la FIG. 7 muestra dos modulos cliente, esto es el modulo de cliente Pi 704 y el modulo de cliente P2 706. No obstante, el modulo de servidor 702 puede proporcionar servicios a cualquier numero de modulos participates, incluyendo un modulo participate, o mas de dos modulos participates.
5
10
15
20
25
30
35
40
45
50
55
60
El modulo de servidor 702 puede representar cualquier tipo de funcionalidad de calculo. En un caso, corresponde a un servidor informatico que incluye funcionalidad de procesamiento, funcionalidad de entrada, funcionalidad de salida, funcionalidad de almacenamiento, etc. En un escenario, el modulo de servidor 702 puede representar un recurso de procesamiento en un sistema informatico en la nube, tal como un centro de datos que proporciona un servicio informatico en la nube. El modulo de servidor 702 puede representar un unico recurso proporcionado en una unica ubicacion o un recurso distribuido que se distribuye en ubicaciones plurales. Por ejemplo, el modulo de servidor 702 puede corresponder a una unica maquina ffsica; alternativamente, el modulo de servidor 702 puede representar un modulo de servidor virtual que se corresponde con el hardware informatico subyacente correspondiente de cualquier manera.
Cada modulo de cliente 704, 706 puede representar del mismo modo cualquier tipo de funcionalidad que incluye funcionalidad de procesamiento, funcionalidad de entrada, funcionalidad de salida, funcionalidad de almacenamiento, etc. En ejemplos concretos ilustrativos, cualquier modulo de cliente puede corresponder a un dispositivo informatico personal estacionario, un dispositivo informatico de ordenador portatil o miniordenador portatil, un dispositivo informatico de asistente digital personal (PDA), un dispositivo informatico de tipo lapiz, un dispositivo de telefono movil, una consola de juegos, un receptor multimedia digital, etc.
El modulo de servidor 702 esta conectado a los modulos de cliente Pi 704 y P2 706 a traves de cualquier tipo de red 708. La red 708 puede representar cualquier tipo de mecanismo de acoplamiento punto a punto o multipunto. En una implementacion, la red 708 puede corresponder a una red de area extensa (por ejemplo, Internet), una red de area local, o una combinacion de las mismas. La red 708 puede incluir cualquier combinacion de enlaces inalambricos, enlaces cableados, encaminadores, pasarelas, etc., que se gobiernan por cualquier protocolo o combinacion de protocolos. El modulo de servidor 702 puede representar un recurso remoto o local en relacion con cualquiera de los modulos participates.
En una implementacion de la tecnica, usando la arquitectura 700 mostrada en la FIG. 7, cada uno de los clientes 704, 706 aplica una permutacion pseudoaleatoria (PRP) compartida a los elementos de sus conjuntos de datos usando una clave secreta compartida para crear etiquetas de los elementos de su conjunto y enviar estas etiquetas al servidor 702. El primer cliente 704 genera ademas: un identificador para cada uno de los elementos del conjunto de la primera parte; una clave secreta de multiples partes para cada uno de los elementos del conjunto de la primera parte (que podna ser, por ejemplo, una clave de dos partes); y datos cifrados asociados con cada uno de los elementos del conjunto del primer cliente usando la clave secreta de multiples partes. El primer cliente envfa los datos cifrados para todos los elementos en el conjunto del primer cliente a las otras partes, junto con una parte de la clave secreta de multiples partes, y el identificador para cada elemento del conjunto del primer cliente. El primer cliente envfa al servidor las partes restantes de la clave de multiples partes y los identificadores para cada elemento. Cada cliente 704, 706 recibe para cada uno de los elementos en la interseccion, las etiquetas para la interseccion de los elementos de datos, los identificadores, y las partes restantes de la clave de multiples partes desde el servidor 702. Cada cliente 704, 706 entonces puede descifrar los datos asociados cifrados para cada uno de los elementos en la interseccion de los conjuntos usando las etiquetas, los identificadores y todas las partes de la clave de multiples partes para cada elemento.
1.6 Diagrama de flujo de datos ejemplar para poner en practica la tecnica
La FIG. 8 representa un diagrama de flujo de datos 800 para transferir alguna informacion db(x) 802 asociada con los elementos de datos en la interseccion de dos conjuntos de datos S1 804 y S2 806 mantenida por dos partes Pi 808 y P2 810 usando una tercera parte 812 no de confianza, sin que cualquiera de las dos partes Pi o P2 revele los datos en sus conjuntos. La primera parte Pi 808 genera una primera clave secreta Ke 812, una segunda clave secreta Ki 814, y una tercera clave secreta Ki 816 y envfa la segunda clave secreta Ki 814 a la segunda parte P2 810. Para cada elemento en el conjunto S1 de Pi. (1) usando Ke 812, se genera una clave secreta de dos partes Kx. Esta clave secreta de dos partes Kx comprende una primera parte zx,1 822a y una segunda parte de Zx,2, 822b; (2) los datos db(x) 802 para el elemento se cifran usando la clave Kx para crear los datos cifrados C(db(x)) 820; (3) se crea un identificador idx 824 para el elemento; y (4) se crea una etiqueta lx 826 para el elemento aplicando la clave secreta Ki 814 y una PRP al elemento. La primera parte Pi 808 envfa a la tercera parte 812 un conjunto de triples mezclados aleatoriamente para cada elemento que comprende el identificador idx 824, la primera parte de la clave Zx,1 822a y la etiqueta lx 826. La primera parte Pi 808 envfa a P2 810 un conjunto de triples para cada elemento que comprende el identificador idx 824, la segunda parte de la clave Zx,1 822b y los datos cifrados C(db(x)) 820. La segunda parte P2 810 genera etiquetas 828 para los elementos en el conjunto S2 de P2 806 permutando los elementos usando la clave Ki 814 y una PRP, y enviando las etiquetas 828 para cada elemento en el conjunto S2 806 a la tercera parte no de confianza 812. La tercera parte 812 compara el conjunto de etiquetas 826 recibidas desde Pi y el conjunto de etiquetas 828 recibidas desde P2 810 para encontrar la interseccion I 832 de las etiquetas permutadas de Pi y P2, enviando a P2 810 todos los triples recibidos desde Pi 808 que tienen una etiqueta dentro de la interseccion 1832. P2 810 puede descifrar entonces los triples que P2 recibio desde Pi 808 que comprenden los datos cifrados de Pi C(db(x)) 820 para los elementos que Pi y P2 mantienen en la interseccion 1832 de los conjuntos S1 y S2.
5
10
15
20
25
30
35
40
45
50
55
2.0 Aplicaciones ejemplares
La tecnica de interseccion privada de conjuntos asistida por servidor con transferencia de datos se puede aplicar a muchas aplicaciones del mundo real, tales como, por ejemplo, con respecto a la transferencia de datos medicos de pacientes, la verificacion de que los pasajeros de un vuelo no estan en una lista de exclusion aerea, o la transferencia de algunos, pero no todos, los datos de usuario para aplicaciones en lmea. Estas aplicaciones se describen en breve a continuacion, pero hay muchas, muchas otras aplicaciones que pueden emplear de manera rentable la tecnica de interseccion privada de conjuntos asistida por servidor con transferencia de datos.
2.1 Transferencia de datos medicos
Hay muchos escenarios en los que un hospital puede no desear divulgar los detalles acerca de los registros de pacientes individuales o bien a otro hospital o bien a un servidor. Por ejemplo, en el caso en el que dos hospitales hayan tratado a algunos de los mismos pacientes, puede ser deseable para un hospital transferir los datos de paciente acerca de los pacientes que ambos han tratado desde un hospital a otro, mientras que no sena deseable transferir datos acerca de todos los pacientes. En este caso, la tecnica de interseccion privada de conjuntos asistida por servidor con transferencia de datos se puede usar para transferir datos de paciente acerca de los pacientes que ambos hospitales hayan tratado para que cada hospital tenga un registro completo de las historias medicas de estos pacientes.
2.2 Determinacion de pasajeros programados que estan en una lista de exclusion aerea
Tambien hay muchos escenarios en los que una aerolmea podna no querer divulgar los detalles acerca de los viajeros en sus vuelos a una agencia gubernamental o a otro pafs. Por ejemplo, una aerolmea podna no querer divulgar su lista de pasajeros entera a una agencia gubernamental o a un pafs extranjero para que la agencia gubernamental o el pafs extranjero determine si alguno de los pasajeros esta en una lista de exclusion aerea. En este caso, la tecnica de interseccion privada de conjuntos asistida por servidor con transferencia de datos se puede usar para determinar que pasajeros programados en un vuelo estan en la lista de exclusion aerea sin revelar datos acerca de los otros pasajeros programados.
2.3 Comparticion de datos de usuario para aplicaciones en lmea o en la nube
Tambien hay muchos escenarios en los que un proveedor de un servicio o aplicacion en lmea, por ejemplo, un servicio o una aplicacion de juegos, podna querer compartir informacion acerca de los usuarios que el servicio/aplicacion en lmea tiene en comun con otras aplicaciones o servicios en lmea. En este caso, probablemente no querna proporcionar informacion acerca de todos sus usuarios. En este caso, la tecnica de interseccion privada de conjuntos asistida por servidor con transferencia de datos se puede usar para proporcionar informacion acerca de los usuarios que los dos servicios/aplicaciones en lmea tienen en comun, sin revelar datos acerca de otros usuarios.
3.0 Entorno de operacion ejemplar:
La tecnica de interseccion privada de conjuntos asistida por servidor con transferencia de datos descrita en la presente memoria esta operativa dentro de numerosos tipos de entornos o configuraciones de sistemas informaticos de proposito general o proposito especial. La FIG. 9 ilustra un ejemplo simplificado de un sistema informatico de proposito general en el que se pueden implementar diversas realizaciones y elementos de la tecnica de interseccion privada de conjuntos asistida por servidor con transferencia de datos, como se describe en la presente memoria. Se debena senalar que cualesquiera recuadros que se representan por lmeas de trazos o discontinuas en la FIG. 9 representan realizaciones alternativas del dispositivo informatico simplificado, y que cualquiera de o todas estas realizaciones alternativas, como se describe a continuacion, se pueden usar en combinacion con otras realizaciones alternativas que se describen a lo largo de este documento.
Por ejemplo, la FIG. 9 muestra un diagrama de sistema general que muestra un dispositivo 900 informatico simplificado. Tales dispositivos informaticos se pueden encontrar tfpicamente en dispositivos que tienen al menos alguna capacidad de calculo minima, incluyendo, pero no limitada a, ordenadores personales, ordenadores servidores, dispositivos informaticos de mano, ordenadores portatiles o moviles, dispositivos de comunicaciones tales como telefonos celulares y PDA, sistemas multiprocesador, sistemas basados en microprocesador, receptores multimedia digitales, electronica de consumo programable, PC en red, miniordenadores, ordenadores centrales, reproductores de medios de audio o video, etc.
Para permitir a un dispositivo implementar la tecnica de interseccion privada de conjuntos asistida por servidor con transferencia de datos, el dispositivo debena tener una capacidad de calculo y una memoria de sistema suficientes para permitir operaciones de calculo basicas. En particular, como se ilustra por la FIG. 9, la capacidad de calculo se ilustra de manera general por una o mas unidades de procesamiento 910, y puede incluir tambien una o mas GPU 915, cualquiera de las dos o ambas en comunicacion con la memoria de sistema 920. Senalar que la(s) unidad(es) de procesamiento 910 del dispositivo informatico general puede(n) ser microprocesadores especializados, tales como un DSP, un VLIW, u otro microcontrolador, o puede(n) ser CPU convencional(es) que tiene(n) uno o mas nucleos de procesamiento, incluyendo nucleos especializados basados en GPU en una CPU de multiples nucleos. Cuando se usa en dispositivos de proposito especial tal como la tecnica de interseccion privada de conjuntos
5
10
15
20
25
30
35
40
45
50
55
60
asistida por servidor con transferencia de datos, el dispositivo informatico se puede implementar como un ASIC o una FPGA, por ejemplo.
Ademas, el dispositivo informatico simplificado de la FIG. 9 puede incluir tambien otros componentes, tales como, por ejemplo, una interfaz de comunicaciones 930. El dispositivo informatico simplificado de la FIG. 9 puede incluir tambien uno o mas dispositivos de entrada informaticos convencionales 940 (por ejemplo, dispositivos de apuntamiento, teclados, dispositivos de entrada de audio y habla, dispositivos de entrada de video, dispositivos de entrada hapticos, dispositivos para recibir transmisiones de datos cableadas o inalambricas, etc.). El dispositivo informatico simplificado de la FIG. 9 puede incluir tambien otros componentes opcionales, tales como, por ejemplo, uno o mas dispositivos de salida informaticos convencionales 950 (por ejemplo, dispositivo(s) de visualizacion 955, dispositivos de salida de audio, dispositivos de salida de video, dispositivos para transmitir transmisiones de datos cableadas o inalambricas, etc.). Senalar que las interfaces de comunicaciones tfpicas 930, los dispositivos de entrada 940, los dispositivos de salida 950, y los dispositivos de almacenamiento 960 para ordenadores de proposito general son bien conocidos por los expertos en la tecnica, y no se describiran en detalle en la presente memoria.
El dispositivo informatico simplificado de la FIG. 9 puede incluir tambien una variedad de medios legibles por ordenador. Los medios legibles por ordenador pueden ser cualquier medio disponible al que se pueda acceder por el ordenador 900 a traves de los dispositivos de almacenamiento 960 e incluye tanto medios volatiles como no volatiles que son o bien extrafbles 970 y/o bien no extrafbles 980, para almacenamiento de informacion tal como instrucciones legibles por ordenador o ejecutables por ordenador, estructuras de datos, modulos de programa, u otros datos. Los medios legibles por ordenador pueden comprender medios de almacenamiento informatico y medios de comunicacion. Los medios de almacenamiento informatico se refieren a medios legibles por ordenador o maquina tangibles o dispositivos de almacenamiento, tales como DVD, CD, discos flexibles, unidades de cinta, discos duros, unidades opticas, dispositivos de memoria de estado solido, RAM, ROM, EEPROM, memoria rapida u otra tecnologfa de memoria, casetes magneticos, cintas magneticas, almacenamiento en disco magnetico, u otros dispositivos de almacenamiento magnetico, o cualquier otro dispositivo que se pueda usar para almacenar la informacion deseada y al que se pueda acceder mediante uno o mas dispositivos informaticos.
El almacenamiento de informacion tal como instrucciones legibles por ordenador o ejecutables por ordenador, estructuras de datos, modulos de programa, etc., tambien se puede consumar usando cualquiera de una variedad de los medios de comunicacion antes mencionados para codificar una o mas senales de datos moduladas u ondas portadoras, u otros mecanismos de transporte o protocolos de comunicaciones, e incluye cualquier mecanismo de entrega de informacion cableado o inalambrico. Senalar que los terminos “senal de datos modulada” u “onda portadora” se refieren generalmente a una senal que tiene una o mas de sus caractensticas establecidas o cambiadas de tal manera en cuanto a codificar informacion en la senal. Por ejemplo, los medios de comunicacion incluyen medios cableados tales como una red cableada o una conexion directa cableada que lleva una o mas senales de datos modulados, y medios inalambricos tales como medios acusticos, de RF, infrarrojos, laser, y otros inalambricos para transmitir y/o recibir una o mas senales de datos modulados u ondas portadoras. Las combinaciones de cualquiera de las anteriores tambien se debenan incluir dentro del alcance de los medios de comunicacion.
Ademas, se pueden almacenar, recibir, transmitir, o leer software, programas, y/o productos de programas informaticos que incorporen algunas de o todas las diversas realizaciones de la tecnica de interseccion privada de conjuntos asistida por servidor con transferencia de datos descrita en la presente memoria, o partes de la misma a partir de cualquier combinacion deseada de medios legibles por ordenador o por maquina o dispositivos de almacenamiento y medios de comunicacion en forma de instrucciones ejecutables por ordenador u otras estructuras de datos.
Finalmente, la tecnica de interseccion privada de conjuntos asistida por servidor con transferencia de datos descrita en la presente memoria se puede describir ademas en el contexto general de instrucciones ejecutables por ordenador, tales como modulos de programa, que se ejecutan por un dispositivo informatico. En general, los modulos de programa incluyen rutinas, programas, objetos, componentes, estructuras de datos, etc., que realizan tareas particulares o implementan tipos de datos abstractos particulares. Las realizaciones descritas en la presente memoria tambien se pueden poner en practica en entornos informaticos distribuidos en los que las tareas se realizan por uno o mas dispositivos de procesamiento remoto, o dentro de una nube de uno o mas dispositivos, que estan enlazados a traves de una o mas redes de comunicaciones. En un entorno informatico distribuido, los modulos de programa se pueden situar tanto en medios de almacenamiento informatico local como remoto, incluyendo dispositivos de almacenamiento de medios. Aun mas, las instrucciones antes mencionadas se pueden implementar, en parte o en su totalidad, como circuitos logicos de hardware, que pueden incluir o no un procesador.
Tambien se debena senalar que cualquiera de o todas las realizaciones alternativas antes mencionadas descritas en la presente memoria se pueden usar en cualquier combinacion deseada para formar realizaciones fnbridas adicionales. Aunque la materia objeto se ha descrito en un lenguaje espedfico a caractensticas estructurales y/o actos metodologicos, se tiene que entender que la materia objeto definida en las reivindicaciones adjuntas no esta necesariamente limitada a las caractensticas o actos espedficos descritos anteriormente. Las caractensticas y los actos espedficos descritos anteriormente se describen como formas de ejemplo de implementacion de las reivindicaciones.

Claims (10)

  1. 5
    10
    15
    20
    25
    30
    35
    40
    45
    REIVINDICACIONES
    1. Uno o mas medios legibles por ordenador (960) que comprenden instrucciones ejecutables por ordenador incorporadas en los mismos que, cuando se ejecutan por un dispositivo informatico (702, 900) que representa una tercera parte (812), realizan un proceso (600) para transferir alguna informacion asociada con elementos de un conjunto de datos mantenido por una primera parte (808) a una segunda parte (810) sin revelar el conjunto de datos, que comprende:
    recibir (602) desde la primera parte (808), para cada elemento en un conjunto Si una etiqueta para cada elemento, un identificador para el elemento, y la primera parte de una clave secreta de dos partes;
    recibir (604) desde la segunda parte (810) etiquetas generadas por los elementos de un segundo conjunto S2;
    calcular (606) la interseccion de las etiquetas de los conjuntos S1 y S2;
    enviar (608) a la segunda parte (810), para cada elemento en la interseccion de las etiquetas: la etiqueta, el identificador para el elemento y la primera parte de la clave secreta de dos partes.
  2. 2. Los medios de la reivindicacion 1, en donde la primera parte (808) genera (202) triples para cada elemento en el conjunto S1 que comprende:
    una etiqueta para el elemento,
    un identificador para el elemento, y
    una forma cifrada para los datos asociados con el elemento que se cifro usando la clave secreta de dos partes.
  3. 3. Los medios de la reivindicacion 1, en donde la primera parte (808) envfa (204) a la segunda parte (810), para cada elemento en el conjunto S1: el identificador para cada elemento, los datos cifrados asociados con cada elemento y la segunda parte de la clave secreta de dos partes.
  4. 4. Los medios de la reivindicacion 1, que ademas comprenden:
    la segunda parte (810) que descifra (212) los datos asociados con cada elemento en la interseccion de los conjuntos usando los identificadores y la primera y una segunda parte de la clave secreta de dos partes.
  5. 5. Los medios de la reivindicacion 1, en donde la primera parte (808) y la segunda parte (810) generan etiquetas para su conjunto aplicando una permutacion pseudoaleatoria (PRP) compartida a los elementos de sus conjuntos de datos usando una clave compartida.
  6. 6. Los medios de la reivindicacion 1, en donde la primera parte (808) genera la clave secreta de dos partes usando otra clave secreta.
  7. 7. Los medios de la reivindicacion 1, en donde la tercera parte (812) es una tercera parte (812) no de confianza.
  8. 8. Los medios de la reivindicacion 4, en donde la primera (808) y la segunda parte (810) son clientes (704, 706) y la tercera parte (812) es uno o mas servidores (702) en una nube informatica.
  9. 9. Los medios de la reivindicacion 1, en donde la tercera parte (812) realiza una interseccion de conjuntos de texto plano en las etiquetas.
  10. 10. Un proceso implementado por ordenador (300) para transferir alguna informacion db(x) asociada con los elementos de datos en la interseccion de dos conjuntos de datos S1 y S2 mantenidos por dos partes Pi (808) y P2 (810) usando una tercera parte (812) no de confianza, sin que cualquiera de las dos partes Pi o P2 revele los datos en sus conjuntos, que comprende:
    la primera parte Pi que genera (302) una primera clave secreta Ke, una segunda clave secreta K, y una tercera clave secreta Ki y que envfa la segunda clave secreta Ki a la segunda parte P2;
    para cada elemento x en el conjunto S1 de Pi (304):
    usar Ke, que genera una clave secreta de dos partes Kx que comprende una primera parte zx,1 y una segunda parte zx,2,
    cifrar datos db(x) asociados con el elemento usando la clave Kx, crear un identificador idx para el elemento,
    crear una etiqueta lx para el elemento aplicando una permutacion pseudoaleatoria al elemento usando la clave secreta Kl;
    10
    la primera parte Pi que env^a (306) a la tercera parte no de confianza un conjunto de triples para cada elemento en el conjunto S1 que comprende: el identificador idx, la primera parte de la clave zx,i y la etiqueta lx;
    la primera parte Pi que envfa (308) a la segunda parte P2 un conjunto de triples para cada elemento que comprende: el identificador idx, la segunda parte de la clave Zx,2 y los datos cifrados C(db(x));
    la segunda parte P2 que genera (310) etiquetas para los elementos en el conjunto S2 de P2 aplicando una permutacion a los elementos usando la clave K, y que envfa las etiquetas para cada elemento en el conjunto S2 a la tercera parte no de confianza;
    la tercera parte no de confianza que compara (312) el conjunto de etiquetas recibidas desde Pi y el conjunto de etiquetas recibidas desde P2 para encontrar la interseccion de las etiquetas de Pi y P2, y
    la tercera parte no de confianza que envfa a P2 todos los triples que la tercera parte recibio desde Pi que tienen una etiqueta dentro de la interseccion.
ES14810066.2T 2013-11-27 2014-11-18 Intersección privada de conjuntos (PSI) asistida por servidor con transferencia de datos Active ES2626533T3 (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201314091810 2013-11-27
US14/091,810 US9158925B2 (en) 2013-11-27 2013-11-27 Server-aided private set intersection (PSI) with data transfer
PCT/US2014/066023 WO2015080896A1 (en) 2013-11-27 2014-11-18 Server-aided private set intersection (psi) with data transfer

Publications (1)

Publication Number Publication Date
ES2626533T3 true ES2626533T3 (es) 2017-07-25

Family

ID=52021432

Family Applications (1)

Application Number Title Priority Date Filing Date
ES14810066.2T Active ES2626533T3 (es) 2013-11-27 2014-11-18 Intersección privada de conjuntos (PSI) asistida por servidor con transferencia de datos

Country Status (5)

Country Link
US (1) US9158925B2 (es)
EP (1) EP3075098B1 (es)
CN (1) CN105794145B (es)
ES (1) ES2626533T3 (es)
WO (1) WO2015080896A1 (es)

Families Citing this family (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015107951A1 (ja) * 2014-01-17 2015-07-23 日本電信電話株式会社 秘密計算方法、秘密計算システム、ソート装置及びプログラム
US9817977B2 (en) * 2014-04-04 2017-11-14 Palo Alto Research Center Incorporated Methods for selection of collaborators for online threat mitigation
CA2887191C (en) * 2014-04-04 2021-05-25 University Of Ottawa Secure linkage of databases
US9716697B2 (en) 2015-07-24 2017-07-25 Google Inc. Generating bridge match identifiers for linking identifiers from server logs
US10142296B2 (en) 2015-07-24 2018-11-27 Google Llc Systems and methods for improving precision of a location sensor
US9830463B2 (en) * 2016-01-22 2017-11-28 Google Llc Systems and methods for detecting sensitive information leakage while preserving privacy
WO2017160317A1 (en) * 2016-03-18 2017-09-21 Entit Software Llc Data objects associated with private set intersection (psi)
US20170359321A1 (en) * 2016-06-13 2017-12-14 Microsoft Technology Licensing, Llc Secure Data Exchange
US10558817B2 (en) 2017-01-30 2020-02-11 Foley & Lardner LLP Establishing a link between identifiers without disclosing specific identifying information
US10608811B2 (en) * 2017-06-15 2020-03-31 Microsoft Technology Licensing, Llc Private set intersection encryption techniques
US10509694B2 (en) 2017-06-23 2019-12-17 Microsoft Technology Licensing, Llc System and methods for optimal error detection in programmatic environments
CN111611618B (zh) * 2017-10-31 2023-08-04 创新先进技术有限公司 一种数据统计方法和装置
WO2019098941A1 (en) * 2017-11-20 2019-05-23 Singapore Telecommunications Limited System and method for private integration of datasets
WO2019157491A1 (en) 2018-02-12 2019-08-15 Equifax Inc. Facilitating entity resolution via secure entity resolution database
WO2019188320A1 (ja) * 2018-03-26 2019-10-03 日本電信電話株式会社 秘密重複排除フィルタ生成システム、秘密重複排除システム、これらの方法、秘密計算装置及びプログラム
US11240012B2 (en) * 2018-04-20 2022-02-01 Nippon Telegraph And Telephone Corporation Secure aggregate order system, secure computation apparatus, secure aggregate order method, and program
US11251945B2 (en) * 2018-04-25 2022-02-15 Nippon Telegraph And Telephone Corporation Secure aggregate maximum system, secure aggregate minimum system, secure computation apparatus, secure aggregate maximum method, secure aggregate minimum method, and program
EP3786927B1 (en) * 2018-04-26 2023-06-14 Nippon Telegraph And Telephone Corporation System, apparatus, method and program for secure aggregate median computation
US10867053B2 (en) 2018-06-26 2020-12-15 Sri International Creating software packages for performing secure computations
CN109657489B (zh) * 2018-08-03 2021-09-14 湖北工业大学 一种隐私保护的集合交集两方安全计算方法及系统
US11599655B1 (en) * 2018-09-21 2023-03-07 Amazon Technologies, Inc. Data sharing method
US11178117B2 (en) 2018-12-18 2021-11-16 International Business Machines Corporation Secure multiparty detection of sensitive data using private set intersection (PSI)
CN109951443B (zh) * 2019-01-28 2021-06-04 湖北工业大学 一种云环境下隐私保护的集合交集计算方法及系统
WO2020172889A1 (zh) * 2019-02-28 2020-09-03 云图有限公司 客户端各自生成密钥分量的密钥管理方法和电子设备
WO2020172883A1 (zh) * 2019-02-28 2020-09-03 云图有限公司 多客户端多服务器联合生成密钥的方法和电子设备
WO2020172882A1 (zh) * 2019-02-28 2020-09-03 云图有限公司 择一客户端为多客户端多服务器生成密钥的方法和设备
WO2020172884A1 (zh) * 2019-02-28 2020-09-03 云图有限公司 服务器各自生成密钥分量的密钥管理方法、电子设备
CN110266721B (zh) * 2019-07-05 2020-04-28 西南交通大学 一种基于同态的云辅助动态通用安全多方计算方法
CN110399741A (zh) * 2019-07-29 2019-11-01 深圳前海微众银行股份有限公司 数据对齐方法、设备及计算机可读存储介质
CN110535622A (zh) * 2019-08-01 2019-12-03 阿里巴巴集团控股有限公司 数据处理方法、装置和电子设备
US10885203B2 (en) 2019-08-01 2021-01-05 Advanced New Technologies Co., Ltd. Encrypted data exchange
CN110719159B (zh) * 2019-09-24 2023-06-30 河南师范大学 抗恶意敌手的多方隐私集合交集方法
US11239996B2 (en) 2019-12-18 2022-02-01 International Business Machines Corporation Weighted partial matching under homomorphic encryption
CN111552978B (zh) * 2020-04-21 2022-08-23 杭州趣链科技有限公司 基于DH加密和Hash表的隐私保护集合求交集方法
US11784803B2 (en) * 2020-05-26 2023-10-10 Visa International Service Association Round-efficient fully secure solitary multi-party computation with honest majority
CN111753318B (zh) * 2020-06-04 2024-04-26 上海蚂蚁创将信息技术有限公司 私有数据的多方安全计算方法、装置及系统
CN111726225B (zh) * 2020-06-10 2022-12-02 暨南大学 一种基于秘密共享的外包隐私保护交集计算方法
CN113922960B (zh) * 2020-07-08 2023-10-24 神州融安数字科技(北京)有限公司 一种基于sm2的psi获取方法、装置及系统
CN111914279B (zh) * 2020-08-13 2023-01-06 深圳市洞见智慧科技有限公司 一种高效准确的隐私求交系统、方法及装置
CN111984984B (zh) * 2020-08-28 2022-06-28 山东大学 基于集合运算的保密统计数据共享方法及系统
WO2022056097A1 (en) 2020-09-09 2022-03-17 Springcoin, Inc. Method and apparatus for third-party managed data transference and corroboration via tokenization
CN112312313B (zh) * 2020-09-10 2023-07-04 神州融安数字科技(北京)有限公司 一种基于psi的地理区域进入判断方法、装置及系统
US11949778B1 (en) 2020-09-16 2024-04-02 Snap Inc. Privacy-preserving multi-touch attribution
WO2022076038A1 (en) * 2020-10-08 2022-04-14 Visa International Service Association Updatable private set intersection
CN112434329A (zh) * 2020-10-23 2021-03-02 上海点融信息科技有限责任公司 私有数据交集获取方法、计算设备、存储介质
CN112632608A (zh) * 2020-12-23 2021-04-09 上海同态信息科技有限责任公司 一种基于数值计算隐私数据协同处理方法
CN112737772B (zh) * 2020-12-25 2022-10-25 山东师范大学 私有集合交集数据的安全统计方法、终端设备及系统
US11687666B2 (en) * 2021-01-12 2023-06-27 Visa International Service Association System, method, and computer program product for conducting private set intersection (PSI) techniques with multiple parties using a data repository
US20220382908A1 (en) * 2021-05-25 2022-12-01 Meta Platforms, Inc. Private joining, analysis and sharing of information located on a plurality of information stores
CN113312641B (zh) * 2021-06-02 2023-07-18 杭州趣链科技有限公司 多点多方的数据交互方法、系统、电子装置和存储介质
US11687667B2 (en) * 2021-08-06 2023-06-27 Amazon Technologies, Inc. Privacy-preserving computing with third-party service
US12010143B2 (en) * 2021-08-25 2024-06-11 International Business Machines Corporation Bulk data transfers via transport layer security protocol
CN115001733B (zh) * 2022-04-15 2024-06-04 支付宝(杭州)信息技术有限公司 一种数据确定方法、装置、存储介质及终端
IL292554A (en) * 2022-04-27 2023-11-01 Google Llc Cryptographically secure and privacy-preserving matching
CN114611131B (zh) * 2022-05-10 2023-05-30 支付宝(杭州)信息技术有限公司 保护隐私的确定共有数据的方法、装置和系统
CN115037439B (zh) * 2022-06-08 2024-06-18 上海海洋大学 一种适合小集合的多方隐私集合求交方法及系统
CN116016368A (zh) * 2022-12-29 2023-04-25 蚂蚁区块链科技(上海)有限公司 多方安全计算中的网络传输方法和执行该方法的调度器
CN116522366B (zh) * 2023-06-26 2023-09-19 三未信安科技股份有限公司 一种适用于大数据的多方数据处理方法、存储介质和产品
CN117692144B (zh) * 2024-02-04 2024-05-07 确信信息股份有限公司 一种阈值条件下多方私有集合操作的隐私保护方法及系统

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8271796B2 (en) 2008-05-12 2012-09-18 Telecommunications Research Laboratory Apparatus for secure computation of string comparators
US8140502B2 (en) 2008-06-27 2012-03-20 Microsoft Corporation Preserving individual information privacy by providing anonymized customer data
US8526603B2 (en) * 2011-07-08 2013-09-03 Sap Ag Public-key encrypted bloom filters with applications to private set intersection
WO2013126882A1 (en) 2012-02-23 2013-08-29 Applied Communication Sciences Privacy-preserving publish-subscribe protocol in a distributed model
US8572405B2 (en) * 2012-03-15 2013-10-29 Sap Ag Collusion-resistant outsourcing of private set intersection

Also Published As

Publication number Publication date
EP3075098A1 (en) 2016-10-05
EP3075098B1 (en) 2017-03-01
US20150149763A1 (en) 2015-05-28
US9158925B2 (en) 2015-10-13
CN105794145B (zh) 2019-03-26
WO2015080896A1 (en) 2015-06-04
CN105794145A (zh) 2016-07-20

Similar Documents

Publication Publication Date Title
ES2626533T3 (es) Intersección privada de conjuntos (PSI) asistida por servidor con transferencia de datos
Bonawitz et al. Practical secure aggregation for privacy-preserving machine learning
Zhou et al. Quantum cryptography for the future internet and the security analysis
Liu et al. An efficient and secure arbitrary n-party quantum key agreement protocol using bell states
Gu et al. Double C-NOT attack and counterattack on ‘Three-step semi-quantum secure direct communication protocol’
EP3264671A1 (en) Key replacement direction control system, and key replacement direction control method
Aloufi et al. Blindfolded evaluation of random forests with multi-key homomorphic encryption
Xu et al. Lighting the way to a smart world: Lattice-based cryptography for Internet of Things
WO2022068358A1 (zh) 基于信息的属性生成密钥的加密方法、装置及设备
Tajima et al. Outsourced private set intersection cardinality with fully homomorphic encryption
Cheng et al. Strongly secure and efficient range queries in cloud databases under multiple keys
Chen et al. A complete key management scheme for LoRaWAN v1. 1
Ying et al. Reliable policy updating under efficient policy hidden fine-grained access control framework for cloud data sharing
Qiu et al. Categorical quantum cryptography for access control in cloud computing
Sun et al. Symmetrically private information retrieval based on blind quantum computing
Bai et al. Scalable private decision tree evaluation with sublinear communication
Saračević et al. A novel block encryption method based on Catalan random walks
Lu et al. Multicenter privacy-preserving Cox analysis based on homomorphic encryption
CN111917533A (zh) 具有减少泄漏的区间统计量的隐私保护基准分析
Abikoye et al. Securing critical user information over the internet of medical things platforms using a hybrid cryptography scheme
Seo et al. SBAC: Substitution cipher access control based on blockchain for protecting personal data in metaverse
Zhahir et al. Quantum Computing and Its Application
Fan et al. Cloud-assisted private set intersection via multi-key fully homomorphic encryption
Andronikos et al. One-to-many simultaneous secure quantum information transmission
Chen et al. Lattices-Inspired CP-ABE from LWE Scheme for Data Access and Sharing Based on Blockchain