ES2836207T3 - Computación segura multipartita sin inicializador confiable - Google Patents
Computación segura multipartita sin inicializador confiable Download PDFInfo
- Publication number
- ES2836207T3 ES2836207T3 ES19782894T ES19782894T ES2836207T3 ES 2836207 T3 ES2836207 T3 ES 2836207T3 ES 19782894 T ES19782894 T ES 19782894T ES 19782894 T ES19782894 T ES 19782894T ES 2836207 T3 ES2836207 T3 ES 2836207T3
- Authority
- ES
- Spain
- Prior art keywords
- matrix
- data
- random
- private data
- submatrix
- 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
Links
- 239000011159 matrix material Substances 0.000 claims abstract description 401
- 238000000034 method Methods 0.000 claims abstract description 90
- 229940050561 matrix product Drugs 0.000 claims abstract description 51
- 230000015654 memory Effects 0.000 claims description 22
- 230000004044 response Effects 0.000 claims description 8
- 239000013598 vector Substances 0.000 description 27
- 238000012545 processing Methods 0.000 description 15
- 238000004590 computer program Methods 0.000 description 14
- 238000004364 calculation method Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 10
- 230000008569 process Effects 0.000 description 9
- 238000004422 calculation algorithm Methods 0.000 description 8
- 230000000694 effects Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000005457 optimization Methods 0.000 description 4
- 230000001052 transient effect Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 101150114877 Ezr gene Proteins 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000010348 incorporation Methods 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9536—Search customisation based on social or collaborative filtering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/11—Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting 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/6245—Protecting personal data, e.g. for financial or medical purposes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting 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/6245—Protecting personal data, e.g. for financial or medical purposes
- G06F21/6254—Protecting personal data, e.g. for financial or medical purposes by anonymising data, e.g. decorrelating personal data from the owner's identification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting 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/6245—Protecting personal data, e.g. for financial or medical purposes
- G06F21/6263—Protecting personal data, e.g. for financial or medical purposes during internet communication, e.g. revealing personal data from cookies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0201—Market modelling; Market analysis; Collecting market data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0241—Advertisements
- G06Q30/0251—Targeted advertisements
- G06Q30/0263—Targeted advertisements based upon Internet or website rating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0282—Rating or review of business operators or products
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
- G06Q30/0623—Item investigation
- G06Q30/0625—Directed, with specific intent or strategy
- G06Q30/0627—Directed, with specific intent or strategy using item specifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
- G06Q30/0631—Item recommendations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/01—Social networking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing 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/2107—File encryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/46—Secure multiparty computation, e.g. millionaire problem
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/50—Oblivious transfer
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Strategic Management (AREA)
- Finance (AREA)
- Accounting & Taxation (AREA)
- General Engineering & Computer Science (AREA)
- Development Economics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Computer Security & Cryptography (AREA)
- General Business, Economics & Management (AREA)
- Economics (AREA)
- Marketing (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Bioethics (AREA)
- Mathematical Physics (AREA)
- Entrepreneurship & Innovation (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Tourism & Hospitality (AREA)
- Game Theory and Decision Science (AREA)
- Human Resources & Organizations (AREA)
- Primary Health Care (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Medical Informatics (AREA)
- Algebra (AREA)
- Operations Research (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
- Storage Device Security (AREA)
Abstract
Un método (600) implementado por computadora para la computación colaborativa segura de un producto matricial XY de una primera matriz X que incluye datos privados de una primera parte y una segunda matriz Y que incluye datos privados de la segunda parte mediante intercambio secreto sin un inicializador confiable, el método 5 que comprende: obtener (604), mediante la primera parte, una primera matriz X que incluye datos privados de la primera parte; generar (606), mediante la primera parte, una primera matriz aleatoria X' que tiene el mismo tamaño que la primera matriz; identificar (610), mediante la primera parte, una primera submatriz X'e de la primera matriz aleatoria X' y una segunda submatriz X'o de la primera matriz aleatoria X', en donde la primera submatriz X'e de la primera matriz aleatoria comprende todas las columnas pares de la primera matriz aleatoria, y la segunda submatriz X'o de la primera matriz aleatoria comprende todas las columnas impares de la primera matriz aleatoria; calcular (612), mediante la primera parte, primeros datos X1 privados codificados de la primera parte en base a la primera matriz X, la primera matriz aleatoria X', la primera submatriz X'e de la primera matriz aleatoria y la segunda submatriz X'o de la primera matriz aleatoria, en donde los datos privados de la primera parte no son derivables únicamente a partir de los primeros datos privados codificados de la primera parte, en donde los primeros datos privados codificados de la primera parte comprenden una primera suma X1 de la primera matriz X y la primera matriz aleatoria X', y una segunda suma X2 de la primera submatriz X'e de la primera matriz aleatoria y la segunda submatriz X'o de la primera matriz aleatoria; recibir (633), mediante la primera parte desde la segunda parte, segundos datos privados codificados de la segunda parte, en donde los datos privados de la segunda parte no son derivables únicamente a partir de los segundos datos privados codificados de la segunda parte, en donde los segundos datos privados codificados de la segunda parte se calculan en base a la segunda matriz Y, una segunda matriz aleatoria Y' que tiene el mismo tamaño que la segunda matriz, una primera submatriz Y'e de la segunda matriz aleatoria Y' y una segunda submatriz Y'o de la segunda matriz aleatoria Y', en donde la primera submatriz Y'e de la segunda matriz aleatoria Y' comprende todas las filas pares de la segunda matriz aleatoria, y la segunda submatriz Y'o de la segunda matriz aleatoria comprende todas las filas impares de la segunda matriz aleatoria, en donde los segundos datos privados codificados de la segunda parte comprenden una primera diferencia Y1 entre la segunda matriz Y y la segunda matriz aleatoria Y', y una segunda diferencia Y2 de la primera submatriz Y'e de la segunda matriz aleatoria y la segunda submatriz Y'o de la segunda matriz aleatoria; calcular (614), mediante la primera parte, un primer sumando M del producto matricial de la primera matriz que incluye los datos privados de la primera parte y la segunda matriz que incluye los datos privados de la segunda parte, en donde **(Ver fórmula)** recibir (635), mediante la primera parte desde la segunda parte, un segundo sumando N del producto matricial de la primera matriz que incluye los datos privados de la primera parte y la segunda matriz que incluye los datos privados de la segunda parte, en donde **(Ver fórmula)** y calcular (616), mediante la primera parte, el producto matricial XY de la primera matriz X que incluye los datos privados de la primera parte y la segunda matriz Y que incluye los datos privados de la segunda parte sumando el primer sumando M y el segundo sumando N, en donde: la primera plataforma comprende una plataforma de clasificación y recomendación de artículos; los datos privados de la primera parte comprenden datos de calificación que comprenden calificaciones respectivas de múltiples artículos con respecto a múltiples usuarios; la segunda plataforma comprende una plataforma de red social; y los datos privados de la primera parte comprenden datos de redes sociales que indican relaciones sociales entre dos cualesquiera de los múltiples usuarios.
Description
DESCRIPCIÓN
Computación segura multipartita sin inicializador confiable
CAMPO TÉCNICO
Esta memoria descriptiva se refiere a la computación colaborativa (p. ej., computación segura multipartita (MPC)) entre dos o más partes sin revelar datos privados o sensibles de partes individuales.
ANTECEDENTES
Con el desarrollo de la tecnología y el análisis de datos, muchas plataformas en línea recopilan diferentes tipos de datos. Por ejemplo, las plataformas de clasificación de películas recopilan datos de clasificación de los usuarios, mientras que las plataformas de redes sociales recopilan datos de las redes sociales de los usuarios. Estos datos recopilados son valiosos y, por lo general, las plataformas respectivas los mantienen como información privada. Las plataformas prestan cada vez más atención a la privacidad de los datos y no necesariamente quieren compartir sus datos recopilados, al menos no en su forma original. Sería deseable permitir la computación colaborativa entre múltiples plataformas sin revelar datos privados o sensibles de cada parte individual.
Du W. y Atallah M.: “Privacy-preserving cooperative scientific computations”, taller de fundamentos de seguridad informática, IEEE, 11 de junio de 2001, p. 273-282 se refiere a protocolos para la computación científico cooperativo que preserva la privacidad.
RESUMEN
Esta memoria descriptiva describe tecnologías para la computación colaborativa segura (p. ej., computación segura multipartita (MPC)) entre dos o más partes sin revelar datos privados o sensibles de cada parte individual. Estas tecnologías generalmente involucran computación colaborativa entre dos o más partes a través de un esquema de intercambio secreto sin un inicializador confiable, mientras que protegen los datos privados o sensibles de cada parte individual. El esquema de intercambio secreto permite a las partes realizar computación local. En el esquema de intercambio secreto, los resultados de la computación local son datos privados codificados (también denominados datos manipulados) que no revelan la información privada o sensible de cada parte individual. Los resultados de la computación local se comparten entre las partes y se utilizan para la computación colaborativa. La computación colaborativa a través del esquema de intercambio secreto no requiere un inicializador confiable, lo que reduce el costo y mejora la eficiencia y flexibilidad de la computación colaborativa.
Esta memoria descriptiva también proporciona uno o más medios de almacenamiento legibles por computadora no transitorios acoplados a uno o más procesadores y que tienen instrucciones almacenadas en los mismos que, cuando son ejecutadas por uno o más procesadores, hacen que el uno o más procesadores realicen operaciones de acuerdo con las realizaciones de los métodos proporcionados en el presente documento.
Esta memoria descriptiva proporciona además un sistema para implementar los métodos proporcionados en el presente documento. El sistema incluye uno o más procesadores y un medio de almacenamiento legible por computadora acoplado al uno o más procesadores que tienen instrucciones almacenadas en el mismo que, cuando son ejecutadas por el uno o más procesadores, hacen que el uno o más procesadores realicen operaciones de acuerdo con realizaciones de los métodos proporcionados en el presente documento.
Se aprecia que los métodos de acuerdo con esta memoria descriptiva pueden incluir cualquier combinación de los aspectos y características descritos en el presente documento. Es decir, los métodos de acuerdo con esta memoria descriptiva no se limitan a las combinaciones de aspectos y características descritas específicamente en el presente documento, sino que también incluyen cualquier combinación de los aspectos y características proporcionados.
Los detalles de una o más realizaciones de esta memoria descriptiva se establecen en los dibujos adjuntos y la descripción a continuación. Otras características y ventajas de esta memoria descriptiva resultarán evidentes a partir de la descripción y los dibujos, y a partir de las reivindicaciones.
BREVE DESCRIPCIÓN DE LOS DIBUJOS
La FIG. 1 es un diagrama de bloques que ilustra un sistema de ejemplo para el intercambio secreto entre la plataforma A y la plataforma B sin un inicializador confiable, de acuerdo con una realización de esta memoria descriptiva.
La FIG. 2 es un diagrama de flujo que ilustra un método de intercambio secreto de ejemplo entre la plataforma A y la plataforma B sin un inicializador confiable para generar recomendaciones mediante la plataforma A, de acuerdo con una realización de esta memoria descriptiva.
La FIG. 3 es un diagrama de flujo que ilustra un método de intercambio secreto de ejemplo entre la plataforma A y la plataforma B para calcular un elemento Zr¡ de un producto matricial de la matriz A y la matriz B utilizando un esquema de intercambio secreto sin un inicializador confiable, de acuerdo con una realización de esta memoria descriptiva.
La FIG.4 es un diagrama de flujo que ilustra un método de ejemplo para generar una recomendación mediante una plataforma de clasificación y recomendación de artículos utilizando un esquema de intercambio secreto sin un inicializador confiable, de acuerdo con una realización de esta memoria descriptiva.
La FIG. 5 es un diagrama de bloques que ilustra un sistema informático de ejemplo utilizado para proporcionar funcionalidades computacionales asociadas con algoritmos, métodos, funciones, procesos, flujos y procedimientos como se describen en la presente divulgación, de acuerdo con una realización de esta memoria descriptiva.
La FIG. 6 es un diagrama de flujo que ilustra un método de intercambio secreto de ejemplo entre la plataforma A y la plataforma B para calcular un producto matricial X y la matriz Y utilizando un esquema de intercambio secreto sin un inicializador confiable, de acuerdo con una realización de esta memoria descriptiva.
La FIG.7 es un diagrama de flujo de un método de ejemplo para la computación colaborativa segura de un producto matricial de una primera matriz que incluye datos privados de una primera parte y una segunda matriz que incluye datos privados de la segunda parte mediante intercambio secreto sin un inicializador confiable, de acuerdo con una realización de esta memoria descriptiva.
La FIG. 8 representa ejemplos de módulos de un aparato de acuerdo con realizaciones de esta memoria descriptiva.
Los números de referencia y las designaciones similares en los diversos dibujos indican elementos similares.
DESCRIPCIÓN DETALLADA
Esta memoria descriptiva describe tecnologías para la computación colaborativa (p. ej., computación segura multipartita (MPC)) entre dos o más partes sin revelar datos privados o sensibles de cada parte individual. Estas tecnologías generalmente involucran computación colaborativa entre dos o más partes a través de un esquema de intercambio secreto sin un inicializador confiable, mientras que protegen los datos privados o sensibles de cada parte individual. El esquema de intercambio secreto permite a las partes realizar computación local. En el esquema de intercambio secreto, los resultados de la computación local son datos privados codificados (también denominados datos manipulados) que no revelan la información privada o sensible de cada parte individual. Los resultados de la computación local se comparten entre las partes y se utilizan para la computación colaborativa. La computación colaborativa a través del esquema de intercambio secreto no requiere un inicializador confiable, lo que reduce el costo y mejora la eficiencia y flexibilidad de la computación colaborativa.
El intercambio secreto incluye métodos para distribuir un secreto entre dos o más participantes, a cada uno de los cuales se le asigna una parte del secreto. El secreto sólo puede reconstruirse cuando se combina un número suficiente, posiblemente de diferentes tipos, de partes; las partes individuales no sirven de nada por sí mismas. En otras palabras, los participantes individuales no pueden recuperar información secreta; solo unos pocos participantes colaboran juntos pueden recuperar el secreto.
Los métodos para intercambiar secreto se pueden dividir generalmente en dos categorías, una con un inicializador confiable (parte iniciadora de confianza) y otra sin un inicializador confiable. Para el intercambio secreto con un inicializador confiable, al principio, el inicializador confiable es necesario para inicializar los parámetros de las partes que participan en la computación segura multipartita, por ejemplo, generando números aleatorios que cumplen ciertas condiciones. Para intercambiar secreto sin un inicializador confiable, no se necesita un inicializador de terceros de este tipo. Cada parte que participa en la computación segura multipartita puede generar localmente los números aleatorios necesarios para garantizar la seguridad de los datos y completar la computación segura multipartita mediante ciertos protocolos de intercambio de datos.
En algunas realizaciones, las partes que participan en la computación segura multipartita pueden incluir, por ejemplo, una o más plataformas u otras entidades. Entre muchas plataformas en línea, diferentes plataformas pueden acumular diferentes tipos de datos. Por ejemplo, una plataforma de clasificación y recomendación de artículos como NETFLIX o IMDB acumula datos de clasificación de los usuarios con respecto a películas y series de televisión. Una red social o una plataforma de red social, tal como FACEBOOK o TWITTER, acumula datos de redes sociales de los usuarios y sus amigos. La información social puede mejorar el rendimiento de un sistema de recomendación porque los amigos cercanos tienden a tener preferencias similares. Los métodos de recomendación basados en redes sociales existentes asumen que los datos de calificación del usuario de un artículo y los datos sociales entre los usuarios son compartidos. Sin embargo, debido a la privacidad de los datos u otras preocupaciones, las plataformas en línea generalmente no comparten sus datos originales con otras partes.
Se describen técnicas de ejemplo que permiten a las plataformas colaborar de forma segura en la construcción de un sistema de recomendación mejorado basado tanto en los datos de calificación como en los datos de la red social, sin revelar los datos privados de cada plataforma a la otra. Por ejemplo, un modelo de recomendación social se puede
entrenar basándose tanto en los datos de calificación como en los datos de la red social a través de un esquema de intercambio secreto entre una plataforma de calificación y recomendación de artículos y una plataforma de red social. Bajo el esquema de intercambio secreto, los datos intercambiados entre las plataformas están en forma manipulada, en lugar de su forma original. Los datos intercambiados se manipulan de tal manera que no se pueden recuperar o decodificar los datos originales a partir de los datos manipulados.
El esquema de intercambio secreto es diferente de la codificación, el cifrado u otros esquemas para la transmisión segura de datos en los que una fuente de datos (p. ej., como un transmisor) codifica o cifra los datos originales en una forma codificada antes de la transmisión, y el destinatario previsto puede decodificar o recuperar el datos originales a partir de los datos codificados recibidos, por ejemplo, en base a una clave de seguridad conocida o un algoritmo de decodificación correspondiente. El esquema de intercambio secreto protege los datos originales de ser conocidos incluso por un destinatario previsto. Como tal, la fuente de datos puede preservar la privacidad de los datos originales.
Por lo tanto, el esquema de intercambio secreto fomenta la colaboración entre diferentes plataformas y puede ayudar a lograr beneficios mutuos, sin comprometer la privacidad de los datos. Por ejemplo, con el esquema de intercambio secreto revelados, la plataforma de calificación y recomendación de artículos puede aprovechar la información de la red social de la plataforma de la red social para predecir mejor las necesidades de un usuario y proporcionar recomendaciones específicas a los usuarios, lo que resulta en una experiencia de usuario mejorada y un potencial retorno de ganancias para la plataforma de clasificación y recomendación de artículos.
La FIG. 1 es un diagrama de bloques que ilustra un sistema 100 de ejemplo para intercambiar secretos entre la plataforma 102 A y la plataforma 104 B, de acuerdo con una realización de esta memoria descriptiva. La plataforma 102 A puede incluir, pero no se limita a, una plataforma de clasificación y recomendación de artículos en entretenimiento, venta minorista, servicios y otras industrias o sectores donde los usuarios pueden calificar productos, servicios u otros artículos. Los ejemplos de plataformas de clasificación y recomendación de artículos incluyen, por ejemplo, las plataformas AMAZON, NETFLIX o IMDB. La plataforma 102 A puede recopilar datos R de clasificación de sus usuarios. Los datos R de clasificación pueden incluir una o más calificaciones reales de uno o más artículos (p. ej., productos o servicios) dadas por los usuarios, o una o más calificaciones asignadas basadas en los clics, compras, búsquedas u otras actividades históricas del usuario con respecto a los artículos. Las calificaciones pueden reflejar las necesidades, la afición o las preferencias del usuario por los artículos. Las calificaciones pueden tener un rango específico (p. ej., [0, 1] o [1,5]). En algunas realizaciones, los datos R de clasificación se pueden representar en una matriz que tiene una dimensión de M*N, donde M representa el número de usuarios y N representa el número de artículos, con las entradas Rij que representan una calificación del artículo j por el usuario i.
La plataforma 102 A también puede incluir datos del usuario, que pueden incluir, por ejemplo, nombres de usuario, edades, géneros, direcciones o cualquier otra información de cuenta o perfil, historiales de compras, historiales de navegación o historiales de búsqueda de los usuarios en la plataforma 102 A. La plataforma 102 A también puede incluir datos de artículos, que pueden incluir, por ejemplo, nombres, categorías, precios, palabras clave, instrucciones, etc. relacionados con los artículos.
En algunas realizaciones, los datos R de clasificación recopilados pueden ser una matriz dispersa, porque solo un pequeño número (en comparación con M*N) de las entradas Rij tienen la calificación o calificación asignada basada en actividades de usuario existentes en relación con los artículos. En algunas realizaciones, la plataforma 102 A puede predecir valoraciones conocidas de artículos para proporcionar recomendaciones específicas de artículos a los usuarios. En algunas realizaciones, la plataforma 102 A puede predecir valoraciones conocidas de artículos, por ejemplo, en base a los datos del usuario y los datos del artículo de acuerdo con algoritmos de aprendizaje automático o estadísticos. Como ejemplo, la plataforma 102 A puede proporcionar recomendaciones de artículos en base a datos U de características de usuario (también denominados datos de factores de usuario) y datos V de características del artículo (también denominados datos de factores de artículo) de acuerdo con métodos de factorización matricial u otras técnicas. Específicamente, cada usuario (p. ej., usuario i ) se puede caracterizar por un vector (p. ej., Ui) de características del usuario tal como edad, género, ubicación geográfica, patrón de visita, etc. Cada artículo (p. ej., Artículo j) puede ser caracterizado por un vector (p. ej., Vj) de características del artículo tal como categoría, palabras clave, temas, precios, etc. Las características del usuario y las características del artículo pueden ser factores que impactan la calificación, selección o compra dados de un usuario de un artículo dado. En algunas realizaciones, una calificación de un artículo dada por un usuario puede aproximarse mediante un producto escalar del vector de características del usuario y del vector de características del artículo. Por ejemplo,
donde Ui representa un vector de los datos de características del usuario correspondientes al usuario i; Vj representa un vector de los datos de características del artículo correspondiente al artículo j; y Rij representa una calificación del artículo j por parte del usuario i.
En algunas realizaciones, el vector de características del usuario (p. ej., Ui) y el vector de características del artículo (p. ej., Vj) son vectores latentes que se pueden aprender de los datos de entrenamiento (p. ej., datos de clasificación conocidos).
La plataforma 104 B puede incluir, pero no se limita a, una plataforma de redes sociales (tal como FACEBOOK, TWITTER o INSTRAGRAM). La plataforma 104 B puede recopilar datos S de redes sociales de sus usuarios. Los datos de la red social pueden incluir, por ejemplo, nombres, edades, géneros, direcciones, trabajos, relaciones, pasatiempos, estados, comentarios, blogs, historial de navegación u otra información demográfica, laboral, recreativa de un usuario en la plataforma B y correspondiente información de los amigos, familiares, compañeros de trabajo, etc. del usuario. Dichos datos S de redes sociales pueden ser informativos para la plataforma A para predecir la calificación de un usuario de un artículo y proporcionar recomendaciones.
Por ejemplo, la plataforma A puede predecir las calificaciones de los usuarios resolviendo un problema de optimización como se muestra en la fórmula 2 :
donde Sik representa una relación social entre el usuario i y el usuario k en los datos S de la red social; Á1 representa un peso predefinido asociado con los datos de la red social; y Á2 representa un peso predefinido para evitar el sobreajuste.
En este ejemplo, la función objetivo en el lado derecho de la fórmula (2) incluye 3 términos. El primer término 'ZuieuvjêRij - U¡TVj)2 representa el error o la distancia entre los datos de calificación conocidos y la calificación aproximada calculada en base a los datos de características del usuario (p. ej., U = [U1, U2, ..., U m ]) y los datos de características del artículo (p. ej., V = [V1, V2, ..., V n ]). El segundo término 41Xu/,ukeuS/k(U/ - Uk)2 representa los efectos de los datos S de la red social en los vectores de características del usuario. Por ejemplo, cuanto más estrecha o más fuerte la relación social de dos usuarios, más similares son los dos vectores de características del usuario. En algunas realizaciones, cuanto mayor sea S/k más estrecha o más fuerte es la relación social de dos usuarios. El tercer término ^2(llXu/eu U/ll2 HXv/ev Vil2) se utiliza para evitar el sobreajuste. Los valores de los pesos A1 y A2 pueden predeterminarse. Cuanto mayor sea el peso, mayor será el impacto de un término correspondiente en la función objetivo.
El problema de optimización anterior para minimizar la función objetivo se puede resolver, por ejemplo, mediante descenso de gradiente u otro algoritmo. Por ejemplo, tomar la derivada de los vectores U y V latentes puede resultar en las dos ecuaciones siguientes (2).
^
° u
= (W -
R)V 2At U
■ diag(S ■ IM)
2At U
■ S
l 2U
(3)
^ = (UV - R )U A2V (4)
Para resolver U y V en las ecuaciones (3) y (4) anteriores, los resultados de los productos de matriz U ■ diag(S ■ IM) y U ■ S son suficientes, sin la necesidad de conocer los valores de U y S individualmente. Como tal, las plataformas A y B pueden utilizar un esquema de intercambio secreto para obtener los resultados de los productos matriciales U ■ diag(S ■ IM) y U ■ S. Bajo el esquema de intercambio secreto, la plataforma A puede revelar la U manipulada a la plataforma B sin revelar la U original a la plataforma B; y la plataforma B puede revelar la S manipulada a la plataforma A sin revelar la S original a la plataforma A.
En algunas realizaciones, el esquema de intercambio secreto se puede implementar con o sin un inicializador de confianza. Con un inicializador de confianza, el inicializador de confianza puede establecer un punto inicial común y enviarlo a las dos plataformas para ayudar en el intercambio de datos. Sin un inicializador de confianza, las dos plataformas pueden generar números aleatorios como sus respectivos puntos iniciales para ayudar en el intercambio de datos. Las plataformas podrían beneficiarse de la colaboración sin compartir información privada sensible.
La FIG. 2 es un diagrama de flujo que ilustra un método 200 de intercambio secreto de ejemplo entre la plataforma A y la plataforma B sin un inicializador confiable para generar recomendaciones mediante la plataforma A, de acuerdo con una realización de esta memoria descriptiva. La plataforma A puede ser la plataforma A descrita en la FIG. 1, y la plataforma B puede ser la plataforma B descrita en la FIG. 1.. En algunas realizaciones, el método de intercambio secreto de ejemplo puede implementarse en un algoritmo iterativo. El número T de iteraciones puede ser, por ejemplo, un valor predeterminado o determinado en base a ciertos criterios (p. ej., si el algoritmo converge o actualiza o las diferencias de U o V después de que diferentes iteraciones están por debajo de un umbral). En 202, la plataforma A identifica los datos R de calificación del usuario y los datos U de características del usuario iniciales y los datos V de características del artículo, y el número T de iteraciones. En 204, la plataforma B identifica los datos S de la red social. Para una f-ésima iteración (t < T), en 208, la plataforma A y la plataforma B pueden realizar un esquema de intercambio secreto sin un inicializador confiable para obtener los productos de matriz U ■ diag(S ■ I m ) y U ■ S. En 206, la plataforma A actualiza U o V en base a los productos de matriz U ■ diag(S ■ I m ) y U ■ S, por ejemplo, de acuerdo con las ecuaciones (3) y (4). Después de las T iteraciones, en 210, la característica del artículo de la plataforma A genera recomendaciones basadas en los datos U de características del usuario y los datos V de características del artículo actualizados.
En algunas realizaciones, supongamos que la matriz Z es un producto matricial A y la matriz B. Es decir, Z = A ■ B. Z representa la entrada/artículo de Z en la i-ésima fila y la j-ésima columna. Z se puede calcular, por ejemplo, de acuerdo con la Ecuación (5). Los productos de la matriz U ■ diag(S ■ \m) y U ■ S, Por ejemplo
Donde A¡T representa la i-ésima fila de la matriz A, y B¡ representa la j-ésima columna de la matriz B
La FIG. 3 es un diagrama de flujo que ilustra un método 300 de intercambio secreto de ejemplo entre la plataforma A y la plataforma B para calcular un elemento Z de un producto matricial A y la matriz B utilizando un esquema de intercambio secreto sin un inicializador confiable, de acuerdo con una realización de esta memoria descriptiva. En un esquema de intercambio secreto sin un inicializador confiable, ambas plataformas generan números aleatorios en una serie de pasos y cálculos que reemplazarían la necesidad de un inicializador confiable.
En 304, la plataforma 302 A obtiene un vector inicial x = (x 1, x 2,..., x_2k), que puede ser AiT, la i-ésima fila de la matriz A. En 324, la plataforma 322 B obtiene una vector inicial y = (y 1, y 2,..., y_2k), que puede ser Bj que representa la j-ésima columna de la matriz B. Los vectores x e y pueden tener la misma dimensión de 2k. Los vectores x e y pueden incluir, por ejemplo, variables aleatorias, todo ceros, valores predeterminados u otros valores iniciales.
En algunas realizaciones, ambas plataformas A y B calculan la salida haciendo un bucle de k 350 veces. En la k-ésima iteración, en 306, la plataforma 302 A genera valores aleatorios aj y cj de manera que la suma (aj cj) no es igual a 0. Por ejemplo, los valores generados aleatoriamente aj y cj se pueden generar repetidamente hasta que aj cj no sea igual a 0, como se muestra en 308. Cuando se determina que aj cj no es igual a 0, la plataforma 302 A calcula valores que serán manipulados y luego enviados a la plataforma 322 B Los valores calculados para la plataforma 302 A pueden incluir, entre otros, pj = aj cj, x'[2j-1] = x[2j-1] aj, y x'[2j] = x[2j] cj como se muestra en 310. En 311, los valores, {pj, x'[2-1], x'[2j]}, se envían a la plataforma 322 B para su cálculo. De manera similar, en 326, la plataforma 322 B genera valores bj y dj aleatorios de manera que la suma (bj dj) no es igual a 0. Por ejemplo, los valores bj y dj generados aleatoriamente se pueden generar repetidamente hasta que bj dj no sea igual a 0, como se muestra en 328. Los valores calculados para la plataforma B 322 pueden incluir, entre otros, qj = bj dj, y'[2j-1] = y[2j-1] bj, e y'[2j] = y[2j] dj como se muestra en 330. En 331, los valores, {qj, y'[2j-1], y'[2j]}, se envían a la plataforma 302 A para su cálculo.
Una vez que las plataformas se envían datos manipulados entre sí, mientras todavía están en el bucle k, ambas plataformas calculan valores que finalmente suman los valores de salida. La plataforma 302 A calcula hj = y'[2j-1] (x[2j-1] 2aj) y'[2j] (x[2j] 2cj) qj (aj 2cj) como se muestra en 312. La plataforma 322 B calcula gj = x'[2j-1] (2y'[2j-1] - bj) x’[2j] (2y[2j] - dj) pj (dj - 2bj) como se muestra en 332. En 314, la plataforma 302 A obtiene un valor h sumando todos los hj, es decir,
como se muestra en 314. En 332, la plataforma 322 B obtiene un valor g sumando todos los g¡, es decir,
como se muestra en 334.
En 315, la plataforma A puede recibir el valor g de la plataforma B. La suma de h y g es igual al producto de los vectores x e y. Es decir, xy = h g. Como tal, en 315, la plataforma A recibe el valor g de la plataforma B. En 335, la plataforma A envía el valor h a la plataforma B. En 316, la plataforma A puede calcular un producto de los vectores x e y calculando una suma de h y g, que son los datos manipulados de los vectores x e y. De manera similar, en 336, la plataforma B también puede calcular el producto de los vectores x e y calculando una suma de h y g.
Dado que x puede ser la i-ésima fila de la matriz A, AiT, e y puede ser la j-ésima columna de la matriz B, Bj, se puede obtener el elemento Z del producto matricial A y la matriz B como Z = AiTBj = xy. Por consiguiente, se puede obtener el producto matricial Z de la matriz A y la matriz B.
Sustituyendo la matriz Ucon A, y sustituyendo diag(S ■ Im) con B, se puede obtener el producto matricial U ■ diag(S ■ I m ). De manera similar, sustituyendo la matriz Ucon A y sustituyendo S con B, se puede obtener el producto matricial U ■ S. Con los productos de matriz U ■ diag(S ■ I m ) y U ■ S, la plataforma A puede actualizar U o V, por ejemplo, según las ecuaciones (3) y (4), como se describe con respecto a 206 en la FIG. 2.
Por tanto, la plataforma 302 A puede generar datos de clasificación pronosticados en base a los datos de características de los usuarios y los datos de características del artículo actualizados. En algunas realizaciones, la plataforma 302 A puede, entre otras cosas, generar recomendaciones para un artículo particular para un cliente particular en base a los datos de calificación pronosticados. Las técnicas y el cálculo descritos anteriormente se pueden lograr sin la necesidad de una autoridad confiable como sobrecarga.
La FIG. 4 es un diagrama de flujo de un método 400 de ejemplo para generar una recomendación a un usuario mediante una plataforma de clasificación y recomendación de artículos utilizando un esquema de intercambio secreto sin un inicializador confiable, de acuerdo con una realización. Para mayor claridad de presentación, la descripción que sigue describe generalmente el método 400 en el contexto de las otras figuras en esta descripción. Por ejemplo, la
plataforma de clasificación y recomendación de artículos puede ser la plataforma A como se describe con respecto a las FIGS. 1-3. Sin embargo, se entenderá que el método 400 puede realizarse, por ejemplo, mediante cualquier sistema, entorno, software y hardware adecuados, o una combinación de sistemas, entornos, software y hardware, según sea apropiado. En algunas realizaciones, se pueden ejecutar varios pasos del método 400 en paralelo, en combinación, en bucles o en cualquier orden.
En 402, los datos de calificación que incluyen, entre otros, las calificaciones respectivas de varios artículos con respecto a un número de usuarios, se identifican mediante la plataforma de calificación y recomendación de artículos. Identificar los datos de clasificación incluye recibir (p. ej., desde otro dispositivo), recuperar o cargar desde una memoria, o determinar los datos de clasificación en base a una o más entradas al método 400. Los datos de clasificación pueden incluir datos R de clasificación descritos con respecto a las FIGS. 1 -3. Por ejemplo, los datos de calificación pueden incluir la calificación real o la calificación asignada en función de las actividades de los usuarios existentes en relación con los artículos. Desde el 402, el método 400 pasa al 404.
En 404, los datos de características del usuario que incluyen una serie de características de usuario que contribuyen a las calificaciones respectivas del número de artículos con respecto al número de usuarios, se identifican mediante la plataforma de calificación y recomendación de artículos. La identificación de los datos de las características del usuario incluye recibir (p. ej., desde otro dispositivo), recuperar o cargar desde una memoria, o determinar los datos de las características del usuario en base a una o más entradas al método 400. En algunas realizaciones, los datos de las características del usuario pueden estar representados por una matriz U. Los datos de características del usuario pueden incluir datos U de características del usuario descritos con respecto a las FIGS. 1-3. Desde el 404, el método 400 pasa al 406.
En 406, los datos de las características del artículo que incluyen una serie de características del artículo que contribuyen a las calificaciones respectivas del número de artículos con respecto al número de usuarios, se identifican mediante la plataforma de calificación y recomendación de artículos. En algunas realizaciones, identificar los datos de características del artículo incluye recibir (p. ej., desde otro dispositivo), recuperar o cargar desde una memoria, o determinar los datos de características del artículo en base a una o más entradas al método 400. Los datos de características del artículo pueden incluir datos V de características del artículo descritos con respecto a las FIGS. 1 3. Desde el 406, el método 400 pasa al 408.
En 408, la plataforma de clasificación y recomendación de artículos recibe una serie de datos de redes sociales manipulados (p. ej., g descrito con respecto a la FIG. 3) calculados en base a datos de redes sociales (p. ej., y, un vector de la matriz S de datos de redes sociales) desde una plataforma de red social a través de un esquema de intercambio secreto sin un inicializador confiable desde una plataforma de red social. Además, los datos de la red social indican relaciones sociales entre dos cualesquiera del número de usuarios. En el esquema de intercambio secreto sin el inicializador de confianza, la plataforma de la red social comparte con la plataforma de clasificación y recomendación de artículos el número de datos de la red social manipulados (p. ej., g) sin revelar los datos de la red social (p. ej., y), donde los datos de la red social manipulados se calculan en base a los datos de la red social y un primer número de variables aleatorias (p. ej., bj, dj). En algunas realizaciones, en el esquema de intercambio secreto sin el inicializador confiable, la plataforma de clasificación y recomendación de artículos comparte con la plataforma de la red social una serie de datos de características del usuario manipulados (p. ej., h) sin revelar los datos de características del usuario (p. ej., x, un vector de la matriz U de datos de características del usuario), donde el número de datos de características del usuario manipulados se calcula en base a los datos de características del usuario y un segundo número de variables aleatorias (p. ej., aj, cj). En algunas realizaciones, los datos de la red social manipulados se manipulan de manera que no se pueden recuperar los datos originales de la red social a partir de los datos de la red social manipulados.
En algunas realizaciones, el esquema de intercambio secreto sin el inicializador confiable se utiliza para resolver un problema de optimización como se describe con respecto a la fórmula (2), por ejemplo, como se describe con respecto a la FIG. 3. Por ejemplo, en el esquema de intercambio secreto sin el inicializador confiable, la plataforma de calificación y recomendación de artículos obtiene un vector de los datos de características del usuario (p. ej., x) y genera los primeros datos de características del usuario manipulados (p. ej., x’) en base al vector de los datos de características del usuario (p. ej., x) y un segundo número de variables aleatorias (p. ej., aj, cj). La plataforma de clasificación y recomendación de artículos transmite a la plataforma de la red social los primeros datos de características del usuario manipulados (p. ej., x’) y recibe desde la plataforma de la red social los primeros datos de la red social manipulados (p. ej., y') calculados en base a los datos de la red social (p. ej., y) y el primer número de variables aleatorias (p. ej., bj, dj).
La plataforma de clasificación y recomendación de artículos puede generar uno de los datos de características del usuario manipulados (p. ej., h) en base a dos o más de los primeros datos de características del usuario manipulados (p. ej., x’), los primeros datos de redes sociales manipulados (p. ej., y ’), o el segundo número de variables aleatorias (p. ej., aj, cj). De manera similar, la plataforma de la red social puede generar uno de los datos de la red social manipulados (p. ej., g) calculados en base a dos o más de los primeros datos de características del usuario manipulados (p. ej., x’), los primeros datos de la red social manipulados (p. ej., y’), o el primer número de variables aleatorias (p. ej., bj, dj). Desde el 408, el método 400 pasa al 410.
En 410, la plataforma de clasificación y recomendación de artículos envía un número de los datos de características del usuario manipulados (p. ej., un número de h) a la plataforma de la red social sin revelar los datos de características del usuario (p. ej., x o cualquier vector de U), por ejemplo, como se describe con respecto a la FIG. 3. Desde el 410, el método 400 pasa al 412.
En 412, la plataforma de clasificación y recomendación de artículos actualiza los datos de características del usuario en función de los datos de clasificación y el número de datos de la red social manipulados. En algunas realizaciones, la actualización de los datos de características del usuario incluye calcular un producto de los datos de características del usuario y los datos de la red social calculando una suma de uno del número de los datos de características del usuario manipulados (p. ej., h) y uno de los números de datos de la red social manipulados (p. ej., g). Además, el cálculo mencionado puede incluir el cálculo para cada una de las entradas en el producto de los datos de características del usuario y los datos de la red social y calcular uno del número de datos de características del usuario manipulados y uno del número de datos de la red social manipulados sin los datos de la red social. En algunas realizaciones, los datos de características del usuario incluyen resolver un problema de optimización para minimizar una suma ponderada de una diferencia entre los datos de calificación pronosticados y los datos de calificación, los datos de características del usuario ponderados mediante los datos de la red social y un término que previene el sobreajuste, por ejemplo, como se muestra en la fórmula (2). En algunas realizaciones, la actualización de los datos de características del usuario incluye la actualización de los datos de características del usuario de acuerdo con las técnicas de ejemplo descritas con respecto a la FIG. 3. Desde el 412, el método 400 pasa al 414.
En 414, la plataforma de clasificación y recomendación de artículos actualiza los datos de características del artículo en base a los datos de calificación y los datos de características del usuario, por ejemplo, de acuerdo con las técnicas de ejemplo descritas con respecto a la FIG. 3. Desde el 414, el método 400 pasa al 416.
En 416, se generan datos de clasificación pronosticados del número de artículos con respecto al número de usuarios en base al producto de los datos de características del usuario y los datos de características de los artículos. En algunas realizaciones, los datos de calificación pronosticados se pueden generar, por ejemplo, en base al producto de los datos de características del usuario y los datos de características del artículo, de acuerdo con la ecuación (1). En algunas realizaciones, la calificación generada puede alinearse mejor con las necesidades o preferencias de los usuarios debido a la incorporación de la red social. Desde el 416, el método 400 pasa al 418.
En 418, se genera una recomendación de un artículo particular para un usuario particular en base a los datos de calificación pronosticados. En algunas realizaciones, se pueden recomendar al usuario particular uno o más artículos con las mejores calificaciones previstas con respecto al usuario particular. La recomendación de un artículo en particular puede ser una recomendación de una película o un artículo de compra. Por ejemplo, NETFLIX puede recomendar mejor una película o AMAZON puede recomendar mejor un artículo en base a los datos de la red social. En algunas realizaciones, la recomendación del artículo en particular para el artículo en particular se puede emitir, por ejemplo, a través de una interfaz de usuario (UI). En algunas realizaciones, los temas seleccionados se pueden mostrar en un cuadro de chat, una ventana emergente, etc. en una interfaz gráfica de usuario (GUI) u otras UI para la revisión y consideración del usuario. Desde 418, se detiene el método 400.
La FIG. 5 es un diagrama de bloques de un sistema 500 informático de ejemplo utilizado para proporcionar funcionalidades computacionales asociadas con algoritmos, métodos, funciones, procesos, flujos y procedimientos descritos, como se describe en la presente divulgación, de acuerdo con una realización. La computadora 502 ilustrada está destinada a abarcar cualquier dispositivo informático, tal como un servidor, computadora de escritorio, computadora portátil/portátil, puerto de datos inalámbrico, teléfono inteligente, asistente de datos personales (PDA), dispositivo informático de tableta, uno o más procesadores dentro de estos dispositivos, o cualquier otro dispositivo de procesamiento adecuado, incluidas las instancias físicas o virtuales (o ambas) del dispositivo informático. Además, la computadora 502 puede incluir una computadora que incluye un dispositivo de entrada, tal como un teclado numérico, teclado, pantalla táctil u otro dispositivo que pueda aceptar información del usuario, y un dispositivo de salida que transmite información asociada con el funcionamiento de la computadora 502, incluyendo datos digitales, información visual o de audio (o una combinación de información), o una interfaz de usuario (UI) de tipo gráfico (o GUI).
La computadora 502 puede servir como un cliente, componente de red, servidor, base de datos u otra persistencia, o cualquier otro componente (o una combinación de funciones) de un sistema informático para realizar la materia objeto descrita en la presente divulgación. La computadora 502 ilustrada está acoplada de manera comunicable con una red 530. En algunas realizaciones, uno o más componentes de la computadora 502 pueden configurarse para operar dentro de entornos, incluidos entornos basados en la nube, locales, globales u otros (o una combinación de entornos).
En un nivel alto, la computadora 502 es un dispositivo informático electrónico operable para recibir, transmitir, procesar, almacenar o gestionar datos e información asociados con la materia objeto descrita. De acuerdo con algunas realizaciones, la computadora 502 también puede incluir o estar acoplada de manera comunicable con un servidor de aplicaciones, servidor de correo electrónico, servidor web, servidor de almacenamiento en caché, servidor de transmisión de datos u otro servidor (o una combinación de servidores).
La computadora 502 puede recibir solicitudes a través de la red 530 desde una aplicación cliente (por ejemplo, ejecutándose en otra computadora 502) y responder a las solicitudes recibidas procesando las solicitudes recibidas utilizando una aplicación o aplicaciones de software apropiadas. Además, también se pueden enviar solicitudes a la computadora 502 de usuarios internos (por ejemplo, desde una consola de comandos o por otro método de acceso apropiado), externos o de terceros, otras aplicaciones automatizadas, así como cualquier otra entidad apropiada, individuos, sistemas o computadoras.
Cada uno de los componentes de la computadora 502 puede comunicarse utilizando un bus 503 de sistema. En algunas realizaciones, cualquiera o todos los componentes de la computadora 502, hardware o software (o una combinación de hardware y software), pueden interactuar entre sí, o la interfaz 504 (o una combinación de ambas), sobre el bus 503 del sistema utilizando una interfaz 512 de programación de aplicaciones (API) o una capa 513 de servicio (o una combinación de API 512 y capa 513 de servicio). La API 512 puede incluir especificaciones para rutinas, estructuras de datos y clases de objetos. La API 512 puede ser independiente o dependiente del lenguaje informático y hacer referencia a una interfaz completa, una única función o incluso un conjunto de API. La capa 513 de servicio proporciona servicios de software a la computadora 502 u otros componentes (estén o no ilustrados) que están acoplados de manera comunicable a la computadora 502. La funcionalidad de la computadora 502 puede ser accesible para todos los consumidores de servicios que utilizan esta capa de servicio. Los servicios de software, tales como los proporcionados por la capa 513 de servicio, proporcionan funcionalidades definidas y reutilizables a través de una interfaz definida. Por ejemplo, la interfaz puede ser un software escrito en JAVA, C + u otro lenguaje adecuado que proporcione datos en formato de lenguaje de marcado extensible (XML) u otro formato adecuado. Aunque se ilustra como un componente integrado de la computadora 502, realizaciones alternativas pueden ilustrar la API 512 o la capa 513 de servicio como componentes independientes en relación con otros componentes de la computadora 502 u otros componentes (estén o no ilustrados) que están acoplados de manera comunicable a la computadora 502. Además, cualquiera o todas las partes de la API 512 o la capa 513 de servicio pueden implementarse como módulos hijo o submódulos de otro módulo de software, aplicación empresarial o módulo de hardware.
La computadora 502 incluye una interfaz 504. Aunque se ilustra como una única interfaz 504 en la FIG. 5, se pueden utilizar dos o más interfaces 504 de acuerdo con necesidades, deseos o realizaciones particulares de la computadora 502. La interfaz 504 se utiliza por la computadora 502 para comunicarse con otros sistemas que están conectados a la red 530 (ya sea ilustrada o no) en un entorno distribuido. Generalmente, la interfaz 504 incluye lógica codificada en software o hardware (o una combinación de software y hardware) y es operable para comunicarse con la red 530. Más específicamente, la interfaz 504 puede incluir software que soporte uno o más protocolos de comunicación asociados con comunicaciones, de manera que la red 530 o el hardware de la interfaz sea operable para comunicar señales físicas dentro y fuera de la computadora 502 ilustrada.
La computadora 502 incluye un procesador 505. Aunque se ilustra como un solo procesador 505 en la FIG. 5, se pueden utilizar dos o más procesadores de acuerdo con necesidades, deseos o realizaciones particulares de la computadora 502. Generalmente, el procesador 505 ejecuta instrucciones y manipula datos para realizar las operaciones de la computadora 502 y cualquier algoritmo, método, función, proceso, flujo y procedimiento descritos en la presente divulgación.
La computadora 502 también incluye una base 506 de datos que puede contener datos para la computadora 502 u otros componentes (o una combinación de ambos) que se pueden conectar a la red 530 (ilustrada o no). Por ejemplo, la base 506 de datos puede ser una base de datos en memoria, convencional u otro tipo de base de datos que almacene datos de acuerdo con esta divulgación. En algunas realizaciones, la base 506 de datos puede ser una combinación de dos o más tipos de bases de datos diferentes (por ejemplo, una base de datos híbrida en memoria y convencional) de acuerdo con necesidades, deseos o realizaciones particulares de la computadora 502 y la funcionalidad descrita. Aunque se ilustra como una única base 506 de datos en la FIG. 5, se pueden utilizar dos o más bases de datos (del mismo tipo o combinación de tipos) de acuerdo con las necesidades, deseos o realizaciones particulares de la computadora 502 y la funcionalidad descrita. Mientras que la base 506 de datos se ilustra como un componente integral de la computadora 502, en realizaciones alternativas, la base 506 de datos puede ser externa a la computadora 502. Como se ilustra, la base 506 de datos contiene los datos 516 de clasificación, datos 518 de características del usuario, datos 526 de características del artículo y datos 528 de redes sociales descritos anteriormente.
La computadora 502 también incluye una memoria 507 que puede contener datos para la computadora 502 u otros componentes (o una combinación de ambos) que se pueden conectar a la red 530 (ilustrada o no). La memoria 507 puede almacenar cualquier dato consistente con esta divulgación. En algunas realizaciones, la memoria 507 puede ser una combinación de dos o más tipos diferentes de memoria (por ejemplo, una combinación de almacenamiento de semiconductores y magnético) de acuerdo con necesidades, deseos o realizaciones particulares de la computadora 502 y la funcionalidad descrita. Aunque se ilustra como una única memoria 507 en la FIG. 5, se pueden utilizar dos o más memorias 507 (del mismo tipo o de una combinación de tipos) de acuerdo con necesidades, deseos o realizaciones particulares de la computadora 502 y la funcionalidad descrita. Aunque la memoria 507 se ilustra como un componente integral de la computadora 502, en realizaciones alternativas, la memoria 507 puede ser externa a la computadora 502.
La aplicación 508 es un motor de software algorítmico que proporciona funcionalidad de acuerdo con necesidades, deseos o realizaciones particulares de la computadora 502, particularmente con respecto a la funcionalidad descrita en esta divulgación. Por ejemplo, la aplicación 508 puede servir como uno o más componentes, módulos o aplicaciones. Además, aunque se ilustra como una sola aplicación 508, la aplicación 508 puede implementarse como múltiples aplicaciones 508 en la computadora 502. Además, aunque se ilustra como parte integral de la computadora 502, en realizaciones alternativas, la aplicación 508 puede ser externa a la computadora 502.
La computadora 502 también puede incluir una fuente 514 de alimentación. La fuente 514 de alimentación puede incluir una batería recargable o no recargable que puede configurarse para ser reemplazada o no por el usuario. En algunas realizaciones, la fuente 514 de alimentación puede incluir circuitos de administración o conversión de energía (incluida la recarga, el modo de espera u otra funcionalidad de administración de energía). En algunas realizaciones, la fuente 514 de alimentación puede incluir un enchufe de alimentación para permitir que la computadora 502 se conecte a un enchufe de pared u otra fuente de alimentación para, por ejemplo, alimentar la computadora 502 o recargar una batería recargable.
Puede haber cualquier número de computadoras 502 asociadas con, o externas a, un sistema informático que contiene la computadora 502, cada computadora 502 comunicándose a través de la red 530. Además, el término “cliente”, “usuario” y otra terminología apropiada pueden utilizarse indistintamente, según corresponda, sin apartarse del alcance de esta divulgación. Además, esta divulgación contempla que muchos usuarios pueden utilizar una computadora 502, o que un usuario puede utilizar múltiples computadoras 502.
La FIG. 6 es un diagrama de flujo que ilustra un método 600 de intercambio secreto de ejemplo entre la plataforma A y la plataforma B para calcular un producto matricial X y la matriz Y utilizando un esquema de intercambio secreto sin un inicializador confiable, de acuerdo con una realización de esta memoria descriptiva. El método 300 de intercambio secreto de ejemplo es una aplicación de ejemplo del método 600 de intercambio secreto, reemplazando X con A y reemplazando la matriz Y con B. El método 300 de intercambio secreto de ejemplo ilustra cómo un elemento Z\¡ de una matriz Z = A ■ B, se calcula un producto matricial A y la matriz B, mientras que el método 400 de intercambio secreto de ejemplo ilustra una representación más compacta de cómo se calcula la matriz Z, el producto matricial A y la matriz B.
En 604, la plataforma A 602 obtiene o recibe una matriz Xe Rxxyde entrada, que tiene una dimensión x x y. En algunas realizaciones, y es un número par, y = 2k. El vector inicial x = (x1, x2,..., x_2k) de ejemplo descrito con respecto a 304 puede una fila de la matriz X'. En algunas formas de realización, si una entrada original matriz X1 e Rxxy donde y es un número impar, y = 2k-1, a continuación, una columna de todo ceros se puede añadir a la matriz X de entrada de manera que hay un número par de columnas de la matriz X de entrada.
En 606, la plataforma A 602 genera localmente una matriz X' e Rxxy, que tiene la misma dimensión x x y que la de la matriz X de entrada.
En 624, la plataforma B 622 obtiene o recibe una matriz Ye Ryxz de entrada, que tiene una dimensión y x z. El vector inicial y = (y1, y2,.., y_2k) de ejemplo descrito con respecto a 304 puede ser una columna de la matriz B. En algunas realizaciones, si una matriz Y e Ryxzde entrada original, donde y es un número impar, y = 2k-1, a continuación, una fila de todo ceros se puede añadir a la matriz Y de entrada, de manera que hay un número par de filas de la matriz Y de entrada. Tenga en cuenta que agregar la columna y la fila de todo ceros en X1 y Y no cambia su producto matricial, X ■ Y = X ■ Y.
En 626, la plataforma 602 B genera localmente una matriz Y' e Ryxz, que tiene una dimensión y x z que la de la matriz Y de entrada.
En 610, la plataforma 602 A extrae columnas pares
y
X'e e Rxx~
y columnas impares y
y
X ’u G Rxx~
de la matriz aleatoria X'e RXxy aleatoria, respectivamente.
En 630, la plataforma 622 B extrae filas pares
y
Y'e G R~xz
y filas impares
y ; e
RD- y x z 2
de la matriz Y’ e RvxZ aleatoria, respectivamente.
En 612, la plataforma 602 A calcula X\= X+ X y
X2
=
X'e X !0.
En 632, la plataforma 622 B calcula Y\ = Y - Y y
Y2
=
Y¡ - Y¿.
En 613, la plataforma 602 A envía Xi y X2 a la plataforma 622 B. En 633, la plataforma 622 B envía Yi e Y2 a la plataforma 602 A.
En 614, la plataforma 602 A calcula
M = (X 2Xh)Y1 (X2 X ’ )Y2.
En 634, la plataforma 622 B calcula
N = X 1( 2 Y - Y ' ) X2(Y2 Y¿).
En 615, la plataforma 602 A envía M a la plataforma 622 B. En 635, la plataforma 622 B envía N a la plataforma 602 A.
En 616, la plataforma 602 A calcula el producto matricial XY = M + N.
En 636, la plataforma 622 B calcula el producto matricial XY = M + N.
La FIG.7 es un diagrama de flujo de un método 700 de ejemplo para la computación colaborativa segura de un producto matricial de una primera matriz que incluye datos privados de una primera parte y una segunda matriz que incluye datos privados de la segunda parte mediante intercambio secreto sin un inicializador confiable, de acuerdo con una realización de esta memoria descriptiva. Para mayor claridad de presentación, la descripción que sigue describe generalmente el método 700 en el contexto de las otras figuras en esta descripción. Por ejemplo, el método 600 de intercambio secreto de ejemplo para calcular un producto matricial X y la matriz Y utilizando un esquema de intercambio secreto sin un inicializador confiable es una realización de ejemplo del método 700.
En algunas realizaciones, el método 700 de ejemplo puede ser realizado por una de las partes (p. ej., la primera o la segunda parte) que participa en el intercambio secreto para lograr la computación colaborativa segura del producto matricial de la primera matriz que incluye los datos privados de la primera parte y la segunda matriz que incluye los datos privados de la segunda parte, sin que la primera parte acceda a los datos privados de la segunda parte ni la segunda parte acceda a los datos privados de la primera parte puede lograrse por cada parte. En algunas realizaciones, la primera parte puede ser la plataforma A o la plataforma B, como se describe con respecto a la FIG. 6. En algunas realizaciones, la primera parte puede ser la plataforma de clasificación y recomendación de artículos o la plataforma de la red social como se describe con respecto a las FIGS. 1-4. En algunas realizaciones, el producto matricial de la primera matriz que incluye los datos privados de la primera parte y la segunda matriz que incluye los datos privados de la segunda parte puede ser, por ejemplo, el producto matricial U ■ diag(S ■ I m ) o U ■ S como se describe con respecto a las FIGS. 1-4. En algunas realizaciones, el método 700 de ejemplo se puede utilizar para calcular otros productos de matriz.
Se entenderá que el método 700 puede realizarse, por ejemplo, mediante cualquier sistema, entorno, software y hardware adecuados, o una combinación de sistemas, entornos, software y hardware, según sea apropiado. En algunas realizaciones, se pueden ejecutar varios pasos del método 700 en paralelo, en combinación, en bucles o en cualquier orden.
En 701, la primera parte obtiene una primera matriz que incluye datos privados de la primera parte. En algunas realizaciones, obtener la primera matriz incluye recibir (p. ej., desde otro dispositivo), recuperar o cargar desde una memoria, o determinar la primera matriz en base a una o más entradas al método 700.
En algunas realizaciones, la primera matriz que incluye datos privados de la primera parte puede ser la matriz X de la plataforma A como se describe con respecto a la FIG. 6. Por ejemplo, la primera plataforma puede ser una plataforma de clasificación y recomendación de artículos. Los datos privados de la primera parte pueden incluir datos R de clasificación que incluyen calificaciones respectivas de múltiples artículos con respecto a múltiples usuarios como se describe con respecto a las FIGS. 1-4. En algunas realizaciones, la primera plataforma incluye una plataforma de red social. La primera matriz que incluye datos privados de la primera parte puede ser la matriz Y de la plataforma B como se describe con respecto a la FIG. 6. Por ejemplo, los datos privados de la primera parte pueden incluir datos S de
redes sociales que indican relaciones sociales entre dos cualesquiera de los múltiples usuarios descritos con respecto a las FIGS. 1-4. Desde el 702, el método 700 pasa al 704.
En algunas realizaciones, la primera plataforma incluye una plataforma de clasificación y recomendación de artículos, los datos privados de la primera parte incluyen datos de clasificación que incluyen calificaciones respectivas de múltiples artículos con respecto a múltiples usuarios; la segunda plataforma incluye una plataforma de red social; y los datos privados de la primera parte incluyen datos de redes sociales que indican relaciones sociales entre dos cualesquiera de los múltiples usuarios.
En 702, la primera parte determina si la primera matriz incluye un número par de columnas.
En 703, en respuesta a determinar que la primera matriz incluye un número impar de columnas, la primera parte agrega una columna de todo ceros a la primera matriz.
En 704, en respuesta a determinar que la primera matriz incluye un número par de columnas, la primera parte genera una primera matriz aleatoria que tiene el mismo tamaño que la primera matriz. Como ejemplo, la primera matriz aleatoria puede ser la matriz X que tiene la misma dimensión que la primera matriz X de la plataforma A como se describe con respecto a la FIG. 6. Como otro ejemplo, la primera matriz aleatoria puede ser, por ejemplo, la matriz Y' que tiene la misma dimensión que la primera matriz Y de la plataforma B como se describe con respecto a la FIG. 6.
En 706, la primera parte identifica una primera submatriz de la primera matriz aleatoria y una segunda submatriz de la primera matriz aleatoria. En algunas realizaciones, la primera submatriz de la primera matriz aleatoria incluye un subconjunto de columnas de la primera matriz aleatoria, mientras que la segunda submatriz de la primera matriz aleatoria incluye las columnas restantes de la primera matriz aleatoria. En algunas realizaciones, la primera submatriz de la primera matriz aleatoria incluye columnas pares de la primera matriz aleatoria (p. ej., la segunda columna, cuarta columna, sexta columna, de la primera matriz aleatoria, tal como
se describe con respecto a la FIG. 6), y la segunda submatriz de la primera matriz aleatoria incluye columnas impares de la primera matriz aleatoria (p. ej., la primera columna, tercera columna, quinta columna, de la primera matriz aleatoria, tal como
se describe con respecto a la FIG. 6). En algunas realizaciones, la primera matriz aleatoria se puede dividir en una primera submatriz de la primera matriz aleatoria y una segunda submatriz de la primera matriz aleatoria de otra manera. Por ejemplo, la primera submatriz de la primera matriz aleatoria puede incluir la primera mitad de las columnas de la primera matriz aleatoria y la segunda submatriz de la primera matriz aleatoria puede incluir la segunda mitad de las columnas de la primera matriz aleatoria. En algunas realizaciones, la primera matriz aleatoria se puede dividir en una primera submatriz de la primera matriz aleatoria y una segunda submatriz de la primera matriz aleatoria de manera que las submatrices se pueden utilizar para codificar la primera matriz aleatoria y generar primeros datos privados codificados de la primera parte para calcular el producto matricial de la primera matriz que incluye datos privados de la primera parte y una segunda matriz que incluye los datos privados de la segunda parte sin exponer los datos privados de la primera parte a la segunda parte.
En 708, la primera parte calcula los primeros datos privados codificados de la primera parte en base a la primera matriz, la primera matriz aleatoria, la primera submatriz de la primera matriz aleatoria y la segunda submatriz de la primera matriz aleatoria. Los datos privados de la primera parte no se pueden derivar únicamente a partir de los primeros datos privados codificados de la primera parte, por ejemplo, debido a la manipulación basada en la primera matriz aleatoria, la primera submatriz de la primera matriz aleatoria y la segunda submatriz de la primera matriz aleatoria. Como tal, los primeros datos privados codificados de la primera parte protegen los datos privados de la primera parte de ser decodificados a partir de los primeros datos privados codificados de la primera parte.
En algunas realizaciones, los primeros datos privados codificados de la primera parte incluyen una primera suma de la primera matriz y la primera matriz aleatoria, y una segunda suma de la primera submatriz de la primera matriz aleatoria y la segunda submatriz de la primera matriz aleatoria, (p. ej., X^ = X+ X y
como se describe con respecto a la FIG. 6). En algunas realizaciones, los primeros datos privados codificados de la primera parte pueden calcularse de otra forma en función de la primera submatriz de la primera matriz aleatoria y la segunda submatriz de la primera matriz aleatoria, siempre que el producto matricial de la primera matriz que incluye datos privados de la primera parte y la segunda matriz que incluye los datos privados de la segunda parte pueda calcularse en base a los primeros datos privados codificados de la primera parte sin exponer los datos privados de la primera parte a la segunda parte.
En 710, la primera parte transmite los primeros datos privados codificados de la primera parte a la segunda parte. Debido a que los datos privados de la primera parte no se pueden derivar únicamente a partir de los primeros datos
privados codificados de la primera parte, la privacidad y la seguridad de los datos de la primera parte pueden protegerse, aunque los primeros datos privados codificados de la primera parte se transmitan a la segunda parte.
En 712, la primera parte recibe de la segunda parte datos privados codificados de la segunda parte. Los datos privados de la segunda parte no se pueden derivar únicamente a partir de los segundos datos privados codificados de la segunda parte. En algunas realizaciones, los primeros datos privados codificados de la primera parte y los segundos datos privados codificados de la segunda parte pueden utilizarse por la primera parte o la segunda parte para calcular los respectivos sumandos (p. ej., M y N) del producto matricial de la primera matriz que incluye datos privados de la primera parte y una segunda matriz que incluye los datos privados de la segunda parte (p. ej., el producto matricial XY = M + N).
En algunas realizaciones, los segundos datos privados codificados de la segunda parte se calculan en función de la segunda matriz, una segunda matriz aleatoria que tiene el mismo tamaño que la segunda matriz, una primera submatriz de la segunda matriz aleatoria y una segunda submatriz de la segunda matriz aleatoria. En algunas realizaciones, los segundos datos privados codificados de la segunda parte incluyen una primera diferencia entre la segunda matriz y la segunda matriz aleatoria, y una segunda diferencia de la primera submatriz de la segunda matriz aleatoria y la segunda submatriz de la segunda. matriz aleatoria.
En algunas realizaciones, debido a la manipulación basada en la segunda matriz aleatoria, la primera submatriz de la segunda matriz aleatoria y la segunda submatriz de la segunda matriz aleatoria, los segundos datos privados codificados de la segunda parte protegen los datos privados de la segunda parte de ser decodificados a partir de los segundos datos privados codificados de la segunda parte. La privacidad y seguridad de los datos de la segunda parte se pueden proteger incluso aunque la segunda parte reciba los datos privados codificados de la segunda parte.
En algunas realizaciones, la primera submatriz de la segunda matriz aleatoria incluye filas pares de la segunda matriz aleatoria (p. ej., la segunda fila, cuarta fila, sexta fila, de la segunda matriz aleatoria, tal como
Y'
se describe con respecto a la FIG. 6), y la segunda submatriz de la segunda matriz aleatoria incluye filas impares de la segunda matriz aleatoria (p. ej., la primera fila, tercera fila, quinta fila, de la segunda matriz aleatoria, tal como Y'
se describe con respecto a la FIG. 6). En algunas realizaciones, la segunda matriz aleatoria se puede dividir en una primera submatriz de la segunda matriz aleatoria y una segunda submatriz de la segunda matriz aleatoria de otra manera, por ejemplo, dependiendo de la primera submatriz de la primera matriz aleatoria y la segunda submatriz de la primera matriz aleatoria de manera que las submatrices se pueden utilizar para codificar la segunda matriz aleatoria y generar segundos datos privados codificados de la segunda parte para calcular el producto matricial de la primera matriz que incluye los datos privados de la primera parte y una segunda matriz que incluye los datos privados de la segunda parte sin exponer los datos privados de la segunda parte a la primera parte.
En 714, la primera parte calcula un primer sumando (p. ej., M como se describe con respecto a la FIG. 6) de un producto matricial de la primera matriz que incluye datos privados de la primera parte y una segunda matriz que incluye los datos privados de la segunda parte.
En 716, la primera parte recibe de la segunda parte un segundo sumando (p. ej., N como se describe con respecto a la FIG. 6) del producto matricial de la primera matriz que incluye datos privados de la primera parte y la segunda matriz que incluye datos privados de la segunda parte.
En 718, la primera parte calcula el producto matricial de la primera matriz que incluye datos privados de la primera parte y la segunda matriz incluye datos privados de la segunda parte sumando el primer sumando y el segundo sumando (p. ej., el producto matricial XY = M + N como se describe con respecto a la FIG. 6), sin el acceso o conocimiento de los datos privados de la segunda parte.
La FIG. 8 es un diagrama de un ejemplo de módulos de un aparato 800 de acuerdo con realizaciones de esta memoria descriptiva.
El aparato 800 puede ser un ejemplo de una realización de una parte que participa en la computación colaborativa segura de un producto matricial. Por ejemplo, el aparato 800 puede ser un ejemplo de una primera parte para la computación colaborativa segura de un producto matricial de una primera matriz que incluye datos privados de una primera parte y una segunda matriz que incluye datos privados de la segunda parte mediante el intercambio secreto sin un inicializador El aparato 800 puede corresponder a las realizaciones descritas anteriormente, y el aparato 800 incluye lo siguiente: un módulo 802 de obtención para obtener, mediante la primera parte, una primera matriz que incluye datos privados de la primera parte; un módulo 804 de generación para generar, mediante la primera parte, una primera matriz aleatoria que tiene el mismo tamaño que la primera matriz; un módulo 806 de identificación para identificar, mediante la primera parte, una primera submatriz de la primera matriz aleatoria y una segunda submatriz de la primera matriz aleatoria; un primer módulo 808 de cálculo para calcular, mediante la primera parte, primeros datos privados codificados de la primera parte en base a la primera matriz, la primera matriz aleatoria, la primera
submatriz de la primera matriz aleatoria y la segunda submatriz de la primera matriz aleatoria, en donde los datos privados de la primera parte no pueden derivarse únicamente a partir de los primeros datos privados codificados de la primera parte; un primer módulo 812 de recepción para recibir, mediante la primera parte desde la segunda parte, segundos datos privados codificados de la segunda parte, en donde los datos privados de la segunda parte no son derivables únicamente a partir de los segundos datos privados codificados de la segunda parte; un segundo módulo 814 de cálculo para calcular, mediante la primera parte, un primer sumando del producto matricial de la primera matriz que incluye los datos privados de la primera parte y la segunda matriz que incluye los datos privados de la segunda parte; un segundo módulo 816 de recepción para recibir, mediante la primera parte desde la segunda parte, un segundo sumando del producto matricial de la primera matriz que incluye los datos privados de la primera parte y la segunda matriz que incluye los datos privados de la segunda parte; y un tercer módulo 818 de cálculo para calcular, ,mediante la primera parte, el producto matricial de la primera matriz que incluye los datos privados de la primera parte y la segunda matriz que incluye los datos privados de la segunda parte sumando el primer sumando y el segundo sumando.
En una realización opcional, el aparato 800 incluye además lo siguiente: un módulo 810 de transmisión para transmitir, mediante la primera parte a la segunda parte, los primeros datos privados codificados de la primera parte a la segunda parte.
En una realización opcional, el aparato 800 incluye además lo siguiente: un módulo 820 de determinación para determinar si la primera matriz incluye un número par de columnas; y un módulo 822 de agregación para agregar una columna de todo ceros a la primera matriz en respuesta a determinar que la primera matriz incluye un número impar de columnas.
En una realización opcional, la primera submatriz de la primera matriz aleatoria incluye todas las columnas pares de la primera matriz aleatoria, y la segunda submatriz de la primera matriz aleatoria incluye todas las columnas impares de la primera matriz aleatoria.
En una realización opcional, los primeros datos privados codificados de la primera parte incluyen una primera suma de la primera matriz y la primera matriz aleatoria y una segunda suma de la primera submatriz de la primera matriz aleatoria y la segunda submatriz de la primera matriz aleatoria.
En una realización opcional, los segundos datos privados codificados de la segunda parte se calculan en base a la segunda matriz, una segunda matriz aleatoria que tiene el mismo tamaño que la segunda matriz, una primera submatriz de la segunda matriz aleatoria y una segunda submatriz de la segunda matriz aleatoria.
En una realización opcional, la primera submatriz de la segunda matriz aleatoria incluye todas las filas pares de la segunda matriz aleatoria, y la segunda submatriz de la segunda matriz aleatoria incluye todas las filas impares de la segunda matriz aleatoria.
En una realización opcional, los segundos datos privados codificados de la segunda parte incluyen una primera diferencia entre la segunda matriz y la segunda matriz aleatoria, y una segunda diferencia de la primera submatriz de la segunda matriz aleatoria y la segunda submatriz de la segunda matriz aleatoria.
En una realización opcional, la primera plataforma incluye una plataforma de clasificación y recomendación de artículos; los datos privados de la primera parte incluyen datos de calificación que incluyen calificaciones respectivas de múltiples artículos con respecto a múltiples usuarios; la segunda plataforma incluye una plataforma de red social; y los datos privados de la primera parte incluyen datos de redes sociales que indican relaciones sociales entre dos cualesquiera de los múltiples usuarios.
El sistema, aparato, módulo o unidad ilustrado en las realizaciones anteriores se puede implementar utilizando un chip de computadora o una entidad, o se puede implementar utilizando un producto que tenga una determinada función. Un dispositivo de realización típico es una computadora, y la computadora puede ser una computadora personal, una computadora portátil, un teléfono móvil, un teléfono con cámara, un teléfono inteligente, un asistente digital personal, un reproductor multimedia, un dispositivo de navegación, un dispositivo de recepción y envío de correo electrónico, una consola de juegos, una computadora tableta, un dispositivo ponible o cualquier combinación de estos dispositivos.
Para un proceso de realización de funciones y roles de cada módulo en el aparato, se pueden hacer referencias a un proceso de realización de los pasos correspondientes en el método anterior. Los detalles se omiten aquí por simplicidad.
Debido a que una realización del aparato corresponde básicamente a una realización del método, para las partes relacionadas, se pueden hacer referencias a descripciones relacionadas en la realización del método. La realización del aparato descrita anteriormente es simplemente un ejemplo. Los módulos descritos como partes separadas pueden estar o no físicamente separados, y las partes mostradas como módulos pueden o no ser módulos físicos, pueden estar ubicadas en una posición o pueden estar distribuidos en varios módulos de red. Algunos o todos los módulos pueden seleccionarse en función de las demandas reales para lograr los objetivos de las soluciones de la memoria
descriptiva. Un experto en la técnica puede comprender e implementar sin esfuerzos creativos las realizaciones de la presente solicitud.
Haciendo referencia de nuevo a la FIG. 8, se puede interpretar como ilustrando un módulo funcional interno y una estructura de un aparato informático de una primera parte para la computación colaborativa segura de un producto matricial de una primera matriz que incluye datos privados de una primera parte y una segunda matriz que incluye datos privados de la segunda parte mediante intercambio secreto sin un inicializador de confianza. En esencia, un organismo de ejecución puede ser un dispositivo electrónico, y el dispositivo electrónico incluye lo siguiente: uno o más procesadores; y una memoria configurada para almacenar una instrucción ejecutable del uno o más procesadores.
El uno o más procesadores están configurados para obtener, mediante la primera parte, una primera matriz que incluye datos privados de la primera parte; generar, mediante la primera parte, una primera matriz aleatoria que tiene el mismo tamaño que la primera matriz; identificar, mediante la primera parte, una primera submatriz de la primera matriz aleatoria y una segunda submatriz de la primera matriz aleatoria; calcular, mediante la primera parte, los primeros datos privados codificados de la primera parte en base a la primera matriz, la primera matriz aleatoria, la primera submatriz de la primera matriz aleatoria y la segunda submatriz de la primera matriz aleatoria, en donde los datos privados de la primera parte no son derivables únicamente a partir de los primeros datos privados codificados de la primera parte; recibir, mediante la primera parte desde la segunda parte, segundos datos privados codificados de la segunda parte, en donde los datos privados de la segunda parte no son derivables únicamente a partir de los segundos datos privados codificados de la segunda parte; calcular, mediante la primera parte, un primer sumando del producto matricial de la primera matriz que incluye los datos privados de la primera parte y la segunda matriz que incluye los datos privados de la segunda parte; recibir, mediante la primera parte desde la segunda parte, un segundo sumando del producto matricial de la primera matriz que incluye los datos privados de la primera parte y la segunda matriz que incluye los datos privados de la segunda parte; y calcular, mediante la primera parte, el producto matricial de la primera matriz que incluye los datos privados de la primera parte y la segunda matriz que incluye los datos privados de la segunda parte sumando el primer sumando y el segundo sumando.
Opcionalmente, el uno o más procesadores están configurados para transmitir, mediante la primera parte a la segunda parte, los primeros datos privados codificados de la primera parte a la segunda parte.
Opcionalmente, el uno o más procesadores están configurados para determinar si la primera matriz incluye un número par de columnas; y en respuesta a determinar que la primera matriz incluye un número impar de columnas, agregar una columna de todo ceros a la primera matriz.
Opcionalmente, la primera submatriz de la primera matriz aleatoria incluye todas las columnas pares de la primera matriz aleatoria, y la segunda submatriz de la primera matriz aleatoria incluye todas las columnas impares de la primera matriz aleatoria.
Opcionalmente, los primeros datos privados codificados de la primera parte incluyen una primera suma de la primera matriz y la primera matriz aleatoria, y una segunda suma de la primera submatriz de la primera matriz aleatoria y la segunda submatriz de la primera matriz aleatoria.
Opcionalmente, los segundos datos privados codificados de la segunda parte se calculan en base a la segunda matriz, una segunda matriz aleatoria que tiene el mismo tamaño que la segunda matriz, una primera submatriz de la segunda matriz aleatoria y una segunda submatriz de la segunda matriz aleatoria.
Opcionalmente, la primera submatriz de la segunda matriz aleatoria incluye todas las filas pares de la segunda matriz aleatoria, y la segunda submatriz de la segunda matriz aleatoria incluye todas las filas impares de la segunda matriz aleatoria.
Opcionalmente, los segundos datos privados codificados de la segunda parte incluyen una primera diferencia entre la segunda matriz y la segunda matriz aleatoria, y una segunda diferencia de la primera submatriz de la segunda matriz aleatoria y la segunda submatriz de la segunda matriz aleatoria.
Opcionalmente, la primera plataforma incluye una plataforma de clasificación y recomendación de artículos; los datos privados de la primera parte incluyen datos de calificación que incluyen calificaciones respectivas de múltiples artículos con respecto a múltiples usuarios; la segunda plataforma incluye una plataforma de red social; y los datos privados de la primera parte incluyen datos de redes sociales que indican relaciones sociales entre dos cualesquiera de los múltiples usuarios.
Las técnicas descritas en esta memoria descriptiva producen uno o más efectos técnicos. En algunas realizaciones, las técnicas descritas permiten que diferentes partes (p. ej., plataformas, participantes y entidades) colaboren de forma segura en el intercambio secreto sin revelar datos privados o sensibles, lo que fomenta la integración y colaboración entre las partes sin comprometer la privacidad de los datos. En algunas realizaciones, las técnicas descritas permiten a las partes que participan en el intercambio secreto lograr la computación colaborativa segura de un producto matricial de datos privados de las partes, sin que una de las partes acceda o conozca los datos privados de otra, por ejemplo,
como resultado de los esquemas de intercambio secreto diseñados, una parte puede calcular un producto matricial de sus propios datos privados y datos privados de otra parte sin acceder o conocer los datos privados de otra parte, y viceversa. Por lo tanto, se puede proteger la privacidad y seguridad de los datos de cada parte. En algunas realizaciones, las técnicas descritas permiten a las partes colaborar y lograr la seguridad de los datos sin la sobrecarga de una autoridad de terceros, tal como un inicializador confiable, reduciendo así el costo de la autoridad de terceros. En algunas realizaciones, las técnicas descritas permiten que cada parte realice el cálculo localmente, sin la intervención de un tercero, mejorando así la eficiencia y flexibilidad de la colaboración. En algunas otras realizaciones, dado que gran parte del trabajo (p. ej., generación de números aleatorios y cálculo de ubicación) puede realizarse por diversas partes antes de aplicar el esquema de intercambio secreto, las técnicas descritas permiten actividades de desarrollo común más eficientes (tales como con respecto a tiempo, ciclos de procesador, uso de memoria y ancho de banda/congestión de la red) o actividades no soportadas por las partes en línea actuales. En otras realizaciones más, las técnicas descritas pueden proporcionar modelos de recomendación mejorados de las partes de calificación y recomendación de artículos y proporcionar recomendaciones mejor dirigidas (tales como, una parte de recomendación de películas que proporciona recomendaciones más específicas y relevantes a los usuarios al aprovechar los datos de redes sociales obtenidos de una plataforma de redes sociales). Otras ventajas serán evidentes para los expertos en la técnica.
Las realizaciones descritas de la materia objeto pueden incluir una o más características, solas o en combinación.
Por ejemplo, en una primera realización, un método implementado por computadora para la computación colaborativa segura de un producto matricial de una primera matriz que incluye datos privados de una primera parte y una segunda matriz que incluye datos privados de la segunda parte mediante intercambio secreto sin un inicializador confiable, el método que incluye : obtener, mediante la primera parte, una primera matriz que incluye datos privados de la primera parte; generar, mediante la primera parte, una primera matriz aleatoria que tiene el mismo tamaño que la primera matriz; identificar, mediante la primera parte, una primera submatriz de la primera matriz aleatoria y una segunda submatriz de la primera matriz aleatoria; calcular, mediante la primera parte, los primeros datos privados codificados de la primera parte en base a la primera matriz, la primera matriz aleatoria, la primera submatriz de la primera matriz aleatoria y la segunda submatriz de la primera matriz aleatoria, en donde los datos privados de la primera parte no son derivables únicamente a partir de los primeros datos privados codificados de la primera parte; recibir, mediante la primera parte desde la segunda parte, segundos datos privados codificados de la segunda parte, en donde los datos privados de la segunda parte no son derivables únicamente a partir de los segundos datos privados codificados de la segunda parte; calcular, mediante la primera parte, un primer sumando del producto matricial de la primera matriz que incluye los datos privados de la primera parte y la segunda matriz que incluye los datos privados de la segunda parte; recibir, mediante la primera parte desde la segunda parte, un segundo sumando del producto matricial de la primera matriz que incluye los datos privados de la primera parte y la segunda matriz que incluye los datos privados de la segunda parte; y calcular, mediante la primera parte, el producto matricial de la primera matriz que incluye los datos privados de la primera parte y la segunda matriz que incluye los datos privados de la segunda parte sumando el primer sumando y el segundo sumando.
Las realizaciones anteriores y otras descritas pueden cada una, opcionalmente, incluir una o más de las siguientes características:
Una primera característica, combinable con cualquiera de las siguientes características, que incluye además: transmitir, mediante la primera parte a la segunda parte, los primeros datos privados codificados de la primera parte a la segunda parte.
Una segunda característica, combinable con cualquiera de las siguientes características, que incluye además: determinar si la primera matriz incluye un número par de columnas; y en respuesta a determinar que la primera matriz incluye un número impar de columnas, agregar una columna de todo ceros a la primera matriz.
Una tercera característica, combinable con cualquiera de las siguientes características, en donde la primera submatriz de la primera matriz aleatoria incluye todas las columnas pares de la primera matriz aleatoria, y la segunda submatriz de la primera matriz aleatoria incluye todas las columnas impares de la primera matriz aleatoria.
Una cuarta característica, combinable con cualquiera de las siguientes características, en donde los primeros datos privados codificados de la primera parte incluyen una primera suma de la primera matriz y la primera matriz aleatoria, y una segunda suma de la primera submatriz de la primera matriz aleatoria. y la segunda submatriz de la primera matriz aleatoria.
Una quinta característica, combinable con cualquiera de las siguientes características, en donde los segundos datos privados codificados de la segunda parte se calculan en base a la segunda matriz, una segunda matriz aleatoria que tiene el mismo tamaño que la segunda matriz, una primera submatriz de la segunda matriz aleatoria y una segunda submatriz de la segunda matriz aleatoria.
Una sexta característica, combinable con cualquiera de las siguientes características, en donde la primera submatriz de la segunda matriz aleatoria incluye todas las filas pares de la segunda matriz aleatoria, y la segunda submatriz de la segunda matriz aleatoria incluye todas las filas impares de la segunda matriz aleatoria.
Una séptima característica, combinable con cualquiera de las siguientes características, en donde los segundos datos privados codificados de la segunda parte incluyen una primera diferencia entre la segunda matriz y la segunda matriz aleatoria y una segunda diferencia de la primera submatriz de la segunda matriz aleatoria. y la segunda submatriz de la segunda matriz aleatoria.
Una octava característica, combinable con cualquiera de las siguientes características, en donde: la primera plataforma incluye una plataforma de clasificación y recomendación de artículos; los datos privados de la primera parte incluyen datos de calificación que incluyen calificaciones respectivas de múltiples artículos con respecto a múltiples usuarios; la segunda plataforma incluye una plataforma de red social; y los datos privados de la primera parte incluyen datos de redes sociales que indican relaciones sociales entre dos cualesquiera de los múltiples usuarios.
Las realizaciones de la materia objeto y las acciones y operaciones descritas en esta memoria descriptiva se pueden implementar en circuitería electrónica digital, en software o firmware de computadora incorporados de manera tangible, en hardware de computadora, incluidas las estructuras dadas a conocer en esta memoria descriptiva y sus equivalentes estructurales, o en combinaciones. de uno o más de ellos. Las realizaciones de la materia objeto descrita en esta memoria descriptiva se pueden implementar como uno o más programas informáticos, p. ej., uno o más módulos de instrucciones de programa informático, codificados en un soporte de programa informático, para su ejecución por el, o para controlar la operación del, aparato de procesamiento de datos. Por ejemplo, un soporte de programa informático puede incluir uno o más medios de almacenamiento legibles por computadora que tienen instrucciones codificadas o almacenadas en los mismos. El soporte puede ser un medio legible por computadora no transitorio tangible, tal como un disco magnético, magnetoóptico u óptico, una unidad de estado sólido, una memoria de acceso aleatorio (RAM), una memoria de solo lectura (ROM) u otros tipos de medios. Alternativa o adicionalmente, el soporte puede ser una señal propagada generada artificialmente, p. ej., una señal eléctrica, óptica o electromagnética generada por máquina que se genera para codificar información para su transmisión a un aparato receptor adecuado para su ejecución por un aparato de procesamiento de datos. El medio de almacenamiento informático puede ser o ser parte de un dispositivo de almacenamiento legible por máquina, un sustrato de almacenamiento legible por máquina, un dispositivo de memoria de acceso aleatorio o en serie, o una combinación de uno o más de ellos. Un medio de almacenamiento informático no es una señal propagada.
Un programa informático, que también puede denominarse o describirse como un programa, software, una aplicación de software, una app, un módulo, un módulo de software, un motor, un script o código, puede escribirse en cualquier forma de lenguaje de programación, incluidos los lenguajes compilados o interpretados, o los lenguajes declarativos o procedimentales; y se puede desplegar en cualquier forma, incluso como un programa independiente o como un módulo, componente, motor, subrutina u otra unidad adecuada para ejecutarse en un entorno informático, cuyo entorno puede incluir una o más computadoras interconectadas por una red de comunicaciones de datos en una o más ubicaciones.
Un programa informático puede, pero no necesariamente, corresponder a un archivo en un sistema de archivos. Un programa informático puede almacenarse en una parte de un archivo que contiene otros programas o datos, p. ej., uno o más scripts almacenados en un documento de lenguaje de marcado, en un solo archivo dedicado al programa en cuestión, o en múltiples archivos coordinados, p. ej., archivos que almacenan uno o más módulos, subprogramas o partes de código.
Los procesadores para la ejecución de un programa informático incluyen, a modo de ejemplo, tanto microprocesadores de propósito general como especial, y uno o más procesadores de cualquier tipo de computadora digital. Generalmente, un procesador recibirá las instrucciones del programa informático para su ejecución, así como los datos de un medio legible por computadora no transitorio acoplado al procesador.
El término “aparato de procesamiento de datos” abarca todo tipo de aparatos, dispositivos y máquinas para procesar datos, incluyendo a modo de ejemplo un procesador programable, una computadora o múltiples procesadores o computadoras. El aparato de procesamiento de datos puede incluir circuitería lógica de propósito especial, p. ej., una FPGA (matriz de compuertas programables en campo), un ASIC (circuito integrado de aplicación específica) o una GPU (unidad de procesamiento de gráficos). El aparato también puede incluir, además del hardware, código que crea un entorno de ejecución para programas informáticos, p. ej., código que constituye el firmware del procesador, una pila de protocolos, un sistema de gestión de bases de datos, un sistema operativo o una combinación de uno o más de ellos.
Los procesos y flujos lógicos descritos en esta memoria descriptiva pueden realizarse por una o más computadoras o procesadores que ejecutan uno o más programas informáticos para realizar operaciones que operan con datos de entrada y que generan salida. Los procesos y flujos lógicos también pueden realizarse mediante circuitería lógica de propósito especial, p. ej., una FPGA, un ASIC o una GPU, o mediante una combinación de circuitería lógica de propósito especial y una o más computadoras programadas.
Las computadoras adecuadas para la ejecución de un programa informático pueden estar basadas en microprocesadores de propósito general o especial o ambos, o cualquier otro tipo de unidad central de procesamiento. Generalmente, una unidad central de procesamiento recibirá instrucciones y datos de una memoria de solo lectura o una memoria de acceso aleatorio o ambas. Los elementos de una computadora pueden incluir una unidad central de procesamiento para ejecutar instrucciones y uno o más dispositivos de memoria para almacenar instrucciones y datos. La unidad central de procesamiento y la memoria pueden complementarse o incorporarse en circuitería lógica de propósito especial.
Generalmente, una computadora también incluirá, o estará acoplada operativamente para recibir o transferir datos a uno o más dispositivos de almacenamiento. Los dispositivos de almacenamiento pueden ser, por ejemplo, discos magnéticos, magnetoópticos u ópticos, unidades de estado sólido o cualquier otro tipo de medio legible por computadora no transitorio. Sin embargo, una computadora no necesita tener tales dispositivos. Por tanto, una computadora puede estar acoplada a uno o más dispositivos de almacenamiento, tal como una o más memorias, que son locales y/o remotas. Por ejemplo, una computadora puede incluir una o más memorias locales que son componentes integrales de la computadora, o la computadora puede acoplarse a una o más memorias remotas que están en una red en la nube. Además, una computadora puede integrarse en otro dispositivo, p. ej., un teléfono móvil, un asistente digital personal (PDA), un reproductor de audio o video móvil, una consola de juegos, un receptor del sistema de posicionamiento global (GPS) o un dispositivo de almacenamiento portátil, p. ej., una unidad flash de bus serie universal (USB), por nombrar solo algunos.
Los componentes se pueden “acoplar” entre sí estando conectados conmutativamente, tal como eléctrica u ópticamente, entre sí, ya sea directamente o mediante uno o más componentes intermedios. Los componentes también se pueden “acoplar” entre sí si uno de los componentes está integrado en el otro. Por ejemplo, un componente de almacenamiento que está integrado en un procesador (p. ej., un componente de caché L2) está “acoplado” al procesador.
Para facilitar la interacción con un usuario, las realizaciones de la materia objeto descrita en esta memoria descriptiva se pueden implementar o configurar para comunicarse con una computadora que tiene un dispositivo de visualización, p. ej., un monitor LCD (pantalla de cristal líquido), para visualizar información al usuario, y un dispositivo de entrada mediante el cual el usuario puede proporcionar entrada al ordenador, p. ej., un teclado y un dispositivo señalador, p. ej., un ratón, una bola de seguimiento o un panel táctil. También se pueden utilizar otros tipos de dispositivos para permitir la interacción con un usuario; por ejemplo, la retroalimentación proporcionada al usuario puede ser cualquier forma de retroalimentación sensorial, p. ej., retroalimentación visual, retroalimentación auditiva o retroalimentación táctil; y la entrada del usuario se puede recibir de cualquier forma, incluida la entrada acústica, de voz o táctil. También, una computadora puede interactuar con un usuario enviando documentos y recibiendo documentos desde un dispositivo que se utiliza mediante el usuario; por ejemplo, enviando páginas web a un navegador web en el dispositivo de un usuario en respuesta a solicitudes recibidas desde el navegador web, o interactuando con una app que se ejecuta en un dispositivo de usuario, p. ej., un teléfono inteligente o tableta electrónica. Además, una computadora puede interactuar con un usuario enviando mensajes de texto u otras formas de mensaje a un dispositivo personal, p. ej., un teléfono inteligente que ejecuta una aplicación de mensajería y, a cambio, recibe mensajes de respuesta del usuario.
Esta memoria descriptiva utiliza el término “configurado para” en relación con sistemas, aparatos y componentes de programas informáticos. Para un sistema de una o más computadoras a ser configurado para realizar determinadas operaciones o acciones significa que el sistema tiene instalado software, firmware, hardware o una combinación de ellos que en la operación hacen que el sistema realice las operaciones o acciones. Para que uno o más programas informáticos se configuren para realizar operaciones o acciones particulares significa que el uno o más programas incluyen instrucciones que, cuando se ejecutan mediante un aparato de procesamiento de datos, hacen que el aparato realice las operaciones o acciones. Para que la circuitería lógica de propósito especial se configure para realizar operaciones o acciones particulares, significa que la circuitería tiene lógica electrónica que realiza las operaciones o acciones.
Si bien esta memoria descriptiva contiene muchos detalles de realización específicos, estos no deben interpretarse como limitaciones del alcance de lo que se reivindica, que se define en las propias reivindicaciones, sino más bien como descripciones de características que pueden ser específicas de realizaciones particulares. Ciertas características que se describen en esta memoria descriptiva en el contexto de realizaciones separadas también pueden realizarse en combinación en una única realización. A la inversa, diversas características que se describen en el contexto de una única realización también pueden realizarse en múltiples realizaciones por separado o en cualquier subcombinación adecuada. Además, aunque las características pueden describirse anteriormente como que actúan en ciertas combinaciones e incluso inicialmente reivindicarse como tales, una o más características de una combinación reivindicada pueden en algunos casos eliminarse de la combinación, y la reivindicación puede estar dirigida a una subcombinación o variación. de una subcombinación.
De manera similar, aunque las operaciones se describen en los dibujos y se enumeran en las reivindicaciones en un orden particular, esto no debe entenderse como que requiere que dichas operaciones se realicen en el orden particular
mostrado o en orden secuencia!, o que todas las operaciones ilustradas se realicen, para lograr resultados deseables. En determinadas circunstancias, la multitarea y el procesamiento en paralelo pueden resultar ventajosos. Además, la separación de diversos módulos y componentes del sistema en las realizaciones descritas anteriormente no debe entenderse como que requiere dicha separación en todas las realizaciones, y debe entenderse que los componentes y sistemas del programa descritos generalmente se pueden integrar juntos en un solo producto de software o empaquetarse en múltiples productos de software.
Se han descrito realizaciones particulares de la materia objeto. Otras realizaciones están dentro del alcance de las siguientes reivindicaciones. Por ejemplo, las acciones enumeradas en las reivindicaciones se pueden realizar en un orden diferente y aun así lograr resultados deseables. Como ejemplo, los procesos representados en las figuras adjuntas no requieren necesariamente el orden particular mostrado, o el orden secuencial, para lograr resultados deseables. En algunos casos, la multitarea y el procesamiento en paralelo pueden resultar ventajosos.
Claims (5)
1. Un método (600) implementado por computadora para la computación colaborativa segura de un producto matricial XY de una primera matriz X que incluye datos privados de una primera parte y una segunda matriz Y que incluye datos privados de la segunda parte mediante intercambio secreto sin un inicializador confiable, el método que comprende: obtener (604), mediante la primera parte, una primera matriz X que incluye datos privados de la primera parte; generar (606), mediante la primera parte, una primera matriz aleatoria X’ que tiene el mismo tamaño que la primera matriz;
identificar (610), mediante la primera parte, una primera submatriz X’e de la primera matriz aleatoria X’ y una segunda submatriz X'o de la primera matriz aleatoria X', en donde la primera submatriz X’e de la primera matriz aleatoria comprende todas las columnas pares de la primera matriz aleatoria, y la segunda submatriz X'o de la primera matriz aleatoria comprende todas las columnas impares de la primera matriz aleatoria;
calcular (612), mediante la primera parte, primeros datos X1 privados codificados de la primera parte en base a la primera matriz X, la primera matriz aleatoria X’, la primera submatriz X'e de la primera matriz aleatoria y la segunda submatriz X'o de la primera matriz aleatoria, en donde los datos privados de la primera parte no son derivables únicamente a partir de los primeros datos privados codificados de la primera parte, en donde los primeros datos privados codificados de la primera parte comprenden una primera suma X1 de la primera matriz X y la primera matriz aleatoria X’, y una segunda suma X2 de la primera submatriz X'e de la primera matriz aleatoria y la segunda submatriz X'o de la primera matriz aleatoria;
recibir (633), mediante la primera parte desde la segunda parte, segundos datos privados codificados de la segunda parte, en donde los datos privados de la segunda parte no son derivables únicamente a partir de los segundos datos privados codificados de la segunda parte, en donde los segundos datos privados codificados de la segunda parte se calculan en base a la segunda matriz Y, una segunda matriz aleatoria Y’ que tiene el mismo tamaño que la segunda matriz, una primera submatriz Y'e de la segunda matriz aleatoria Y' y una segunda submatriz Y'o de la segunda matriz aleatoria Y’, en donde la primera submatriz Y'e de la segunda matriz aleatoria Y' comprende todas las filas pares de la segunda matriz aleatoria, y la segunda submatriz Y'o de la segunda matriz aleatoria comprende todas las filas impares de la segunda matriz aleatoria, en donde los segundos datos privados codificados de la segunda parte comprenden una primera diferencia Y1 entre la segunda matriz Y y la segunda matriz aleatoria Y’, y una segunda diferencia Y2 de la primera submatriz Y'e de la segunda matriz aleatoria y la segunda submatriz Y'o de la segunda matriz aleatoria;
calcular (614), mediante la primera parte, un primer sumando M del producto matricial de la primera matriz que incluye los datos privados de la primera parte y la segunda matriz que incluye los datos privados de la segunda parte, en donde
recibir (635), mediante la primera parte desde la segunda parte, un segundo sumando N del producto matricial de la primera matriz que incluye los datos privados de la primera parte y la segunda matriz que incluye los datos privados de la segunda parte, en donde N= X^ (2 Y-
y
calcular (616), mediante la primera parte, el producto matricial XY de la primera matriz X que incluye los datos privados de la primera parte y la segunda matriz Y que incluye los datos privados de la segunda parte sumando el primer sumando M y el segundo sumando N,
en donde:
la primera plataforma comprende una plataforma de clasificación y recomendación de artículos;
los datos privados de la primera parte comprenden datos de calificación que comprenden calificaciones respectivas de múltiples artículos con respecto a múltiples usuarios;
la segunda plataforma comprende una plataforma de red social; y
los datos privados de la primera parte comprenden datos de redes sociales que indican relaciones sociales entre dos cualesquiera de los múltiples usuarios.
2. El método de la reivindicación 1, que comprende además:
transmitir (613), mediante la primera parte a la segunda parte, los primeros datos privados codificados de la primera parte a la segunda parte.
3. El método de cualquier reivindicación anterior, que comprende además:
determinar (702) si la primera matriz incluye un número par de columnas; y
en respuesta para determinar que la primera matriz incluye un número impar de columnas, agregar (703) una columna de todo ceros a la primera matriz.
4. Un sistema para proporcionar seguridad a los datos mediante el intercambio secreto entre una primera parte y una segunda parte sin un inicializador confiable, que comprende:
uno o más procesadores; y
una o más memorias legibles por computadora acopladas al uno o más procesadores y que tienen instrucciones almacenadas en las mismas que son ejecutables por el uno o más procesadores para realizar el método de cualquiera de las reivindicaciones 1 a 3.
5. Un aparato para proporcionar seguridad de datos mediante intercambio secreto entre una primera parte y una segunda parte sin un inicializador confiable, el aparato que comprende múltiples módulos para realizar el método de cualquiera de las reivindicaciones 1 a 3.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2018/110688 WO2020077573A1 (en) | 2018-10-17 | 2018-10-17 | Secret sharing with no trusted initializer |
PCT/CN2019/081385 WO2020077959A1 (en) | 2018-10-17 | 2019-04-04 | Secure multi-party computation with no trusted initializer |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2836207T3 true ES2836207T3 (es) | 2021-06-24 |
Family
ID=66850327
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES19782894T Active ES2836207T3 (es) | 2018-10-17 | 2019-04-04 | Computación segura multipartita sin inicializador confiable |
Country Status (16)
Country | Link |
---|---|
US (2) | US10789377B2 (es) |
EP (2) | EP3665583A1 (es) |
JP (1) | JP6803980B1 (es) |
KR (1) | KR102150816B1 (es) |
CN (2) | CN110366722A (es) |
AU (2) | AU2018353923B2 (es) |
BR (1) | BR112019008135B1 (es) |
CA (2) | CA3040669A1 (es) |
ES (1) | ES2836207T3 (es) |
MX (1) | MX2019004664A (es) |
PH (1) | PH12019500891A1 (es) |
PL (1) | PL3659292T3 (es) |
RU (1) | RU2728522C1 (es) |
SG (2) | SG11201903587TA (es) |
WO (2) | WO2020077573A1 (es) |
ZA (1) | ZA201902550B (es) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
SG11201903587TA (en) | 2018-10-17 | 2020-05-28 | Advanced New Technologies Co Ltd | Secret Sharing With No Trusted Initializer |
CN111030811B (zh) * | 2019-12-13 | 2022-04-22 | 支付宝(杭州)信息技术有限公司 | 一种数据处理的方法 |
CN111176582A (zh) * | 2019-12-31 | 2020-05-19 | 北京百度网讯科技有限公司 | 矩阵存储方法、矩阵访问方法、装置和电子设备 |
CN111461858B (zh) * | 2020-03-10 | 2023-02-17 | 支付宝(杭州)信息技术有限公司 | 基于隐私保护的连乘计算方法、装置、系统和电子设备 |
CN111428276B (zh) * | 2020-03-19 | 2022-08-02 | 腾讯科技(深圳)有限公司 | 一种数据处理的方法、装置、设备和介质 |
CN111162896B (zh) * | 2020-04-01 | 2020-06-26 | 支付宝(杭州)信息技术有限公司 | 双方联合进行数据处理的方法及装置 |
CN111506922B (zh) * | 2020-04-17 | 2023-03-10 | 支付宝(杭州)信息技术有限公司 | 多方联合对隐私数据进行显著性检验的方法和装置 |
CN111241570B (zh) * | 2020-04-24 | 2020-07-17 | 支付宝(杭州)信息技术有限公司 | 保护数据隐私的双方联合训练业务预测模型的方法和装置 |
CN111291417B (zh) * | 2020-05-09 | 2020-08-28 | 支付宝(杭州)信息技术有限公司 | 保护数据隐私的多方联合训练对象推荐模型的方法及装置 |
CN112163227B (zh) * | 2020-09-02 | 2022-04-29 | 湖北工业大学 | 一种电商平台卖家用户销售额多维统计分析系统及方法 |
CN112231561B (zh) * | 2020-10-14 | 2024-06-07 | 深圳前海微众银行股份有限公司 | 数据处理方法、装置、设备及存储介质 |
US11544767B2 (en) * | 2020-11-02 | 2023-01-03 | Sas Institute Inc. | Recommendation system with implicit feedback |
US11379743B2 (en) * | 2020-11-02 | 2022-07-05 | Sas Institute Inc. | Recommendation system |
CN112311546B (zh) * | 2020-12-25 | 2021-04-09 | 鹏城实验室 | 数据保密判定方法、装置、设备及计算机可读存储介质 |
CN112560106B (zh) * | 2021-02-20 | 2021-05-18 | 支付宝(杭州)信息技术有限公司 | 针对隐私矩阵进行处理的方法、装置和系统 |
JP2024081261A (ja) | 2022-12-06 | 2024-06-18 | 富士通株式会社 | プログラム、算出方法および情報処理装置 |
CN116383848B (zh) * | 2023-04-04 | 2023-11-28 | 北京航空航天大学 | 一种三方安全计算防作恶方法、设备及介质 |
US11743524B1 (en) | 2023-04-12 | 2023-08-29 | Recentive Analytics, Inc. | Artificial intelligence techniques for projecting viewership using partial prior data sources |
Family Cites Families (61)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7788123B1 (en) * | 2000-06-23 | 2010-08-31 | Ekhaus Michael A | Method and system for high performance model-based personalization |
US20040133574A1 (en) * | 2003-01-07 | 2004-07-08 | Science Applications International Corporaton | Vector space method for secure information sharing |
WO2005043808A1 (en) * | 2003-11-03 | 2005-05-12 | Koninklijke Philips Electronics N.V. | Method and device for efficient multiparty multiplication |
US20090197681A1 (en) | 2008-01-31 | 2009-08-06 | Microsoft Corporation | System and method for targeted recommendations using social gaming networks |
US8407286B2 (en) * | 2008-05-15 | 2013-03-26 | Yahoo! Inc. | Method and apparatus for utilizing social network information for showing reviews |
US8068426B2 (en) * | 2008-05-29 | 2011-11-29 | Massachusetts Institute Of Technology | Feedback-based online network coding |
US20100076850A1 (en) * | 2008-09-22 | 2010-03-25 | Rajesh Parekh | Targeting Ads by Effectively Combining Behavioral Targeting and Social Networking |
US8364713B2 (en) * | 2009-01-20 | 2013-01-29 | Titanium Fire Ltd. | Personal data manager systems and methods |
US8489515B2 (en) * | 2009-05-08 | 2013-07-16 | Comcast Interactive Media, LLC. | Social network based recommendation method and system |
US9460092B2 (en) * | 2009-06-16 | 2016-10-04 | Rovi Technologies Corporation | Media asset recommendation service |
US20110060738A1 (en) * | 2009-09-08 | 2011-03-10 | Apple Inc. | Media item clustering based on similarity data |
US8781901B2 (en) * | 2009-12-04 | 2014-07-15 | Telefonaktiebolaget L M Ericsson (Publ) | System and methods for protecting the privacy of user information in a recommendation system |
US20110246500A1 (en) * | 2010-03-30 | 2011-10-06 | Praphul Chandra | Storing and querying of user feedback in a personal repository accessible to a personal computing device |
US8812591B2 (en) * | 2011-06-15 | 2014-08-19 | Facebook, Inc. | Social networking system data exchange |
US9536268B2 (en) | 2011-07-26 | 2017-01-03 | F. David Serena | Social network graph inference and aggregation with portability, protected shared content, and application programs spanning multiple social networks |
EP2549423A1 (en) * | 2011-07-22 | 2013-01-23 | Axel Springer Digital TV Guide GmbH | Automatic determination of the relevance of recommendations in a social network |
US20130054481A1 (en) * | 2011-08-23 | 2013-02-28 | Infosys Limited | System and method for sharing, analyzing and consolidating medical data in a social network |
US20130097056A1 (en) * | 2011-10-13 | 2013-04-18 | Xerox Corporation | Methods and systems for recommending services based on an electronic social media trust model |
EP2590126A1 (en) * | 2011-11-01 | 2013-05-08 | Nederlandse Organisatie voor toegepast -natuurwetenschappelijk onderzoek TNO | Recommender system for providing recommendations to groups of users |
US20150112838A1 (en) | 2011-12-19 | 2015-04-23 | Hong Li | Smart device assisted commerce |
US9043250B2 (en) * | 2012-01-10 | 2015-05-26 | Telcordia Technologies, Inc. | Privacy-preserving aggregated data mining |
US10311403B2 (en) | 2012-06-04 | 2019-06-04 | Apple Inc. | Providing feedback via a social network from a media distribution platform |
JP2015526795A (ja) * | 2012-06-21 | 2015-09-10 | トムソン ライセンシングThomson Licensing | ユーザの人口統計データを推定する方法と装置 |
WO2014023432A1 (en) * | 2012-08-09 | 2014-02-13 | Livestudies Srl | Apparatus and method for a collaborative environment using distributed touch sensitive surfaces |
CN102932100B (zh) * | 2012-10-16 | 2016-09-21 | 四川电力科学研究院 | 一种并行加扰的方法及装置 |
KR20150122162A (ko) * | 2013-03-04 | 2015-10-30 | 톰슨 라이센싱 | 프라이버시 보호 카운팅을 위한 방법 및 시스템 |
US10733194B2 (en) * | 2013-03-08 | 2020-08-04 | Warren Young | Systems and methods for providing a review platform |
US20140288999A1 (en) | 2013-03-12 | 2014-09-25 | Correlor Technologies Ltd | Social character recognition (scr) system |
US20150066689A1 (en) * | 2013-08-27 | 2015-03-05 | Jon Anthony ASTORE | Method and system for providing social media ecosystem compensation |
WO2015061696A1 (en) * | 2013-10-25 | 2015-04-30 | Peep Mobile Digital | Social event system |
CN103713938A (zh) * | 2013-12-17 | 2014-04-09 | 江苏名通信息科技有限公司 | 虚拟化环境下基于OpenMP的多GPU协同计算方法 |
CN103995823A (zh) | 2014-03-25 | 2014-08-20 | 南京邮电大学 | 一种基于社交网络的信息推荐方法 |
US10235403B2 (en) * | 2014-07-08 | 2019-03-19 | Palo Alto Research Center Incorporated | Parallel collective matrix factorization framework for big data |
EP3195522B1 (en) * | 2014-08-01 | 2019-08-21 | National ICT Australia Limited | Generating shares of secret data |
CN104156436B (zh) | 2014-08-13 | 2017-05-10 | 福州大学 | 一种社交云媒体协同过滤推荐方法 |
US9483311B2 (en) * | 2014-09-15 | 2016-11-01 | International Business Machines Corporation | Logical data shuffling |
US20180293283A1 (en) * | 2014-11-14 | 2018-10-11 | Marin Litoiu | Systems and methods of controlled sharing of big data |
US10289733B2 (en) * | 2014-12-22 | 2019-05-14 | Rovi Guides, Inc. | Systems and methods for filtering techniques using metadata and usage data analysis |
US9706180B2 (en) * | 2015-03-23 | 2017-07-11 | Panasonic Intellectual Property Management Co., Ltd. | Projection display apparatus |
US10341701B2 (en) * | 2015-04-21 | 2019-07-02 | Edge2020 LLC | Clustering and adjudication to determine a recommendation of multimedia content |
CN104966125B (zh) | 2015-05-06 | 2018-07-24 | 同济大学 | 一种社交网络的物品评分及推荐方法 |
US20160381158A1 (en) * | 2015-06-29 | 2016-12-29 | Google Inc. | Automatic Invitation Delivery System |
JP2017034531A (ja) * | 2015-08-04 | 2017-02-09 | 富士通株式会社 | 動画像符号化装置及び動画像符号化方法 |
CN105550211A (zh) | 2015-12-03 | 2016-05-04 | 云南大学 | 一种融合社交网络和项目内容的协同推荐系统 |
IL243026A0 (en) * | 2015-12-10 | 2016-02-29 | Rokach Lior | Designing recommendation systems based on hidden context |
WO2017105440A1 (en) * | 2015-12-16 | 2017-06-22 | Thomson Licensing | Methods and apparatuses for processing biometric responses to multimedia content |
CN105677701A (zh) * | 2015-12-24 | 2016-06-15 | 苏州大学 | 一种基于不经意传输的社会化推荐方法 |
US11367149B2 (en) * | 2016-01-15 | 2022-06-21 | Carnegie Mellon University | Pattern identification in time-series social media data, and output-dynamics engineering for a dynamic system having one or more multi-scale time-series data sets |
US10708234B2 (en) * | 2016-03-24 | 2020-07-07 | International Business Machines Corporation | System, method, and recording medium for preventing back propogation of data protection |
RU2613530C1 (ru) | 2016-04-19 | 2017-03-16 | Игорь Юрьевич Скворцов | Самонастраивающаяся интерактивная система, способ и считываемый компьютером носитель данных обмена комментариями между пользователями |
WO2017200510A1 (ru) | 2016-05-18 | 2017-11-23 | Евгэн Мыхайловыч ВЫСОЦЬКЫЙ | Обработка персональных и совокупных предпочтений пользователей (варианты) |
US20180218426A1 (en) * | 2017-01-27 | 2018-08-02 | Xerox Corporation | Systems and methods for privacy preserving recommendation of items |
RU2649797C1 (ru) | 2017-06-14 | 2018-04-04 | Общество С Ограниченной Ответственностью "Центр Разработки И Внедрения Инновационных Технологий" | Интерактивная система, способ и считываемый компьютером носитель данных представления рекламного контента |
US10521225B2 (en) * | 2017-06-29 | 2019-12-31 | Oracle International Corporation | Matrix multiplication at memory bandwidth |
US11082234B2 (en) * | 2017-07-06 | 2021-08-03 | Robert Bosch Gmbh | Method and system for privacy-preserving social media advertising |
RU2666336C1 (ru) | 2017-08-01 | 2018-09-06 | Общество С Ограниченной Ответственностью "Яндекс" | Способ и система для рекомендации медиаобъектов |
CN108228833B (zh) | 2018-01-04 | 2021-08-03 | 浙江大学 | 一种利用用户倾向性学习解决社区项目推荐任务的方法 |
CN108418810A (zh) * | 2018-02-08 | 2018-08-17 | 中国人民解放军国防科技大学 | 一种基于Hadamard矩阵的秘密分享方法 |
CN108596774B (zh) * | 2018-04-24 | 2021-10-01 | 山东师范大学 | 基于深层次网络嵌入特征的社会化信息推荐算法及系统 |
SG11201903587TA (en) | 2018-10-17 | 2020-05-28 | Advanced New Technologies Co Ltd | Secret Sharing With No Trusted Initializer |
JP7109501B2 (ja) | 2020-06-05 | 2022-07-29 | 東芝ライフスタイル株式会社 | 冷蔵庫 |
-
2018
- 2018-10-17 SG SG11201903587TA patent/SG11201903587TA/en unknown
- 2018-10-17 JP JP2019521721A patent/JP6803980B1/ja active Active
- 2018-10-17 EP EP18867292.7A patent/EP3665583A1/en not_active Ceased
- 2018-10-17 RU RU2019111935A patent/RU2728522C1/ru active
- 2018-10-17 AU AU2018353923A patent/AU2018353923B2/en active Active
- 2018-10-17 KR KR1020197011609A patent/KR102150816B1/ko active IP Right Grant
- 2018-10-17 WO PCT/CN2018/110688 patent/WO2020077573A1/en active Application Filing
- 2018-10-17 MX MX2019004664A patent/MX2019004664A/es unknown
- 2018-10-17 CN CN201880012931.XA patent/CN110366722A/zh active Pending
- 2018-10-17 BR BR112019008135-6A patent/BR112019008135B1/pt active IP Right Grant
- 2018-10-17 CA CA3040669A patent/CA3040669A1/en not_active Abandoned
-
2019
- 2019-04-04 CN CN201980001760.5A patent/CN110546642B/zh active Active
- 2019-04-04 SG SG11201910155SA patent/SG11201910155SA/en unknown
- 2019-04-04 PL PL19782894T patent/PL3659292T3/pl unknown
- 2019-04-04 EP EP19782894.0A patent/EP3659292B8/en active Active
- 2019-04-04 WO PCT/CN2019/081385 patent/WO2020077959A1/en unknown
- 2019-04-04 AU AU2019257397A patent/AU2019257397B2/en active Active
- 2019-04-04 CA CA3059610A patent/CA3059610A1/en active Pending
- 2019-04-04 ES ES19782894T patent/ES2836207T3/es active Active
- 2019-04-22 US US16/390,147 patent/US10789377B2/en active Active
- 2019-04-23 ZA ZA2019/02550A patent/ZA201902550B/en unknown
- 2019-04-24 PH PH12019500891A patent/PH12019500891A1/en unknown
- 2019-10-30 US US16/668,945 patent/US11386212B2/en active Active
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2836207T3 (es) | Computación segura multipartita sin inicializador confiable | |
Bentsen et al. | Fast scrambling on sparse graphs | |
US20240185032A1 (en) | Encoding and reconstructing inputs using neural networks | |
Peterson et al. | A maximum entropy framework for nonexponential distributions | |
Kadison | The Pythagorean theorem: I. The finite case | |
AU2016298250A1 (en) | Classifying user behavior as anomalous | |
CN105229485A (zh) | 多因素位置验证 | |
US20220358240A1 (en) | Adaptive data privacy platform | |
WO2022072415A1 (en) | Privacy preserving machine learning using secure multi-party computation | |
CN113409090B (zh) | 广告点击率预测模型的训练方法、预测方法及装置 | |
CN113761350B (zh) | 一种数据推荐方法、相关装置和数据推荐系统 | |
KR20200045440A (ko) | 신뢰성 있는 이니셜라이저를 사용하는 비밀 공유 | |
Butterfield | Reconsidering relativistic causality | |
US12015691B2 (en) | Security as a service for machine learning | |
Phan | The Yoneda algebra of a graded Ore extension | |
CN116975918A (zh) | 基于隐私保护的模型训练方法及装置 | |
Wang | Using BBPSO algorithm to estimate the Weibull parameters with censored data | |
Hazra et al. | On some generalized orderings: In the spirit of relative ageing | |
Cattani et al. | A Class of Solutions for the Hybrid Kinetic Model in the Tumor‐Immune System Competition | |
Ma et al. | Some induced correlated aggregating operators with interval grey uncertain linguistic information and their application to multiple attribute group decision making | |
Cao et al. | A statistical cohomogeneity one metric on the upper plane with constant negative curvature | |
US20240161038A1 (en) | Locality Sensitive Hashing to Generate N-dimensional Vectors of Risks and Conduct Risk Analysis | |
Yurdem et al. | Federated learning: Overview, strategies, applications, tools and future directions | |
Lin et al. | System reliability for joint minimal paths under time constraint | |
CN118194039A (zh) | 训练方法、数据处理方法、装置、电子设备、存储介质及程序产品 |