Patent ES-2902220-T3 (ES)
Title: Custodia de clave enmascarada conjunta basada en cadena de bloques
Inventor: DIAZ VICO JESÚS
IPC: H04L9/08
Filed: 2018-09-27
Granted: 2022-03-25
Abstract: Un método implementado por ordenador para custodiar sin contraseña datos secretos en un servidor (102, 302) de una red cliente-servidor, comprendiendo la red cliente-servidor: - un primer cliente (101, 301) que tiene al menos un par de claves de cliente pública y privada, - al menos un cliente de confianza (103, 303) que tiene al menos un par de claves de cliente de confianza pública y privada, en el que el par de claves de cliente de confianza pública y privada son una clave pública y una clave privada relacionadas con cada cliente de confianza (103, 303), - un servidor (102, 302) que tiene un par de claves de servidor pública y privada, - un sistema de cadena de bloques (202) que comprende una pluralidad de nodos que están configurados para almacenar las claves públicas de los elementos de la red cliente-servidor, estando el sistema de cadena de bloques (202) configurado para garantizar el carácter correcto y único de las claves públicas almacenadas en la pluralidad de nodos, en el que el método comprende las siguientes etapas: a) recuperar (104) mediante el primer cliente (101, 301) a partir del sistema de cadena de bloques (202) la clave pública de un cliente de confianza (103, 303) garantizando la exactitud y unicidad de dicha clave pública, y comprobar en el sistema de cadena de bloques (202), mediante el primer cliente (101, 301), la identidad del al menos un cliente de confianza (103, 303) que almacenó la clave pública del cliente de confianza (103, 303), b) enmascarar de manera criptográfica (105) mediante el primer cliente (101, 301), unos datos secretos (1) con un valor aleatorio obteniendo un primer secreto enmascarado, c) firmar (106) mediante el primer cliente (101, 301), el primer secreto enmascarado, obteniendo una firma digital del primer secreto enmascarado, d) encriptar (106) mediante el primer cliente (101, 301), el primer secreto enmascarado y la firma digital del primer secreto enmascarado usando la clave pública del cliente de confianza (103, 303) obteniendo un primer secreto encriptado público, e) enviar (107) mediante el primer cliente (101, 301) al servidor (102, 302), el primer secreto encriptado público, f) reenviar (108) mediante el servidor (102, 302) al cliente de confianza (103, 303), el primer secreto encriptado público, g) cuando el cliente de confianza (103, 303) recibe el primer secreto encriptado público a partir del servidor (102, 302), recuperar (109) mediante el cliente de confianza (103, 303) a partir del sistema de cadena de bloques (202) la clave pública del primer cliente (101, 301) garantizando la exactitud y unicidad de dicha clave pública, y desencriptar (110) mediante el cliente de confianza (103, 303) el primer secreto encriptado público usando su clave privada obteniendo el primer secreto enmascarado, y comprobar en el sistema de cadena de bloques (202), mediante el cliente de confianza (103, 303), la identidad del primer cliente (101, 301) que almacenó la clave pública del primer cliente (101, 301), h) verificar (111) mediante el cliente de confianza (103, 303) la firma digital del primer secreto enmascarado usando la clave pública del primer cliente (101, 301), si la firma digital es válida el método continúa en la etapa i), i) encriptar de manera enmascarada (112) mediante el cliente de confianza (103, 303), el primer secreto enmascarado con una clave secreta aleatoria obteniendo un segundo secreto enmascarado, j) firmar (113) mediante el cliente de confianza (103, 303), el segundo secreto enmascarado, obteniendo una firma digital del segundo secreto enmascarado, k) encriptar (113) mediante el cliente de confianza (103, 303), el segundo secreto enmascarado y la firma digital del segundo secreto enmascarado usando la clave pública del primer cliente (101, 301) obteniendo un segundo secreto encriptado público, l) enviar (114) mediante el cliente de confianza (103, 303) al servidor (102, 302), el segundo secreto encriptado público, m) reenviar (115) mediante el servidor (102, 302) al primer cliente (101, 301), el segundo secreto encriptado público, n) cuando el primer cliente (101, 301) recibe el segundo secreto encriptado público a partir del servidor (102, 302), desencriptar (116) mediante el primer cliente (101, 301) el segundo secreto encriptado público usando su clave privada obteniendo el segundo secreto enmascarado, o) verificar (117) mediante el primer cliente (101, 301) la firma digital del segundo secreto enmascarado usando la clave pública del cliente de confianza (103, 303), si la firma digital es válida el método continúa en la etapa p), p) desenmascarar de manera criptográfica (118) mediante el primer cliente (101, 301) el segundo secreto enmascarado con el valor aleatorio, obteniendo un secreto encriptado, que es una encriptación de los datos secretos del primer usuario con la clave secreta aleatoria del cliente de confianza, q) firmar (119) mediante el primer cliente (101, 301), el secreto encriptado usando la clave privada del primer cliente (101, 301) obteniendo una firma digital del secreto encriptado, r) enviar (120) mediante el primer cliente (101, 301) al servidor (102, 302), el secreto encriptado y la firma digital del secreto encriptado, s) cuando el servidor (102, 302) recibe el secreto encriptado y la firma digital del secreto encriptado, verificar (121) la firma digital del secreto encriptado usando la clave pública del primer cliente (101, 301), y si la firma digital del secreto encriptado es válida, encriptar (122) mediante el servidor (102, 302), el secreto encriptado con la clave pública del servidor (102, 302) obteniendo un secreto encriptado de manera doble y almacenar (123) el secreto encriptado de manera doble en el servidor (102, 302).