ES2524124T3 - Método y sistema para almacenar y leer datos en o a partir de un almacenamiento de valor de clave - Google Patents

Método y sistema para almacenar y leer datos en o a partir de un almacenamiento de valor de clave Download PDF

Info

Publication number
ES2524124T3
ES2524124T3 ES12743101.3T ES12743101T ES2524124T3 ES 2524124 T3 ES2524124 T3 ES 2524124T3 ES 12743101 T ES12743101 T ES 12743101T ES 2524124 T3 ES2524124 T3 ES 2524124T3
Authority
ES
Spain
Prior art keywords
information
servers
data
secret
message
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
ES12743101.3T
Other languages
English (en)
Inventor
Dan Dobre
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.)
NEC Europe Ltd
Original Assignee
NEC Europe Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Europe Ltd filed Critical NEC Europe Ltd
Application granted granted Critical
Publication of ES2524124T3 publication Critical patent/ES2524124T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0617Improving the reliability of storage systems in relation to availability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/18Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
    • G06F11/186Passive fault masking when reading multiple copies of the same data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0709Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/1092Rebuilding, e.g. when physically replacing a failing disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1474Saving, restoring, recovering or retrying in transactions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/82Solving problems relating to consistency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/835Timestamp

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)
  • Hardware Redundancy (AREA)

Abstract

Un método para almacenar (put) datos (v) en un almacenamiento de valor de clave que tiene una pluralidad de n servidores (S1, S2, S3, S4), en el que t < n servidores (S1, S2, S3, S4) pueden fallar de forma arbitraria y en el que se cumple 3t+1 >= n, caracterizado por las etapas de a) Generar una información de compromiso (commit) para una información secreta (secret), b) Difundir un primer mensaje (1a), que incluye los datos (v) que deben almacenarse, una clave (k) correspondiente a los datos (v) y la información de compromiso generada (commit) para los n servidores, c) Almacenar (saving1) la información incluida en el primer mensaje (1a) en al menos un número de servidores (S1, S2, S3), d) Proporcionar una primera información (1b) de confirmación de almacenamiento por al menos n-t servidores (S1, S2, S3), e) Difundir un segundo mensaje (2a) que incluye una clave (k) correspondiente y la información secreta (secret) para los n servidores (S1, S2, S3, S4), f) Almacenar (saving2) la información incluida en el segundo mensaje (2a), y g) Proporcionar una segunda información (2b) de confirmación de almacenamiento por al menos n-t servidores (S1, S2, S3).

Description

15
25
35
45
55
65
E12743101
17-11-2014
DESCRIPCIÓN
Método y sistema para almacenar y leer datos en o a partir de un almacenamiento de valor de clave
La presente invención se refiere a un método para almacenar datos en un almacenamiento de valor de clave que tiene una pluralidad de n servidores, en el que t < n servidores pueden fallar de forma arbitraria y en el que se cumple 3t+1 = n.
La presente invención se refiere además a un método para leer datos almacenados en un almacenamiento de valor de clave que tiene una pluralidad de n servidores, en el que t < n servidores pueden fallar de forma arbitraria y en el que se cumple 3t+1 = n.
La presente invención se refiere además a un sistema para almacenar datos en un almacenamiento de valor de clave que tiene una pluralidad de n servidores, en el que t < n servidores pueden fallar de forma arbitraria y en el que se cumple 3t+1 = n y a un lector para leer datos almacenados en el almacenamiento de valor de clave, preferentemente para realizar un método de acuerdo con una de las reivindicaciones 1-13.
La presente invención se refiere además a un sistema para leer datos almacenados en un almacenamiento de valor de clave que tienen una pluralidad de n servidores en el que t < n servidores pueden fallar de forma arbitraria y en el que se cumple 3t+1 = n y a un lector para leer datos almacenados en el almacenamiento de valor de clave, preferentemente para realizar un método de acuerdo con una de las reivindicaciones 1-13.
Los almacenamientos de valor de clave, también llamados almacenes de valor de clave (KVS) están obteniendo un interés creciente para varios sistemas distribuidos a gran escala que van desde bases de datos, motores de búsqueda, plataformas basadas en la nube, por ejemplo, marcos de programación en la nube como map-reduce, para aplicaciones colaborativas como las sociales redes. Por ejemplo, a menudo las bases de datos de almacenamiento convencionales implementan índices de búsqueda en la parte superior de un almacén de valor de clave distribuida para la escalabilidad y el rendimiento. Los almacenes de valor de clave no solo pueden servir como una capa de almacenamiento para las capas de nivel superior, sino que también pueden servir como aplicaciones directamente, tal como en el intercambio de archivos par a par. Si, por ejemplo, se bloquea uno o más de los servidores de almacenamiento debido a un error de software o de hardware o similar, el almacén de valor de clave compensará tal fallo. Los almacenes de valor de clave como Cassandra, Redis, HBase, Dynamo y Memcached toleran fallos o bloqueos de servidores de almacenamiento empleando la replicación.
Una característica deseable de los almacenes de valor de clave es garantizar la coherencia de los datos y la disponibilidad incluso en el caso de que se realice un acceso simultáneo de diferentes usuarios. El más alto grado de coherencia de los datos es la denominada coherencia atómica, lo que significa que si un cierto valor se almacena bajo una cierta clave o una operación de lectura devuelve el valor, entonces cada operación de lectura posterior devuelve el valor v correspondiente o un valor v’ más nuevo pero nunca un valor que sea más antiguo que v. Los almacenes de valores de clave convencionales soportan la coherencia atómica a nivel de las claves individuales y el acceso transaccional a múltiples claves se realiza en capas de nivel superior. Para muchas aplicaciones, la coherencia atómica es obligatoria.
La disponibilidad es complementaria a la coherencia, es decir, si un cliente, que se supone que es un cliente correcto del almacén de valor de clave, recurre a una operación de lectura o escritura entonces la operación debería tener éxito a pesar de los servidores defectuosos e independientemente del comportamiento de otros clientes potencialmente defectuosos.
Para un número creciente de aplicaciones y sistemas, que dependen de un almacén de valor de clave como una capa de almacenamiento del núcleo, la robustez del almacén de valor de clave también es importante. Sin embargo, debido a la complejidad creciente de los sistemas distribuidos, que consisten de un gran número de nodos interconectados, la probabilidad de que falle algún nodo está aumentando. El riesgo de tales fallos accidentales de hardware y software, por ejemplo, los errores de software, también aumentan reduciendo significativamente la robustez del almacén de valor de clave. Un riesgo emergente adicional son las vulnerabilidades explotadas: Debido a la aparición de la computación en la nube, los datos se externalizan a las plataformas de servicio de la nube que son directamente accesibles desde internet. Una de las consecuencias son las vulnerabilidades explotables de las plataformas de servicio de la nube, por ejemplo, debido a los errores de software que resultan en unas potenciales pérdidas de datos y en la corrupción de los datos.
Para superar estos problemas, la literatura no de patente de James Hendricks, Gregory R. Ganger, Michael K. Reiter: "Low-overhead byzantine fault-tolerantstorage", SOSP 2007: 73-86 describe las operaciones de lectura necesarias para devolver solo en ejecuciones libres de contención para tolerar lectores bizantinos, lo que significa que pueden fallar de forma arbitraria.
En la literatura no de patente de Barbara Liskov, Rodrigo Rodrigues XP10927339: Tolerating Byzantine Faulty Clients In a Quorum System. Se usan las firmas digitales ICDCS 2006 para tolerar lectores bizantinos.
15
25
35
45
55
65
E12743101
17-11-2014
En la literatura no de patente de Amitanand S. Aiyer, Lorenzo Alvisi, Rida A Bazzi: “Bounded Wait-Free Implementation of Optimally Resilient Byzantine Storage Without (Unproven) Cryptographlc Assumptions", DISC 2007: 7-19, XP19100743 los canales de comunicación que se describen, entregan finalmente cada mensaje a todos los servidores, lo que en los sistemas asíncronos es difícil de implementar. Además, la latencia de lectura exhibida por el método descrito en la misma es lineal en el número de servidores.
La literatura no de patente de Dan Dobre et al: “Efficient Robust Storage Using Secret Tokens” 3 de noviembre de 2009 (03-11-2009), Estabilización, Seguridad y Seguridad de los Sistemas distribuidos, Springer Berlín. Heidelberg, Berlín, Heldelberg. Página(s) 269-283, XP019133325. ISN: 978-3-642-05117-3 muestra un almacenamiento robusto garantizando el progreso en todas las condiciones y nunca devuelve un valor antiguo ni un valor forjado usando testigos secretos.
Una de las desventajas es que los métodos convencionales mencionados anteriormente para los datos no autenticados no son prácticos debido a la alta latencia, la falta de escalabilidad y la falta de progreso en la contención. Además la mayoría de los métodos convencionales que no usan firmas están optimizados para un solo escritor.
Por lo tanto, es un objetivo de la presente invención proporcionar métodos y sistemas para almacenar y leer datos hacia o desde un almacenamiento de valor de clave que tolera fallos Bizantinos, en particular, mediante los servidores y los lectores.
Es un objetivo adicional que la presente invención proporcione métodos y sistemas para almacenar y leer datos hacia o desde un almacenamiento de valor de clave que sean una firma libre y proporcionen coherencia atómica.
Es incluso un objetivo adicional de la presente invención proporcionar métodos y sistemas para almacenar y leer datos hacia o desde un almacenamiento de valor de clave que sean escalables.
Es incluso un objetivo adicional de la presente invención proporcionar métodos y sistemas para almacenar y leer datos hacia o desde un almacenamiento de valor de clave que reduzcan la latencia para los datos de escritura y lectura.
Es un objetivo adicional de la presente invención proporcionar métodos y sistemas para almacenar y leer datos hacia o desde un almacenamiento de valor de clave que permita un mayor número de servidores pueden fallar de forma arbitraria.
Es incluso un objetivo adicional de la presente invención proporcionar métodos y sistemas para almacenar y leer datos hacia o desde un almacenamiento de valor de clave que sean más robustos que cualquier método o sistema de firma libre convencional.
Es incluso un objetivo adicional de la presente invención proporcionar métodos y sistemas para almacenar y leer datos hacia o desde un almacenamiento de valor de clave que permitan una fácil implementación con costes bajos y con una mayor flexibilidad con respecto a los datos que deben leerse o almacenarse.
De acuerdo con la invención, los objetivos mencionados anteriormente se consiguen mediante un método de la reivindicación 1.
De acuerdo con la reivindicación 1 el método para almacenar datos en un almacenamiento de valor de clave que tiene una pluralidad de n servidores, en el que t < n servidores pueden fallar de forma arbitraria y en el que se cumple 3t+1 = n.
De acuerdo con la reivindicación 1 el método se caracteriza por las etapas de
a) Generar una información de compromiso para una información secreta,
b) Difundir un primer mensaje, que incluye los datos que deben almacenarse, una clave correspondiente a los
datos y la información de compromiso generada para los n servidores,
c) Almacenar la información incluida en el primer mensaje en al menos un número de servidores,
d) Proporcionar una primera información de confirmación de almacenamiento por al menos n-t servidores,
e) Difundir un segundo mensaje que incluye una clave correspondiente y la información secreta para los n
servidores,
f) Almacenar la información incluida en el segundo mensaje, y
g) Proporcionar una segunda información de confirmación de almacenamiento por al menos n-t servidores.
De acuerdo con la invención, los objetivos mencionados anteriormente se consiguen además mediante un método de la reivindicación 2.
15
25
35
45
55
65
E12743101
17-11-2014
De acuerdo con la reivindicación 2 el método para leer datos almacenados en un almacenamiento de valor de clave que tiene una pluralidad de n servidores, en el que t < n servidores pueden fallar de forma arbitraria y en el que se cumple 3t+1 = n.
De acuerdo con la reivindicación 2 el método se caracteriza por las etapas de
A) Difundir un primer mensaje que incluye una clave correspondiente a los datos que deben leerse
B) Recoger candidatos de los datos que deben leerse de al menos 2t+1 servidores,
C) Escribir de nuevo la información secreta correspondiente a la información de compromiso y a la información
correspondiente a los datos que deben leerse,
D) Validar los candidatos recogidos en base a un emparejamiento de la información de compromiso y la
información secreta,
E) Determinar los candidatos para los datos que deben leerse de acuerdo con los candidatos validados,
F) Seleccionar los datos que deben leerse en base a los t+1 mensajes de respuesta, que incluyen el mismo
candidato de los datos que deben leerse y la información secreta correspondiente.
Los objetivos antes mencionados se consiguen además mediante un sistema de la reivindicación 14.
De acuerdo con la reivindicación 14, el sistema para almacenar datos en un almacenamiento de valor de clave que tiene una pluralidad de n servidores, en el que t < n servidores pueden fallar de forma arbitraria y en el que se cumple 3t+1 = n, y un escritor para escribir los datos en el almacenamiento de valor de clave, preferentemente para realizarse con un método de acuerdo con una de las reivindicaciones 1-13.
De acuerdo con la reivindicación 14 el sistema se caracteriza por que el escritor está configurado para que pueda funcionar para difundir un primer mensaje que incluye los datos que deben almacenarse, una clave correspondiente para los datos y una información de compromiso, generados a partir de una información secreta, para los n servidores, por que
al menos un número de servidores está configurado para que pueda funcionar para almacenar la información incluida en el primer mensaje, por que el escritor está configurado para que pueda funcionar para difundir un segundo mensaje que incluye una clave correspondiente y la información secreta para los n servidores después de recibir la primera información de confirmación de almacenamiento mediante al menos los n-t servidores, y por que al menos los n-t servidores están configurados para que puedan funcionar para proporcionar una segunda información de confirmación de almacenamiento después de almacenar la información del segundo mensaje incluida en el segundo mensaje.
Los objetivos mencionados anteriormente se consiguen además mediante un sistema de acuerdo con la reivindicación 15.
De acuerdo con la reivindicación 15 el sistema para leer datos almacenados en un almacenamiento de valor de clave que tiene una pluralidad de n servidores, en el que t < n servidores pueden fallar de forma arbitraria y en el que se cumple 3t+1 = n, y un lector para leer los datos almacenados en el almacenamiento de valor de clave, para realizarse con un método de acuerdo con una de las reivindicaciones 1-13.
De acuerdo con la reivindicación 15 el sistema se caracteriza por que el lector está configurado para que pueda funcionar para difundir un primer mensaje que incluye una clave correspondiente a los datos que deben leerse, para recoger los candidatos correspondientes a los datos que deben leerse a partir de al menos 2t+1 servidores, para escribir de nuevo la información secreta correspondiente a la información de compromiso, generada a partir de la información secreta y la información correspondiente a los datos que deben leerse, y para seleccionar los datos que deben leerse en base a los t+1 mensajes de respuesta, que incluyen el mismo candidato que debe leerse y la información secreta correspondiente, en el que los candidatos para los datos que deben leerse se han determinado de acuerdo con los candidatos validados en los que los candidatos recogidos se han validado en base a un emparejamiento de la información de compromiso y la información secreta.
De acuerdo con la invención, se ha reconocido en primer lugar que el método y los sistemas de acuerdo con las reivindicaciones 1, 2, 14 y 15 proporcionan un almacenamiento de valor de clave de firma libre robusto con una coherencia atómica cumplida y con tolerancia a fallos maliciosos de los servidores maliciosos, así como de los clientes maliciosos, es decir, se incluyen los lectores.
De acuerdo con la invención, se ha reconocido además en primer lugar que los métodos y los sistemas de acuerdo con las reivindicaciones 1, 2, 14 y 15 son escalables, es decir, todas las métricas relevantes, tales como la latencia, el número de mensajes, el tamaño del mensaje y los requisitos de almacenamiento de mensajes no dependen del tamaño de la población del cliente. No existe un límite superior en el número de clientes soportados de acuerdo con la presente invención. Además, los lectores pueden ser totalmente desconocidos.
15
25
35
45
55
65
E12743101
17-11-2014
De acuerdo con la invención, se ha reconocido además en primer lugar que la latencia de lectura se reduce significativamente y se degrada con gracia, es decir, se proporciona un máximo de dos rondas.
De acuerdo con la invención, se ha reconocido además en primer lugar que los métodos y los sistemas de acuerdo con las reivindicaciones 1, 2, 14 y 15 son ligeros de peso: Un cálculo de la información secreta y la información de compromiso es barato y no depende del valor que debe escribirse. Además la información secreta y la información de compromiso correspondiente pueden generarse por adelantado y/o fuera del sistema.
De acuerdo con la invención, se ha reconocido además en primer lugar que los sistemas y los métodos de acuerdo con las reivindicaciones 1, 2, 14 y 15 son robustos: Un lector nunca devuelve un valor olvidado o uno obsoleto. La disponibilidad está garantizada siempre y cuando se mantenga el secreto de los metadatos, es decir, se proporcione la información de compromiso.
De acuerdo con la invención, se ha reconocido además en primer lugar que los métodos y los sistemas de acuerdo con las reivindicaciones 1, 2, 14 y 15 no se basan en firmas digitales, de este modo, se ahorran costes computacionales asociados con la firma y la verificación de los datos. Además no son necesarios una infraestructura pública y/o distribuidores de confianza junto con la gestión de las claves asociadas.
Otras características, ventajas y realizaciones preferidas se describen en las siguientes reivindicaciones dependientes.
De acuerdo con una realización preferida, se genera y se asigna una información de marca de tiempo a los datos que deben almacenarse. Asignando la información de la marca de tiempo generada a los datos, los datos que deben almacenarse a partir de los escritores concurrentes pueden almacenarse fácilmente de acuerdo con la información de la marca de tiempo garantizando una manera fácil de coherencia atómica: Se asigna a los datos almacenados una cierta marca de tiempo y cuando se realiza una operación de lectura, la operación de lectura devuelve los datos correspondientes a la clave o datos más nuevos.
De acuerdo con una realización preferida adicional, una información de marca de tiempo generada es globalmente consistente. Por ejemplo, cuando los servidores están configurados para asignar localmente una marca de tiempo coherente globalmente a los datos, no es necesaria una coordinación explícita de los escritores con respecto a la información de la marca de tiempo: Por ejemplo, no es necesario un intercambio de su información de marca de tiempo, es decir, una coordinación de sus marcas de tiempo locales para obtener una información de marca de tiempo coherente, de esta manera se ahorran costes y se reduce la latencia.
De acuerdo con una realización preferida adicional, se recoge la información de la marca de tiempo generada antes de asignar la información de la marca de tiempo a los datos que deben almacenarse. Esto mejora la flexibilidad, ya que por ejemplo cada servidor puede crear o generar la información de la marca de tiempo local. A continuación, las diferentes marcas de tiempo se recogen y se coordinan por un escritor. Esto permite que cada servidor use su propia marca de tiempo local, que puede optimizarse para ciertas necesidades locales de los diferentes servidores.
De acuerdo con una realización preferida adicional, se evalúa la información de la marca de tiempo antes de realizar la etapa c) y/o f). Esto permite proporcionar los datos más actuales que están almacenados correspondientes a los datos con la marca de tiempo más alta.
De acuerdo con una realización preferida adicional, se verifica una validez de la información de la marca de tiempo, preferentemente intercambiando al menos simétricamente una información de marca de tiempo autenticada. Por ejemplo, cuando varios escritores con relojes no sincronizados actualizan la misma clave, necesitan determinar la marca de tiempo más alta vista por cualquier servidor correcto. Con este fin un escritor selecciona la marca de tiempo más alta vista por un servidor entre los n-t servidores. Los servidores maliciosos pueden responder con una marca de tiempo significativamente mayor que la última marca de tiempo de cualquier servidor correcto perdiendo con ello las marcas de tiempo. Para validar las marcas de tiempo los escritores pueden compartir una clave simétrica solo conocida por los escritores y autenticar cada marca de tiempo asignada a un valor con esa clave que proporciona la información de la marca de tiempo verificada.
De acuerdo con una realización preferida adicional, se genera una información de compromiso mediante el cálculo de clave (hashing). Una de las ventajas es, que debe incluirse poca información adicional en los mensajes y que la generación de la información de compromiso es barata. Además, el valor oculto puede estar disponible públicamente, permitiendo un desplazamiento de la verificación de los servidores a los lectores para un mejor rendimiento y/o escalabilidad. Para generar la información de compromiso mediante el cálculo de clave de una función de un solo sentido se aplica a una cadena de bits aleatoria de longitud suficiente. A continuación, se usa la información de compromiso en la etapa b) y la información secreta correspondiente representada por la cadena de bits aleatoria se difunde a continuación de acuerdo con la etapa e). En los servidores correctos se desencadena a continuación la etapa D) mediante una operación de lectura que incluye una comprobación de si un escritor ha comprometido la información secreta recibida de un lector.
15
25
35
45
55
65
E12743101
17-11-2014
De acuerdo con una realización preferida adicional, se genera una información de compromiso usando un valor aleatorio y un valor de polinomio de un polinomio aleatorio de grado t aplicada al valor aleatorio. Una de las ventajas es que la información secreta no puede construirse de forma prematura a partir del conocimiento colectivo de las partes maliciosas de al menos t partes y se evita que el adversario construya la información secreta correcta parcialmente. Información secreta correcta parcialmente significa información secreta que está validada por un subconjunto estricto de los servidores correctos. Para construir la información de compromiso se construye un polinomio P aleatorio de grado t, que representa la información secreta. A continuación, la n información de compromiso se construye escogiendo valores xi aleatorios, uno para cada uno de los n servidores, y calculando P (xi). El compromiso para el servidor i-enésimo consiste entonces del par (xi, P (xi)). A continuación, la información de compromiso puede difundirse de acuerdo con la etapa b) a través de los canales punto a punto garantizados o autenticados, garantizando que cada información de compromiso enviada a un servidor correcto se conoce solo por los destinatarios. A continuación, un escritor envía el polinomio P a todos los servidores de acuerdo con la etapa e).
Si se realiza una operación de lectura, la validación de acuerdo con la etapa D) en un servidor correcto se desencadena mediante la operación de lectura que consiste en comprobar si el escritor se ha comprometido con un polinomio P’, es decir, si la curva que describe el polinomio P’ asociado con un candidato representado por la tupla (k, ts, P’ ) con la clave k, la marca de tiempo ts, y el polinomio P’ recibido desde el lector contiene el punto (xi, P (xi)) tomado de la tupla (k, ts, v, (xi, P (xi))) correspondiente recibida desde el escritor. La corrección puede garantizarse mediante los canales privados y los servidores correctos nunca deben revelar sus partes.
De acuerdo con una realización preferida adicional, se genera una información de compromiso que depende de los servidores, preferentemente para cada servidor se genera una información de compromiso separada correspondiente. Esto permite generar una información de compromiso local para cada servidor y permite proporcionar información teórica o la seguridad incondicional.
De acuerdo con una realización preferida adicional, se usan canales seguros para el intercambio de un mensaje y/o de información, preferentemente canales punto a punto autenticados. Esto garantiza que si un receptor recibe un mensaje de un remitente, entonces el remitente ha enviado el mensaje. Si el receptor y el remitente son ambos correctos, entonces cada mensaje enviado por el remitente se recibe finalmente por el receptor.
De acuerdo con una realización preferida adicional, los candidatos incluyen una clave almacenada y la información secreta más actualmente almacenada y/o más actualmente recibida. Esto permite una validación simple y rápida de los diferentes candidatos con una cierta marca de tiempo o más joven que representa la coherencia atómica.
De acuerdo con una realización preferida adicional, se transmite un conjunto de unión de todos los candidatos en la etapa C). Esto permite transmitir todos los candidatos con un mínimo de información en un mensaje, evitando que los candidatos idénticos se transmitan más de una vez. Otra ventaja adicional es, que puede realizarse una validación o por los servidores o posteriormente a los servidores por los lectores ya que toda la información necesaria para la validación se transmite a los servidores y puede ponerse a disposición de los lectores mediante los servidores.
De acuerdo con una realización preferida adicional, se proporcionan un tercer mensaje que incluye los candidatos recogidos de acuerdo con la etapa B) y un cuarto mensaje que incluye los candidatos validados de acuerdo con la etapa D) tras la recepción del primer mensaje. En particular, el tercer mensaje y el cuarto mensaje pueden proporcionarse en un solo mensaje.
Por ejemplo, un servidor correcto en respuesta a un primer mensaje de acuerdo con la etapa A) recoge candidatos para los datos que deben leerse de acuerdo con la etapa B) y además envía los candidatos validados de los candidatos recogidos. La condición de espera, es decir, recibir los t+1 segundos mensajes que incluyen el mismo candidato de los datos que deben leerse y la información secreta correspondiente, se aplica a continuación a los candidatos recogidos validados de acuerdo con la etapa D). Con el fin de evitar el bloqueo un lector espera a que la condición de espera se cumpla solo hasta una condición pre-proporcionada, por ejemplo, que se cumpla una expiración de un temporizador local. Si la operación de lectura en una fase no tiene éxito, el lector puede realizar la segunda fase mientras que espera en un hilo separado para completar la primera fase. Una de las ventajas es que la operación de lectura no se ve afectada con respecto a la latencia. Con el fin de evitar un reenvío de los datos, los servidores también pueden mantener la pista de los datos, preferentemente las tuplas de datos ya enviadas a un lector durante la primera fase de lectura.
De acuerdo con una realización preferida adicional, los candidatos de los datos que deben leerse se filtran tras recibir el cuarto mensaje. Una de las ventajas es que entonces no es necesaria la realización de una segunda fase ya que los lectores filtran los candidatos al final de la primera fase lo que permite una operación de lectura u obtención que se completa en la primera fase.
Existen varias maneras de cómo diseñar y desarrollar adicionalmente la enseñanza de la presente invención de una manera ventajosa. Para este fin, por una parte hay que hacer referencia a las reivindicaciones de patente subordinadas a la reivindicación 1 de patente y por la otra a la siguiente explicación de las realizaciones preferidas
15
25
35
45
55
65
E12743101
17-11-2014
de la invención a modo de ejemplo, ilustradas por las figuras. En relación con la explicación de las realizaciones preferidas de la invención mediante la ayuda de las figuras, en general, se explicarán las realizaciones preferidas y los desarrollos adicionales de la enseñanza.
En los dibujos
La figura 1
muestra un método para almacenar datos de acuerdo con una realización de la presente invención;
y
La figura 2
muestra un método para leer datos de acuerdo con una realización de la presente invención.
La figura 1 muestra un método para almacenar datos de acuerdo con una realización de la presente invención.
En la figura 1 un escritor w realiza una operación put o de escritura put (k, v) para almacenar un valor v en una clave k en un almacenamiento de valor de clave que comprende cuatro servidores S1-S4 (en total n = 4 servidores y el número de servidores maliciosos permitidos t = 1). Se supone que la información commit de compromiso ya está generada de acuerdo con una información secreta proporcionada.
En un primer paso el escritor w difunde un primer mensaje 1a a los servidores S1-S4. En el primer mensaje 1a el escritor w incluye la clave k, el valor v que debe almacenarse, una información ts de marca de tiempo y la información commit de compromiso. El escritor envía el mensaje a todos los servidores S1-S4 y espera la respuesta de al menos n-t = 4-1 = 3 servidores.
Cuando una servidor Si correcto recibe el primer mensaje 1a, el servidor Si correspondiente que no ha recibido un mensaje con la clave k, el valor v, la información commit de compromiso y una información ts’ de marca de tiempo con ts’ > ts entonces el servidor Si almacena (signo de referencia saving1) la información incluida en el primer mensaje 1a recibido, es decir, la clave k, el valor v, la información ts de marca de tiempo y la información commit de compromiso. En cualquier caso el servidor Si responde al escritor w con un mensaje de reconocimiento, es decir, un mensaje de ok.
Después de recibir 4-1 = 3 mensajes de ok o respuestas, el escritor w revela la información secret secreta enviando una nueva ronda de mensajes (segundos mensajes, indicados con el signo de referencia 2a) que ahora incluyen la clave k, la marca de tiempo ts y la información secret secreta correspondiente a la información commit de compromiso. La clave k y la marca de tiempo ts se refieren a la información secreta, a la información de compromiso y al valor v correspondiente.
Cuando un servidor Si correcto, es decir, que no ha fallado o no es malicioso, recibe el segundo mensaje 2a que incluye la clave k, la marca de tiempo ts y la información secret secreta, el servidor Si almacena (saving2) la tupla <k, ts, secret> a menos que el servidor Si haya recibido un segundo mensaje 2a adicional que incluye la clave k y la información de la marca de tiempo ts’ con ts’ > ts. En cualquier caso, el servidor Si, responde con un mensaje 2b de ok. La operación put o de escritura que comprende una primera fase con los primeros mensajes 1a, 1b y una segunda fase con los segundos mensajes 2a, 2b se completa cuando un escritor w ha recibido 3 mensajes 2b de ok.
Conforme a los siguientes supuestos la latencia de la operación correcta o de put puede reducirse adicionalmente: La operación de put o correcta por un escritor se habilita para completarse en dos rondas de comunicación con los servidores.
Conforme a los supuestos de que a) el acceso a las distintas claves es secuencial, b) la red subyacente entre escritores/lectores y servidores es síncrona y c) que no existen fallos, la siguiente operación de put o de escritura puede realizarse de acuerdo con la invención. Los períodos que están representados por la sincronía, la contención y libre de fallo a menudo se consideran como o se llaman "el caso común".
En el caso común todos los servidores Si correctos, aplican la misma secuencia de actualizaciones para la misma clave k y por lo tanto, todos mantienen la misma alta marca de tiempo ts. Por lo tanto, los servidores Si, pueden asignar localmente una marca de tiempo ts coherente globalmente a un valor v sin coordinación explícita por un escritor w. El escritor puede omitir la recogida de la marca de tiempo y la fase de asignación. A continuación, la operación de put o de lectura se modifica como sigue: En la fase de pre-escritura el escritor w envía el primer mensaje 1a sin marca de tiempo ts; el primer mensaje 1a incluye, por lo tanto, la clave k, el valor de v, y la información commit de compromiso. El servidor Si correcto al recibir el primer mensaje 1a aumenta la más alta marca de tiempo ts local a un valor aún más alto ts’ = ts + 1 y almacena (saving1) la tupla recibida que incluye la clave k, el valor v y la información commit de compromiso con la marca de tiempo ts’ = ts + 1.
A continuación, el servidor Si responde al escritor w con un primer mensaje 1b que incluye la información de la marca de tiempo ts’. A continuación, el escritor w espera hasta recibir n-t = 4-1 = 3 respuestas de los servidores S1-S4 con iguales marcas de tiempo ts’. La conclusión es que t+1 = 2 servidores correctos han asignado al valor v la misma marca de tiempo ts’. Con el fin de no bloquear adicionalmente las operaciones de put o de escritura, el escritor w espera solo hasta una expiración de un temporizador local. En cualquier caso, el escritor w espera a
15
25
35
45
55
65
E12743101
17-11-2014
recibir las respuestas de n-t = 4-1 = 3 servidores. Cuando todas las respuestas (primeros mensajes 1b de ok) llevan la misma marca de tiempo ts, el escritor w procede con la fase de escritura enviando un segundo mensaje 2a que incluye una clave k, la marca de tiempo ts’ y la información secret secreta. Si todas las respuestas 1b incluyen diferentes marcas de tiempo, el escritor w repite la fase de pre-escritura enviando un primer mensaje 1a’ adicional que incluye una clave k, la marca de tiempo ts’, un valor v y la información commit de compromiso con ts’ = ts + 1 y con una marca de tiempo ts que representa la más alta marca de tiempo recibida.
La figura 2 muestra un método para leer datos de acuerdo con una realización de la presente invención.
En una operación get o de lectura un lector rd envía un primer mensaje 1a que incluye la clave k y espera respuestas desde los n-t = 4-1 = 3 servidores. Cuando un servidor Si correcto, recibe un primer mensaje 1a que incluye la clave k desde el lector rd entonces el servidor Si construye un conjunto de candidatos Ci que comprende la tupla con la marca de tiempo más alta de la clave k, la marca de tiempo ts y la información secret secreta recibida desde una operación de escritura anterior y, además, un conjunto de tuplas que incluye la clave k, la marca de tiempo ts’ y la información secret’ secreta con ts’ > ts recibida desde otros y potencialmente maliciosos lectores rd. A continuación, el servidor Si, envía el conjunto Ci, en un primer mensaje 1b correspondiente al lector rd.
Cuando el lector rd recibe los primeros mensajes 1b de respuesta desde 3 servidores, entonces el lector rd envía un segundo mensaje 2a a todos los n servidores S1-S4 que incluyen el conjunto C de unión de todos los conjuntos Ci candidatos. Cuando un servidor Si correcto recibe un segundo mensaje 2a correspondiente que incluye el conjunto C de unión entonces el servidor Si comprueba, para cada tupla que incluye una clave k, la marca de tiempo ts y la información secret secreta, si la tupla correspondiente que incluye la clave k, la marca de tiempo ts, el valor v y la información commit de compromiso se ha almacenado de forma local en el servidor Si. Si es así el servidor Si usa la información commit de compromiso para validar la información secret secreta. A continuación, el servidor Si construye un conjunto Vi de tuplas que incluye la clave k, la marca de tiempo ts y el valor v que han pasado la comprobación de validez anteriormente mencionada. El servidor Si, envía el conjunto Vi al lector rd en un segundo mensaje 2b de respuesta. En una última etapa el lector rd espera para recibir los mensajes 2b de respuesta correspondientes desde al menos 3 servidores. A continuación, se selecciona el valor v de los candidatos Vi validados, con la más alta marca de tiempo ts y se devuelve como el valor v para la operación get o de lectura get (k). Un candidato V validado que incluye la clave k, la marca de tiempo ts y la información secret secreta es válido cuando t+1 servidores responden con los segundos mensajes 2b de respuesta que incluyen la clave k, la marca de tiempo ts y el valor v. Un candidato con la clave k’, la marca de tiempo ts’, la información secret’ secreta no es válido cuando un n-t = 4-3 = 1 servidor responde con los segundos mensajes 2b de respuesta que no incluyen la clave k’, la marca de tiempo ts’, el valor de v’.
En el caso común tal como se ha definido anteriormente la operación get o de lectura también puede omitir la segunda fase con los mensajes 2a, 2b si el candidato devuelto representado por la tupla con la clave k’, la marca de tiempo ts, la información secret secreta con k’ = k, más el correspondiente valor incluido en la tupla validada que incluye la clave k’, la marca de tiempo ts, el valor v con k’ = k se recopilan en la primera fase de n-t = 4-1 = 3 servidores en la primera fase (representada por los mensajes 1a y 1b). Un servidor Si correcto, en respuesta a un primer mensaje 1a que incluye solo la clave k envía o responde de nuevo al lector rd con un primer mensaje 1b de respuesta y un segundo mensaje 2b de respuesta. Ambos mensajes 1b, 2b de respuesta incluyen la misma información como se representa en los mensajes 1b y 2b de la figura. 2. Esta separación de los mensajes es lógica y los datos incluidos pueden enviarse en un único mensaje físico.
En el lector rd, la condición de espera de la segunda fase de lectura representada por los mensajes 2a, 2b en la figura 2) se aplica a los mensajes 1b, 2b recibidos en la primera fase. La condición de espera significa que el lector rd espera para recibir los mensajes 1b, 2b de respuesta desde al menos n-t = 4-1 = 3 servidores.
Para evitar un bloqueo, el lector rd espera a que se cumpla la condición de espera únicamente hasta la expiración de un temporizador local. Además, el lector rd puede moverse a la segunda fase esperando en un hilo separado si la lectura en una fase no tiene éxito; por lo tanto la latencia de la operación get o de lectura no se ve afectada. Para evitar un reenvío de datos, los servidores pueden realizar un seguimiento de las tuplas de datos ya enviadas al lector rd durante la primera fase.
En resumen, la presente invención proporciona la disponibilidad, la integridad y la coherencia atómica: La integridad se cumple de la manera siguiente: Si una operación get o de lectura de una clave k devuelve un valor v, entonces el valor no se fabrica por un servidor bizantino. En detalle, la integridad se cumple porque si una operación get o de lectura recibe un valor v conforme a una clave k, entonces t+1 servidores han confirmado que se ha escrito el valor
v. De esta manera, un servidor correcto ha almacenado el valor v, y por lo tanto v no está falsificado.
Además, se cumple la disponibilidad: Una operación put o de escritura de una clave k con un valor v y una operación get o de lectura de una clave k para un valor v nunca se bloquean.
Incluso se cumple además la coherencia atómica: Si una operación get o de lectura de una clave k devuelve un valor v entonces el valor v se escribe mediante la última operación put o de escritura con la clave k y el valor v anterior a)
15
25
35
45
55
65
E12743101
17-11-2014
una operación get o de lectura con la clave k o b) una operación put o de escritura concurrente con una operación get o de lectura. Si una operación get o de lectura con una clave k devuelve un valor v y una operación get o de lectura más tardía con un valor k’ devuelve un valor v’, entonces la operación de escritura o la operación put con la clave k y el valor v’ no es anterior a la operación put o de escritura con la clave k y el valor v.
En detalle, la coherencia atómica se cumple por las siguientes razones: Si una operación put o de escritura put (k, v) es anterior a una operación get o de lectura get (k), entonces el candidato correspondiente que incluye la clave k, la información ts de la marca de tiempo y la información secret secreta (k, ts, secret) se almacena en t+1 servidores correctos. Ya que la operación get o de lectura para la clave k espera la respuesta de los n-t servidores, uno de los t+1 servidores correctos está entre los n-t servidores (intersección de quórum) y responde con el candidato (k, ts’, secret’) con ts’ ≥ ts. Ya que el servidor es un servidor correcto, el candidato nunca se invalida y, finalmente, se convierte en válido. De este modo se cumple la coherencia atómica devolviendo el valor v’ asociado.
Si las operaciones get o de lectura get (k) y get (k)’ son operaciones de lectura de los lectores no maliciosos y si get
(k) es anterior a get (k)’ con v, v’ serán los valores correspondientes devueltos y además se supone por contradicción que la operación put o de escritura con la clave k y el valor v’ es anterior a la operación put o de escritura correspondiente con la clave k y el valor v entonces, ya que la operación get (k) devuelve el valor v-t+1, los servidores han respondido para el candidato correspondiente que incluye la clave k, la marca de tiempo ts y la información secret secreta. De este modo, se completa la fase de pre-escritura representada por los primeros mensajes 1a, 1b. Eso significa que t+1 servidores correctos han almacenado la clave k, la información ts de la marca de tiempo, el valor v y la información commit de compromiso.
La operación de lectura get (k) ha escrito de nuevo el candidato que incluye <k, ts, secret > a t+1 servidores correctos. Ya que la otra operación get o de lectura get (k)’ espera la respuesta de los n-t servidores, al menos uno de ellos informa de la clave k, la marca de tiempo ts y la información secreta (k, ts, secret) y debido a que t+1 servidores correctos han almacenado (k, ts, v, commit)), entonces se valida finalmente el candidato (k, ts, secret). Ya que un lector rd siempre devuelve el mayor candidato válido con marca de tiempo y el valor v’ se asigna a una marca de tiempo ts menor que v, porque la operación put put (k, v’) es anterior a put (k, v), la operación get get (k)’ no devuelve el valor de v’ en contradicción con la suposición. Por lo tanto, se cumple además la coherencia atómica.
En resumen, la presente invención facilita que si un lector selecciona un valor como candidato devuelto, la operación de escritura debe haber completado la fase de pre-escritura, es decir, el valor se almacena en un conjunto de t+1 servidores correctos. Una operación de lectura puede omitir la contestación asociada a la fase de pre-escritura. La presente invención proporciona además la integridad de la fase de pre-escritura: El valor se escribe junto con la información de compromiso para una información secreta conocida únicamente por un escritor. La información secreta se revela por el escritor solo después de la finalización de la fase de pre-escritura. Durante una operación de lectura, la información de compromiso se usa para verificar la validez de la información secreta. Si se confirman tanto la validez de la información secreta como el valor por suficientes servidores, es decir, por al menos t+1, entonces se garantiza que el valor no se olvida y se completa la fase de pre-escritura.
De acuerdo con la presente invención, es suficiente una contestación que realiza una sola ronda. Además, la presente invención facilita que los lectores escriban de nuevo antes de determinar el candidato de vuelta actual. Por lo tanto, es suficiente la contestación de un conjunto que incluye el candidato de vuelta, dejando la tarea del filtrado para las lecturas subsiguientes. La contestación puede realizarse inmediatamente después de recoger todos los candidatos relevantes, eliminando la necesidad de fases de contestación separadas.
Además, la presente invención en el caso de la operación de lectura, escribe de nuevo solo los metadatos, es decir, los datos acerca del valor, pero no el valor en sí mismo, evitando lectores maliciosos que corrompan la información almacenada en los servidores y permitiendo los lectores bizantinos tolerados.
La presente invención facilita un secreto que se ha comprometido en una primera fase y un secreto que se revela en una segunda fase. Durante una operación de lectura, la información de compromiso se usa para comprobar la validez de la información secreta. Si una información secreta se valida por t+1 servidores entonces la operación put
o de escritura ha realizado suficiente progreso y puede devolverse el candidato potencial. De lo contrario n-t servidores invalidan la información secreta y el candidato se descarta.
En una realización, la presente invención proporciona valores de pre-escritura sin una marca de tiempo y que tienen servidores de marcas de tiempo asignadas localmente sin una coordinación explícita. Esto permite una operación de lectura en una sola ronda. Los servidores responden a un primer mensaje con la clave k con ambos mensajes 1b y 2b como si ellos ya hubieran recibido un mensaje 2a desde el lector. A continuación, los lectores tienen que filtrar los candidatos al final de la primera ronda.
La presente invención proporciona
1) Un almacén de valor clave atómica libre de firmas robusto que tolera fallos maliciosos. Se soportan tanto los servidores como los clientes (lectores) maliciosos.
10
15
20
25
30
35
E12743101
17-11-2014
2) Escalabilidad en el sentido de que todas las métricas relevantes, tales como la latencia, el número de mensajes, el tamaño del mensaje y el requisito de almacenamiento no dependen del tamaño de la población de clientes. No existe un límite superior en el número de clientes. Además, los lectores pueden ser totalmente desconocidos. Escalabilidad significa que el número de mensajes y los tamaños de los mensajes no dependen de la cantidad de clientes. Debido a la falta de comunicación entre los servidores, el número de mensajes es proporcional al número de servidores.
3) Degradación óptima y con gracia de la latencia de lectura: una ronda en el caso común (representada por la sincronía, la contención y libre de fallo en una sola clave) y dos rondas en el peor de los casos. Baja latencia: La presente invención proporciona la más baja latencia posible de lectura de las dos rondas.
4) Un grado óptimo de replicación 3t+1; la fracción de servidores maliciosos soportados no se puede mejorar. La ventaja resultante es evidente en un entorno de centro de datos, donde un gran número de nodos de datos, cada uno manteniendo una parte de la fecha, se replican para la tolerancia a fallos.
5) Calcular los secretos y el compromiso de una manera barata y simple que no depende del valor que se está escribiendo. Por lo tanto, los metadatos pueden generarse por adelantado, fuera de la ruta crítica.
6) Garantizar la disponibilidad y la coherencia a pesar de un umbral de servidores maliciosos, cualquier número de clientes bloqueados, la asincronía y la contención. Un lector nunca devuelve un valor olvidado u obsoleto y la disponibilidad está garantizada siempre y cuando se mantenga el secreto de los metadatos. De esta manera, la seguridad del método y del sistema está siempre garantizada (determinísticamente). La presente invención es más robusta que cualquier protocolo basado en una firma.
Los protocolos de almacenamiento basados en firmas garantizan la coherencia e integridad solo en determinadas suposiciones, por ejemplo, el secreto de las claves, la intratabilidad de resolver ciertos problemas matemáticos (la dureza de la factorización). Cuando se violan estos supuestos, también se violan la coherencia y la integridad. La coherencia y la integridad se proporcionan mediante la presente invención. Incluso con el peor caso de desviación del conjunto de supuestos, se conserva la seguridad.
Muchas modificaciones y otras realizaciones de la invención expuesta en el presente documento vendrán a la mente del experto en la materia a la que pertenece la invención que tiene el beneficio de las enseñanzas presentadas en la descripción anterior y en los dibujos asociados. Por lo tanto, debe entenderse que la invención no está limitada a las realizaciones específicas divulgadas y que otras modificaciones y realizaciones están destinadas a incluirse dentro del alcance de las reivindicaciones adjuntas. Aunque se emplean términos específicos en el presente documento, se usan en un sentido genérico y descriptivo y no con fines de limitación.

Claims (15)

  1. 5
    15
    25
    35
    45
    55
    65
    E12743101
    17-11-2014
    REIVINDICACIONES
    1. Un método para almacenar (put) datos (v) en un almacenamiento de valor de clave que tiene una pluralidad de n servidores (S1, S2, S3, S4), en el que t < n servidores (S1, S2, S3, S4) pueden fallar de forma arbitraria y en el que se cumple 3t+1 = n, caracterizado por las etapas de
    a) Generar una información de compromiso (commit) para una información secreta (secret),
    b) Difundir un primer mensaje (1a), que incluye los datos (v) que deben almacenarse, una clave (k) correspondiente a los datos (v) y la información de compromiso generada (commit) para los n servidores, c) Almacenar (saving1) la información incluida en el primer mensaje (1a) en al menos un número de servidores
    (S1, S2, S3), d) Proporcionar una primera información (1b) de confirmación de almacenamiento por al menos n-t servidores (S1, S2, S3), e) Difundir un segundo mensaje (2a) que incluye una clave (k) correspondiente y la información secreta (secret)
    para los n servidores (S1, S2, S3, S4), f) Almacenar (saving2) la información incluida en el segundo mensaje (2a), y g) Proporcionar una segunda información (2b) de confirmación de almacenamiento por al menos n-t servidores
    (S1, S2, S3).
  2. 2. Un método para leer (get) datos (v) almacenados en un almacenamiento de valor de clave que tiene una pluralidad de n servidores (S1, S2, S3, S4), en el que t < n servidores (S1, S2, S3, S4) pueden fallar de forma arbitraria y en el que se cumple 3t+1 = n, caracterizado por las etapas de
    A) Difundir un primer mensaje (1a) que incluye una clave (k) correspondiente a los datos (v) que deben leerse B) Recoger (1b) candidatos (C2, Ci, Cantiguo) de los datos (v) que deben leerse desde al menos 2t+1 servidores (S2, S3, S4), C) Escribir de nuevo (2a) la información secreta (secret) correspondiente a la información de compromiso (commit) y a la información correspondiente a los datos (v) que deben leerse, D) Validar (verification) los candidatos (C2, Ci, Cantiguo) recogidos en base a un emparejamiento de la información
    de compromiso (commit) y la información secreta (secret), E) Determinar los candidatos para los datos (v) que deben leerse de acuerdo con los candidatos (Vi) validados F) Seleccionar los datos que deben leerse en base a los t+1 mensajes (2b) de respuesta, que incluyen el mismo
    candidato de los datos (v) que deben leerse y la información secreta correspondiente (secret).
  3. 3.
    El método de acuerdo con la reivindicación 1, caracterizado por que la información (ts) de marca de tiempo se genera y se asigna a los datos (v) que deben almacenarse.
  4. 4.
    El método de acuerdo con una de las reivindicaciones 1-3, caracterizado por que la información (ts) de marca de tiempo generada es consistente globalmente.
  5. 5.
    El método de acuerdo con una de las reivindicaciones 1, 3 y 4, caracterizado por que antes de asignar la información (ts) de marca de tiempo a los datos (v) que deben almacenarse, se recoge la información (ts) de marca de tiempo generada.
  6. 6.
    El método de acuerdo con una de las reivindicaciones 1, 3-5, caracterizado por que antes de realizar la etapa c) y/o la etapa f) se evalúa la información (ts) de marca de tiempo.
  7. 7.
    El método de acuerdo con una de las reivindicaciones 1-6, caracterizado por que se verifica una validación de la información (ts) de marca de tiempo, preferentemente intercambiando al menos simétricamente la información de marca de tiempo autenticada.
  8. 8.
    El método de acuerdo con una de las reivindicaciones 1-7, caracterizado por que la información de compromiso (commit) se genera mediante un cálculo de clave (hashing) y/o la información de compromiso (commit) se genera usando un valor (xi) aleatorio y un valor de polinomio de un polinomio (P) aleatorio de grado t aplicado al valor (xi) aleatorio, en el que preferentemente la información de compromiso (commit) depende del servidor (S1, S2, S3, S4), preferentemente para cada servidor (S1, S2, S3, S4) se genera una información de compromiso separada correspondiente (commit).
  9. 9.
    El método de acuerdo con una de las reivindicaciones 1-8, caracterizado por que los canales seguros se usan para el mensaje y/o el intercambio de información, preferentemente los canales punto a punto autenticados.
  10. 10.
    El método de acuerdo con las reivindicaciones 2-3, caracterizado por que los candidatos (C2, Ci, Cantiguo) incluyen una clave (k) almacenada y la información secreta (secret) más recientemente almacenada y/o más recientemente recibida.
    11 5
    10
    15
    20
    25
    30
    35
    40
    E12743101
    17-11-2014
  11. 11.
    El método de acuerdo con la reivindicación 2, caracterizado por que un conjunto (C) de unión de todos los candidatos (C2, Ci, Cantiguo) se transmite en la etapa C).
  12. 12.
    El método de acuerdo con una de las reivindicaciones 2, 10-11, caracterizado por que se proporcionan un tercer mensaje que incluye los candidatos (C2, Ci, Cantiguo) recogidos de acuerdo con la etapa B) y un cuarto mensaje que incluye los candidatos (V1, V2, Vantiguo) validados de acuerdo con la etapa D) al recibir el primer mensaje (1a).
  13. 13.
    El método de acuerdo con la reivindicación 12, caracterizado por que los candidatos para los datos (v) que deben leerse se filtran al recibir el cuarto mensaje.
  14. 14.
    Un sistema para almacenar datos (v) en un almacenamiento de valor de clave que tiene una pluralidad de n servidores (S1, S2, S3, S4) en el que t < n servidores pueden fallar de forma arbitraria y en el que se cumple 3t+1 = n, y un escritor (w) para escribir los datos (v) en el almacenamiento de valor de clave, para realizarse con un método de acuerdo con una de las reivindicaciones 1-13, caracterizado por que el escritor (w) está configurado para que pueda funcionar para difundir un primer mensaje (1a) que incluye los datos
    (v) que deben almacenarse, una clave (k) correspondiente para los datos (v) y una información de compromiso (commit), generados a partir de una información secreta (secret), para los n servidores (S1, S2, S3, S4), por que al menos un número de servidores (S1, S2, S3, S4) está configurado para que pueda funcionar para almacenar la información incluida en el primer mensaje (1a), por que el escritor (w) está configurado para que pueda funcionar para difundir un segundo mensaje (2a) que incluye una clave (k) correspondiente y la información secreta (secret) para los n servidores (S1, S2, S3, S4) después de recibir la primera información (1b) de confirmación de almacenamiento mediante al menos los n-t servidores (S1, S2, S3, S4), y por que al menos los n-t servidores (S1, S2, S3, S4) están configurados para que puedan funcionar para proporcionar una segunda información (2b) de confirmación de almacenamiento después de almacenar la información del segundo mensaje (2a) incluida en el segundo mensaje (2a).
  15. 15. Un sistema para leer los datos almacenados en un almacenamiento de valor de clave que tiene una pluralidad de n servidores, en el que t < n servidores (S1, S2, S3, S4) pueden fallar de forma arbitraria y en el que se cumple 3t+1 = n, y un lector (rd) para leer los datos (v) almacenados en el almacenamiento de valor de clave, para realizarse con un método de acuerdo con una de las reivindicaciones 1-13, caracterizado por que el lector (rd) está configurado para que pueda funcionar para difundir un primer mensaje (1a) que incluye una clave
    (k) correspondiente a los datos (v) que deben leerse, para recoger los candidatos (C2, Ci, Cantiguo) correspondientes a los datos (v) que deben leerse a partir de al menos 2t+1 servidores (S1, S2, S3, S4), para escribir de nuevo la información secreta (secret) correspondiente a la información de compromiso (commit), generada a partir de la información secreta (secret) y la información correspondiente a los datos (v) que deben leerse, y para seleccionar los datos (v) que deben leerse en base a los t+1 mensajes (C2, Ci, Cantiguo) de respuesta que incluyen el mismo candidato (C2, Ci, Cantiguo) que debe leerse y la información secreta (secret) correspondiente, en el que los candidatos (C2, Ci, Cantiguo) para los datos (v) que deben leerse se han determinado de acuerdo con los candidatos (Vi) validados en los que los candidatos (C2, Ci, Cantiguo) recogidos se han validado en base a un emparejamiento de la información de compromiso (commit) y la información secreta (secret).
    12
ES12743101.3T 2012-07-06 2012-07-06 Método y sistema para almacenar y leer datos en o a partir de un almacenamiento de valor de clave Active ES2524124T3 (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2012/063322 WO2013152812A1 (en) 2012-07-06 2012-07-06 Method and system for storing and reading data in or from a key value storage

Publications (1)

Publication Number Publication Date
ES2524124T3 true ES2524124T3 (es) 2014-12-04

Family

ID=46604273

Family Applications (1)

Application Number Title Priority Date Filing Date
ES12743101.3T Active ES2524124T3 (es) 2012-07-06 2012-07-06 Método y sistema para almacenar y leer datos en o a partir de un almacenamiento de valor de clave

Country Status (6)

Country Link
US (1) US9454312B2 (es)
EP (1) EP2689333B1 (es)
JP (1) JP5801482B2 (es)
KR (1) KR101574871B1 (es)
ES (1) ES2524124T3 (es)
WO (1) WO2013152812A1 (es)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6459702B2 (ja) * 2015-03-26 2019-01-30 日本電気株式会社 データベースシステム、情報記憶方法、プログラム
CN112491986B (zh) * 2016-02-29 2022-07-29 华为技术有限公司 一种分布式系统中命令分发方法、装置及系统
US10425483B2 (en) 2016-05-16 2019-09-24 International Business Machines Corporation Distributed client based cache for keys using demand fault invalidation
WO2018095540A1 (en) 2016-11-25 2018-05-31 NEC Laboratories Europe GmbH Method and system for byzantine fault - tolerance replicating of data
SG11202000804PA (en) 2017-08-15 2020-02-27 Nchain Holdings Ltd Threshold digital signature method and system
JP7202358B2 (ja) 2017-08-15 2023-01-11 エヌチェーン ライセンシング アーゲー 閾ボールトを生成する、コンピュータにより実施される方法
KR102406666B1 (ko) 2017-09-20 2022-06-08 삼성전자주식회사 스냅샷 기능을 지원하는 키-밸류 스토리지 장치 및 상기 키-밸류 스토리지 장치의 동작 방법
US10275265B1 (en) 2017-09-21 2019-04-30 Inductive Automation, LLC Graphical user interface for editing components in graphical user interfaces for industrial control systems

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6957331B2 (en) * 2000-01-14 2005-10-18 International Business Machines Corporation Method of achieving multiple processor agreement in asynchronous networks
US6496840B1 (en) * 2000-05-31 2002-12-17 International Business Machines Corporation Method, system and program products for atomically and persistently swapping resource groups
JP2003121659A (ja) 2001-01-23 2003-04-23 Sumitomo Electric Ind Ltd 光ファイバコイルへの充填材含浸方法
JP2004254027A (ja) * 2003-02-19 2004-09-09 Toshiba Corp サーバ装置、鍵管理装置、暗号通信方法及びプログラム
WO2009107442A1 (ja) * 2008-02-29 2009-09-03 日本電気株式会社 サーバ認証システム、サーバ認証方法及びサーバ認証用プログラム
US8533478B2 (en) * 2008-10-24 2013-09-10 Hewlett-Packard Development Company, L. P. System for and method of writing and reading redundant data
US8189789B2 (en) 2008-11-03 2012-05-29 Telcordia Technologies, Inc. Intrusion-tolerant group management for mobile ad-hoc networks
US20120117067A1 (en) 2010-10-29 2012-05-10 Navteq North America, Llc Method and apparatus for providing a range ordered tree structure
JP5719323B2 (ja) 2012-02-28 2015-05-13 日本電信電話株式会社 分散処理システム、ディスパッチャおよび分散処理管理装置

Also Published As

Publication number Publication date
KR101574871B1 (ko) 2015-12-04
EP2689333A1 (en) 2014-01-29
EP2689333B1 (en) 2014-09-10
WO2013152812A1 (en) 2013-10-17
US9454312B2 (en) 2016-09-27
JP5801482B2 (ja) 2015-10-28
US20140143369A1 (en) 2014-05-22
JP2014524204A (ja) 2014-09-18
KR20140033086A (ko) 2014-03-17

Similar Documents

Publication Publication Date Title
ES2524124T3 (es) Método y sistema para almacenar y leer datos en o a partir de un almacenamiento de valor de clave
ES2818597T3 (es) Realizar un proceso de recuperación para un nodo de red en un sistema distribuido
US11095451B2 (en) Optimal data storage configuration in a blockchain
RU2716558C1 (ru) Выполнение изменения первичного узла в распределенной системе
ES2880108T3 (es) Sistema y método para finalizar el protocolo de cambio de vista
CN110797099B (zh) 一种基于区块链的医疗数据共享方法及系统
US9634831B2 (en) Role-based distributed key management
JP7047133B2 (ja) 符号化ブロックチェーンデータのインデックス化および復元
KR102433504B1 (ko) 허가된 블록체인 네트워크를 위한 에러 정정 코드에 기초하는 블록체인 데이터 저장
CN111406252B (zh) 基于纠错码的共享区块链数据存储的共识
JP7050955B2 (ja) 共有されたブロックチェーンデータの記憶の優先順位付け
JP2019536108A (ja) データをビザンチン障害耐性複製する方法及びシステム
CN111095218B (zh) 基于纠错编码存储共享的区块链数据的方法、系统及装置
JP2021520574A (ja) 誤り訂正符号に基づく共有されたブロックチェーンデータの記憶のデータセキュリティ
CN111095210A (zh) 基于纠错编码存储共享的区块链数据
CN111033491A (zh) 基于纠错编码存储共享的区块链数据
KR102430135B1 (ko) 에러 정정 코드에 기초하는 동적 블록체인 데이터 저장
Zang et al. Improved dynamic remote data auditing protocol for smart city security
Dolev et al. Brief announcement: Robust and private distributed shared atomic memory in message passing networks
Zhang et al. A joint Bloom filter and cross-encoding for data verification and recovery in cloud
Krysl ABLOC: Accountable Blockchain Logging for Offline Care
Solat Novel fault-tolerant, self-configurable, scalable, secure, decentralized, and high-performance distributed database replication architecture using innovative sharding to enable the use of BFT consensus mechanisms in very large-scale networks
Solat Nouvelle architecture de base de données distribuée tolérante aux pannes, auto-configurable, scalable, sécurisée, décentralisée et haute performance utilisant une technique de fragmentation innovante pour permettre l'utilisation de mécanismes de consensus BFT dans des réseaux à très grande échelle
Qin A fast map reduce algorithm for exact-repair reconstruction of big-data in cloud storage
van der Til Long-term fault tolerant storage of critical sensor data in the intercloud