ES2278047T3 - Sistema y procedimiento para procesar un secreto compartido. - Google Patents

Sistema y procedimiento para procesar un secreto compartido. Download PDF

Info

Publication number
ES2278047T3
ES2278047T3 ES02766681T ES02766681T ES2278047T3 ES 2278047 T3 ES2278047 T3 ES 2278047T3 ES 02766681 T ES02766681 T ES 02766681T ES 02766681 T ES02766681 T ES 02766681T ES 2278047 T3 ES2278047 T3 ES 2278047T3
Authority
ES
Spain
Prior art keywords
parts
secret
new
parties
accessible
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.)
Expired - Lifetime
Application number
ES02766681T
Other languages
English (en)
Inventor
William Whyte
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.)
Cybertrust Ireland Ltd
Original Assignee
Betrusted Ireland 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 Betrusted Ireland Ltd filed Critical Betrusted Ireland Ltd
Application granted granted Critical
Publication of ES2278047T3 publication Critical patent/ES2278047T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Hardware Redundancy (AREA)
  • Communication Control (AREA)

Abstract

Un procedimiento de construcción de partes de un secreto, que ha de ser realizado dentro de una red que comprende varios dispositivos informáticos, cada uno dispuesto para almacenar con seguridad al menos una parte de un secreto k para el que se requieren n partes para reconstruir el secreto y al que puede proporcionarse acceso de manera fiable a un número m de dichas partes en cualquier momento dado, comprendiendo el procedimiento las etapas de: determinar n partes para un esquema de compartición de secretos de n de n, comprendiendo cada parte un valor y; almacenar al menos alguna de dichas partes en dichos dispositivos informáticos de manera que al menos m de dichas n partes sean accesibles de manera fiable; determinar el secreto compartido k según dichas partes y; caracterizado por ser m menor que n y por las etapas de: determinar unas nuevas (n-m) partes consecuentes con el secreto compartido k y las partes y; y almacenar las partes adicionales en un lugar accesible de manera fiable.

Description

Sistema y procedimiento para procesar un secreto compartido.
Campo de la invención
La presente invención se refiere a un sistema y procedimiento para procesar un secreto compartido. En particular, la invención se refiere a obtener un secreto compartido a partir de un conjunto de números arbitrarios.
Técnica anterior
En "How to Share a Secret", A. Samir, Comunicaciones del ACM, vol. 22, págs. 612-613, 1979 (Shamir) hay descrito un procedimiento por medio del cual, dados dos números n y m, donde m < n, un secreto arbitrario puede ser dividido en n porciones (partes), de manera que cualesquiera m de las partes resultantes pueden ser combinadas para recuperar el secreto original. La técnica asegura que cualquiera que tenga menos de m partes no se encuentra mejor que si no tuviera ninguna parte en absoluto. Esta técnica también permite la compartición de un secreto de manera que cualesquiera m de los n poseedores de partes puede reconstruir el secreto sin revelar sus partes.
Haciendo referencia a la Figura 1, que ilustra más detalladamente los principios implicados, allí se muestra un par de gráficos cúbicos basados en la fórmula:
y = ax^{3} + bx^{2} + cx + d
Convencionalmente, se toma el valor y en x=0 para que sea un secreto, y las partes del secreto, que comprenden valores de los cuales pueden obtenerse otros valores y, se distribuyen entre n poseedores de partes, en este caso n=6, típicamente servidores con los que un ordenador cliente puede conectarse con seguridad. Usando ecuaciones simultáneas se verá que dados cuatro puntos cualesquiera, (x_{1},y_{1}); (x_{2},y_{2}); (x_{3},y_{3}) y (x_{4},y_{4}) de una curva, entonces puede determinarse cualquier otro punto de la curva que incluya el secreto - así que aquí m=4.
En "Server-Assisted Generation of a Strong Secret from a Password", W. Ford y B. Kaliski, Proceedings of the IEEE 9th International Workshops on Enabling Technologies: Infrastructure for Collaborative Enterprises, NIST, Gaithersburg MD, 14-16 de junio de 2000 (Ford-Kaliski) que a su vez perfecciona el documento "Strong Password-Only Authenticated Key Exchange", D. Jablon, Computer Communication Review, ACM SIGCOMM, vol. 26, nº 5, págs. 5-26, octubre de 1996 (Jablon) se desvela una técnica (SPEKE) para recuperar con seguridad un número de, por ejemplo, un servidor remoto sin revelar una contraseña al servidor remoto.
Así, haciendo referencia a la Figura 2, usando el procedimiento de Ford-Kaliski en combinación con el de Shamir, un usuario que ejecuta una aplicación 12 en una máquina cliente 10 en la que no quieren almacenar, por ejemplo, su clave privada pueden almacenar su clave privada en un formato cifrado en un servidor remoto de almacenamiento de credenciales 20. La clave privada es cifrada con un número secreto generado a partir de partes que comprenden números arbitrarios y_{i} almacenados en servidores de posesión de partes B1...Bn.
Usando el procedimiento de Ford-Kaliski, una vez que un secreto ha sido construido por un componente de generación de secreto 14, el usuario puede proporcionar su contraseña a la aplicación en la máquina cliente y un componente de reconstrucción de secreto 16 de la aplicación conecta a todos los n servidores y sin desvelar la contraseña, obtiene con seguridad m partes y_{i}. Los puntos (x_{i}) en una curva, por ejemplo una curva del tipo mostrado en la Figura 1, se calculan a partir de la fórmula x_{i} = g^{yi}mod p, donde g es una versión de comprobación de la contraseña y p es número primo de 1024 bits. A partir de estos puntos, puede determinarse el valor secreto en x=0. Entonces puede descargarse la clave privada cifrada desde el servidor de credenciales y descifrarse con el valor secreto, para permitir al usuario del cliente comunicarse con seguridad con otros usuarios o autenticarse correctamente en otros dispositivos de una red 30 como una LAN, una intranet o Internet. Así, por ejemplo, el sistema puede ser empleado por cajeros con puestos de trabajo compartidos que usan regularmente diferentes terminales de ordenador en una sucursal bancaria y cuyo acceso a registros bancarios debe ser a la vez seguro y/o autenticado.
Puede verse a partir de la Figura 1 que en un sistema de m de n pueden almacenarse en servidores más partes de las que son necesarias para regenerar un secreto proporcionando así redundancia en el caso de un fallo de comunicación con hasta n-m de los servidores. Sin embargo, para que un componente de actualización de secreto 18 cambie el secreto, no sólo debe poder regenerar el secreto, sino que también debe poder cambiar los valores de todas las partes del secreto.
Muchas patentes hacen referencia al procedimiento de Shamir, y entran mayoritariamente en una de varias categorías:
Patentes que hacen referencia al trabajo de Shamir, pero no hacen uso de técnicas de compartición de secretos:
US5.553.145; US5.629.982; US5.666.420;
US6.134.326;
US6.137.884; y US6.141.750: Transacciones electrónicas simultáneas con verificación del suscriptor;
US5.812.670: Transacciones anónimas que pueden rastrearse; y
US6.055.508: Procedimiento para contabilidad y auditoría seguras en una red de comunicaciones.
Patentes que desvelan compartición de secretos para transmisión tolerante a fallos:
US5.485.474: Esquema para dispersión y reconstrucción de información; y
US6.012.159: Procedimiento y sistema para transferencia de datos libre de errores.
Patentes que desvelan técnicas de compartición de secretos, donde el secreto no es actualizado, como en:
US5.315.658; USRE036.918: Sistemas criptográficos equitativos y procedimientos de uso;
US5.495.532: Votación electrónica segura que usa homomorfismos parcialmente compatibles;
US5.666.414: Depósito parcial de claves garantizado;
US5.708.714: Procedimiento para compartir información secreta y realizar certificación en un sistema de comunicación que tiene una pluralidad de aparatos de procesamiento de información;
US5.768.388: Depósito de claves retardado;
US5.825.880: Procedimiento y sistema de forma digital de etapas múltiples;
US5.903.649: Procedimiento para establecer un código común para personas autorizadas a través de una oficina central;
US5.991.414: Procedimiento y aparato para el almacenamiento distribuido seguro y recuperación de información;
US6.192.472: Procedimiento y aparato para el almacenamiento distribuido seguro y recuperación de información; y
US6.026.163: Sistema criptográfico y de clave dividida distribuida y aplicaciones.
Patentes varias, como:
US5.764.767: Sistema para reconstrucción de un secreto compartido por una pluralidad de poseedores de partes, que proporciona un mecanismo para actualizar un secreto compartido, sin embargo, todos los lugares donde están almacenados los secretos son poseedores de partes activos al actualizar el secreto;
US5.867.578: Sistema de firma digital adaptable de etapas múltiples y procedimiento de funcionamiento del mismo, donde las partes cambian pero el valor del secreto compartido se mantiene; y
US6.122.742: Sistema criptográfico autorrecuperable y autocertificable con claves de firma no en depósito, que usa una función compartida, no un secreto compartido.
Pieprzyk desvela un procedimiento de construir partes de un secreto k que comprende las etapas de: determinar n partes para un esquema de compartición de secretos de n de n, comprendiendo cada parte un valor y; almacenar al menos alguna de dichas partes en dispositivos informáticos de manera que al menos m de dichas n partes sean accesibles de manera fiable; y determinar el secreto k compartido según dichas partes y.
Se observará, sin embargo, que ninguno de estos documentos desvela que pueda actualizar un secreto compartido sin tener acceso a todos los poseedores de partes del secreto. Esto se convierte en un requisito importante cuando clientes como el mostrado en la Figura 2 están accediendo a servidores poseedores de partes a través de enlaces no fiables como enlaces de red o enlaces de comunicación o enlaces a través de los cuales puede tener que regularse el ancho de banda mediante, por ejemplo, un servidor de equilibrio de carga (no mostrado) que puede impedir o retrasar demasiado el acceso de un cliente a un servidor poseedor de partes.
Exposición de la invención
Según un primer aspecto de la presente invención hay provisto un procedimiento caracterizado por m que es menor que n y por las etapas de: determinar unas nuevas (n-m) partes consecuentes con el secreto compartido k y las partes y; y almacenar las partes adicionales en un lugar accesible de manera fiable.
Según un segundo aspecto de la invención, hay provisto en una red que comprende varios dispositivos informáticos, cada uno dispuesto para almacenar con seguridad al menos una parte de un secreto k para el que se requieren n partes para reconstruir el secreto y al que puede proporcionarse acceso de manera fiable a un número m de dichas partes en cualquier momento dado, un procedimiento de reconstrucción de dicho secreto que comprende las etapas de: obtener con seguridad m partes de uno o más poseedores de partes del secreto que incluyen al menos uno de dichos dispositivos informáticos; caracterizado por ser m menor que n y por las etapas de: obtener (n-m) partes de un lugar accesible de manera fiable; y construir el secreto compartido k según dichas partes obtenidas.
Además hay provisto un procedimiento de actualización del secreto empleando el segundo aspecto de la invención.
Más aspectos de la invención están plasmados como aparatos y productos de programas informáticos respectivos para generar y construir y actualizar un secreto compartido.
En contraste con la técnica anterior donde claramente se considera esencial que no sea pública ninguna de las partes de un secreto, la presente invención usa partes públicas adicionales para implementar la invención.
En la presente invención, alguno de los lugares de almacenamiento poseedores de partes no tiene que darse cuenta de que está ocurriendo una actualización de un secreto compartido. Por lo tanto, la invención permite las dos operaciones siguientes:
\bullet
dados n números arbitrarios cualesquiera, un secreto compartido k puede construirse y reconstruirse usando cualesquiera m de esos números, con la ayuda de datos públicos almacenados en un dispositivo de almacenamiento de datos; y
\bullet
el secreto compartido puede cambiarse sin tener que acceder a todas las partes almacenadas.
La invención es particularmente útil porque no es necesariamente el caso de que n números aleatorios formarán un conjunto consistente de partes de m de n. Sin embargo, puede haber casos (como se explicará más adelante) donde una entidad tenga acceso a varios valores separados, de larga vida y aleatorios y no pueda garantizarse que tendrá acceso a todos ellos en cualquier momento. En este caso, esta invención permite a la entidad combinar los valores procedentes de diferentes lugares de tal manera que si la entidad no contacta con todos ellos, no importa; y si un atacante puede interceptar los valores procedentes de cualquier número menor que m de los lugares, ese atacante no podrá reconstruir el secreto a partir de los valores interceptados.
A continuación se describirán a modo de ejemplo varias realizaciones de la invención con referencia a los dibujos adjuntos en los que:
la Figura 1 ilustra funciones de la técnica anterior basadas en partes del secreto para determinar un secreto;
la Figura 2 ilustra una red de la técnica anterior a través de la cual pueden actualizarse y accederse a partes de un secreto compartido;
la Figura 3 ilustra funciones basadas en partes del secreto y una parte pública para determinar y actualizar un secreto según la invención; y
la Figura 4 ilustra una red a través de la cual pueden actualizarse y accederse a partes de un secreto compartido según la invención.
Descripción de las realizaciones preferidas
El principio de funcionamiento de la invención se explica en relación con la Figura 3. Si los puntos (x_{1},y_{1}); (x_{2},y_{2}); (x_{3},y_{3}) y (x_{4},y_{4}) se corresponden con cuatro partes de un esquema de compartición de secretos de 4 de 4, pero se decide que la comunicación sólo puede establecerse de manera fiable con 3 de los 4 poseedores de partes, entonces se genera una quinta parte pública (x_{5},y_{5}) y se almacena en un lugar accesible de manera fiable, por ejemplo en el servidor de credenciales 20' de la Figura 4. El esquema se convierte ahora en un esquema de 4 de 5, donde una de las partes es pública. De este modo, pueden combinarse tres cualesquiera de las partes secretas con la parte pública, para regenerar el secreto (0, Secreto original).
Para actualizar el secreto, se usan de nuevo tres cualesquiera de las partes secretas obtenidas (en este caso (x_{1},y_{1}); (x_{2},y_{2}) y (x_{4},y_{4})) junto con la parte pública (x_{5},y_{5}) para determinar el secreto. Después se cambia el secreto a (0, Nuevo secreto) y son actualizados cada uno de los tres valores de las partes secretas así como el valor de la parte pública (x_{5},y_{5}), pero dejando sin cambiar el valor de la parte de cualquier parte no obtenida, en este caso (x_{3},y_{3}).
Ampliando más el principio, si se decide que la comunicación sólo puede establecerse de manera fiable con 2 de los cuatro poseedores de partes, entonces se generan dos partes públicas y se almacenan en el servidor de credenciales 20'. El esquema se convierte ahora en un esquema de 4 de 6, donde dos de las partes son públicas. De este modo, pueden combinarse dos de las partes secretas cualesquiera con las partes públicas para regenerar el secreto.
\global\parskip0.900000\baselineskip
Por lo tanto, se verá que en un esquema de compartición de secretos de m de n, para cada (n-m) partes en las que el cliente no desea confiar para regenerar o actualizar el secreto, se genera una parte pública adicional, dando así un esquema de n de (2n-m) donde n-m de las partes son públicas.
Aunque parece que los ejemplos anteriores disminuyen el nivel de seguridad reduciendo el número de partes secretas requeridas desde un punto de partida con un número dado de servidores, se verá que puede emplearse cualquier nivel de seguridad y redundancia usando la invención. De este modo, para cualquier nivel de seguridad requerido, es decir m partes secretas requeridas, y redundancia, es decir servidores totales menos (n-m) partes requeridas, entonces usando la invención se emplean (n-m) partes adicionales dentro de un esquema convencional de n de (2n-m).
Haciendo referencia ahora a la Figura 4 que ilustra una implementación ejemplar de la invención, una aplicación 12 que se ejecuta en el cliente 10 tiene comunicaciones seguras pero no fiables con n dispositivos de almacenamiento de datos, por ejemplo, los servidores de posesión de partes B1...Bn, y una conexión insegura pero fiable a otro dispositivo de almacenamiento de datos S, por ejemplo, en el servidor de credenciales 20'. Cada uno de los dispositivos de almacenamiento de datos Bi devuelve al cliente el valor aleatorio yi.
Para conseguir un secreto, que puede ser reconstruido dados sólo m de las yi, un componente de generación de secreto 14' de la aplicación 12 hace lo siguiente:
1.
obtiene (posiblemente generándolo) todos las yi;
2.
trata las yi como partes en un esquema de n de n, y reconstruye el secreto compartido k dado por ellas;
3.
genera unas nuevas (n-m) partes consecuentes con k y las yi; y
4.
almacena estas partes adicionales en el dispositivo de almacenamiento fiable de datos S.
Para reconstruir el secreto en sesiones subsiguientes, el componente de reconstrucción de secreto 16' hace lo siguiente:
1.
obtiene las (n-m) partes del dispositivo de almacenamiento fiable de datos S; y
2.
contacta con m de los dispositivos de almacenamiento de datos Bi y recupera una yi respectiva de cada uno.
Como el cliente tiene ahora n de las partes, el componente de generación de secreto 16' puede reconstruir ahora el secreto k y así la aplicación cliente 12 u otras aplicaciones clientes pueden usar el secreto para, por ejemplo, descifrar la clave privada cifrada para el usuario de la máquina cliente.
La técnica anterior puede usarse para actualizar el secreto incluso en el caso en que no todos los dispositivos de almacenamiento de datos Bi estén en línea. En el procedimiento de actualización, un componente de actualización de secreto 18' hace lo siguiente:
1.
obtiene las (n-m) partes del dispositivo de almacenamiento fiable de datos S;
2.
contacta con m de los dispositivos de almacenamiento de datos Bi y recupera una yi respectiva de cada uno;
3.
reconstruye el secreto k; y también deduce a partir de las partes recuperadas yi los valores de las partes para aquellos dispositivos de almacenamiento de datos que no respondieron;
4.
en general, entabla un procedimiento de manera que al final se sabe que algunos dispositivos de almacenamiento de datos tienen nuevas partes yi' asociadas con ellas y se sabe que algunos sólo tienen las antiguas partes yi, por ejemplo,
\bullet
generando cualquier número menor que n de nuevas partes yi' y transmitiendo cada nueva parte yi' con seguridad al dispositivo de almacenamiento de datos apropiado Bi, solicitando confirmación de que han sido recibidas; o
\bullet
solicitando a cada dispositivo de almacenamiento de datos que genere y devuelva una nueva parte yi';
5. genera un nuevo secreto compartido k' usando las siguientes partes:
\bullet
para cada Bi que no consiguió una nueva parte yi' generada para él, o que se sabe que no ha recibido la yi' que fue enviada, o que no generó una nueva parte yi', usar la antigua parte yi;
\bullet
para cada otro Bi, usar la nueva parte yi'. Esto da un secreto compartido que es consecuente con las partes conocidas por cada uno de los Bi;
6. genera unas nuevas (n-m) partes que son consecuentes con las yi' e yi usadas; y
7. almacena estas partes adicionales en el dispositivo de almacenamiento fiable de datos S.
En un ejemplo más detallado, el esquema de compartición de secretos está basado en el esquema de Shamir que usa interpolación polinómica de Lagrange sobre el grupo Z*p, donde p es un número primo de 1024 bits y los números aleatorios se obtienen usando un refinamiento del esquema de Ford-Kaliski que, a su vez, refina la técnica SPEKE de Jablon.
El sistema está basado en dos números primos: p, un número primo grande (típicamente de 1024 bits) con respecto al cual realizamos potenciación modular; y r, que es el número primo más pequeño que es de 160 bits de longitud.
Para generar partes de servidores poseedores de partes, el componente de generación de secreto 14' genera un número g < p a partir de la contraseña proporcionada por el usuario. Para cada servidor Bi, el componente 14':
\bullet
selecciona un wi aleatorio de 160 bits de longitud.
\bullet
calcula g^wi mod p; y
\bullet
trunca el resultado para que sea de 159 bits de longitud. El resultado es yi, que se debe almacenar en los servidores Bi.
Obsérvese que todos los yi serán menores que r y que el cliente tiene ahora n partes yi, con i = 1 a n. Hay un polinomio f() de grado (m-1) sobre los números enteros mod r, que pasa por los n puntos (i, yi).
Para generar las partes adicionales, el componente de generación de secreto 14':
\bullet
calcula los n coeficientes del polinomio f();
\bullet
calcula el valor de f(0). Este es el secreto compartido; y
\bullet
calcula el valor de f(0), para i = n+1 a 2n-m. Estas son las partes adicionales. Todas ellas pueden ser almacenadas como números de 160 bits.
Para recombinar las partes, el componente de reconstrucción de secreto 16':
\bullet
recupera yi de m de los Bi - esto se hace por el procedimiento esbozado en el documento de Ford-Kaliski;
\bullet
recupera las partes adicionales numeradas de n+1 a 2n-m del servidor adicional S. Esto da al cliente n partes en total. Hay un polinomio de grado (n-1) sobre los números enteros mod r, que pasa por los n puntos (i, yi); y
\bullet
calcula los n coeficientes de este polinomio, f(), y luego calcula f(0). Este es el secreto compartido.
Una vez que el secreto ha sido reconstruido puede ser actualizado como se esbozó previamente.
Aunque las realizaciones preferidas descritas anteriormente son ilustrativas de la invención, se verá que son posibles muchas variaciones de la invención.
Por ejemplo, no es necesario que las partes públicas adicionales estén almacenadas en el servidor 20' apartado del cliente 10, sólo que las partes adicionales sean accesibles de manera fiable cuando ha de actualizarse el secreto. Así, por ejemplo, las partes adicionales pueden estar almacenadas en cualquier medio legible por ordenador como un disquete, tarjeta inteligente, etc.
También se verá que no todos los componentes 14', 16', 18' que incorpora la invención tienen que estar incluidos en la misma aplicación. Específicamente, la generación de secretos y los componentes actualizados pueden ejecutarse en aplicaciones o incluso ordenadores independientemente del componente de reconstrucción de secreto autónomo.
Igualmente, se verá que no todas las partes del secreto tienen que estar almacenadas en servidores remotos, sólo que al menos m de las n partes sean accesibles de manera fiable cuando ha de reconstruirse o actualizarse el secreto. Así, por ejemplo, las partes del secreto pueden estar almacenadas en cualquier medio legible por ordenador como un disquete, tarjeta inteligente, etc.
También se verá que la invención no está limitada estrictamente al uso de la técnica de compartición de secretos de Shamir o la técnica de Ford-Kaliski para obtener con seguridad partes de secretos. Así, por ejemplo, no es estrictamente necesario que se usen los valores de las partes para construir un polinomio del tipo empleado para ilustrar el funcionamiento de la invención.
Por último, se verá que las reivindicaciones no están limitadas estrictamente al orden de las etapas o características enumeradas y que, donde sea posible, la invención puede implementarse en cualquier orden o incluso con etapas que se realizan en paralelo.
\global\parskip1.000000\baselineskip

Claims (10)

1. Un procedimiento de construcción de partes de un secreto, que ha de ser realizado dentro de una red que comprende varios dispositivos informáticos, cada uno dispuesto para almacenar con seguridad al menos una parte de un secreto k para el que se requieren n partes para reconstruir el secreto y al que puede proporcionarse acceso de manera fiable a un número m de dichas partes en cualquier momento dado, comprendiendo el procedimiento las etapas de:
determinar n partes para un esquema de compartición de secretos de n de n, comprendiendo cada parte un valor y;
almacenar al menos alguna de dichas partes en dichos dispositivos informáticos de manera que al menos m de dichas n partes sean accesibles de manera fiable;
determinar el secreto compartido k según dichas partes y;
caracterizado por ser m menor que n y por las etapas de:
determinar unas nuevas (n-m) partes consecuentes con el secreto compartido k y las partes y; y
almacenar las partes adicionales en un lugar accesible de manera fiable.
2. Un procedimiento de reconstrucción de un secreto, que ha de realizarse dentro de una red que comprende varios dispositivos informáticos, cada uno dispuesto para almacenar con seguridad al menos una parte de dicho secreto k para el que se requieren n partes para reconstruir el secreto y al que puede proporcionarse acceso de manera fiable a un número m de dichas partes en cualquier momento dado, comprendiendo el procedimiento las etapas de:
obtener con seguridad m partes de uno o más poseedores de partes del secreto que incluyen al menos uno de dichos dispositivos informáticos;
caracterizado por ser m menor que n y por las etapas de:
obtener (n-m) partes de un lugar accesible de manera fiable;
y
construir el secreto compartido k según dichas partes obtenidas.
3. Un procedimiento de actualización de dicho secreto que comprende las etapas de:
reconstruir dicho secreto k según las etapas de la reivindicación 2;
deducir a partir de las partes obtenidas los valores de las partes para las n-m partes del secreto no obtenidas; determinar un nuevo valor de parte y' para cada lugar del cual se obtuvo con seguridad una parte;
determinar un nuevo secreto compartido k' según los nuevos valores de partes y' y los valores de partes no obtenidas;
almacenar al menos alguna de dichas nuevas partes en dichos dispositivos informáticos de manera que al menos m de dichas nuevas partes y dichas partes no obtenidas sean accesibles de manera fiable;
generar (n-m) partes adicionales que sean consecuentes con los nuevos valores de partes y los valores de partes no obtenidas; y
almacenar las partes adicionales en un lugar accesible de manera fiable.
4. Un procedimiento según la reivindicación 3 en el que dicha etapa de determinar un nuevo valor de parte y' para cada lugar del que se obtuvo con seguridad una parte comprende:
generar dichas nuevas partes y' y transmitir al menos una nueva parte y' con seguridad a uno de los dispositivos informáticos; y
solicitar confirmación de que han sido recibidas.
5. Un procedimiento según la reivindicación 3 en el que dicha etapa de determinar un nuevo valor de parte y' para cada lugar del que se obtuvo con seguridad una parte comprende:
\newpage
solicitar a cada lugar del que se obtuvo con seguridad una parte que genere y devuelva con seguridad una nueva parte y'.
6. Aparato para construir partes de un secreto y que puede funcionar dentro de una red que comprende varios dispositivos informáticos (B1...Bn), cada uno dispuesto para almacenar con seguridad al menos una parte de un secreto k para el que se requieren n partes para reconstruir el secreto y al que puede proporcionarse acceso de manera fiable a un número m de dichas partes en cualquier momento dado, que comprende:
medios (14') para determinar n partes para un esquema de compartición de secretos de n de n, comprendiendo cada parte un valor y;
medios para hacer que al menos alguna de dichas partes sea almacenada en dichos dispositivos informáticos de manera que al menos m de dichas n partes sean accesibles de manera fiable
medios (14') para determinar el secreto compartido k según dichas partes y;
caracterizado por ser m menor que n y por:
medios para determinar unas nuevas (n-m) partes consecuentes con el secreto compartido k y las partes y; y
medios para hacer que las partes adicionales sean almacenadas en un lugar (5) accesible de manera fiable.
7. Aparato para reconstruir un secreto y que puede funcionar en una red que comprende varios dispositivos informáticos (B1...Bn), cada uno dispuesto para almacenar con seguridad al menos una parte de un secreto k para el que se requieren n partes para reconstruir el secreto y al que puede proporcionarse acceso de manera fiable a un número m de dichas partes en cualquier momento dado, que comprende:
medios para obtener con seguridad m partes de uno o más poseedores de partes del secreto que incluyen al menos uno de dichos dispositivos informáticos;
caracterizado por ser m menor que n y por:
medios (18') para obtener (n-m) partes de un lugar (5) accesible de manera fiable; y
medios (18') para construir el secreto compartido k según dichas partes obtenidas.
8. Un producto de programa informático para construir un secreto, estando dispuesto dicho producto de programa informático para realizar las etapas de la reivindicación 1.
9. Un producto de programa informático para reconstruir un secreto, estando dispuesto dicho producto de programa informático para realizar las etapas de la reivindicación 2.
10. Un procedimiento según la reivindicación 1 en el que la etapa de determinar n partes comprende:
determinar n números posiblemente arbitrarios w, siendo calculados dichos valores y a partir de dichos números w.
ES02766681T 2001-04-27 2002-04-18 Sistema y procedimiento para procesar un secreto compartido. Expired - Lifetime ES2278047T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
IE20010423 2001-04-27
IE2001/0423 2001-04-27

Publications (1)

Publication Number Publication Date
ES2278047T3 true ES2278047T3 (es) 2007-08-01

Family

ID=11042774

Family Applications (1)

Application Number Title Priority Date Filing Date
ES02766681T Expired - Lifetime ES2278047T3 (es) 2001-04-27 2002-04-18 Sistema y procedimiento para procesar un secreto compartido.

Country Status (10)

Country Link
US (1) US8718283B2 (es)
EP (1) EP1386215B1 (es)
AT (1) ATE342540T1 (es)
AU (1) AU2002307851A1 (es)
CY (1) CY1107529T1 (es)
DE (1) DE60215332T2 (es)
DK (1) DK1386215T3 (es)
ES (1) ES2278047T3 (es)
PT (1) PT1386215E (es)
WO (1) WO2002088912A2 (es)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7327847B2 (en) * 2003-01-29 2008-02-05 International Business Machines Corporation Method for distributed computation of RSA inverses in asynchronous networks
WO2007049267A1 (en) * 2005-10-27 2007-05-03 Nds Limited Network security system
US7835978B2 (en) * 2005-12-23 2010-11-16 International Business Machines Corporation Method and system for linking an anonymous electronic trade order to an identity of a trader
EP2039053B1 (en) * 2006-06-30 2018-05-23 Koninklijke Philips N.V. Method and apparatus for encrypting/decrypting data
JP4302150B2 (ja) * 2007-03-23 2009-07-22 株式会社東芝 データ処理装置及びプログラム
GB2451505A (en) * 2007-08-01 2009-02-04 Iti Scotland Ltd Key distribution in a network using key shares in a secret sharing scheme
GB0805830D0 (en) * 2008-03-31 2008-04-30 British Telecomm Keys for protecting user access to media
US8862889B2 (en) * 2011-07-02 2014-10-14 Eastcliff LLC Protocol for controlling access to encryption keys
US10742634B1 (en) * 2011-12-27 2020-08-11 Majid Shahbazi Methods for single sign-on (SSO) using optical codes
US9292671B1 (en) * 2012-08-31 2016-03-22 Emc Corporation Multi-server authentication using personalized proactivization
US9230075B1 (en) * 2012-08-31 2016-01-05 Emc Corporation Multi-server authentication using proactivization journaling
US11032259B1 (en) * 2012-09-26 2021-06-08 Pure Storage, Inc. Data protection in a storage system
US10623386B1 (en) * 2012-09-26 2020-04-14 Pure Storage, Inc. Secret sharing data protection in a storage system
US8745415B2 (en) * 2012-09-26 2014-06-03 Pure Storage, Inc. Multi-drive cooperation to generate an encryption key
US9654286B2 (en) * 2013-10-04 2017-05-16 Microsoft Technology Licensing, Llc Content gathering using shared key
US9514326B1 (en) 2013-10-15 2016-12-06 Sandia Corporation Serial interpolation for secure membership testing and matching in a secret-split archive
US10263770B2 (en) 2013-11-06 2019-04-16 Pure Storage, Inc. Data protection in a storage system using external secrets
US11128448B1 (en) 2013-11-06 2021-09-21 Pure Storage, Inc. Quorum-aware secret sharing
US9516016B2 (en) 2013-11-11 2016-12-06 Pure Storage, Inc. Storage array password management
US10623468B1 (en) 2014-05-30 2020-04-14 Mbr Innovations Llc Systems and methods for simultaneous electronic file exchange
WO2016135726A1 (en) * 2015-02-25 2016-09-01 Secret Double Octopus Ltd. Method and system for authenticating and preserving the integrity of communication, secured by secret sharing
US9648012B1 (en) * 2015-06-26 2017-05-09 EMC IP Holding Company LLC Automatic propagation of password updates on multiple devices
US11057210B1 (en) * 2015-09-30 2021-07-06 Apple Inc. Distribution and recovery of a user secret
US10084596B1 (en) * 2015-12-08 2018-09-25 EMC IP Holding Company LLC Proactivized threshold password-based secret sharing with flexible key rotation
US10476672B2 (en) * 2016-03-14 2019-11-12 Callware Technologies, Inc Fragmented encryption of a secret
EP3602383A4 (en) * 2017-03-21 2021-05-19 Tora Holdings, Inc. SECURE ORDER AGREEMENT THROUGH DISTRIBUTION OF DATA AND PROCESSING OVER SEVERAL SEGREGATED CALCULATION NODES
CN109726563B (zh) * 2017-10-31 2020-11-03 创新先进技术有限公司 一种数据统计的方法、装置以及设备
US10826694B2 (en) * 2018-04-23 2020-11-03 International Business Machines Corporation Method for leakage-resilient distributed function evaluation with CPU-enclaves
CN112119608B (zh) * 2018-06-05 2024-02-23 赫尔实验室有限公司 用于可验证秘密共享的系统和异步协议
US11444779B2 (en) * 2018-08-02 2022-09-13 Paypal, Inc. Techniques for securing application programming interface requests using multi-party digital signatures

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5485474A (en) * 1988-02-25 1996-01-16 The President And Fellows Of Harvard College Scheme for information dispersal and reconstruction
US5315658B1 (en) * 1992-04-20 1995-09-12 Silvio Micali Fair cryptosystems and methods of use
USRE36918E (en) * 1992-04-20 2000-10-17 Certco Llc Fair cryptosystems and methods of use
US5825880A (en) * 1994-01-13 1998-10-20 Sudia; Frank W. Multi-step digital signature method and system
EP0695056B1 (en) * 1994-07-29 2005-05-11 Canon Kabushiki Kaisha A method for sharing secret information, generating a digital signature, and performing certification in a communication system that has a plurality of information processing apparatuses and a communication system that employs such a method
US5495532A (en) * 1994-08-19 1996-02-27 Nec Research Institute, Inc. Secure electronic voting using partially compatible homomorphisms
US5625692A (en) 1995-01-23 1997-04-29 International Business Machines Corporation Method and system for a public key cryptosystem having proactive, robust, and recoverable distributed threshold secret sharing
US6137884A (en) * 1995-03-21 2000-10-24 Bankers Trust Corporation Simultaneous electronic transactions with visible trusted parties
US6134326A (en) * 1996-11-18 2000-10-17 Bankers Trust Corporation Simultaneous electronic transactions
US5553145A (en) * 1995-03-21 1996-09-03 Micali; Silvia Simultaneous electronic transactions with visible trusted parties
US6141750A (en) * 1995-03-21 2000-10-31 Micali; Silvio Simultaneous electronic transactions with subscriber verification
KR19990022451A (ko) * 1995-06-05 1999-03-25 피터 씨. 프레운드 다단계 디지털 서명 방법 및 시스템
DE19538385A1 (de) * 1995-10-14 1997-04-17 Deutsche Telekom Ag Verfahren zur Etablierung eines gemeinsamen Schlüssels für autorisierte Personen durch eine Zentrale
US5675649A (en) * 1995-11-30 1997-10-07 Electronic Data Systems Corporation Process for cryptographic key generation and safekeeping
US6026163A (en) * 1995-12-13 2000-02-15 Micali; Silvio Distributed split-key cryptosystem and applications
US5812670A (en) * 1995-12-28 1998-09-22 Micali; Silvio Traceable anonymous transactions
US6012159A (en) * 1996-01-17 2000-01-04 Kencast, Inc. Method and system for error-free data transfer
US5768388A (en) * 1996-03-01 1998-06-16 Goldwasser; Shafi Time delayed key escrow
US5666414A (en) * 1996-03-21 1997-09-09 Micali; Silvio Guaranteed partial key-escrow
JP2000515649A (ja) * 1996-08-07 2000-11-21 バンカーズ・トラスト・コーポレーション 見ることができ信頼できる当事者による同時性電子トランザクション
US5764767A (en) * 1996-08-21 1998-06-09 Technion Research And Development Foundation Ltd. System for reconstruction of a secret shared by a plurality of participants
US6035041A (en) * 1997-04-28 2000-03-07 Certco, Inc. Optimal-resilience, proactive, public-key cryptographic system and method
US6122742A (en) * 1997-06-18 2000-09-19 Young; Adam Lucas Auto-recoverable and auto-certifiable cryptosystem with unescrowed signing keys
US5991414A (en) * 1997-09-12 1999-11-23 International Business Machines Corporation Method and apparatus for the secure distributed storage and retrieval of information
EP0936776B1 (en) * 1998-02-13 2004-05-19 Hitachi, Ltd. A network system using a threshold secret sharing method
US6055508A (en) * 1998-06-05 2000-04-25 Yeda Research And Development Co. Ltd. Method for secure accounting and auditing on a communications network
JP4071870B2 (ja) * 1998-08-20 2008-04-02 インターナショナル・ビジネス・マシーンズ・コーポレーション 秘密鍵生成方法
US6587946B1 (en) * 1998-12-29 2003-07-01 Lucent Technologies Inc. Method and system for quorum controlled asymmetric proxy encryption
US6182214B1 (en) * 1999-01-08 2001-01-30 Bay Networks, Inc. Exchanging a secret over an unreliable network
US7003677B1 (en) * 1999-11-01 2006-02-21 International Business Machines Corporation Method for operating proactively secured applications on an insecure system

Also Published As

Publication number Publication date
EP1386215B1 (en) 2006-10-11
DE60215332D1 (de) 2006-11-23
EP1386215A2 (en) 2004-02-04
PT1386215E (pt) 2007-01-31
DK1386215T3 (da) 2007-02-12
CY1107529T1 (el) 2013-03-13
ATE342540T1 (de) 2006-11-15
WO2002088912A2 (en) 2002-11-07
US20040117649A1 (en) 2004-06-17
WO2002088912A3 (en) 2003-11-06
DE60215332T2 (de) 2007-05-24
US8718283B2 (en) 2014-05-06
AU2002307851A1 (en) 2002-11-11

Similar Documents

Publication Publication Date Title
ES2278047T3 (es) Sistema y procedimiento para procesar un secreto compartido.
US10673626B2 (en) Threshold secret share authentication proof and secure blockchain voting with hardware security modules
US11258582B2 (en) Distributed system and method for encryption of blockchain payloads
ES2687182T3 (es) Determinar un secreto común para el intercambio seguro de información y claves criptográficas jerárquicas y deterministas
CN106534092B (zh) 基于消息依赖于密钥的隐私数据加密方法
Xiong et al. A key protection scheme based on secret sharing for blockchain-based construction supply chain system
ES2620962T3 (es) Sistemas y procedimientos para asegurar datos en movimiento
ES2265826T3 (es) Sistema y metodo para distribucion de documentos.
US20190318356A1 (en) Offline storage system and method of use
US7895436B2 (en) Authentication system and remotely-distributed storage system
US8677148B2 (en) Systems and methods for securing data
US8855317B2 (en) System for protecting an encrypted information unit
KR20180115701A (ko) 지갑 관리 시스템과 연계된 블록 체인 기반 시스템을 위한 암호키의 안전한 다기관 손실 방지 저장 및 전송
JP2020532168A (ja) 閾ボールトを生成する、コンピュータにより実施される方法
JP6882705B2 (ja) 鍵交換システムおよび鍵交換方法
CN113711564A (zh) 用于加密数据的计算机实现的方法和系统
JP4794970B2 (ja) 秘密情報の保護方法及び通信装置
KR102139008B1 (ko) 퍼블릭 블록체인 환경에서 개인정보보호를 위한 거래방법
US20220200792A1 (en) Selective data disclosure via a block chain
JP2023522752A (ja) 分散された鍵のバックアップストレージからの復元
KR102546762B1 (ko) 블룸 필터를 이용한 블록체인에서의 다중 서명 지갑 시스템
JP2008124906A (ja) 認証システム