ES2618807T3 - Elementos de información concordantes - Google Patents

Elementos de información concordantes Download PDF

Info

Publication number
ES2618807T3
ES2618807T3 ES10788263.1T ES10788263T ES2618807T3 ES 2618807 T3 ES2618807 T3 ES 2618807T3 ES 10788263 T ES10788263 T ES 10788263T ES 2618807 T3 ES2618807 T3 ES 2618807T3
Authority
ES
Spain
Prior art keywords
information elements
node
hash values
hash
network
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES10788263.1T
Other languages
English (en)
Inventor
Madis Kaal
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Skype Ltd Ireland
Original Assignee
Skype Ltd Ireland
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Skype Ltd Ireland filed Critical Skype Ltd Ireland
Application granted granted Critical
Publication of ES2618807T3 publication Critical patent/ES2618807T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1068Discovery involving direct consultation or announcement among potential requesting and potential source peers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/306User profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4552Lookup mechanisms between a plurality of directories; Synchronisation of directories, e.g. metadirectories
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/54Presence management, e.g. monitoring or registration for receipt of user log-on information, or the connection status of the users

Abstract

Un método de identificar la presencia de elementos de información concordantes en una red (100), incluyendo la red un primer nodo (102) y un segundo nodo (104), incluyendo el método: usar un esquema hashing para generar (S402) un conjunto de primeros valores hash a partir de un conjunto respectivo de primeros elementos de información almacenados en el primer nodo; transmitir (S404) el conjunto de primeros valores hash por la red al segundo nodo; comparar el conjunto de primeros valores hash en el segundo nodo con un conjunto de segundos valores hash generados, usando el esquema hashing, a partir de un conjunto respectivo de segundos elementos de información almacenados en la red, para determinar por ello (S408) al menos un valor hash concordante entre el conjunto de primeros valores hash y el conjunto de segundos valores hash; usar el al menos valor hash único concordante determinado para identificar (S412) la presencia de al menos un elemento de información concordante entre el conjunto de primeros elementos de información y el conjunto de segundos elementos de información, donde el esquema hashing se elige de modo que un valor hash único en el esquema hashing indique un número suficiente de elementos de información para evitar que el valor hash único sea usado como un identificador de un único elemento de información, de tal manera que la transmisión del conjunto de primeros valores hash al segundo nodo no describa el conjunto de primeros elementos de información al segundo nodo.

Description

5
10
15
20
25
30
35
40
45
50
55
60
65
DESCRIPCION
Elementos de informacion concordantes Campo de la invencion
Esta invencion se refiere a hallar elementos de informacion concordantes en una red.
Antecedentes
Una red incluye tipicamente una pluralidad de nodos que pueden comunicar uno con otro, de tal manera que cada nodo en la red sea capaz de comunicar con al menos otro nodo en la red. La red puede ser por ejemplo Internet, pero se puede usar alternativa o adicionalmente otras redes. Los nodos pueden comunicar en la red usando enlaces que pueden ser enlaces directos entre los nodos, o alternativamente los enlaces pueden ser enlaces indirectos a traves de la red, de tal manera que los nodos comuniquen uno con otro mediante al menos otro nodo en la red.
La red puede emplear un sistema de comunicaciones a base de paquetes. Los sistemas de comunicaciones a base de paquetes permiten al usuario de un dispositivo, tal como un ordenador personal, comunicar a traves de la red. Un tipo de sistema de comunicaciones a base de paquetes usa una topologfa entre iguales (“P2P”) incorporada en protocolos de propiedad. Para permitir el acceso a un sistema entre iguales, el usuario debe ejecutar software de cliente P2P proporcionado por un proveedor de software P2P en su ordenador, y registrarse en el sistema P2P. Cuando el usuario se registra en el sistema P2P, un servidor le suministra el software de cliente con un certificado digital. Una vez que el software de cliente ha sido provisto del certificado, se puede establecer posteriormente y dirigir la comunicacion entre usuarios del sistema P2P sin el uso adicional de un servidor. En particular, los usuarios pueden establecer sus propias rutas de comunicacion a traves del sistema P2P en base al intercambio de uno o mas certificados digitales (o certificados de identidad de usuario, “UIC”), que permiten el acceso al sistema P2P. El intercambio de los certificados digitales entre usuarios proporciona prueba de las identidades de los usuarios y de que estan adecuadamente autorizados y autenticados en el sistema P2P para entrar en comunicacion. Otros detalles acerca de tal sistema P2P se describen en WO 2005/009019.
Un primer nodo en la red puede almacenar detalles de contactos de un primer usuario del primer nodo. El primer nodo, o el primer usuario, puede estar interesado en determinar si algunos de los contactos del primer usuario tambien son contactos de un segundo usuario en un segundo nodo en la red. Un metodo para determinar si hay contactos comunes entre los usuarios primero y segundo es que el primer nodo envfe una lista de los contactos del primer usuario al segundo nodo. El segundo nodo puede comparar entonces los contactos de los usuarios primero y segundo para hallar contactos comunes y puede devolver los resultados al primer nodo.
En otro escenario, puede usarse un sitio de red local en la red para hallar en la red usuarios que comparten intereses comunes. Los usuarios pueden transmitir identificadores de sus intereses a un nodo del sitio de red local, de modo que el sitio de red local pueda comparar los intereses de usuarios diferentes para identificar usuarios con intereses comunes. Entonces se puede enviar una recomendacion a al menos uno de los usuarios identificados para indicar que los usuarios identificados comparten intereses comunes.
En otro escenario en el que la red es una red de comparticion de archivos, algunos nodos en la red son nodos de comparticion de archivos, por lo que los archivos almacenados en los nodos de comparticion de archivos pueden ser recuperados por otros nodos en la red. Cada nodo de comparticion de archivos envfa identificadores, tal como nombres de archivo, de los archivos almacenados en el nodo de comparticion a un nodo de mdice central. Un usuario que desee hallar un archivo deseado en la red de comparticion de archivos puede enviar una peticion al nodo de mdice central identificando el archivo deseado. El nodo de mdice central puede comparar la peticion con los identificadores recibidos de los nodos de comparticion para hallar las concordancias. Si el nodo de mdice central determina que el archivo deseado esta almacenado en un nodo de comparticion, entonces el nodo de mdice central puede informar al usuario que busca el archivo deseado acerca de la posicion del nodo de comparticion en la red. El usuario puede contactar entonces con el nodo de comparticion para pedir el archivo deseado.
El autor de la invencion ha observado que hay dos problemas comunes a los escenarios separados descritos anteriormente. En primer lugar, la transmision de los detalles de contactos, los identificadores de intereses o los identificadores de archivos por la red requiere que se transmita una gran cantidad de datos a traves de la red. Esto reduce los recursos de red que estan disponibles para otros fines. En segundo lugar, puede haber un problema de seguridad o privacidad en los escenarios descritos anteriormente. Por ejemplo, es posible que un primer usuario no desee revelar sus contactos a un segundo usuario. Como otro ejemplo, los usuarios podnan no querer revelar sus intereses a un sitio de red local. Ademas, un nodo de comparticion puede no desear revelar los archivos almacenados en el nodo de comparticion a un nodo de mdice central y tambien un usuario que busca un archivo deseado puede no querer revelar el archivo deseado al nodo de mdice central.
SHIN-YAN CHIOU y colaboradores: “Common friends discovery with privacy and authenticity”, INFORMATION ASSURANCE AND SECURITY, 2009. IAS '09. FIFTH INTERNATIONAL CONFERENCE ON, IEEE, PISCATAWAY,
5
10
15
20
25
30
35
40
45
50
55
60
65
NJ, Estados Unidos de America, 18 agosto 2009 (2009-08-18), paginas 337-340, XP031544547, ISBN: 978-0-76953744-3 describe un algoritmo para una aplicacion de red no centralizada que permite a usuarios de una red social ver amigos que son comunes a cada usuario.
WO2007106791 describe una configuracion P2P para un centro de llamadas entrantes usando una tabla hash distribuida (DHT) para enrutar llamadas a nodos en la red del centro de llamadas.
WO2008041173 describe incorporar a la eficiencia de DHT el mas amplio alcance de un algoritmo de inundacion de modo que una peticion de contenido por parte del usuario pueda ser compartida en una red social.
US20040148506 describe un algoritmo hashing unidireccional para evitar que las compares envfen mensajes electronicos no deseados a abonados.
MARCO VON ARB y colaboradores: “VENETA: Serverles friend-of-friend detection in mobile social networking”, NETWORKING AND COMMUNICATIONS, 2008. WIMOB '08. IEEE INTERNATIONAL CONFERENCE ON WIRELSS AND MOBILES COMPUTING, IEEE, PISCATAWAY, NJ, Estados Unidos de America, 12 octubre 2008 (2008-10-12), paginas 184-189,XP031350713,ISBN: 978-0-7695-3393-3 describe una aplicacion para redes moviles que asigna valores hash a listas de contactos del usuario de modo que los contactos comunes puedan coincidir y los usuarios pueden ser presentados uno a otro como amigos mutuos de un contacto comun.
Resumen
En un primer aspecto de la invencion se facilita un metodo de identificar la presencia de elementos de informacion concordantes en una red, incluyendo la red un primer nodo y un segundo nodo, incluyendo el metodo: usar un esquema hashing para generar un conjunto de primeros valores hash a partir de un conjunto respectivo de primeros elementos de informacion almacenados en el primer nodo; transmitir el conjunto de primeros valores hash por la red al segundo nodo; comparar el conjunto de primeros valores hash en el segundo nodo con un conjunto de segundos valores hash generados, usando el esquema hashing, de un conjunto respectivo de segundos elementos de informacion almacenados en la red, para determinar por ello al menos un valor hash concordante entre el conjunto de primeros valores hash y el conjunto de segundos valores hash; usar el al menos valor hash unico concordante determinado para identificar la presencia de al menos un elemento de informacion concordante entre el conjunto de primeros elementos de informacion y el conjunto de segundos elementos de informacion, donde el esquema hashing se elige de modo que un valor hash unico en el esquema hashing indique un numero suficiente de elementos de informacion para evitar que el valor hash unico sea usado como un identificador de un unico elemento de informacion, de tal manera que la transmision del conjunto de primeros valores hash al segundo nodo no describa el conjunto de primeros elementos de informacion al segundo nodo.
En un segundo aspecto de la invencion se facilita una red incluyendo: un primer nodo incluyendo medios para usar un esquema hashing para generar un conjunto de primeros valores hash a partir de un conjunto respectivo de primeros elementos de informacion almacenados en el primer nodo; y un segundo nodo incluyendo: medios para recibir el conjunto de primeros valores hash por la red; medios para comparar el conjunto de primeros valores hash con un conjunto de segundos valores hash generados, usando el esquema hashing, a partir de un conjunto respectivo de segundos elementos de informacion almacenados en la red, para determinar por ello al menos un valor hash concordante entre el conjunto de primeros valores hash y el conjunto de segundos valores hash, donde el al menos unico valor hash concordante determinado se usa para identificar la presencia de al menos un elemento de informacion concordante entre el conjunto de primeros elementos de informacion y el conjunto de segundos elementos de informacion, y donde el esquema hashing se elige de modo que un valor hash unico en el esquema hashing indique un numero suficiente de elementos de informacion para evitar que el valor hash unico sea usado como un identificador de un unico elemento de informacion, de tal manera que la transmision del conjunto de primeros valores hash al segundo nodo no describa el conjunto de primeros elementos de informacion al segundo nodo.
Realizaciones de la presente invencion proporcionan un metodo de identificar elementos de informacion mantenidos en comun en un sistema entre iguales sin describir los elementos de informacion mantenidos a otro igual en la red. Esto se logra comparando valores hash generados a partir de los elementos de informacion asegurando al mismo tiempo que el numero de posibles valores hash en el esquema hashing sea menor, y preferiblemente significativamente menor, que el numero total de elementos de informacion en el sistema entre iguales. Los valores hash colisionan asf fuertemente a traves de todo el conjunto de elementos de informacion en el sistema. Esto asegura que no se puede establecer una correspondencia de 1:1 de valores hash y elementos de informacion, de tal manera que describir un valor hash a un nodo no describa el elemento de informacion usado para generar el valor hash al nodo. De esta forma, la invencion permite identificar elementos de informacion mantenidos en comun sin transmitir innecesariamente los elementos de informacion por la red (y por ello usar innecesariamente recursos de red) a un nodo, y sin describir o identificar de forma unica los elementos de informacion al nodo.
Se conocen esquemas hashing que pueden ser usados para generar valores hash a partir de elementos de informacion, de tal manera que los valores hash puedan ser comparados mas bien que los elementos de
5
10
15
20
25
30
35
40
45
50
55
60
65
informacion con el fin de hallar elementos de informacion concordantes. Hashing es una tecnica para compactar informacion a identificadores (valores hash), de tal forma que tanto el contenido de los elementos de informacion como el orden de los elementos de informacion en la lista de elementos de informacion se tomen en cuenta al generar valores hash a partir de una lista de elementos de informacion. Tfpicamente, los valores hash son mas pequenos que los elementos de informacion a partir de los que se generan. La situacion en la que un solo valor hash corresponde a mas de un elemento de informacion se denomina “colision hash”. Donde se usa un esquema hashing en el que no hay colisiones hash, la identificacion de valores hash concordantes es igual a una identificacion de elementos de informacion concordantes identificados por los valores hash.
La utilizacion de valores hash mas bien que los elementos de informacion propiamente dichos reduce la cantidad de datos transmitidos por la red y oculta el contenido de los elementos de informacion. Se puede generar valores hash usando un algoritmo hashing unidireccional. Las funciones hash son por definicion irreversibles, lo que quiere decir que el contenido original a partir del que se calculo el hash no pueden ser creados de nuevo a partir del valor hash, protegiendo por ello el contenido original. Esto asume que el contenido es suficientemente grande para hacer inviable un ataque de fuerza bruta (que implica generar valores hash de todas las variaciones posibles del contenido). Por lo tanto, se puede ver que el uso de los valores hash proporciona un nivel de seguridad para proteger contra la descripcion de elementos de informacion.
Dado que los valores hash son generalmente mas pequenos que los elementos de informacion a partir de los que se generan, es posible que mas de un elemento de informacion genere el mismo valor hash usando una funcion hash particular, es decir, hay una colision hash. Tfpicamente, las funciones hash se eligen con esmero para minimizar el numero de colisiones hash en la red. Minimizando el numero de colisiones hash, los valores hash pueden ser usados para indexar grandes elementos de datos para ahorrar espacio de mdice. Los elementos de datos hallados por mdice hash pueden ser comparados adicionalmente para eliminar registros no deseados que se recuperaron a causa de una colision hash. Dado que se minimiza el numero de colisiones hash en el esquema hashing, se minimiza el numero de comparaciones de los elementos de datos grandes que se requieren. Tambien se puede usar valores hash para detectar duplicados en grandes conjuntos de datos donde comparar directamente elementos de datos con otros muchos elementos de datos sena prohibitivamente complicado. Los elementos de datos son sometidos primero a hash, y luego se comparan los valores hash resultantes. En todos estos sistemas, el esquema hashing se elige para minimizar, o si es posible eliminar, las apariciones de colisiones hash. Se puede afirmar que el esquema hashing tiene 'unicidad' si no hay colisiones hash, y que tiene casi unicidad si hay un pequeno numero de colisiones hash.
En algunas aplicaciones, las funciones hash se eligen de tal forma que elementos de informacion similares produzcan valores hash que tambien sean similares. Esta propiedad puede ser usada para facilitar la distribucion de datos en 'intervalos' separados pero conservando todavfa una propiedad de unicidad hash.
En algunos sistemas, tal como un sistema de comunicaciones P2P como el descrito anteriormente, los problemas de privacidad hacen indeseable revelar informacion mantenida en un nodo a otro nodo de tal forma que la informacion se pueda ver, o incluso ser identificada de forma unica por el otro nodo. Por ejemplo, en un sistema P2P, aunque la presentacion de certificados digitales proporciona suficiente confianza acerca de la identidad de un usuario para establecer comunicacion con dicho usuario a traves de la red, los certificados digitales podnan no proporcionar confianza suficiente para describir elementos de informacion a dicho usuario. Aunque el uso de un esquema hashing proporciona un grado de privacidad con respecto a los elementos de informacion, la propiedad de unicidad generalmente deseable (o casi unicidad) de las funciones hash hace posible la identificacion de elementos de informacion que generaron los valores hash creando un mapeado precalculado entre elementos de informacion y sus valores hash. Esto se conoce como un “ataque de diccionario” en el que todos los valores hash posibles son precalculados y almacenados en un “diccionario” en asociacion con los elementos de informacion correspondientes a partir de los se generan. Si se conoce un valor hash, el elemento de informacion que genera el valor hash puede ser determinado entonces usando el “diccionario”.
Sin embargo, en realizaciones de la presente invencion, el esquema hashing se elige intencionadamente de tal manera que genere valores hash que colisionen tan frecuentemente que un valor hash no pueda ser usado fiablemente como un identificador unico de un elemento de informacion. Esto es contrario a la practica hashing en la mayona de las aplicaciones anteriores en las que el esquema hashing se elige para minimizar la aparicion de colisiones hash.
Las realizaciones de la presente invencion son especialmente utiles en sistemas donde diferentes elementos de informacion son mantenidos en nodos diferentes mientras que los nodos o usuarios de los nodos implicados no conffan plenamente uno en otro. Tales sistemas pueden ser redes P2P para uso en comparticion de archivos o mensajena instantanea. En una realizacion, el metodo puede ser usado para hallar informacion potencialmente interesante, tal como contactos compartidos en comun entre usuarios en un sistema de mensajena instantanea P2P. En otra realizacion, el metodo puede ser usado para localizar fuentes potenciales de elementos de informacion sin revelar exactamente que informacion se esta buscando, tal como localizar un archivo en un sistema de comparticion de archivo P2P. En otra realizacion, el metodo puede ser usado para identificar usuarios en la red con intereses comunes sin revelar los intereses propiamente dichos.
5
10
15
20
25
30
35
40
45
50
55
60
65
Breve descripcion de los dibujos
Para una mejor comprension de la presente invencion y para mostrar como la misma se puede poner en practica, ahora se hara referencia, a modo de ejemplo, a los dibujos siguientes en los que:
La figura 1 es un diagrama esquematico de un sistema de comunicaciones segun una realizacion preferida.
La figura 2 representa una interfaz de usuario segun una realizacion preferida.
La figura 3 representa la red de una primera realizacion.
La figura 4 representa un diagrama de flujo de un proceso para determinar contactos comunes en la primera realizacion.
La figura 5 representa la red de una segunda realizacion.
La figura 6 representa un diagrama de flujo de un proceso para localizar archivos en la segunda realizacion.
La figura 7 representa la red de una tercera realizacion.
Y la figura 8 representa un diagrama de flujo de un proceso para identificar usuarios con intereses comunes en la tercera realizacion.
Descripcion detallada de realizaciones preferidas
En realizaciones de la invencion un sistema de comunicaciones P2P opera en una red. La figura 1 ilustra un sistema de comunicaciones P2P a base de paquetes 100. Un primer usuario del sistema de comunicaciones (usuario A 112) opera un terminal de usuario 102, que se representa conectado al resto de la red 111. El terminal de usuario 102 puede ser, por ejemplo, un telefono movil, un asistente digital personal (“PDA”), un ordenador personal (“PC”) (incluyendo, por ejemplo, PCs Windows™, Mac OS™ y Linux™), un dispositivo de juegos de azar u otro dispositivo embebido capaz de conectar con la red 111. La red 111 puede ser, por ejemplo, Internet. El dispositivo de usuario 102 esta dispuesto para recibir y enviar informacion de/a un usuario 112 del dispositivo. En una realizacion preferida, el dispositivo de usuario 102 incluye una pantalla tal como una pantalla y un dispositivo de entrada tal como un teclado, joystick, pantalla tactil, teclado y/o raton. El dispositivo de usuario 102 esta conectado a la red 112 mediante el enlace 106.
Observese que, en realizaciones alternativas, el terminal de usuario 102 puede conectar con la red de comunicaciones 111 mediante redes intermedias adicionales no representadas en la figura 1. Por ejemplo, si el terminal de usuario 102 es un dispositivo movil, entonces puede conectar con la red de comunicaciones 111 mediante una red celular movil (no representada en la figura 1), por ejemplo una red GSM o UMTS.
El terminal de usuario 102 ejecuta un cliente de comunicacion 116, proporcionado por el proveedor de software. El cliente de comunicacion 116 es un programa de software ejecutado en un procesador local en el terminal de usuario 102.
Un ejemplo de una interfaz de usuario 200 del cliente de comunicacion 116 ejecutado en el terminal de usuario 102 del primer usuario 112 se ilustra en la figura 2. Observese que la interfaz de usuario 200 puede ser diferente dependiendo del tipo de terminal de usuario 102. Por ejemplo, la interfaz de usuario puede ser menor o presentar informacion de forma diferente en un dispositivo movil, debido al pequeno tamano de la pantalla. En el ejemplo de la figura 2, la interfaz de usuario cliente 200 visualiza el nombre de usuario 202 de “Usuario_A” 112 en el sistema de comunicaciones. La interfaz de usuario cliente 200 incluye una pestana 204 etiquetada “contactos”, y cuando se selecciona esta pestana, los contactos del usuario A en el sistema de comunicaciones P2P son visualizados en una hoja 206 debajo de la pestana 204. En la interfaz de usuario ejemplar de la figura 2, se muestran cuatro contactos de otros usuarios del sistema de comunicaciones enumerados en la hoja 206, teniendo los contactos los nombres de usuario “Usuario B”, “Amy”, “Rosie” y “Martyn” como se representa en la figura 2. Cada uno de estos contactos ha autorizado al usuario A 112 del cliente 116 que vea sus detalles de contactos.
Volviendo a la figura 1, el nodo 102 incluye un almacenamiento 108 para contener informacion o datos. La informacion esta tfpicamente en forma de elementos de informacion discretos. Los elementos de informacion pueden ser, por ejemplo, detalles de los contactos del usuario 112 o identificadores de archivos almacenados en el nodo 102 o identificadores de intereses del usuario 112. El enlace 106 conecta el dispositivo de usuario 102 con un segundo dispositivo de usuario 104 por la red 111. El enlace 106 puede ser una conexion directa entre nodos 102 y 104, o alternativamente el enlace 106 puede ser una conexion indirecta entre nodos 102 y 104 mediante otros nodos en el resto de la red 111. El nodo 104 esta asociado con el usuario B 114 e incluye un cliente de comunicacion 118 y un almacenamiento de informacion 110 similares a los del nodo 102.
5
10
15
20
25
30
35
40
45
50
55
60
65
Se puede querer identificar la presencia de elementos de informacion concordantes entre elementos de informacion almacenados en los almacenamientos 108 y 110. Sin embargo, debido a cuestiones de seguridad y privacidad, que pueden ser especialmente importantes en sistemas P2P, puede ser indeseable revelar elementos de informacion a otro nodo, o incluso identificar de forma unica los elementos de informacion para el otro nodo.
Usando un esquema hashing como el descrito anteriormente, el nodo 102 puede generar una lista de valores hash usando una funcion hashing a partir de los elementos de informacion en el almacenamiento 108 en el nodo 102 y transmitir los valores hash al nodo 104 mediante el enlace 106. El nodo 104 puede generar valores hash de la lista 110 a partir de elementos de informacion en el almacenamiento 110 en el nodo 104 usando la misma funcion hashing y comparar los valores hash con los valores hash recibidos del nodo 102 para hallar valores hash concordantes. Si el esquema hashing no tiene colisiones hash, la identificacion de valores hash concordantes es igual a una identificacion de elementos de informacion concordantes identificados por los valores hash.
Las funciones hash con unicidad o casi unicidad permiten la identificacion de elementos de informacion que generaron los valores hash. Por ejemplo, si el nodo 102 transmite una lista de valores hash al nodo 104 indicando los elementos de informacion en el almacenamiento 108, y los valores hash son generados usando un esquema hashing que no tiene valores hash en colision, entonces si uno de los valores hash recibidos en el nodo 104 corresponde un valor hash generado a partir de un elemento de informacion en el almacenamiento 110, entonces el nodo 104 puede concluir que el nodo 102 tiene un elemento de informacion que concuerda con el elemento de informacion de la lista 110 que se uso para generar el valor hash concordante. Ademas, si el nodo 104 es capaz de determinar un elemento de informacion que generana el valor hash, entonces el nodo 104 puede concluir que dicho elemento de informacion esta almacenado en el nodo 102. En esquemas hashing que tienen casi unicidad, aunque puede no ser posible identificar de forma unica un elemento de informacion a partir de un valor hash concordante, el elemento de informacion puede ser identificado como uno de solamente unos pocos elementos de informacion posibles.
El autor de la invencion ha observado que se puede usar valores hash concordantes para identificar la presencia de elementos de informacion concordantes usando un esquema hashing en el que el numero de valores hash unicos sea menor que el numero de elementos de informacion unico unicos en el sistema. Esto quiere decir que el mismo valor hash es generado a partir de mas de un elemento de informacion unico en el esquema hashing. El numero de elementos de informacion unicos indicados por un valor hash en el esquema hashing puede ser elegido dependiendo del contexto en el que se usan los valores hash. Por ejemplo, en un contexto donde los elementos de informacion son detalles de contactos de un usuario, cada valor hash puede indicar preferiblemente cientos de elementos de informacion, mientras que en otro contexto donde los elementos de informacion son identificadores de archivos almacenados en un nodo de comparticion, cada valor hash puede indicar preferiblemente menos elementos de informacion, por ejemplo aproximadamente diez elementos de informacion. En realizaciones preferidas, el numero de valores hash unicos es al menos un orden de magnitud menor que el numero de elementos de informacion unicos en el sistema. En estas realizaciones preferidas, se genera un valor hash unico a partir de al menos 10 elementos de informacion unicos. Como ejemplo, el numero de elementos de informacion unicos puede ser 300 millones, y, dependiendo del contexto, un esquema hashing adecuado puede ser un CRC de 16 bits que tiene un total de 65536 valores hash unicos, de tal manera que cada valor hash indica una media de 4500 elementos de informacion. Por lo tanto, describiendo el valor hash a otro nodo en la red, el elemento de informacion no puede ser identificado de forma unica (en el ejemplo, el elemento de informacion puede ser uno de 4500 elementos de informacion), de modo que se evita que el otro nodo use el valor hash como un identificador de un unico elemento de informacion. El valor hash solamente puede ser usado por el otro nodo para identificar que el elemento de informacion es uno de un grupo de elementos de informacion que generan el mismo valor hash.
Ahora se describiran tres realizaciones especialmente utiles. La primera realizacion se describe con referencia a las figuras 3 y 4, la segunda realizacion se describira con referencia a las figuras 5 y 6 y la tercera realizacion se describira con referencia a las figuras 7 y 8.
La primera realizacion especialmente util se refiere a hallar contactos comunes entre usuarios en una red. La figura 3 representa los nodos de usuario 102 y 104 conectados mediante el enlace 106. El almacenamiento 108 en el nodo 102 contiene los nombres de usuario de contactos del usuario A 112. En el ejemplo representado en la figura 3, el almacenamiento 108 contiene los nombres de usuario “Amy”, “Rosie” y “Martyn”. El almacenamiento 110 en el nodo 104 contiene los nombres de usuario de contactos del usuario B 114. En el ejemplo representado en la figura 3, el almacenamiento 110 contiene los nombres de usuario “Madis”, “Martyn”, “Sonia” y “Michael”. Al usuario A 112 del nodo 102 le gustana determinar si algunos de sus contactos tambien son contactos del usuario B 114 del nodo 104, pero el usuario A no quiere describir su lista de contactos al usuario B en el nodo 104. Para hacerlo, se usa el metodo representado en la figura 4.
En el paso S402, el nodo 102 genera valores hash de los nombres de usuario contacto almacenados en el almacenamiento 108 segun un esquema hashing como se ha descrito anteriormente. En el paso S404, los valores hash de contactos del usuario A son transmitidos por la red en enlace 106 al nodo 104. Como se ha descrito anteriormente, un valor hash en el esquema hashing corresponde a mas de un nombre de usuario contacto (es
5
10
15
20
25
30
35
40
45
50
55
60
65
dedr, la relacion de valores hash a los nombres de usuario contacto en el sistema es 1:muchos). Por lo tanto, el nodo 104 no puede determinar fiablemente los contactos de usuario A 112 usando los valores hash proporcionados a partir del nodo 102.
En el paso S406, el nodo 104 genera valores hash de los nombres de usuario contacto almacenados en el almacenamiento 110 segun el mismo esquema hashing que el usado para generar los valores hash de los nombres de usuario contacto del usuario A 112.
En el paso S408, los valores hash recibidos del nodo 102 son comparados con los valores hash generados en el nodo 104 para hallar valores hash concordantes. En el paso S410, los valores hash concordantes son transmitidos por la red al nodo 102 mediante el enlace 106. En el paso S412, el nodo 102 determina los nombres de usuario contacto que se usaron para generar los valores hash concordantes, con el fin de determinar contactos comunes entre el usuario A 112 y el usuario B 114.
En el ejemplo representado en la figura 3, el usuario en el sistema con nombre de usuario “Martyn” es un contacto tanto del usuario A 112 como del usuario B 114. El valor hash generado para el nombre de usuario “Martyn” se hallara como un valor hash concordante en el paso S408, y luego, en el paso S412, se determinara que Martyn es un contacto comun del usuario A 112 y del usuario B 114. El esquema hashing se elige para tener significativamente menos valores hash unicos que usuarios en el sistema, de tal manera que un valor hash pueda ser generado a partir de muchos nombres de usuario. Sin embargo, hay significativamente mas valores hash unicos en el esquema hashing que nombres de usuario contacto en los almacenamientos 108 y 110. Como un ejemplo, en todo el sistema de comunicaciones puede haber 300 millones de usuarios con nombres de usuario diferentes. Un esquema hashing adecuado es un CRC de 16 bits que tiene un espacio clave total de 65.536, es decir, hay 65.536 valores hash unicos que pueden ser usados para indicar los nombres de usuario. En este ejemplo, cada valor hash unico indicana una media de 4500 nombres de usuario en todo el sistema P2P, pero el usuario A tiene tres contactos y el usuario B tiene cuatro contactos, de modo que es improbable que mas de un contacto del usuario A o el usuario B sea indicado por el mismo valor hash. En el ejemplo representado en la figura 3, la probabilidad de una colision hash aleatoria viene dada por: (numero de contactos del usuario A) x (numero de contactos del usuario B)/(numero de valores hash unicos en el esquema hashing) = 12/65536 “ 0,00018. Esto es tan bajo que, en este caso, cualesquiera valores hash concordantes pueden ser indicativos de contactos concordantes.
La razon por la que se puede suponer que los valores hash concordantes son indicativos de contactos concordantes a pesar de que cada valor hash representa 4500 nombres de usuario contacto como media en este caso es porque el hecho de que los usuarios 112 y 114 tengan contactos comunes es mas probable que el hecho de que dos contactos diferentes del usuario 112 o del usuario 114 generen aleatoriamente el mismo valor hash. Esto es verdadero porque hay una asociacion entre los contactos del usuario A 112 y los contactos del usuario B 114. En particular, el usuario A 112 conoce al usuario B (el usuario B 114 podna ser un contacto del usuario A 112, o el usuario A 112 simplemente podna tener idea del usuario B 114), lo que quiere decir que es mucho mas probable que un contacto del usuario B 114 sea un contacto de usuario A que un usuario completamente aleatorio en la red 111. De esta forma, eligiendo un esquema hashing adecuado, puede asegurarse que, al comparar contactos de usuarios que se conocen entre sf, los valores hash concordantes indican predominantemente contactos concordantes mas bien que colision hash de contactos diferentes. Esto permite suponer que los valores hash concordantes son indicativos de contactos concordantes. Un escenario especialmente util en el que se puede usar el metodo es permitir que se ejecute una busqueda de Amigos de Amigos en nodos P2P sin revelar los nombres de contacto entre nodos P2P que participan en la busqueda, permitiendo al mismo tiempo la identificacion de contactos compartidos.
Este metodo no se limita al uso al determinar contactos comunes entre usuarios que se conocen. De hecho, el metodo funcionara con cualquier tipo de elemento de informacion almacenado en listas en nodos diferentes en la red, donde hay una asociacion entre las listas que incrementa la probabilidad de que los elementos de informacion en una lista esten presentes en la otra lista. Donde las listas estan asociadas de tal forma que la probabilidad de que uno de los elementos de informacion en una lista concuerde con uno de los elementos de informacion en la otra lista es mas grande que la probabilidad de que dos elementos de informacion diferentes sean identificados por el mismo valor hash en el esquema hashing, entonces se puede considerar que los valores hash concordantes son indicativos de elementos de informacion concordantes. De esta forma, se pueden hallar elementos de informacion comunes entre los almacenamientos 108 y 110 sin describir los elementos de informacion almacenados en el nodo 108 o en el nodo 110 a ningun nodo en la red. Un nodo que recibe los valores hash de los elementos de informacion en el almacenamiento 108 del nodo 102 no puede determinar los elementos de informacion en el almacenamiento 108 porque cada valor hash identifica muchos elementos de informacion diferentes en el esquema hashing.
En una realizacion alternativa, los valores hash de los elementos de informacion en el almacenamiento 108 pueden ser transmitidos a un tercer nodo (no representado en la figura 3), y los valores hash de los elementos de informacion en el almacenamiento 110 tambien pueden ser transmitidos al tercer nodo, donde los valores hash son comparados en el tercer nodo para hallar valores hash concordantes entre los almacenamientos 108 y 110. En esta realizacion, los valores hash no son enviados al nodo 104, lo que puede ser beneficioso si el usuario A 112 tiene mas confianza en el tercer nodo que en el nodo 104 y/o en el usuario B 114.
5
10
15
20
25
30
35
40
45
50
55
60
65
Una segunda realizacion especialmente util se describe con referencia a las figuras 5 y 6 y se refiere a comparticion de archivos en una red. La figura 5 representa un primer nodo de comparticion 502 que almacena Archivo 1, Archivo 2 y Archivo 3 en un almacenamiento 508 y un segundo nodo de comparticion 504 que almacena Archivo 11, Archivo 12 y Archivo 13 en un almacenamiento 510. Los nodos de comparticion 502 y 504 pueden comunicar con un mdice central 512 por la red mediante respectivos enlaces 506 y 507. De forma similar al enlace 106 descrito anteriormente, los enlaces 506 y 507 pueden ser enlaces directos o indirectos por la red.
En el paso S602, valores hash de los archivos almacenados en el nodo de comparticion 502 son generados en el nodo 502 usando un esquema hashing adecuado como se ha descrito anteriormente para evitar que los valores hash sean usados como identificadores de archivos unicos, y valores hash de los archivos almacenados en el nodo de comparticion 504 son generados en el nodo 504 usando el mismo esquema hashing. En el paso S604, los valores hash generados en el nodo 502 son transmitidos por el enlace 506 al mdice central 512, y los valores hash generados en el nodo 504 son transmitidos por el enlace 507 al mdice central 512. Los valores hash son almacenados en el almacenamiento 514 en el mdice central 512. Puede haber muchos nodos de comparticion en la red, pero solamente se representan dos (nodos 502 y 504) en la figura 5 para claridad. El almacenamiento 514 guarda los valores hash de tal forma que pueda asociar un valor hash en el almacenamiento 514 con uno de los nodos de comparticion (por ejemplo, 502 o 504) del que se recibio el valor hash. Esto se puede hacer por cualquier metodo adecuado tal como almacenando los valores hash de diferentes nodos de comparticion en listas diferentes, o enlazando cada valor hash en el almacenamiento 514 con el nodo de comparticion relevante.
Un nodo solicitante 102 tal como el nodo 102 representado en la figura 1 asociado con el usuario A 112 puede comunicar con el mdice central 112 por la red mediante un enlace 505. De forma similar al enlace 106 descrito anteriormente, el enlace 505 puede ser un enlace directo o indirecto por la red. El nodo 102 tiene un almacenamiento 108 que puede almacenar uno o mas valores hash de archivos que el nodo 102 deseana hallar en la red. Por ejemplo, como se representa en la figura 5, el usuario 112 desea hallar Archivo 2 y el almacenamiento 108 guarda “Hash 2” que corresponde a Archivo 2 almacenado en el nodo de comparticion 502. En el paso S606, el nodo solicitante transmite una peticion al mdice central usando el enlace 505 para localizar el archivo que corresponde al valor hash almacenado en el almacenamiento 108. La peticion incluye el valor hash “Hash 2” del almacenamiento 108.
En el paso S608, el valor hash recibido del nodo solicitante 102 es comparado con los valores hash almacenados en el almacenamiento 514 en el mdice central 512 para determinar cualesquiera valores hash concordantes. Se determina(n) la(s) posicion(es) de los nodos de comparticion que almacenan archivos identificados por los valores hash concordantes. Dado que un valor hash corresponde a muchos archivos en el esquema hashing, es posible que un valor hash concordante no indique el archivo correcto que el nodo 102 este buscando. Sin embargo, la(s) posicion(es) de los nodos de comparticion determinada(s) en el paso S608 es (son) devuelta(s) al nodo solicitante 102 en el paso S610. Por ejemplo, en el sistema representado en la figura 5, la posicion del primer nodo de comparticion 502 sera devuelta al nodo solicitante porque Hash 2 corresponde a Archivo 2 almacenado en el nodo 502. Sin embargo, tambien es posible que, por ejemplo, Hash 11 generado a partir de Archivo 11 sea el mismo que Hash 2 generado a partir de Archivo 2, de modo que la posicion del segundo nodo de comparticion 504 tambien pueda ser devuelta al nodo solicitante 102.
En el paso S612, el nodo solicitante 102 contacta el (los) nodo(s) de comparticion identificado(s) por la red para determinar si el archivo correcto (Archivo 2) esta almacenado en el (los) nodo(s) de comparticion. Esto se puede hacer transmitiendo un identificador del archivo al nodo de comparticion que es mas preciso que los valores hash usados previamente. El identificador mas preciso puede ser un valor hash diferente calculado usando un esquema hashing diferente. En el esquema hashing diferente, un valor hash puede identificar un archivo unico. Alternativamente, el identificador mas preciso puede ser el nombre de archivo del archivo. Se puede usar otros identificadores como sera evidente a los expertos. En el paso S614, el (los) nodo(s) de comparticion usa(n) el identificador mas preciso para determinar si el nodo de comparticion contiene el archivo que el nodo solicitante esta buscando. En el ejemplo representado en la figura 5, el primer nodo de comparticion 502 determinara que Archivo 2 es el archivo que el nodo solicitante 102 esta buscando, y entonces puede transmitir el archivo al nodo solicitante 102. Sin embargo, el segundo nodo de comparticion 504 determinara que Archivo 11 no es el archivo que el nodo solicitante esta buscando aunque Hash 11 concordase con Hash 2. Aunque el archivo en el nodo de comparticion es el archivo que el nodo solicitante esta buscando, el nodo de comparticion puede decidir no transmitir el archivo al nodo solicitante.
En algunas realizaciones, en el paso S612, el nodo solicitante tendra que enviar una autenticacion al nodo de comparticion. El nodo de comparticion comprobara entonces la autenticacion y solamente si el nodo solicitante es autenticado, el nodo de comparticion transmitira el archivo al nodo solicitante en el paso S614. En un sistema P2P como el descrito anteriormente, la autenticacion podna ser el certificado digital del nodo solicitante 102.
Cuando el metodo se usa en un sistema para comparticion de archivos tal como el descrito anteriormente en relacion a las figuras 5 y 6, el mdice central puede almacenar valores hash de archivos almacenados en nodos de comparticion, y dado que los valores hash no identifican archivos unicos, los archivos reales almacenados en los
5
10
15
20
25
30
35
40
45
50
55
60
65
nodos de comparticion no pueden ser determinados a partir de una inspeccion del mdice central. Ademas, el nodo solicitante 102 puede enviar una peticion al mdice central 512, y la informacion real que esta buscando no se describe. Sin embargo, todavfa es posible usar el mdice central para buscar archivos almacenados en nodos de comparticion en la red usando el metodo descrito anteriormente.
El metodo de la segunda realizacion especialmente util se describe anteriormente con referencia a las figuras 5 y 6 en relacion a elementos de informacion que son identificadores de archivos almacenados en los nodos. Sin embargo, el metodo puede ser usado para otros elementos de informacion donde se desea identificar nodos de comparticion que almacenan elementos de informacion particulares.
Una tercera realizacion especialmente util se describe con referencia a las figuras 7 y 8 y se refiere a hallar usuarios con intereses similares en una red. La figura 7 representa un primer nodo de usuario l02 que esta asociado con el usuario A 112. El almacenamiento 108 en el nodo 102 contiene identificadores de intereses de usuario A 112. Igualmente, el nodo 702 esta asociado con el usuario C 710 e incluye un almacenamiento 708 que contiene identificadores de intereses de usuario C 710. Un nodo central 712 en la red puede comunicar con el nodo 102 mediante el enlace 705 y puede comunicar con el nodo 702 mediante el enlace 706. De forma similar al enlace 106 descrito anteriormente, los enlaces 705 y 706 pueden ser enlaces directos o indirectos por la red.
Como ejemplos, se puede usar URLs y palabras clave de busqueda como identificadores de los intereses de un usuario. Las imagenes que un usuario ve en una base de datos de imagenes tambien pueden usarse como identificadores de los intereses del usuario.
En el paso S802, el nodo 102 genera un conjunto de valores hash de los identificadores de los intereses en el almacenamiento 108 usando un esquema hashing adecuado como el descrito anteriormente. Igualmente, el nodo 702 genera un conjunto de valores hash a partir de los identificadores de los intereses en el almacenamiento 708 usando el mismo esquema hashing. En el paso S804, el conjunto de valores hash generados en el nodo 102 es transmitido al nodo central 712 usando el enlace 705, y el conjunto de valores hash generado en el nodo 702 es transmitido al nodo central 712 usando el enlace 706. Los conjuntos de valores hash son almacenados en el nodo central 712. En el ejemplo representado en la figura 7, el conjunto de valores hash recibido del nodo 102 se almacena en un almacenamiento 714 y el conjunto de valores hash recibido del nodo 702 se almacena en un almacenamiento 716. En otras realizaciones, los conjuntos de valores hash recibidos de diferentes nodos son almacenados en el mismo almacenamiento en el nodo central 712, teniendo el nodo central 712 algun mecanismo para identificar el nodo del que se recibieron los conjuntos de valores hash.
En el paso S806, el conjunto de valores hash recibido del nodo 102 es comparado con el conjunto de valores hash recibido del nodo 702 en el nodo central 712 para hallar valores hash concordantes entre los conjuntos. En el paso S808, se cuenta el numero de valores hash concordantes entre los conjuntos. El numero de valores hash concordantes da una indicacion sobre si los usuarios 112 y 710 tienen intereses similares. Dado que en el esquema hashing cada valor hash identifica muchos intereses diferentes, algunos valores hash concordantes pueden no estar relacionados con intereses concordantes. De hecho, si los intereses de los usuarios 112 y 710 se seleccionasen de forma completamente aleatoria a partir de todos los intereses que pueden ser identificados en el sistema, habna un numero esperado de valores hash concordantes entre los dos conjuntos que dependena del tamano de los dos conjuntos de valores hash y del numero de valores hash unicos en el esquema hashing usado para generar los valores hash.
En el paso S810, se determina si el numero de valores hash concordantes es mayor que el numero esperado de valores hash concordantes entre los dos conjuntos de intereses si los intereses se seleccionaron aleatoriamente. Si hay mas valores hash concordantes de los esperados, entonces eso indica que los usuarios 102 y 710 tienen intereses similares. El nivel de semejanza entre los intereses de los dos usuarios puede ser cuantificado por la cantidad que el numero de valores hash concordantes excede del numero esperado de valores hash concordantes. De hecho, es posible atribuir un valor de intensidad a la semejanza de los intereses entre los usuarios. Esta informacion puede ser usada para muchos fines. Por ejemplo, si el nodo central 712 se usa para alojar un grupo de red social, la intensidad de la semejanza entre dos usuarios que son parte del grupo de red social podna ser usada para uno de los usuarios para identificar el otro usuario como alguien que tiene intereses similares a los suyos propios.
Dado que el esquema hashing usa valores hash que no identifican intereses unicos, el metodo permite usar informacion referente a intereses de personas para localizar personas con intereses comunes sin revelar exactamente cuales son los intereses. Los valores hash almacenados en el nodo central 712 no pueden ser usados para identificar de forma unica los intereses de un usuario. Los sitios web que una persona visita pueden ser muy indicativos de los intereses que tiene una persona. Esto quiere decir que las URLs usados por un usuario pueden usarse como los identificadores de los intereses del usuario. Igualmente, se puede usar palabras clave de busqueda como los identificadores de los intereses. El numero de valores hash en comun entre dos listas puede ser considerado indicativo de intereses comunes.
El metodo tambien puede aplicarse a archivos, por ejemplo generando valores hash de contenido de archivo de
5
10
15
20
25
30
35
40
imagen de un sitio de comparticion de imagenes y comparando listas de valores hash entre dos usuarios puede determinate si les gusta ver imagenes similares. Por ejemplo, si un usuario medio ha visto 2000 imagenes de una base de datos de 2 millones de imagenes, entonces usar un valor hash de 16 bits (con 65536 valores hash unicos) identificana suficientemente bien imagenes en dos listas de imagenes vistas por usuarios mientras que cada valor hash concordana con alguna de 30 imagenes diferentes. Cada valor hash concordante incrementa la probabilidad de que otros valores hash concordantes hagan referencia de hecho a imagenes concordantes de las 30 posibilidades del sistema. Una vez que se ha hallado un numero suficiente de valores hash concordantes, entonces hay una alta probabilidad de que los dos usuarios hayan visto las mismas imagenes. En otros terminos, si hay gran numero de valores hash concordantes, entonces los dos usuarios son identificados como de intereses similares, y una vez que son identificados como de intereses similares, entonces hay una asociacion entre los conjuntos de intereses de un usuario y el conjunto de intereses del otro usuario. Esto puede considerarse similar a la primera realizacion especialmente util descrita anteriormente en la que estan asociadas las listas de contactos de usuarios que se conocen mutuamente. De la misma forma, donde dos usuarios tienen intereses similares, entonces los intereses estan asociados de tal manera que sea mas probable que otro valor hash concordante sea debido a un interes concordante mas bien que debido a una colision hash aleatoria de intereses diferentes. Por lo tanto, una vez que los usuarios 102 y 710 han sido identificados como de intereses similares, puede suponerse que mas valores hash concordantes identifican intereses concordantes.
En el ejemplo representado en la figura 7, ambos usuarios 102 y 710 tienen intereses 2 y 3 y los valores hash concordantes seran determinados en el nodo central 712 en el paso S806. Tener dos valores hash concordantes sera mas de lo esperado para el caso donde cada usuario tiene solamente 3 intereses como se representa en la figura 7 y asf se determinara que los usuarios 102 y 710 tienen intereses similares.
El metodo de la tercera realizacion especialmente util se describe anteriormente con referencia a las figuras 7 y 8 en relacion a elementos de informacion que son identificadores de intereses de usuarios. Sin embargo, el metodo puede ser usado para otros elementos de informacion donde se desee identificar nodos que tengan elementos de informacion similares.
Las realizaciones descritas anteriormente usan un esquema hashing con menos valores hash unicos que elementos de informacion unicos en el sistema de tal manera que un valor hash no pueda ser usado para identificar un elemento de informacion unico. Esto asegura la privacidad y la seguridad en el sistema dado que un nodo puede transmitir a otro nodo los valores hash generados a partir de elementos de informacion almacenados en el nodo y el otro nodo no puede determinar los elementos de informacion usando los valores hash. Por lo tanto, la privacidad y la seguridad se mejoran mientras que el metodo mantiene la capacidad de identificar la presencia de elementos de informacion concordantes en nodos diferentes en el sistema.
Aunque esta invencion se ha mostrado y descrito en particular con referencia a realizaciones preferidas, los expertos en la tecnica entenderan que se puede hacer varios cambios en la forma y el detalle sin apartarse del alcance de la invencion definido por las reivindicaciones anexas.

Claims (10)

  1. 5
    10
    15
    20
    25
    30
    35
    40
    45
    50
    55
    60
    65
    REIVINDICACIONES
    1. Un metodo de identificar la presencia de elementos de informacion concordantes en una red (100), incluyendo la red un primer nodo (102) y un segundo nodo (104), incluyendo el metodo:
    usar un esquema hashing para generar (S402) un conjunto de primeros valores hash a partir de un conjunto respectivo de primeros elementos de informacion almacenados en el primer nodo;
    transmitir (S404) el conjunto de primeros valores hash por la red al segundo nodo;
    comparar el conjunto de primeros valores hash en el segundo nodo con un conjunto de segundos valores hash generados, usando el esquema hashing, a partir de un conjunto respectivo de segundos elementos de informacion almacenados en la red, para determinar por ello (S408) al menos un valor hash concordante entre el conjunto de primeros valores hash y el conjunto de segundos valores hash;
    usar el al menos valor hash unico concordante determinado para identificar (S412) la presencia de al menos un elemento de informacion concordante entre el conjunto de primeros elementos de informacion y el conjunto de segundos elementos de informacion,
    donde el esquema hashing se elige de modo que un valor hash unico en el esquema hashing indique un numero suficiente de elementos de informacion para evitar que el valor hash unico sea usado como un identificador de un unico elemento de informacion, de tal manera que la transmision del conjunto de primeros valores hash al segundo nodo no describa el conjunto de primeros elementos de informacion al segundo nodo.
  2. 2. El metodo de la reivindicacion 1, donde el conjunto de segundos valores hash incluye una pluralidad de segundos valores hash y el conjunto de segundos elementos de informacion incluye una pluralidad respectiva de segundos elementos de informacion.
  3. 3. El metodo de la reivindicacion 1, donde el conjunto de primeros valores hash incluye una pluralidad de primeros valores hash y el conjunto de primeros elementos de informacion incluye una pluralidad respectiva de primeros elementos de informacion.
  4. 4. El metodo de la reivindicacion 1, donde el conjunto de segundos elementos de informacion se almacena en el segundo nodo.
  5. 5. El metodo de la reivindicacion 1, donde hay una asociacion entre el conjunto de primeros elementos de informacion y el conjunto de segundos elementos de informacion de tal manera que la probabilidad de que uno de los primeros elementos de informacion concuerde con uno de los segundos elementos de informacion es mas grande que la probabilidad de que dos elementos de informacion diferentes sean identificados por el mismo valor hash en el esquema hashing, de tal manera que se suponga que los valores hash concordantes son indicativos de elementos de informacion concordantes, donde los primeros elementos de informacion identifican contactos de un primer usuario del primer nodo, y los segundos elementos de informacion identifican contactos de un segundo usuario en la red.
  6. 6. El metodo de la reivindicacion 1, incluyendo ademas:
    contar (S808) el numero de valores hash concordantes entre el conjunto de primeros valores hash y el conjunto de segundos valores hash; y
    determinar (S810) si el numero contado de valores hash concordantes es mas grande que el numero esperado de valores hash concordantes en base al numero de primeros valores hash, el numero de segundos valores hash y el esquema hashing; y
    si el numero contado es mas grande que el numero esperado, identificar que el conjunto de primeros elementos de informacion es similar al conjunto de segundos elementos de informacion.
  7. 7. El metodo de la reivindicacion 6, incluyendo ademas usar la diferencia entre el numero contado y el numero esperado para atribuir un valor de intensidad a la semejanza entre el conjunto de primeros elementos de informacion y el conjunto de segundos elementos de informacion.
  8. 8. El metodo de la reivindicacion 6 o la reivindicacion 7, donde los primeros elementos de informacion identifican intereses de un primer usuario del primer nodo, y los segundos elementos de informacion identifican intereses de un segundo usuario en la red, y donde la identificacion de que el conjunto de primeros elementos de informacion es similar al conjunto de segundos elementos de informacion identifica que los usuarios primero y segundo tienen intereses similares.
    5
    10
    15
    20
    25
    30
    35
    40
  9. 9. El metodo de la reivindicacion 1, donde el conjunto de segundos elementos de informacion se almacena en un tercer nodo en la red, incluyendo ademas el metodo determinar la posicion del tercer nodo, donde el paso de usar el al menos unico valor hash concordante determinado para identificar la presencia de al menos un elemento de informacion concordante incluye:
    transmitir la posicion del tercer nodo por la red al primer nodo;
    determinar el elemento de los primeros elementos de informacion que corresponde a uno del al menos valor hash unico concordante;
    transmitir un identificador del elemento de los primeros elementos de informacion del primer nodo al tercer nodo;
    determinar selectivamente un elemento de los segundos elementos de informacion que corresponde a uno del al menos unico valor hash concordante; y
    determinar selectivamente en el tercer nodo si el identificador del elemento de los primeros elementos de informacion tambien identifica el elemento de los segundos elementos de informacion.
  10. 10. Una red (100) incluyendo:
    un primer nodo (102) incluyendo medios para usar un esquema hashing para generar un conjunto de primeros valores hash a partir de un conjunto respectivo de primeros elementos de informacion almacenados en el primer nodo; y
    un segundo nodo (104) incluyendo:
    medios para recibir el conjunto de primeros valores hash por la red;
    medios para comparar el conjunto de primeros valores hash con un conjunto de segundos valores hash generados, usando el esquema hashing, a partir de un conjunto respectivo de segundos elementos de informacion almacenados en la red, para determinar por ello el al menos unico valor hash concordante entre el conjunto de primeros valores hash y el conjunto de segundos valores hash,
    donde el al menos unico valor hash concordante determinado se usa para identificar la presencia de al menos un elemento de informacion concordante entre el conjunto de primeros elementos de informacion y el conjunto de segundos elementos de informacion, y
    donde el esquema hashing se elige de modo que un valor hash unico en el esquema hashing indique un numero suficiente de elementos de informacion para evitar que el valor hash unico sea usado como un identificador de un elemento de informacion unico, de tal manera que la transmision del conjunto de primeros valores hash al segundo nodo no describa el conjunto de primeros elementos de informacion al segundo nodo.
ES10788263.1T 2009-11-10 2010-11-10 Elementos de información concordantes Active ES2618807T3 (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB0919675 2009-11-10
GB0919675A GB2475252A (en) 2009-11-10 2009-11-10 A hashing scheme is used to facilitate identifying the presence of matching information items on different network nodes without disclosing the information.
PCT/EP2010/067210 WO2011058057A1 (en) 2009-11-10 2010-11-10 Matching information items

Publications (1)

Publication Number Publication Date
ES2618807T3 true ES2618807T3 (es) 2017-06-22

Family

ID=41502163

Family Applications (1)

Application Number Title Priority Date Filing Date
ES10788263.1T Active ES2618807T3 (es) 2009-11-10 2010-11-10 Elementos de información concordantes

Country Status (5)

Country Link
US (2) US8874536B2 (es)
EP (1) EP2486719B1 (es)
ES (1) ES2618807T3 (es)
GB (1) GB2475252A (es)
WO (1) WO2011058057A1 (es)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2475251A (en) 2009-11-10 2011-05-18 Skype Ltd Identifying new contacts in a peer to peer network
GB2475252A (en) 2009-11-10 2011-05-18 Skype Ltd A hashing scheme is used to facilitate identifying the presence of matching information items on different network nodes without disclosing the information.
US8589393B2 (en) * 2011-11-08 2013-11-19 Google Inc. Methods and apparatus for discovery of attributes using a social mobile application
US8612516B2 (en) * 2011-11-28 2013-12-17 Wyse Technology Inc. Deployment of a driver or an application on a client device having a write-filter
US9367707B2 (en) * 2012-02-23 2016-06-14 Tenable Network Security, Inc. System and method for using file hashes to track data leakage and document propagation in a network
US11126418B2 (en) * 2012-10-11 2021-09-21 Mcafee, Llc Efficient shared image deployment
CN103020182B (zh) * 2012-11-29 2016-04-20 深圳市新国都技术股份有限公司 一种基于hash算法的数据查找方法
US9378535B2 (en) * 2013-08-29 2016-06-28 Advanced Micro Devices, Inc. Efficient duplicate elimination
CN103997558B (zh) * 2014-06-10 2016-07-06 宁波大学 一种面向手机的黑名单快速匹配方法
US9584508B2 (en) 2014-12-27 2017-02-28 Airwatch Llc Peer to peer enterprise file sharing
US9998463B2 (en) 2014-12-27 2018-06-12 Airwatch, Llc Peer to peer enterprise file sharing
US9571288B2 (en) * 2014-12-27 2017-02-14 Airwatch Llc Peer to peer enterprise file sharing
US20160261648A1 (en) 2015-03-04 2016-09-08 Unify Gmbh & Co. Kg Communication system and method of using the same
US10542056B2 (en) 2015-03-04 2020-01-21 Unify Gmbh & Co. Kg Communication system and method of using the same
US10142271B2 (en) 2015-03-06 2018-11-27 Unify Gmbh & Co. Kg Method, device, and system for providing privacy for communications
CN104700459B (zh) * 2015-03-20 2016-03-23 东南大学 一种提高afc系统终端设备黑名单匹配效率的方法
US10467615B1 (en) 2015-09-30 2019-11-05 Square, Inc. Friction-less purchasing technology
CN105354297B (zh) * 2015-11-03 2019-03-26 浪潮(北京)电子信息产业有限公司 一种数据库中数据存储的方法及系统
US9934502B1 (en) * 2017-01-30 2018-04-03 Square, Inc. Contacts for misdirected payments and user authentication
AU2018213955B9 (en) * 2017-01-30 2021-11-04 Block, Inc. Contacts for misdirected payments and user authentication
US10810569B2 (en) 2017-01-30 2020-10-20 Square, Inc. Contacts for misdirected payments and user authentication
CN106954207B (zh) * 2017-04-25 2018-06-05 腾讯科技(深圳)有限公司 一种获取目标终端的帐号属性值的方法及装置
US10423948B1 (en) 2017-06-29 2019-09-24 Square, Inc. Automated third-party messaging
US10810574B1 (en) 2017-06-29 2020-10-20 Square, Inc. Electronic audible payment messaging
WO2019010228A1 (en) * 2017-07-03 2019-01-10 Medici Ventures, Inc. DECENTRALIZED NEGOTIATION SYSTEM FOR FAIR ORDERING AND MATCHING OF TRANSACTIONS RECEIVED AT MULTIPLE NETWORK NODE AND CORRELATED BY MULTIPLE NETWORK NODES IN A DECENTRALIZED NEGOTIATION SYSTEM
US10949564B2 (en) * 2018-05-07 2021-03-16 Apple Inc. Contact discovery service with privacy aspect
EP3627320A1 (en) * 2018-09-19 2020-03-25 Vocalink Limited Data processing device, system and method
US11546174B2 (en) * 2018-12-11 2023-01-03 Apple Inc. Wireless terminal authentication
US20210004795A1 (en) * 2019-07-03 2021-01-07 Sap Se Anomaly and fraud detection using duplicate event detector
US11282078B2 (en) 2019-07-03 2022-03-22 Sap Se Transaction auditing using token extraction and model matching
US20210182808A1 (en) * 2019-12-12 2021-06-17 Visa International Service Association Method, System, and Computer Program Product for Distributing Data from Multiple Data Sources

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6064736A (en) * 1997-09-15 2000-05-16 International Business Machines Corporation Systems, methods and computer program products that use an encrypted session for additional password verification
US7461263B2 (en) * 2003-01-23 2008-12-02 Unspam, Llc. Method and apparatus for a non-revealing do-not-contact list system
KR100498499B1 (ko) * 2003-05-15 2005-07-01 삼성전자주식회사 하드디스크 드라이브의 테스트 장치
EP1549012A1 (en) * 2003-12-24 2005-06-29 DataCenterTechnologies N.V. Method and system for identifying the content of files in a network
US7325013B2 (en) * 2004-04-15 2008-01-29 Id3Man, Inc. Database with efficient fuzzy matching
US7478078B2 (en) * 2004-06-14 2009-01-13 Friendster, Inc. Method for sharing relationship information stored in a social network database with third party databases
US20060190536A1 (en) 2005-02-23 2006-08-24 International Business Machines Corporation Method, system and program product for building social networks
EP1999871A2 (en) 2006-03-10 2008-12-10 Peerant Inc. Peer to peer inbound contact center
US7596597B2 (en) * 2006-08-31 2009-09-29 Microsoft Corporation Recommending contacts in a social network
US20100095009A1 (en) 2006-10-02 2010-04-15 Nokia Corporation Method, System, and Devices for Network Sharing or Searching Of Resources
WO2008078998A1 (en) * 2006-12-22 2008-07-03 Lead Pharma Drug Development Ip B.V. Cardiac hypertrophy
US7945862B2 (en) * 2007-09-11 2011-05-17 Yahoo! Inc. Social network site including contact-based recommendation functionality
US20090319288A1 (en) * 2008-06-24 2009-12-24 Yahoo Inc. Suggesting contacts for social networks
CN101625996B (zh) * 2008-07-08 2011-03-23 中芯国际集成电路制造(上海)有限公司 用以减少暗电流的ono侧墙刻蚀工艺
US20100057732A1 (en) 2008-09-02 2010-03-04 O'sullivan Patrick Joseph System and method for identifying social network intersection in instant messaging
US8363961B1 (en) * 2008-10-14 2013-01-29 Adobe Systems Incorporated Clustering techniques for large, high-dimensionality data sets
US20100106713A1 (en) * 2008-10-28 2010-04-29 Andrea Esuli Method for performing efficient similarity search
US8055720B2 (en) * 2009-01-27 2011-11-08 Microsoft Corporation Cluster-based friend suggestion aggregator
GB2475251A (en) 2009-11-10 2011-05-18 Skype Ltd Identifying new contacts in a peer to peer network
GB2475252A (en) 2009-11-10 2011-05-18 Skype Ltd A hashing scheme is used to facilitate identifying the presence of matching information items on different network nodes without disclosing the information.

Also Published As

Publication number Publication date
EP2486719B1 (en) 2017-02-22
EP2486719A1 (en) 2012-08-15
US20150046466A1 (en) 2015-02-12
GB2475252A (en) 2011-05-18
US20110113029A1 (en) 2011-05-12
WO2011058057A1 (en) 2011-05-19
US8874536B2 (en) 2014-10-28
GB0919675D0 (en) 2009-12-23

Similar Documents

Publication Publication Date Title
ES2618807T3 (es) Elementos de información concordantes
US8825738B2 (en) System, server, information terminal operating system, middleware, information communication device, certification method, and system and application software
US9569771B2 (en) Method and system for storage and retrieval of blockchain blocks using galois fields
US8149697B2 (en) System, method, and computer program product for discovering services in a network device
Von Arb et al. Veneta: Serverless friend-of-friend detection in mobile social networking
EP2776935B1 (en) Computer-readable storage medium and method for discovery of attributes using a social mobile application
Puttaswamy et al. Preserving location privacy in geosocial applications
US8365301B2 (en) Peer-to-peer network communication
US7849303B2 (en) Peer-to-peer network information storage
US9537943B2 (en) System, method, apparatus, and computer program product for providing a social network diagram in a P2P network device
JP2009003690A (ja) システム、サーバ及び情報端末
US20100023510A1 (en) Terminal device and system for searching personal information
EP2206313A2 (en) Method, apparatus and computer program product for providing data management in a p2p network
EP1694027B1 (en) Peer-to-peer network information
Li et al. MobiShare+: Security Improved System for Location Sharing in Mobile Online Social Networks.
Freitas twister-a P2P microblogging platform
Mishra et al. SFVCC: chaotic map‐based security framework for vehicular cloud computing
WO2021031801A1 (zh) 一种社交网络中保护成员隐私的索引系统及方法
Mocktoolah et al. Privacy challenges in proximity based social networking: Techniques & solutions
Revathi et al. An intelligent and novel algorithm for securing vulnerable users of online social network
Hof et al. SCAN: A secure service directory for service-centric wireless sensor networks
Chikohora et al. Location Privacy Protection Techniques for Mobile Location-Based Services. A Survey
Deb et al. Preserving location privacy in peer-to-peer environments
Fan et al. A privacy-preserving authenticated key agreement protocol with smart cards for mobile emergency services
SARPONG Spam: Secure and Privacy-Preserving Attribute-based Matchmaking