ES2713673T3 - Procedimientos, sistemas y producto de programa de ordenador para proporcionar encriptado en una pluralidad de dispositivos - Google Patents

Procedimientos, sistemas y producto de programa de ordenador para proporcionar encriptado en una pluralidad de dispositivos Download PDF

Info

Publication number
ES2713673T3
ES2713673T3 ES15806851T ES15806851T ES2713673T3 ES 2713673 T3 ES2713673 T3 ES 2713673T3 ES 15806851 T ES15806851 T ES 15806851T ES 15806851 T ES15806851 T ES 15806851T ES 2713673 T3 ES2713673 T3 ES 2713673T3
Authority
ES
Spain
Prior art keywords
user
key
server
encryption
encrypted
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
ES15806851T
Other languages
English (en)
Inventor
En-Hui Yang
Xiang Yu
Jin Meng
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.)
Bicdroid Inc
Original Assignee
Bicdroid Inc
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 Bicdroid Inc filed Critical Bicdroid Inc
Application granted granted Critical
Publication of ES2713673T3 publication Critical patent/ES2713673T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • H04L9/0897Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/32User authentication using biometric data, e.g. fingerprints, iris scans or voiceprints
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/41User authentication where a single sign-on provides access to a plurality of computers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • G06F21/6254Protecting personal data, e.g. for financial or medical purposes by anonymising data, e.g. decorrelating personal data from the owner's identification
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/062Network architectures or network communication protocols for network security for supporting key management in a packet data network for key distribution, e.g. centrally by trusted party
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0892Network architectures or network communication protocols for network security for authentication of entities by using authentication-authorization-accounting [AAA] servers or protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/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
    • 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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • 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/12Transmitting and receiving encryption devices synchronised or initially set up in a particular manner
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • H04L9/16Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms the keys or algorithms being changed during operation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
    • H04L9/3231Biological data, e.g. fingerprint, voice or retina

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Computing Systems (AREA)
  • Databases & Information Systems (AREA)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biodiversity & Conservation Biology (AREA)
  • Biomedical Technology (AREA)
  • Medical Informatics (AREA)
  • Storage Device Security (AREA)
  • Telephonic Communication Services (AREA)

Abstract

Un procedimiento para proporcionar encriptado en una pluralidad de dispositivos (102a-1021) configurados para comunicación electrónica con un servidor (230), incluyendo la pluralidad de dispositivos (102a-1021) al menos un primer dispositivo (102a) y un segundo dispositivo (102b), comprendiendo el procedimiento: generar una primera cuenta para un primer usuario (140) en control de la pluralidad de dispositivos (102a-1021), en el que la primera cuenta almacena datos de cuenta en una memoria de servidor no volátil, comprendiendo los datos de cuenta un identificador del primer usuario (140) e información de autentificación de la cuenta; para cada dispositivo (102a-1021) en la pluralidad de dispositivos (102a-1021), instalar un agente (104) de encriptado en ese dispositivo (102a-1021); operar un procesador del primer dispositivo (102a) bajo el control del agente (104) de encriptado para: generar aleatoriamente una pluralidad de números aleatorios; generar una pluralidad de números aleatorios encriptados a partir de la pluralidad de números aleatorios utilizando una clave de encriptado del segundo dispositivo, correspondiendo cada número aleatorio encriptado a uno de los números aleatorios en la pluralidad de números aleatorios; transmitir la pluralidad de números aleatorios encriptados al servidor (230) para impedir la exposición de los números aleatorios al servidor (230); generar una pluralidad de valores de inicialización (106) de claves basadas en la pluralidad de números aleatorios, en el que para cada valor de inicialización de clave, el agente (104) de encriptado es operable para controlar el procesador del primer dispositivo (102a) para generar una pluralidad de claves de encriptado independientes; y almacenar información de valores de inicialización de clave basada en la pluralidad de valores de inicialización (106) de claves en la memoria del primer dispositivo no volátil; generar una cadena de estado de clave para la primera cuenta, incluyendo la cadena de estado de clave una porción de número aleatorio de servidor generada basándose en la pluralidad de números aleatorios encriptados; almacenar la cadena de estado clave en la memoria del servidor no volátil; recibir información de autentificación putativa en el segundo dispositivo (102b); operar un procesador del segundo dispositivo (102b), bajo el control del agente (104) de encriptado instalado en el segundo dispositivo (102b), para generar información de autentificación putativa del servidor basada en la información de autentificación putativa y transmitir la información de autentificación putativa del servidor al servidor (230); y operar el procesador del servidor (230) para comparar la información de autentificación del servidor putativo con la información de autentificación de la cuenta, y proporcionar al segundo dispositivo (102b) acceso a la cadena de estado de clave si y solo si la información de autentificación del servidor putativo corresponde a la información de autentificación de la cuenta; operar el procesador del segundo dispositivo (102b) bajo el control del agente (104) de encriptado para: determinar la pluralidad de números aleatorios a partir de la pluralidad de números aleatorios encriptados en la cadena de estado de clave utilizando la clave de desencriptado del segundo dispositivo; generar la pluralidad de valores de inicialización (106) de claves basándose en la pluralidad de números aleatorios, en el que para cada valor de inicialización de clave, el agente (104) de encriptado es operable para controlar el procesador del segundo dispositivo (102b) para generar la misma pluralidad claves de encriptado independientes como el primer dispositivo (102a), sin que ninguna de los valores de inicialización (106) de claves, información de valor de inicialización de clave y claves de encriptado se proporcionen al segundo dispositivo (102b); y almacenar la información de valor de inicialización de clave basada en la pluralidad de valores de inicialización (106) de claves en la memoria del segundo dispositivo no volátil.

Description

DESCRIPCION
Procedimientos, sistemas y producto de programa de ordenador para proporcionar encriptado en una pluralidad de dispositivos
Campo
Las realizaciones de la presente invencion se refieren en general a la proteccion y al encriptado de datos, y mas espedficamente a procedimientos para la sincronizacion de archivos encriptados y al intercambio de archivos encriptados.
Antecedentes
A medida que las personas se vuelven mas dependientes de las tecnologfas informaticas y de Internet, la seguridad de los datos es cada vez mas importante que nunca. Con las conexiones a Internet cada vez mas ubicuas, es relativamente facil acceder y distribuir los datos ampliamente a traves del uso de nubes. Para disfrutar de los beneficios de la computacion en la nube, las personas y las empresas a menudo cargan sus datos en servidores en la nube. Esto a menudo incluye datos privados o confidenciales, o cualquier dato que un usuario quiera proteger. Esto aumenta la posibilidad de que los datos privados e importantes se vean innecesariamente expuestos si se dejan sin proteger.
Por lo general, las personas dependen de los proveedores de servicios en la nube para garantizar la seguridad de sus datos. Sin embargo, el almacenamiento en la nube puede tener varias vulnerabilidades de seguridad asociadas. En su informe de 2013 ("The notorious nine: Cloud computing top threats in 2013, "http://www.cloudsecuritvalliance.org/topthreats"), la Alianza de Seguridad en la Nube identifico las nueve amenazas de seguridad mas importantes para la computacion en la nube, incluidas las violaciones de datos, la perdida de datos, informacion interna maliciosa y problemas de tecnologfa compartida. Dichos problemas de seguridad de los datos no son deseables y pueden ralentizar la utilizacion de los servicios en la nube.
Una forma de mitigar los problemas de seguridad de datos es a traves de la encriptacion. Por ejemplo, se pueden usar herramientas independientes como Winzip y PDF seguro para encriptar archivos antes de que esos archivos se guarden y almacenen, carguen y/o transmitan. Sin la clave de desencriptado correspondiente, el archivo encriptado puede no ser comprensible.
Sin embargo, el uso de herramientas independientes tales como Winzip y PDF seguro para encriptar varios archivos en una carpeta tiene varios inconvenientes. Por ejemplo, a un usuario se le puede solicitar que ingrese una contrasena para encriptar cada archivo, y que ingrese la contrasena correspondiente para desencriptar el archivo encriptado para su visualizacion y/o modificacion. Cuando aumenta el numero de archivos, este enfoque se vuelve tedioso y no es facil de usar. Ademas, el usuario puede confundirse facilmente acerca de que contrasena descifra que archivo si se usan contrasenas diferentes para encriptar archivos diferentes. Ademas, la fuerza de encriptado en estos ejemplos depende de que tan seguras sean las contrasenas elegidas por el usuario. Debido a la dificultad que experimentan los usuarios para crear y memorizar contrasenas aleatorias seguras, tienden a elegir contrasenas mas debiles, y el encriptado resultante a menudo puede ser debil. Como resultado, los archivos encriptados con herramientas independientes pueden ser vulnerables a ataques sofisticados. Ademas, si las contrasenas se olvidan o se pierden, puede ser diffcil o imposible recuperar los archivos de texto sin formato originales de los archivos encriptados. Esto da como resultado de manera efectiva una perdida permanente de datos. Finalmente, cuando los archivos se encriptan utilizando herramientas independientes, compartir archivos encriptados entre un grupo de personas puede ser tedioso y, a menudo, requiere el uso de canales laterales para intercambiar contrasenas.
El documento US 2011/154041 A1 describe un procedimiento para transferir de forma segura un servicio desde un primer dispositivo movil a un segundo dispositivo movil, estando asociado el servicio con un servidor configurado para facilitar la provision de servicios a los dispositivos moviles en una red de comunicaciones inalambricas.
Sumario
La invencion se define mediante las caractensticas de las reivindicaciones independientes. Realizaciones preferidas se definen mediante las caractensticas de las reivindicaciones dependientes.
De acuerdo con una primera realizacion descrita en el presente documento, se proporciona un procedimiento para proporcionar el encriptado en una pluralidad de dispositivos configurados para la comunicacion electronica con un servidor, incluyendo la pluralidad de dispositivos al menos un primer dispositivo y un segundo dispositivo. El procedimiento puede incluir generar una primera cuenta para un primer usuario que controle la pluralidad de dispositivos, donde la primera cuenta almacena los datos de la cuenta en una memoria de servidor no volatil, y los datos de la cuenta incluyen un identificador del primer usuario e informacion de autentificacion de la cuenta. El procedimiento tambien puede incluir, para cada dispositivo en la pluralidad de dispositivos, instalar un agente de encriptado en ese dispositivo y operar un procesador del primer dispositivo bajo el control del agente de encriptado para generar aleatoriamente una pluralidad de indicadores de claves para: generar una la pluralidad de indicadores de claves encriptados de la pluralidad de indicadores de claves que utilizan una clave de encriptado del segundo dispositivo, correspondiendo cada indicador de clave encriptado a uno de los indicadores de claves en la pluralidad de indicadores de claves; transmitir la pluralidad de indicadores de claves encriptados al servidor para impedir la exposicion de los indicadores de claves al servidor; generar una pluralidad de valores de inicializacion de clave basadas en la pluralidad de indicadores de claves, donde para cada valor de inicializacion de clave, el agente de encriptado puede ser operable para controlar el procesador del primer dispositivo para generar una pluralidad de claves de encriptado independientes; y almacenar informacion de valor de inicializacion de clave en base a la pluralidad de valores de inicializacion de clave en la memoria del primer dispositivo no volatil. El procedimiento puede incluir ademas generar una cadena de estado de clave para la primera cuenta, incluyendo la cadena de estado de clave una porcion de indicador de clave de servidor generada en funcion de la pluralidad de indicadores de claves encriptados; almacenar la cadena de estado clave en la memoria del servidor no volatil; recibir informacion de autentificacion putativa en el segundo dispositivo; operar un procesador del segundo dispositivo, bajo el control del agente de encriptado instalado en el segundo dispositivo, para generar informacion de autentificacion putativa del servidor en base a la informacion de autentificacion putativa y transmitir la informacion de autentificacion putativa del servidor al servidor; y operar el procesador del servidor para comparar la informacion de autentificacion del servidor putativo con la informacion de autentificacion de la cuenta, y proporcionar al segundo dispositivo acceso a la cadena de estado de clave si y solo si la informacion de autentificacion del servidor putativo corresponde a la informacion de autentificacion de la cuenta. El procedimiento tambien puede incluir operar el procesador del segundo dispositivo bajo el control del agente de encriptado para determinar la pluralidad de indicadores de claves de la pluralidad de indicadores de claves encriptados en la cadena de estado de clave usando la clave de desencriptado del segundo dispositivo; generar la pluralidad de valores de inicializacion de clave en funcion de la pluralidad de indicadores de claves, donde para cada valor de inicializacion de clave, el agente de encriptado puede ser operable para controlar el procesador del segundo dispositivo para generar la misma pluralidad de claves de encriptado independientes que el primer dispositivo, sin cualquiera de los valores de inicializacion de clave, proporcionandose la informacion de valores de inicializacion de clave y las claves de encriptado al segundo dispositivo; y almacenar la informacion de valor de inicializacion de clave basada en la pluralidad de valores de inicializacion de clave en la memoria del segundo dispositivo no volatil.
En algunas realizaciones, el procedimiento puede incluir la generacion de la pluralidad de valores de inicializacion de clave mediante la operacion adicional del procesador del servidor para generar aleatoriamente los valores de clave de servidor para la primera cuenta, almacenar el servidor de valores de clave en la memoria del servidor no volatil, y transmitir los valores de la clave del servidor al primer dispositivo; y operar el procesador del primer dispositivo bajo el control del agente de encriptado para generar la pluralidad de valores de inicializacion de clave basadas en los valores de clave del servidor y la pluralidad de indicadores de claves; donde el procesador del servidor puede operarse para proporcionar al segundo dispositivo acceso a los valores de clave del servidor si y solo si la informacion de autentificacion del servidor putativo corresponde a la informacion de autentificacion de la cuenta; y el procesador del segundo dispositivo puede ser operado, bajo el control del agente de encriptado, para generar la pluralidad de valores de inicializacion de clave basadas en la pluralidad de indicadores de claves y los valores de clave del servidor.
En algunas realizaciones, el procedimiento puede incluir la operacion del procesador del primer dispositivo, bajo el control del agente de encriptado, para generar la pluralidad de indicadores de claves encriptados por: definir un primer codigo de verificacion; definir la clave de encriptado del segundo dispositivo basada en el primer codigo de verificacion; y encriptar la pluralidad de indicadores de claves utilizando la clave de encriptado del segundo dispositivo; donde la clave de desencriptado del segundo dispositivo se puede generar al operar el procesador del segundo dispositivo bajo el control del agente de encriptado para definir un segundo codigo de verificacion y generar la clave de desencriptado del segundo dispositivo basandose en el segundo codigo de verificacion; y el segundo codigo de verificacion puede ser el primer codigo de verificacion.
En algunas realizaciones, el procedimiento puede incluir la operacion de un procesador del primer dispositivo bajo el control del agente de encriptado para generar un codigo de servidor de encriptado basado en el primer codigo de verificacion y transmitir el codigo de servidor encriptado al servidor, y almacenar el codigo de servidor encriptado en la informacion de autentificacion de la primera cuenta, donde la informacion de autentificacion putativa recibida en el segundo dispositivo puede ser un codigo de verificacion putativo, la informacion de autentificacion de servidor putativo puede ser un codigo de servidor encriptado putativo generado basandose en el codigo de verificacion putativo, y la informacion de autentificacion de servidor putativo corresponde a la informacion de autentificacion de la cuenta si y solo si el codigo de servidor encriptado putativo coincide con el codigo de servidor encriptado.
En algunas realizaciones, el procedimiento puede incluir ademas proporcionar un archivo para ser encriptado y almacenado en el primer dispositivo, operando el procesador del primer dispositivo bajo el control del agente de encriptado para derivar una de las claves de encriptado de la informacion del valor de inicializacion de clave que utiliza la informacion de codificacion, encriptando y almacenando el archivo como un archivo encriptado en la memoria del primer dispositivo no volatil mediante la clave de encriptado derivada, y almacenando la informacion de la clave con el archivo encriptado en la memoria del primer dispositivo no volatil, donde la informacion del valor de inicializacion de clave puede ser encriptada usando el primer codigo de verificacion antes del almacenamiento.
En algunas realizaciones, el procedimiento puede ademas incluir recibir el archivo encriptado y la informacion de generacion de claves en el segundo dispositivo, y operar el procesador del segundo dispositivo bajo el control del agente de encriptado para derivar la clave de encriptado de la informacion de los valores de inicializacion de clave almacenada en la memoria del segundo dispositivo no volatil utilizando la informacion de codificacion recibida y desencriptar el archivo encriptado utilizando la clave de codificacion derivada.
En algunas realizaciones, el procedimiento puede incluir ademas seleccionar de manera aleatoria informacion de generacion de claves cuando el agente de encriptado recibe una indicacion del archivo a encriptar.
En algunas realizaciones, el procedimiento puede incluir ademas operar el procesador del primer dispositivo bajo el control del agente de encriptado para definir un primer codigo de verificacion, generar un codigo local encriptado basado en el primer codigo de verificacion y almacenar el codigo encriptado local en la memoria del primer dispositivo no volatil. El procedimiento puede incluir ademas recibir una solicitud para acceder a los archivos y un codigo de verificacion putativo local en el primer dispositivo, y operar el procesador del primer dispositivo bajo el control del agente de encriptado para generar un codigo local encriptado putativo, comparar el codigo local encriptado putativo con el codigo local encriptado para determinar si el codigo de verificacion putativo local es el primer codigo de verificacion, y proporcionar acceso a los archivos encriptados por el agente de encriptado si y solo si el codigo local encriptado putativo coincide con el codigo local encriptado.
En algunas realizaciones, el procedimiento puede incluir almacenar la informacion de valores de inicializacion de clave mediante el encriptado de la pluralidad de valores de inicializacion de clave usando el primer codigo de verificacion, y almacenar la pluralidad encriptada de valores de inicializacion de clave en la primera memoria del dispositivo no volatil.
En algunas realizaciones del procedimiento, el primer usuario puede incluir una pluralidad de usuarios del grupo, que puede incluir al menos un usuario del grupo administrativo y un segundo grupo de usuarios. En algunas realizaciones del procedimiento, cada uno de los usuarios del grupo puede tener el control de al menos uno de los dispositivos en la pluralidad de dispositivos, donde el usuario del grupo administrativo puede tener el control del primer dispositivo y el segundo usuario del grupo puede estar en control del segundo dispositivo. En algunas realizaciones del procedimiento, para cada usuario del grupo en la pluralidad de usuarios del grupo, los datos de la cuenta pueden comprender ademas una clave publica espedfica del usuario, donde la clave publica espedfica del usuario para cada usuario puede generarse basandose en una clave privada espedfica del usuario almacenada en una memoria no volatil de un dispositivo correspondiente en la pluralidad de dispositivos. En algunas realizaciones del procedimiento, para cada usuario del grupo en la pluralidad de usuarios del grupo, el procesador del primer dispositivo puede ser operado bajo el control del agente de encriptado para generar la pluralidad de indicadores de claves encriptados generando una pluralidad de indicadores de claves encriptados que utilizan la clave publica espedfica del usuario para ese usuario. En algunas realizaciones del procedimiento, la porcion del indicador de clave del servidor de la cadena de estado de clave para la primera cuenta puede incluir, ademas, para cada usuario del grupo en la pluralidad de usuarios del grupo, una parte de la cadena espedfica del usuario que se puede generar en funcion de la pluralidad de los indicadores de claves encriptados espedficos del usuario para ese usuario del grupo. En algunas realizaciones del procedimiento, el procesador del segundo dispositivo puede ser operado bajo el control del agente de encriptado para determinar la pluralidad de indicadores de claves de la pluralidad de indicadores de claves encriptados espedficos del usuario en la parte espedfica del usuario de la porcion del indicador de la clave del servidor correspondiente al segundo usuario del grupo que usa la clave privada del segundo dispositivo.
En algunas realizaciones del procedimiento, la informacion de autentificacion de cuenta para la primera cuenta puede incluir, para cada grupo de usuarios en la pluralidad de usuarios del grupo, un codigo de encriptado del servidor espedfico del usuario. En algunas realizaciones del procedimiento, el codigo encriptado del servidor espedfico del usuario para cada usuario se genera al operar un procesador de un dispositivo en la pluralidad de dispositivos correspondientes a ese usuario, bajo el control del agente de encriptado para: definir un usuario espedfico el codigo de verificacion, generar el codigo encriptado del servidor espedfico del usuario basado en el codigo de verificacion espedfico del usuario y transmitir el codigo encriptado del servidor espedfico al usuario; y almacenar el codigo encriptado del servidor espedfico del usuario en la informacion de autentificacion de la cuenta de la primera cuenta.
En algunas realizaciones del procedimiento, el primer usuario puede incluir una pluralidad de usuarios, lo que puede a su vez incluir un usuario administrativo en el control del primer dispositivo y un segundo usuario en el control del segundo dispositivo. En algunas realizaciones, el procedimiento puede incluir ademas transmitir una autorizacion del segundo usuario al segundo usuario transmitiendo un identificador del segundo usuario del segundo usuario desde el primer dispositivo al servidor y operar el procesador del servidor: generar una informacion de registro del segundo usuario basada en el identificador del segundo usuario y una contrasena del segundo usuario, almacenar la informacion de registro del segundo usuario en la memoria del servidor no volatil, y transmitir una autorizacion de servidor de segundo usuario al segundo usuario. En algunas realizaciones, el procedimiento puede incluir ademas: recibir, por el segundo usuario, la autorizacion del servidor del segundo usuario, y posteriormente instalar un agente de encriptado en el segundo dispositivo; recibir una contrasena del segundo usuario putativo en el segundo dispositivo; operar el procesador del segundo dispositivo bajo el control del agente de encriptado para generar informacion de registro de segundo usuario putativo basada en el identificador del segundo usuario y la contrasena de segundo usuario putativo y transmitir la informacion de registro de segundo usuario putativo al servidor; operar el procesador del servidor para comparar la informacion de registro de segundo usuario putativo con la informacion de registro de segundo usuario almacenada, y autentificar el segundo dispositivo para la primera cuenta solo si la informacion de registro de segundo usuario putativo corresponde a la informacion de registro de segundo usuario almacenada; operar el procesador del segundo dispositivo autentificado bajo el control del agente de encriptado para generar la clave de desencriptado del segundo dispositivo, generar la clave de encriptado del segundo dispositivo basada en la clave de desencriptado del segundo dispositivo y transmitir la clave de encriptado del segundo dispositivo al servidor; recibir la clave de encriptado del segundo dispositivo en el primer dispositivo; y operar el procesador del primer dispositivo bajo el control del agente de encriptado para generar la pluralidad de indicadores de claves encriptados a partir de la pluralidad de indicadores de claves utilizando la clave de encriptado del segundo dispositivo recibido.
En algunas realizaciones del procedimiento, la clave de desencriptado del segundo dispositivo puede ser una clave privada espedfica de usuario del segundo usuario. En algunas realizaciones del procedimiento, la clave privada espedfica del usuario puede almacenarse en la memoria no volatil del segundo dispositivo. En algunas realizaciones del procedimiento, la clave de encriptado del segundo dispositivo puede ser una clave publica espedfica del usuario correspondiente generada basandose en la clave privada espedfica del usuario.
En algunas realizaciones del procedimiento, el primer usuario puede incluir una pluralidad de usuarios, incluyendo un usuario administrativo en el control del primer dispositivo y un segundo usuario en el control del segundo dispositivo. En algunas realizaciones del procedimiento, el procedimiento incluye ademas: proporcionar un archivo para ser encriptado al primer dispositivo; operar el procesador del primer dispositivo bajo el control del agente de encriptado para derivar una de las claves de encriptado a partir de la informacion del valor de inicializacion de la clave utilizando la informacion de la clave, y encriptar el archivo como un archivo encriptado con la clave de encriptado derivada; y transmitir el archivo encriptado, la informacion de codificacion y una autorizacion del segundo usuario al segundo usuario. En algunas realizaciones, el procedimiento puede incluir ademas: recibir, por el segundo usuario, la autorizacion del segundo usuario y, posteriormente, instalar un agente de encriptado en el segundo dispositivo; recibir el archivo encriptado y la informacion de codificacion en el segundo dispositivo; operar el procesador del segundo dispositivo bajo el control del agente de encriptado para obtener la clave de encriptado a partir de la informacion de valor de inicializacion almacenada en la memoria del segundo dispositivo no volatil usando la informacion de clave recibida y desencriptar el archivo encriptado usando la clave de encriptado derivada.
En algunas realizaciones del procedimiento, el primer usuario puede ser un solo usuario en el control de la pluralidad de dispositivos, y el identificador del primer usuario puede incluir una pluralidad de identificadores de alias de usuario. En algunas realizaciones del procedimiento, cada identificador de alias de usuario puede compartir la misma informacion de autentificacion de cuenta.
En algunas realizaciones del procedimiento, el primer usuario puede incluir una pluralidad de usuarios, teniendo cada usuario el control de al menos uno de los dispositivos de la pluralidad de dispositivos y teniendo un identificador espedfico del usuario, y para al menos una de los usuarios en la pluralidad de usuarios, el identificador espedfico del usuario para ese usuario puede incluir una pluralidad de identificadores de alias espedficos del usuario, con cada identificador de alias espedfico del usuario compartiendo la informacion de autentificacion de la cuenta para ese usuario.
De acuerdo con otro ejemplo de realizacion descrito en este documento, se proporciona un producto de programa de ordenador para su uso en una pluralidad de dispositivos para proporcionar encriptado para la pluralidad de dispositivos, la pluralidad de dispositivos esta configurado para comunicacion electronica con un servidor y que incluye al menos un primer dispositivo con un primer procesador de dispositivos y una primera memoria de dispositivos no volatil y un segundo dispositivo; teniendo el servidor almacenado en el mismo una primera cuenta para un primer usuario que controla la pluralidad de dispositivos, almacenando la primera cuenta los datos de la cuenta, incluyendo un identificador del primer usuario e informacion de autentificacion de cuenta en una memoria de servidor no volatil, e incluyendo el producto de programa de ordenador un medio de grabacion no transitorio e
instrucciones grabadas en el medio de grabacion, con las instrucciones para configurar el primer procesador del dispositivo para: generar aleatoriamente una pluralidad de indicadores de claves; generar una pluralidad de indicadores de claves encriptados a partir de la pluralidad de indicadores de claves utilizando una clave de encriptado del segundo dispositivo, correspondiendo cada indicador de clave encriptado a uno de los indicadores de claves de la pluralidad de indicadores de claves, correspondiendo la clave de encriptado del segundo dispositivo a una clave de desencriptado del segundo dispositivo desconocido para el servidor; transmitir la pluralidad de indicadores de claves encriptados al servidor para impedir la exposicion de los indicadores de claves al servidor, pudiendo operar el servidor para generar una cadena de estado de clave para la primera cuenta que incluye una porcion de indicador de clave del servidor basada en la pluralidad de indicadores de claves encriptados y para proporcionar al segundo dispositivo acceso a la cadena de estado de clave si y solo si la informacion de autentificacion del servidor putativo recibida del segundo dispositivo corresponde a la informacion de autentificacion de la cuenta; generar una pluralidad de valores de inicializacion de clave basadas en la pluralidad de indicadores de claves, donde para cada valor de inicializacion de clave, el primer procesador del dispositivo puede ser operable para generar una pluralidad de claves de encriptado independientes; y almacenar informacion de valor de inicializacion de clave basada en la pluralidad de valores de inicializacion de clave en la memoria del primer dispositivo no volatil. En algunas realizaciones del producto de programa de ordenador, la pluralidad de indicadores de claves se puede determinar en el segundo dispositivo a partir de la pluralidad de indicadores de claves encriptados en la cadena de estado de clave utilizando la clave de desencriptado del segundo dispositivo de manera que se pueda generar la misma pluralidad de valores de inicializacion de clave basado en la pluralidad de indicadores de claves, y para cada valor de inicializacion de clave, un procesador del segundo dispositivo puede generar la misma pluralidad de claves de encriptado independientes que el primer dispositivo, sin proporcionar ninguna de las claves clave, informacion de valor de inicializacion clave y claves de encriptado al segundo dispositivo.
En algunas realizaciones, el producto de programa de ordenador puede incluir adicionalmente instrucciones para configurar el primer procesador del dispositivo para generar la pluralidad de valores de inicializacion de clave mediante la recepcion de una pluralidad de valores de clave de servidor generados de forma aleatoria desde el servidor, almacenandose los valores de clave de servidor en la primera cuenta, y generar la pluralidad de valores de inicializacion de clave basadas en los valores de clave del servidor y la pluralidad de indicadores de claves.
En algunas realizaciones, el producto de programa de ordenador puede incluir adicionalmente instrucciones para configurar el primer procesador del dispositivo para definir un primer codigo de verificacion, definir la clave de encriptado segundo dispositivo basado en el primer codigo de verificacion, y encriptar la pluralidad de indicadores de claves utilizando el clave de encriptado del segundo dispositivo, donde tambien se puede generar la clave de desencriptado del segundo dispositivo en funcion del primer codigo de verificacion.
En algunas realizaciones, el producto de programa de ordenador puede incluir adicionalmente instrucciones para configurar el primer procesador del dispositivo para generar un codigo de servidor de encriptado basado en el primer codigo de verificacion y transmitir el codigo de servidor de encriptado al servidor para su almacenamiento en la informacion de autentificacion de la cuenta de la primera cuenta, donde el servidor puede configurarse para proporcionar acceso a la cadena de estado de clave si y solo si la informacion de autentificacion del servidor putativo recibida desde el segundo dispositivo corresponde al codigo de servidor encriptado almacenado en la informacion de autentificacion de la primera cuenta.
En algunas realizaciones, el producto de programa de ordenador puede incluir adicionalmente instrucciones para configurar el primer procesador dispositivo para recibir un archivo para ser codificados, derivar una de las claves de encriptado de la informacion de clave de valores de inicializacion que utilizan modulacion informacion, encriptar y almacenar el archivo como un archivo encriptado en la memoria del primer dispositivo no volatil que utiliza la clave de encriptado derivada, almacenar la informacion de codificacion con el archivo encriptado en la memoria del primer dispositivo no volatil y encriptar la informacion de valor de inicializacion de clave utilizando el primer codigo de verificacion antes del almacenamiento.
En algunas realizaciones, el producto de programa de ordenador puede incluir adicionalmente instrucciones para configurar el primer procesador del dispositivo para recibir un archivo encriptado y la informacion de generacion de claves, derivar la clave de encriptado de la informacion inicial de clave almacenada en la memoria primer dispositivo no volatil usando la informacion de clave recibida; y desencriptar el archivo encriptado utilizando la clave de encriptado derivada.
En algunas realizaciones, el producto de programa de ordenador puede incluir adicionalmente instrucciones para configurar el primer procesador del dispositivo para seleccionar de manera aleatoria la informacion de generacion de claves despues de recibir una indicacion del archivo a encriptar.
En algunas realizaciones, el producto de programa de ordenador puede incluir adicionalmente instrucciones para configurar el primer procesador del dispositivo para definir un primer codigo de verificacion, generar un codigo local encriptado basado en el primer codigo de verificacion, almacenar el codigo local encriptado en la primera memoria del dispositivo no volatil, luego recibir una solicitud para acceder a los archivos y un codigo de verificacion putativo local, generar un codigo local encriptado putativo, comparar el codigo local encriptado putativo con el codigo local encriptado para determinar si el codigo de verificacion putativo local es el primer codigo de verificacion, y proporcionar acceso a los archivos encriptados por el agente de encriptado si y solo si el codigo local encriptado putativo coincide con el codigo local encriptado.
En algunas realizaciones, el producto de programa de ordenador puede incluir adicionalmente instrucciones para configurar el primer procesador del dispositivo para almacenar la informacion de clave de valores de inicializacion mediante el encriptado de la pluralidad de valores de inicializacion de clave usando el primer codigo de verificacion, y almacenar la pluralidad encriptada de valores de inicializacion de clave en la memoria del primer dispositivo no volatil.
En algunas realizaciones del producto de programa de ordenador, el primer usuario puede incluir una pluralidad de usuarios del grupo incluyendo al menos un usuario del grupo administrativo y un segundo grupo de usuarios, teniendo cada uno de los usuarios del grupo el control de al menos uno de los dispositivos en la pluralidad de dispositivos, donde el usuario del grupo administrativo puede tener el control del primer dispositivo y el segundo usuario del grupo puede tener el control del segundo dispositivo. En algunas realizaciones del producto de programa de ordenador, para cada usuario del grupo en la pluralidad de usuarios del grupo, los datos de la cuenta pueden incluir ademas una clave publica espedfica del usuario, donde la clave publica espedfica del usuario para cada usuario se genera basandose en una clave privada espedfica del usuario almacenada en una memoria no volatil de un dispositivo correspondiente en la pluralidad de dispositivos. En algunas realizaciones, el producto de programa de ordenador puede incluir ademas instrucciones para configurar el primer procesador de dispositivo para generar la pluralidad de indicadores de claves encriptados, para cada grupo de usuarios en la pluralidad de usuarios del grupo, generando una pluralidad de indicadores de claves encriptados espedficos del usuario usando la clave publica espedfica del usuario para ese usuario. En algunas realizaciones, el producto de programa de ordenador puede incluir ademas instrucciones para transmitir la pluralidad de indicadores de claves encriptados espedficos del usuario al servidor. En algunas realizaciones del producto de programa de ordenador, el servidor puede ser operable para generar la porcion del indicador de clave del servidor de la cadena de estado de clave al generar, para cada usuario del grupo en la pluralidad de usuarios del grupo, una porcion de la cadena espedfica del usuario basada en la pluralidad de los indicadores de claves encriptados espedficos del usuario para ese usuario del grupo. En algunas realizaciones del producto de programa de ordenador, la pluralidad de indicadores de claves se puede determinar en el segundo dispositivo a partir de la pluralidad de indicadores de claves encriptados espedficos del usuario en la parte espedfica del usuario de la porcion del indicador de clave del servidor correspondiente al segundo usuario del grupo usando el segundo dispositivo de clave privada.
En algunas realizaciones del producto de programa de ordenador, la informacion de autentificacion de cuenta para la primera cuenta puede incluir, para cada grupo de usuarios en la pluralidad de usuarios del grupo, un codigo de encriptado del servidor espedfico del usuario. En algunas realizaciones, el producto de programa de ordenador puede incluir ademas instrucciones para configurar un procesador de un dispositivo en la pluralidad de dispositivos correspondientes a ese usuario del grupo para definir un codigo de verificacion espedfico del usuario, generar el codigo encriptado del servidor espedfico del usuario basado en el codigo de verificacion espedfico del usuario, y transmitir el codigo encriptado del servidor espedfico del usuario al servidor para su almacenamiento en la informacion de autentificacion de la primera cuenta.
En algunas realizaciones del producto de programa de ordenador, el primer usuario puede incluir una pluralidad de usuarios, incluyendo un usuario administrativo en el control del primer dispositivo y un segundo usuario en el control del segundo dispositivo. En algunas realizaciones, el producto de programa de ordenador puede incluir ademas instrucciones para configurar el primer procesador de dispositivo para transmitir una autorizacion del segundo usuario al segundo usuario transmitiendo un identificador del segundo usuario del segundo usuario desde el primer dispositivo al servidor, siendo el servidor operable para generar informacion de registro de segundo usuario basada en el identificador del segundo usuario y una contrasena del segundo usuario, almacenar la informacion de registro de segundo usuario en la memoria del servidor no volatil y transmitir una autorizacion de servidor de segundo usuario al segundo usuario. En algunas realizaciones, el producto de programa de ordenador puede incluir ademas instrucciones para configurar un procesador del segundo dispositivo, cuando se instala en el mismo, para: recibir una contrasena del segundo usuario putativo; generar informacion de registro de segundo usuario putativo basada en el identificador del segundo usuario y la contrasena del segundo usuario putativo; transmitir la informacion de registro de segundo usuario putativo al servidor, pudiendo operar el servidor para comparar la informacion de registro de segundo usuario putativo con la informacion de registro de segundo usuario almacenada, y autentificar el segundo dispositivo para la primera cuenta solo si la informacion de registro de segundo usuario putativo corresponde a la informacion de registro de segundo usuario almacenada; y una vez autentificado el segundo dispositivo; generar la clave de desencriptado del segundo dispositivo; generar la clave de encriptado del segundo dispositivo basada en la clave de desencriptado del segundo dispositivo; y transmitir la clave de encriptado del segundo dispositivo al servidor. En algunas realizaciones, el producto de programa de ordenador puede incluir ademas instrucciones para configurar el primer procesador de dispositivo para recibir la clave de encriptado del segundo dispositivo y generar la pluralidad de indicadores de claves encriptados a partir de la pluralidad de indicadores de claves utilizando la clave de encriptado del segundo dispositivo recibido.
En algunas realizaciones del producto de programa de ordenador, la clave de desencriptado del segundo dispositivo puede ser la clave privada espedfica de usuario del segundo usuario y la clave de encriptado del segundo dispositivo puede ser la clave publica correspondiente del segundo usuario.
En algunas realizaciones del producto de programa de ordenador, el primer usuario puede incluir una pluralidad de usuarios, que a su vez puede incluir un usuario administrativo en el control del primer dispositivo y un segundo usuario en el control del segundo dispositivo. En algunas realizaciones, el producto de programa de ordenador puede incluir ademas instrucciones para configurar el primer procesador del dispositivo para recibir un archivo que se va a encriptar, derivar una de las claves de encriptado de la informacion de valor de inicializacion de clave utilizando informacion de clave, encriptar el archivo como un archivo encriptado utilizando la clave de encriptado derivada y transmitir el archivo encriptado, la informacion de generacion de claves y una autorizacion del segundo usuario al segundo usuario. En algunas realizaciones, el producto de programa de ordenador incluye ademas instrucciones para configurar un procesador del segundo dispositivo, cuando se instala en el mismo, para: registrar el segundo dispositivo con el servidor en base a la autorizacion del segundo usuario; determinar la pluralidad de indicadores de claves en funcion de la pluralidad de indicadores de claves encriptados en la cadena de estado de clave utilizando la clave de desencriptado del segundo dispositivo; generar la pluralidad de valores de inicializacion de clave basadas en la pluralidad de indicadores de claves; almacenar informacion de valores de inicializacion de claves basada en los valores de inicializacion de claves en una memoria del segundo dispositivo no volatil; recibir el archivo encriptado y la informacion de generacion de claves; obtener la clave de encriptado a partir de la informacion de valor de inicializacion de clave almacenada en la memoria del segundo dispositivo no volatil utilizando la informacion de clave recibida; y desencriptar el archivo encriptado utilizando la clave de encriptado derivada.
En algunas realizaciones del producto de programa de ordenador, el primer usuario puede ser un solo usuario en control de la pluralidad de dispositivos, y el identificador del primer usuario puede incluir una pluralidad de identificadores de alias de usuario, con cada identificador de alias de usuario compartiendo la informacion de autentificacion de la cuenta.
En algunas realizaciones del producto de programa de ordenador, el primer usuario puede incluir una pluralidad de usuarios, teniendo cada usuario el control de al menos uno de los dispositivos de la pluralidad de dispositivos y teniendo un identificador espedfico del usuario, y para al menos una de los usuarios en la pluralidad de usuarios, el identificador espedfico del usuario para ese usuario puede incluir una pluralidad de identificadores de alias espedficos del usuario, con cada identificador de alias espedfico del usuario compartiendo la informacion de autentificacion de la cuenta para ese usuario.
De acuerdo con otro ejemplo de realizacion descrito en este documento, se describe un dispositivo para proporcionar encriptado para una pluralidad de dispositivos, incluyendo el dispositivo. En algunas realizaciones del dispositivo, cada dispositivo dentro de la pluralidad de dispositivos que incluye el dispositivo puede configurarse para la comunicacion electronica con un servidor. En algunas realizaciones del dispositivo, el servidor puede haber almacenado en el mismo una primera cuenta para un primer usuario en control de la pluralidad de dispositivos. En algunas realizaciones del dispositivo, la primera cuenta puede almacenar datos de la cuenta que incluyen un identificador del primer usuario e informacion de autentificacion de la cuenta en una memoria de servidor no volatil. En algunas realizaciones, el dispositivo puede incluir un procesador y una memoria de dispositivo no volatil que tiene almacenadas en el mismo instrucciones para configurar el procesador para: generar aleatoriamente una pluralidad de indicadores de claves; generar una pluralidad de indicadores de claves encriptados a partir de la pluralidad de indicadores de claves utilizando una clave de encriptado del segundo dispositivo, correspondiendo cada indicador de clave encriptado a uno de los indicadores de claves de la pluralidad de indicadores de claves, correspondiendo la clave de encriptado del segundo dispositivo a una clave de desencriptado del segundo dispositivo desconocido para el servidor; transmitir la pluralidad de indicadores de claves encriptados al servidor para impedir la exposicion de los indicadores de claves al servidor, pudiendo operar el servidor para generar una cadena de estado de clave para la primera cuenta que incluye una porcion de indicador de clave del servidor basada en la pluralidad de indicadores de claves encriptados y para proporcionar a un segundo dispositivo en la pluralidad de dispositivos acceso a la cadena de estado de clave si y solo si la informacion de autentificacion del servidor putativo recibida de ese dispositivo corresponde a la informacion de autentificacion de la cuenta; generar una pluralidad de valores de inicializacion de clave basados en la pluralidad de indicadores de claves, donde para cada valor de inicializacion de clave, el procesador puede ser operable para generar una pluralidad de claves de encriptado independientes; y almacenar informacion de valor de inicializacion de clave basada en la pluralidad de valores de inicializacion de clave en la memoria del dispositivo no volatil. En algunas realizaciones del dispositivo, la pluralidad de indicadores de claves se puede determinar en el segundo dispositivo a partir de la pluralidad de indicadores de claves encriptados en la cadena de estado de clave utilizando la clave de desencriptado del segundo dispositivo de manera que se pueda generar la misma pluralidad de valores de inicializacion de clave basado en la pluralidad de indicadores de claves, y para cada valor de inicializacion de clave, un procesador del segundo dispositivo puede generar la misma pluralidad de claves de encriptado independientes que el primer dispositivo, sin proporcionar ninguna de las claves clave, informacion de valor de inicializacion clave y claves de encriptado al segundo dispositivo.
Breve descripcion de los dibujos
Para una mejor comprension de las realizaciones descritas y para mostrar mas claramente como pueden llevarse a efecto, se hara ahora referencia, a modo de ejemplo, a los dibujos adjuntos, en los que:
La figura 1 muestra un diagrama de bloques de un sistema que se puede usar para proporcionar encriptado en una pluralidad de dispositivos de acuerdo con una realizacion;
La figura 2 muestra un diagrama de bloques de otro sistema que puede usarse para proporcionar encriptado en una pluralidad de dispositivos de acuerdo con una realizacion;
La figura 3 muestra un diagrama de bloques que ilustra los estados del sistema de la figura 2 de acuerdo con una realizacion;
Las figuras 4A-4C muestran una serie de diagramas de flujo de una realizacion de ejemplo de un procedimiento para proporcionar encriptado en una pluralidad de dispositivos;
La figura 5 muestra un diagrama de bloques de otro sistema que se puede usar para proporcionar encriptado en una pluralidad de dispositivos de acuerdo con una realizacion;
La figura 6A muestra un diagrama de flujo de una realizacion de ejemplo de un procedimiento para encriptar un archivo;
La figura 6B muestra un diagrama de flujo de una realizacion de ejemplo de un procedimiento para desencriptar un archivo;
La figura 6C muestra un diagrama de flujo de otra realizacion de ejemplo de un procedimiento para desencriptar un archivo;
La figura 7 muestra un diagrama de bloques de un sistema que puede usarse para proporcionar encriptacion y uso compartido de archivos en una pluralidad de dispositivos para una pluralidad de usuarios de grupos de acuerdo con una realizacion;
La figura 8 muestra un diagrama de flujo de una realizacion de ejemplo de un procedimiento para proporcionar encriptado en una pluralidad de dispositivos para el grupo de usuarios de la figura 7;
La figura 9 muestra un diagrama de flujo de una realizacion de ejemplo de un procedimiento para recuperar un codigo de verificacion;
La figura 10 muestra un diagrama de flujo de una realizacion de ejemplo de un procedimiento para generar codigos de recuperacion locales y remotos que se pueden usar con el procedimiento de recuperacion de codigos de verificacion de la figura 9;
La figura 11 muestra un diagrama de flujo de una realizacion de ejemplo de un procedimiento para autentificar de forma remota a un usuario.
Descripcion detallada
Varios sistemas o procedimientos se describiran a continuacion para proporcionar un ejemplo de una realizacion de la materia objeto reivindicada. Ninguna realizacion descrita a continuacion limita ninguna materia objeto reivindicada y cualquier materia objeto reivindicada puede cubrir procedimientos o sistemas que difieran de los descritos a continuacion. La materia objeto reivindicada no se limita a los sistemas o procedimientos que tienen todas las caractensticas de cualquier sistema o procedimiento descrito a continuacion o a las caractensticas comunes a multiples o todos los aparatos o procedimientos descritos a continuacion. Es posible que un sistema o procedimiento descrito a continuacion no sea una realizacion que se indique en ninguna materia objeto reivindicada. Cualquier materia objeto divulgada en un sistema o procedimiento descrito a continuacion que no se reivindica en este documento puede ser objeto de otro instrumento de proteccion, por ejemplo, una solicitud de patente de continuacion, y los solicitantes, inventores o propietarios no tienen la intencion de abandonar, renuncian o dedicar al publico ninguna materia objeto de este tipo mediante su divulgacion en este documento.
Ademas, se apreciara que, por simplicidad y claridad de ilustracion, cuando se considere apropiado, los numeros de referencia pueden repetirse entre las figuras para indicar elementos correspondientes o analogos. Ademas, se exponen numerosos detalles espedficos para proporcionar una comprension completa de las realizaciones descritas en el presente documento. Sin embargo, se entendera por los expertos en la tecnica que las realizaciones descritas en el presente documento pueden llevarse a la practica sin estos detalles espedficos. En otros casos, procedimientos y componentes bien conocidos no se han descrito en detalle para no oscurecer las realizaciones descritas en el presente documento. Ademas, los dibujos y la descripcion no deben considerarse como limitativas del alcance de las realizaciones descritas en este documento.
Tambien hay que senalar que, tal como se usa en el presente documento, la expresion "y/o" esta destinada a representar una o inclusiva. Es decir, "X y/o Y" pretende significar X o Y o ambos, por ejemplo. Como un ejemplo adicional, "X, Y y/o Z" pretende significar X o Y o Z o cualquier combinacion de los mismos.
En el presente documento se describen diversas realizaciones de sistemas, procedimientos, productos de programas de ordenador y dispositivos para proporcionar proteccion de datos para una pluralidad de dispositivos. Las diversas realizaciones descritas en este documento pueden permitir la sincronizacion y el uso compartido de archivos encriptados entre multiples dispositivos controlados por un solo usuario y/o entre uno o mas dispositivos controlados por multiples usuarios diferentes. Varias realizaciones descritas en el presente documento tambien pueden proporcionar sistemas, procedimientos y productos de programas de ordenador para recuperar un codigo de verificacion definido por un usuario. Varias realizaciones tambien pueden proporcionar sistemas, procedimientos y productos de programas de ordenador para autentificar remotamente a un usuario. En general, las caractensticas de las diversas realizaciones descritas en el presente documento pueden usarse en cualquier combinacion entre sf, excepto cuando se indique lo contrario.
Algunas realizaciones descritas aqrn proporcionan un sistema de seguridad que permite el encriptado y desencriptado automatico de archivos de datos de un usuario en los dispositivos del usuario. Algunas realizaciones descritas en este documento pueden almacenar claves de encriptado y desencriptado de archivos (FED) en los dispositivos del usuario. En algunos casos, es posible que las claves FED no esten almacenadas en los dispositivos. Mas bien, los valores de inicializacion de claves se pueden almacenar en el dispositivo. Estos valores de inicializacion de claves pueden permitir que las claves FED se deriven utilizando informacion de generacion de claves. En algunos casos, las claves FED se pueden generar aleatoriamente para aumentar la potencia de encriptado resultante.
Las claves FED o valores de inicializacion de claves pueden almacenarse en la memoria del dispositivo no volatil en formato encriptado y estar protegidas por un codigo de verificacion definido por el usuario. En algunas realizaciones, el codigo de verificacion puede ser conocido solo por el usuario. La informacion de autentificacion local se puede generar segun el codigo de verificacion y se puede almacenar en el dispositivo de un usuario. La informacion de autentificacion se puede utilizar para autentificar a un usuario que intenta acceder o modificar archivos encriptados. En algunos casos, es posible que el codigo de verificacion no se pueda determinar a partir de la informacion de autentificacion almacenada.
Los archivos administrados por los sistemas de ejemplo descritos en el presente documento pueden permanecer encriptados en todo momento cuando se almacenan en una memoria no volatil, ya sea en dispositivos del usuario u otros dispositivos, como un servidor en la nube. Las realizaciones descritas en este documento tambien pueden garantizar que los archivos de texto sin formato correspondientes a los archivos encriptados almacenados se puedan ver y/o modificar solo dentro de los agentes de encriptado instalados. Los archivos de texto simple pueden ser accesibles solo despues de ser desencriptados a pedido del usuario y solo se almacenan temporalmente en la memoria volatil de los dispositivos del usuario mientras se accede.
Un primer ejemplo de sistema puede denominarse como un sistema de seguridad en cuarentena con sincronizacion manual de valores de inicializacion de claves FED (QSSMS). La figura 1 muestra un ejemplo de un sistema 100 que puede usarse para implementar el sistema QSSMS.
El sistema 100 puede incluir una pluralidad de dispositivos 102a-102l controlados por un primer usuario 140. Las aplicaciones denominadas agentes Q o agentes 104 de encriptado pueden instalarse en cada uno de los dispositivos 102 controlados por el usuario 140. Se puede instalar un agente Q 104 en cada dispositivo 102. El agente Q 104 instalado en cada dispositivo 102 puede ser responsable de las operaciones de encriptado y desencriptado en ese dispositivo 102. El agente Q 104 tambien puede generar claves de encriptado/desencriptado y proteger las claves una vez generadas. Los agentes Q 104 pueden generar valores de inicializacion 106 de claves FED que pueden almacenarse en cada dispositivo 102. El agente Q 104 puede utilizar los valores de inicializacion 106 de claves FED para generar una o mas claves de encriptado/desencriptado. En algunos casos, el agente Q 104 puede generar un gran conjunto de claves FED, es decir, el almacen de claves FED, a partir de los valores de inicializacion 106 de claves FED.
En algunos casos, el primer usuario 140 puede desear mover archivos 108/110 encriptados desde el primer dispositivo 102a a uno o mas de los otros dispositivos 102b-102L. El primer usuario 140 puede transmitir uno o mas archivos 108/110 encriptados desde el primer dispositivo 102a a un segundo dispositivo 102b de varias maneras, tal como usando servicios en la nube, redes de telecomunicaciones u otros mecanismos de transferencia de archivos, como un USB o una clave Firewire. Una vez que los archivos se han recibido en el segundo dispositivo 102b, puede ser necesario desencriptar los archivos en el segundo dispositivo 102b. Para permitir que los archivos 108/110 encriptados por el agente Q 104 en el primer dispositivo 102a sean desencriptados por el agente Q 104 en el segundo dispositivo 102b, la clave FED 106 utilizada por los agentes Q 104 en el primer dispositivo 102a y el segundo dispositivo 102b puede sincronizarse. En el sistema 100, los valores de inicializacion 106 de claves FED se pueden sincronizar manualmente. Sin embargo, puede ser conveniente habilitar los valores de inicializacion 106 de claves FED para que se sincronicen automaticamente. Esto podna permitir que los valores de inicializacion 106 de claves FED se sincronicen entre los dispositivos 102 ubicados remotamente de un usuario. Esto tambien puede permitir que diferentes usuarios sincronicen los valores de inicializacion 106 de claves FED sin tener que compartir los valores de inicializacion de claves directamente. Ademas, esto puede simplificar el proceso para sincronizar los valores de inicializacion de claves FED para una pluralidad de dispositivos controlados por uno o mas usuarios. La figura 2 muestra un sistema 200 que se puede usar para implementar una realizacion de ejemplo de un sistema para proporcionar encriptado en una pluralidad de dispositivos. El sistema 200 es una realizacion de ejemplo de un sistema al que se puede hacer referencia como un sistema de seguridad en cuarentena con sincronizacion automatica de valores de inicializacion de claves FED (QSSAS). El sistema 200 se puede usar para sincronizar automaticamente los valores de inicializacion 206 de claves FED entre una pluralidad de dispositivos 202 asociados con el primer usuario 240. El sistema 200 incluye un servidor 230 (que puede denominarse un servidor Q o un servidor de seguridad) y la pluralidad de dispositivos 202a-202l. Cada dispositivo 202 puede tener instalado en el mismo un cliente 204 al que se puede hacer referencia como un cliente Q o un agente de encriptado. El agente 204 de encriptado en un dispositivo 202 es similar a agente Q 104 en que es responsable de las operaciones de encriptado y desencriptado en ese dispositivo 202. El servidor 230 puede comunicarse con los dispositivos 202 a traves de la red 220.
Los agentes 204 de encriptado pueden ser utilizados para generar valores de inicializacion 206 de claves FED. Los valores de inicializacion 206 de claves FED se pueden usar para derivar claves FED. En algunos casos, los valores de inicializacion 206 de claves FED pueden generarse involucrando la comunicacion entre un agente 204 de encriptado particular y un servidor Q 230. En algunos casos, puede que no haya comunicacion directa entre los agentes 204 de encriptado en diferentes dispositivos 202. Por lo tanto, el servidor Q 230 se puede utilizar para sincronizar automaticamente las claves de encriptado y desencriptado utilizadas en los dispositivos 202.
El sistema 200 puede poner en practica los conceptos relacionados con las funciones de un solo sentido y criptosistemas de clave publica para proporcionar sincronizacion automatica y segura de las claves. En algunas realizaciones, el servidor Q 230 puede no tener acceso a ninguno de los archivos 208/210 almacenados en los dispositivos 202. El servidor Q 230 tampoco puede estar expuesto a ninguna de los valores de inicializacion 206 de claves FED y/o claves FED.
En algunos casos, el sistema 200 puede tambien extenderse para permitir el intercambio de archivos encriptados entre un grupo de usuarios. El primer usuario puede ser un superusuario para el grupo y puede incluir una pluralidad de usuarios del grupo, incluyendo la pluralidad de usuarios del grupo al menos un usuario administrativo y un segundo usuario del grupo. Un ejemplo de este sistema se describira a continuacion con referencia a la figura 7. En general, el nivel de seguridad que se puede alcanzar en las realizaciones de los sistemas de seguridad de sincronizacion automatica (QSSAS) es comparable al de QSSMS.
Las caractensticas de los sistemas y procedimientos de las realizaciones descritas, tales como los sistemas 100 y 200 pueden implementarse en uno o mas ordenadores de servidor, ordenadores de escritorio, ordenadores portatiles, tabletas, PDA, telefonos inteligentes u otros ordenadores programables. Los ordenadores programables pueden incluir una conexion con una red, tal como la red 220. La red 220 puede ser una conexion por cable o inalambrica a Internet. En algunos casos, la red 220 puede incluir otros tipos de redes informaticas o de telecomunicaciones.
En algunas realizaciones, cada uno de los ordenadores programables pueden incluir un dispositivo de entrada para introducir informacion en el dispositivo. Por ejemplo, el dispositivo de entrada puede ser un teclado, almohadilla, dispositivo de control de cursor, pantalla tactil, camara, escaner o microfono. En algunas realizaciones, la informacion de entrada se puede recibir a traves de la interfaz de comunicacion desde otros ordenadores programables a traves de una red. En algunas realizaciones, los dispositivos informaticos pueden incluir un dispositivo de visualizacion para presentar informacion visual. Por ejemplo, el dispositivo de visualizacion puede ser un monitor de ordenador, una pantalla plana, un proyector o un panel de visualizacion. En algunas realizaciones, el dispositivo de visualizacion muestra uno o mas archivos al usuario que han sido encriptados por un agente de encriptado de acuerdo con los sistemas y procedimientos descritos en este documento.
Las realizaciones de los sistemas, procesos y procedimientos descritos en este documento pueden implementarse en hardware o software, o una combinacion de ambos. Alternativamente, estas realizaciones tambien pueden implementarse en programas de ordenador ejecutados en ordenadores programables, cada uno de los cuales comprende al menos un procesador (por ejemplo, un microprocesador), un sistema de almacenamiento de datos (que incluye elementos de memoria y/o almacenamiento volatiles y no volatiles), al menos un dispositivo de entrada, y al menos un dispositivo de salida. Por ejemplo, y sin limitacion, los ordenadores programables (referidos a continuacion como dispositivos, dispositivos informaticos o servidores) pueden ser un ordenador personal, ordenador portatil, asistente de datos personales, telefono celular, dispositivo de telefono inteligente, ordenador de tableta y/o dispositivo inalambrico. Para cualquier componente de software, el codigo del programa se aplica a los datos de entrada para realizar las funciones descritas en este documento y generar informacion de salida. La informacion de salida se aplica a uno o mas dispositivos de salida, de manera conocida.
Cada componente de software o programa se puede implementar en un alto nivel de programacion orientado a objetos o y/o lenguaje de script para comunicarse con un sistema informatico. Sin embargo, los programas pueden implementarse en ensamblador o lenguaje de maquina, si asf lo desea. En cualquier caso, el lenguaje puede ser un lenguaje compilado o interpretado. Ademas, los procesos y procedimientos de las realizaciones descritas pueden distribuirse en un producto de programa de ordenador que comprende un medio legible por ordenador que contiene instrucciones utilizables por ordenador para uno o mas procesadores. El medio puede proporcionarse en diversas formas, incluidos uno o mas disquetes, discos compactos, cintas, chips, transmisiones por cable, transmisiones por satelite, transmisiones o descargas por Internet, medios de almacenamiento magneticos y electronicos, senales digitales y analogicas, y similares. Las instrucciones de uso del ordenador tambien pueden ser de varias formas, incluido codigo compilado y no compilado.
Realizaciones de ejemplo del sistema de QSSMS que emplean sincronizacion manual de los valores de inicializacion de claves FED se describiran primero. Tambien se describiran varias realizaciones de ejemplo del sistema QSSAS con sincronizacion automatica de valores de inicializacion de claves FED. Ademas, se describiran las realizaciones del sistema QSSAS que permiten compartir archivos encriptados entre un grupo de usuarios. Tambien se describiran realizaciones adicionales de sistemas para proporcionar la recuperacion de un codigo de verificacion definido por un usuario.
QSSMS
En esta seccion, realizaciones de ejemplo del sistema de QSSMS se describen con referencia a la figura 1. Como antecedente, se discute el concepto de una funcion unidireccional.
Definicion 1 Una funcion f(x) es una funcion de una sola v^ a si es facil de calcular f(x) para cada x en el dominio de f, pero para casi todos y en el rango de f, computacionalmente no es factible encontrar un x tal que f(x) = y. (W. Diffie and M. Hellman, "New directions in cryptography," IEEE Transactions on Information Theory, vol. 22, n.° 6, paginas 644 -654, Nov. 1976.)
En general, el sistema 100 puede usarse por un primer usuario 140 en el control de una pluralidad de dispositivos 102. Por ejemplo, la pluralidad de dispositivos 102 puede incluir L dispositivos 102a-102/. El primer usuario 140 puede querer usar los dispositivos 102 para administrar y almacenar ciertos tipos de archivos 108/110 encriptados. Para cada dispositivo 102 en la pluralidad de dispositivos, el primer usuario 140 puede instalar un agente de encriptado o agente Q 104 en ese dispositivo 102. Por ejemplo, el primer usuario 140 puede descargar un agente Q 104 e instalar el agente Q 104 en el primer dispositivo 102. En algunos ejemplos, el primer usuario 140 puede inicializar el agente Q 104 antes de usar el agente Q 104 para encriptar y desencriptar archivos.
El primer usuario 140 puede usar la agente Q 104 para definir un codigo de verificacion. Por ejemplo, el primer usuario 140 puede definir un codigo de verificacion C. En algunos casos, el agente Q 104 puede usar el codigo de verificacion C, o los valores generados basandose en el codigo de verificacion C, para verificar el primer usuario 140. Por ejemplo, tal verificacion podna tener lugar cuando el primer usuario 140 quiera abrir el agente Q 104 para acceder a los archivos 108/110 administrados por el agente Q 104 en el primer dispositivo 102a. En general, si un agente Q 104 se instalo e inicializo con exito en otro dispositivo 102l, el primer usuario 140 debena poder usar el mismo codigo de verificacion que el definido para el dispositivo 102l para verificar con el agente Q 104 instalado en el primer dispositivo 102a.
Despues de que el primer usuario 140 define el primer codigo de verificacion, por ejemplo, en el primer dispositivo 102a, el agente 104 de encriptado puede generar un codigo local encriptado basado en el primer codigo de verificacion. El agente 104 de encriptado puede entonces almacenar el codigo local encriptado en la memoria no volatil del primer dispositivo 102a. Por ejemplo, el agente 104 de encriptado puede generar el codigo local encriptado al computar β = φ(C), donde φ(·) es una funcion de una sola via invertible. El agente 104 de encriptado puede luego guardar β en la memoria no volatil del primer dispositivo 102a.
El agente 104 de encriptado puede entonces determinar una pluralidad de valores de inicializacion de clave para el primer dispositivo 102a. En algunos casos, la pluralidad de valores de inicializacion de clave se puede importar desde otro dispositivo 102. Por ejemplo, cuando el primer usuario 140 ha generado previamente valores de inicializacion de clave en otro dispositivo 102, el primer usuario 140 puede importar los mismos valores de inicializacion de clave al primer dispositivo 102a. Si el primer usuario 140 aun no ha generado valores de inicializacion de clave en ningun otro dispositivo 102, entonces el agente 104 de encriptado del primer dispositivo 102a puede generar los valores de inicializacion de claves.
El agente 104 de encriptado en el primer dispositivo 102a puede generar una pluralidad de valores de inicializacion de claves. Por ejemplo, el agente Q 104 puede generar aleatoriamente una pluralidad de valores de inicializacion de claves FED independientes Ki, K2, ···, Kj . El agente 104 de encriptado puede entonces almacenar informacion de valor de inicializacion de clave basada en la pluralidad de valores de inicializacion de claves en la memoria no volatil del primer dispositivo 102a. Por ejemplo, la informacion de valor de inicializacion de clave puede generarse encriptando los valores de inicializacion de claves y luego almacenando los valores de inicializacion de claves encriptadas como la informacion de valor de inicializacion de clave. En algunos casos, el codigo de verificacion C se puede utilizar para encriptar los valores de inicializacion de clave Ki, K2, •••, Kj, en valores de inicializacion de claves encriptadas Ec (Ki , K2, •••, Kj). Estos valores de inicializacion de claves encriptadas Ec (K i, K2, •••, Kj ) pueden guardarse en la memoria no volatil del primer dispositivo 102a.
Si otro dispositivo 102/ tiene un agente Q 104 instalado en el mismo y tiene los valores de inicializacion de claves generadas y almacenadas en el dispositivo 102/, el primer usuario 140 puede importar los valores de inicializacion de claves desde el dispositivo 102/. En el sistema 100, el primer usuario 104 puede acceder al agente Q 104 en el dispositivo 102/ para obtener una copia de los valores de inicializacion de claves FED encriptadas Ec (K i, K2, •••, Kj) generada por ese agente Q 104. El primer usuario 140 puede transferir los valores de inicializacion de claves copiadas al agente Q 104 en el primer dispositivo 102a. El agente 104 de encriptado puede luego importar los valores de inicializacion de claves y almacenarlas en la memoria no volatil del primer dispositivo 102a.
Una vez que los valores de inicializacion de claves han sido generadas en el primer dispositivo 102a, el agente Q 104 en ese dispositivo puede generar una o mas claves FED. En algunos casos, el agente Q 104 puede generar una pluralidad de claves de encriptado/desencriptado, es decir, el almacen de claves FED en el primer dispositivo 102a. En general, la pluralidad de claves de encriptado/desencriptado generadas por un agente de encriptado pueden ser claves de encriptado/desencriptado simetricas. La pluralidad de claves de encriptado se puede almacenar en la memoria no volatil del primer dispositivo 102a. En algunos casos, la pluralidad de claves de encriptado puede estar encriptada (por ejemplo, utilizando el codigo de verificacion) antes de ser almacenadas en la memoria no volatil del primer dispositivo 102a.
Por ejemplo, el agente Q 104 puede derivar una pluralidad de claves de encriptado (es decir, almacen de claves FED Ψ) Ψ = {k1 1 ≤ i ≤ A} de los valores de inicializacion de claves aleatorias Ki, K2, •••, Kj, donde A es un numero grande. Cuando el agente Q 104 recibe un archivo para encriptar, el archivo puede encriptarse utilizando una de las claves de encriptado derivadas del almacen de claves FED V. De manera similar, cuando un archivo se mueve al agente 104 de encriptado, o se modifica bajo el control del agente 104 de encriptado, el agente 104 de encriptado puede encriptar y almacenar el archivo nuevo o modificado utilizando la clave de encriptado derivada. Por ejemplo, el agente Q 104 puede seleccionar una clave de encriptado del almacen de claves para usarse para encriptar el archivo. En algunos casos, el agente 104 de encriptado puede seleccionar aleatoriamente la clave de encriptado particular de la pluralidad de claves de encriptado cuando el agente 104 de encriptado recibe una indicacion del archivo a encriptar (por ejemplo, una indicacion de que un archivo se esta moviendo al agente 104 de encriptado), creado en el agente 104 de encriptado para almacenamiento, o modificado en el agente 104 de encriptado). El agente Q 104 puede entonces almacenar el archivo encriptado junto con la informacion de codificacion, que indica como derivar la clave de encriptado particular para ese archivo de los valores de inicializacion de claves K i, K2, •••, Kj o del almacen de claves FED V.
Por ejemplo, el agente Q 104 puede generar un mdice de claves para la pluralidad de claves de encriptado derivadas. El mdice de claves puede definir un valor de mdice de clave para cada clave de encriptado en la pluralidad de claves de encriptado o almacen de claves FED. Cuando se selecciona una clave de encriptado particular de la pluralidad de claves de encriptado y se utiliza para encriptar un archivo, la informacion de clave para ese archivo puede incluir el valor del mdice de clave para esa clave de encriptado particular.
En algunos casos, el agente Q 104 puede no derivar todas las claves de encriptado de los valores de inicializacion de claves para generar un almacen de claves con antelacion. El agente Q 104 puede obtener las claves de encriptado a partir de los valores de inicializacion de claves solo cuando sea necesario, es decir, cuando se recibe una indicacion de un archivo que debe encriptarse. En tales casos, el agente 104 de encriptado tambien puede almacenar informacion de codificacion junto con el archivo encriptado que indica como derivar la clave de encriptado a partir de la informacion de valor de inicializacion de clave almacenada en la memoria no volatil del primer dispositivo. Ademas, el agente Q 104 puede borrar la clave de encriptado derivada del primer dispositivo 102a despues de encriptar el archivo.
El agente Q 104, instalado por ejemplo en el primer dispositivo 102a, puede asegurarse de que los archivos 108/110 gestionados bajo su control permanecen encriptados para la duracion en que dichos archivos se almacenan en la memoria no volatil de dicho dispositivo. Cuando el primer usuario 140 desea acceder a estos archivos 108/110, el agente de encriptado puede autentificar al usuario antes de proporcionar acceso a los archivos 108/110.
El agente 104 de encriptado en el primer dispositivo 102a puede recibir una solicitud para acceder a los archivos 108/110 y un codigo de verificacion local putativo. Por ejemplo, al recibir una solicitud para acceder a los archivos 108/110, el agente Q 104 puede pedir al primer usuario 140 que ingrese el codigo de verificacion C. El primer usuario 140 puede luego ingresar el codigo de verificacion local putativo.
El agente 104 de encriptado puede generar un codigo local encriptado putativo basado en el codigo de verificacion local putativo. El agente 104 de encriptado puede entonces comparar el codigo local encriptado putativo con el codigo local encriptado para determinar si el codigo de verificacion local putativo es el primer codigo de verificacion. El agente 104 de encriptado puede entonces proporcionar acceso a los archivos encriptados administrados por el agente 104 de encriptado si y solo si el codigo local putativo coincide con el codigo local encriptado.
Por ejemplo, el agente de encriptado puede aplicar la misma funcion y unidireccional (·) para el codigo de verificacion local putativo para generar el codigo local encriptado putativo. La salida de la funcion unidireccional y ( ) se puede comparar con el valor del codigo local encriptado guardado por el agente Q 104 para determinar si el codigo de verificacion ingresado es el correcto. Una vez que el primer usuario 140 ha sido autentificado, entonces los archivos pueden ser desencriptados y accedidos por el primer usuario 140.
El agente Q 104 puede desencriptar los archivos 108/110 seleccionados por el primer usuario 140 y almacenar los archivos de texto sin formato desencriptados temporalmente en la memoria volatil del primer dispositivo 102a para que el primer usuario 140 los lea y/o edite. Despues de que el primer usuario 140a cierre cada archivo de texto sin formato, el agente Q 104 puede borrar el archivo de texto sin formato de la memoria volatil del primer dispositivo 102a si no hay cambios. El agente 104 de encriptado puede encriptar nuevamente el archivo de texto simple usando una clave FED particular (por ejemplo, una nueva clave FED elegida de manera aleatoria desde el almacen de claves V, la misma clave, o una nueva clave de encriptado derivada), y almacenar el archivo encriptado en la memoria no volatil del primer dispositivo 102a.
En algunas realizaciones, la agente Q 104 puede almacenar temporalmente archivos desencriptados en la memoria no volatil del primer dispositivo 102a. Esto puede ser deseable, por ejemplo, cuando el archivo desencriptado es mas grande que la memoria volatil disponible en el primer dispositivo 102a. En tales casos, el agente Q 104 puede borrar el archivo desencriptado de la memoria no volatil del primer dispositivo 102a una vez que el primer usuario 140a cierra ese archivo, o deja de acceder al agente Q 104.
El agente 104 de encriptado puede sobrescribir el archivo encriptado original en la memoria no volatil del primer dispositivo 102a con el archivo recien encriptado y, a continuacion, eliminar el archivo de texto sin formato de la memoria volatil del primer dispositivo 102a si, al dejar de accediendo al archivo de texto sin formato, el primer usuario 140 ha realizado algun cambio en el archivo de texto sin formato. Una vez mas, el agente 104 de encriptado puede almacenar information de generation de claves junto con el archivo encriptado para permitir que la clave de encriptado para ese archivo se derive de la informacion de valor de initialization de claves o del almacen de claves FED.
Para que los archivos encriptados por el agente Q 104 en el primer dispositivo 102a sean desencriptados por el agente Q 104 en el segundo dispositivo 102b (o cualquier otro dispositivo 102) del primer usuario 140 despues de que los archivos se mueven desde el primer dispositivo 102a al segundo dispositivo 102b, el conjunto de valores de inicializacion de claves FED {Ki, K2, ■■■, KJ}, en algunas operaciones de ejemplo, se puede sincronizar en los L dispositivos 102 del primer usuario 140. Como se menciono anteriormente, en el sistema 100 es posible que los valores de inicializacion de claves de FED deban sincronizarse manualmente entre los L dispositivos 102.
En algunos casos, el almacen de claves FED ^ puede generarse a partir de los valores de inicializacion de claves aleatorias Ki, K2, ..., Kj utilizando cualquier medio tal que para cualquier dos independientes i y j, 1 < i, j < A, la probabilidad de que una primera clave de encriptado sea igual a una segunda clave de encriptado Pr{k, = kj} no es significativamente mayor que 1/A. Por ejemplo, los medios utilizados para generar el almacen de claves FED a partir de los valores de inicializacion de claves aleatorias pueden estar esencialmente libres de colisiones. En algunas realizaciones, esto puede denominarse propiedad (1) del almacen de claves FED.
En algunos casos, el almacen de claves FED ^ puede generarse a partir de los valores de inicializacion aleatorios Ki, K2, ■■■, Kj tal que para cualquier 1 < i < A, la clave FED ki esta mas o menos uniformemente distribuida y, por lo tanto, estadisticamente independiente de i. En tales casos, la informacion de divulgation i no puede revelar ninguna informacion esencial sobre ki. En algunas realizaciones, esto puede denominarse propiedad (2) del almacen de claves FED.
En algunos casos, el almacen de claves FED ^ puede generarse a partir de los valores de inicializacion aleatorios Ki, K2, ■■■, Kj tal que para cualquiera de las dos independientes i y j, 1 < i, j < A, conociendo i, j, y una sola clave FED ki no reduce la cantidad de incertidumbre sobre otra clave FED kj significativamente, es decir, la entropia condicional de Shannon H(kjli,j,kj) esta cerca de H(kjj). En tales casos, conocer una clave FED ki no proporciona ninguna informacion esencial sobre otra clave FED kj. En algunas realizaciones, esto puede denominarse propiedad (3) del almacen de claves FED.
Un gran A puede proporcionar un aumento de entropia con respecto a las claves generadas. Sin embargo, almacenar todas las claves generadas con un gran valor de A puede requerir una cantidad significativa de espacio de almacenamiento. Esto puede no ser deseable cuando los sistemas aqm descritos son dispositivos moviles u otros dispositivos con limitaciones de capacidad de almacenamiento. En algunos casos, el almacen de claves FED ^ puede generarse a partir de valores de inicializacion aleatorios Ki, K2, ■■■, Kj de tal manera que para cualquier 1 < i < A, es facil calcular ki de los valores de inicializacion Ki, K2, ■■■, Kj y el mdice i. En tales casos, como se menciono anteriormente, no es necesario almacenar ^ en los dispositivos 102 del primer usuario 140. Esto puede ser deseable particularmente cuando A es grande. En algunas realizaciones, esto puede denominarse propiedad (4) del almacen de claves FED.
En algunos casos, el agente 104 de encriptado puede almacenar valores de inicializacion de claves, donde cada valor de inicializacion de claves tiene una primera longitud de bits. El agente 104 de encriptado puede derivar una o mas claves de encriptado a partir de los valores de inicializacion de claves almacenadas, donde cada una de las claves de encriptado derivadas tiene una segunda longitud de bit. En algunas realizaciones, la segunda longitud de bit puede ser mas corta que la primera longitud de bit. Por ejemplo, los valores de inicializacion de claves pueden tener una primera longitud de bits de 4096 bits, y las claves de encriptado pueden tener, cada una, una segunda longitud de bits de 256 bits.
Ahora se describira un proceso de ejemplo para generar una o mas claves de encriptado de un valor de inicializacion de clave. En el ejemplo, se utiliza el valor de inicializacion de clave seleccionada aleatoriamente Ki. Ki tiene una longitud de primer bit de 4096 bits, y cada clave FED ki tiene una longitud de segundo bit de 256 bits. Podemos escribir el valor de inicializacion de clave K1 como una pluralidad de bits clave de valor de inicializacion K1 = K1(0)K1(1) ··· K1 (4095). Se puede determinar una pluralidad de valores de derivation de clave de encriptado m para cada clave de encriptado, correspondiendo cada clave de encriptado a una pluralidad unica de valores de derivacion m. Para cada clave de encriptado, la pluralidad de valores de derivacion de clave de encriptado m correspondientes a esa clave de encriptado indica como derivar esa clave de encriptado a partir del valor de inicializacion de clave K.
En algunas realizaciones, para cualquier 0 < m1 < m2 < ··· < m5 < 4095, podemos definir:
Figure imgf000014_0001
donde la suma de cadenas es la adicion binaria y la suma de enteros es con respecto al modulo 4096. Una forma de generar un almacen de claves ^ que incluya una pluralidad de claves de encriptado a partir del valor de inicializacion aleatorio Ki es la siguiente:
Figure imgf000015_0001
donde HMAC representa el codigo de autentificacion de mensaje hash con clave, aqrn, por ejemplo, el hash SHA-256 como su funcion hash incrustada (vease, por ejemplo, el Instituto Nacional de Estandares y Tecnolog^a, El Codigo de Autentificacion de Mensajes de clave Hash (HMAC). Publicacion de estandares federales de procesamiento de informacion 198-1, julio de 2008), || indica concatenacion, y otras entradas representa otros materiales de clave que, junto con m-i, m2, ···, m5, pueden adjuntarse a los datos encriptados. En el ejemplo anterior, para generar cualquier clave de encriptado individual a partir de la clave K1, se pueden especificar los valores de m-i, m2, ···, m5.
Observese que, en este ejemplo, A > 253 Puede mostrarse ademas que, en este caso, se satisfacen las propiedades
(1) a (4) mencionadas anteriormente. Espedficamente, lo siguiente se mantiene:
a) Dado que cualquier 0 < m1 < m2 < ··· < m5 < 4095, k(m1, m2, ···, m5) se distribuye de manera uniforme sobre {0,1}256
b) Para cualquier (m1, m2, ■■■, m5) t (m 1, /fr2, ···, /fr5) con 0 < m1 < m2 <■■■ < m5 < 4095, Pr{k(m1, m2, ■■■, ms) = k(m 1, /fr2, ■■■ /fr5)} = 2'256
c) Para dos independientes (m1,m2,---,m5) y (mf? 1,/fr2, -',/f75) con 0 < m1 < m2 < ··· < m5 < 4095 y 0 < /fr 1 < /fr2 < ··· < m 5 < 4095, uno tiene:
Figure imgf000015_0002
Los resultados (a) a (c), junto con las propiedades de HMAC, a su vez implican las propiedades (1) a (4) anteriores.
En algunos casos, los sistemas descritos en este documento pueden no requerir el codigo de comprobacion C para ser recuperables. En tales casos, la funcion unidireccional utilizada para generar el codigo local encriptado a partir del codigo de verificacion no necesita ser invertible. Si no se requiere la recuperacion de C, cuando C se pierde u olvida, la funcion unidireccional 9 puede no ser invertible. En tales casos, cualquier funcion de hash criptografica podna usarse para generar el codigo local encriptado a partir del codigo de verificacion C. En algunos casos, sin embargo, puede ser deseable que C sea recuperable cuando se pierde o se olvida. La capacidad de inversion de la funcion unidireccional 9 puede posibilitar la recuperacion segura de C cuando C se pierde u olvida. Los sistemas y procedimientos para habilitar la recuperacion del codigo de verificacion C se describiran con mas detalle a continuacion.
Supongamos que no hay exposicion de Ec(K1, K2, ···, Kj ) cuando el primer usuario 240 lo sincroniza manualmente en esos dispositivos L. Ahora analizamos la seguridad de las realizaciones de ejemplo de QSSMS descritas anteriormente. Hay dos aspectos a considerar: (1) riesgos de seguridad derivados de la posible exposicion de datos, como el codigo local encriptado @ y la informacion de valor de inicializacion de clave (por ejemplo, valores de inicializacion de claves encriptadas Ec (Ki , K2, ■■■, Kj)) guardadas localmente por cada agente Q 104 (riesgos de seguridad de almacenamiento); y (2) riesgos de seguridad derivados de la posible exposicion de archivos 108/110 encriptados (riesgos de seguridad de encriptado).
Los datos almacenados en un dispositivo 102, tales como @ y Ec (Ki, K2, ···, Kj) pueden estar expuestos si uno o mas dispositivos 102 con agentes Q 104 instalados en el mismo se pierden o son atacados. Sin embargo, la exposicion de los archivos 108/110 encriptados puede ocurrir con mayor frecuencia, ya que dichos archivos pueden transmitirse facilmente a otros dispositivos, cargarse en un servidor en la nube y/o transmitirse a traves de Internet. Si asumimos que todos los algoritmos criptograficos de clave simetrica utilizados tienen la misma fuerza criptografica, entonces debido a que el codigo local encriptado se genera mediante una funcion unidireccional 9 y los valores de inicializacion de clave K1, K2, ■■■, Kj se generan aleatoriamente, los riesgos de seguridad de almacenamiento de QSSMS no son mayores que los de cualquier otro sistema protegido por contrasena.
Para los riesgos de seguridad de encriptado, de nuevo bajo la suposicion de que todos los algoritmos de encriptado de claves simetricas utilizadas tienen la misma fuerza criptografica, la seguridad de encriptado puede entonces dependera de que tan fuertes son las claves FED. En las realizaciones del sistema QSSMS con claves FED k que son aleatorias y distribuidas uniformemente, la fuerza de encriptado de archivos de QSSMS no es mas debil que la de cualquier otro sistema de claves simetricas. Por lo tanto, si no hay ningun fallo en la parte del primer usuario 140,
es dedr, no se pierde el dispositivo 102 con agente Q 104 en su interior y el codigo de verificacion C es fuerte y no se olvida, entonces las realizaciones descritas anteriormente de QSSMS son tan seguras como cualquier otro sistema utilizando claves simetricas.
Sin embargo, algunas realizaciones de QSSMS descritas anteriormente pueden estar limitadas a sincronizacion manual. El conjunto de valores de inicializacion de claves aleatorias {Ki, K2, •••, Kj} puede tener que sincronizarse manualmente a traves de esos L dispositivos por el primer usuario 240, como se ha mencionado. Esto puede causar inconvenientes al primer usuario 240, pero tambien puede evitar compartir archivos encriptados entre un grupo de diferentes usuarios. Para superar este problema, puede ser conveniente sincronizar automaticamente los valores de inicializacion de claves entre dispositivos. Las realizaciones del sistema QSSAS que se describen a continuacion pueden sincronizar de forma automatica y segura el conjunto de valores de inicializacion aleatorios {K1, K2, •••, KJ} a traves de agentes Q en dispositivos del primer usuario 240 y a traves de agentes Q en dispositivos de un grupo de usuarios, segun sea el caso.
QSSAS
La figura 2 ilustra una configuracion de ejemplo de un sistema QSSAS 200. El sistema 200 puede considerarse una extension o modificacion del sistema 100, y las operaciones generales descritas anteriormente con referencia al sistema 100 tambien pueden aplicarse en el sistema 200. En la descripcion que sigue, el sistema 200 se describira generalmente con referencia a realizaciones en las que el primer usuario 240 es un unico usuario en control de cada uno de los dispositivos 202. Sin embargo, en algunas realizaciones, el primer usuario 240 puede incluir una pluralidad de usuarios del grupo, con cada usuario del grupo en control de uno de los dispositivos 202.
El sistema 200 incluye una pluralidad de dispositivos 202 configurados para la comunicacion electronica con un servidor 230 que puede denominarse como un servidor Q 230. La pluralidad de dispositivos 202 incluye un primer dispositivo 202a y un segundo dispositivo 202b. Cada dispositivo ha instalado en el mismo un agente 204 de encriptado, que pueden denominarse agentes Q o agentes de encriptado. En algunas realizaciones, una vez que un agente 204 de encriptado se instala en un dispositivo 202 y se registra con exito con el servidor Q 230, puede funcionar en lmea o fuera de lmea. En general, los agentes 204 de encriptado pueden realizar las mismas operaciones que los agentes 104 de encriptado. Los dispositivos 202 pueden comunicarse con el servidor 230 utilizando una red 220.
En algunos casos, cuando el agente 204 de encriptado se ejecuta en un dispositivo 202 y no hay conexion de red entre el dispositivo 202 y servidor Q 230, el agente 204 de encriptado puede comunicarse periodicamente con el servidor Q 230. Por ejemplo, el agente 204 de encriptado puede comunicarse con servidor Q 230 para verificar el estado del sistema 200 y/o solicitar o iniciar ciertas acciones. En algunos casos, puede que no haya comunicacion directa entre los agentes 204 de encriptado en diferentes dispositivos 202 del primer usuario 240. En algunas realizaciones, el sistema 200 permite que los agentes 204 de encriptado en diferentes dispositivos 202 funcionen de manera autonoma, mientras que el conjunto de claves FED (por ejemplo, los valores de inicializacion de claves aleatorias y/o el almacen de claves FED) utilizado por los dispositivos 202 se puede sincronizar de forma automatica y segura. Las realizaciones del sistema 200 descritas en este documento pueden incorporar conceptos tales como la funcion unidireccional y los criptosistemas de clave publica para permitir la sincronizacion segura.
Debe observarse que en algunas realizaciones, los agentes 204 de encriptado en la figura 2 pueden instalarse y registrarse con servidor Q 230 con varios dfas, meses o anos de diferencia. Por ejemplo, el primer usuario 240 puede comprar un nuevo dispositivo 202 e instalar un agente 204 de encriptado en el nuevo dispositivo 202. Luego, el agente 204 de encriptado en el nuevo dispositivo 202 puede configurarse para sincronizar de forma automatica y segura los valores de inicializacion de claves FED y/o las claves FED para el nuevo dispositivo con el conjunto de claves FED utilizadas por uno o mas agentes 204 de encriptado instalados en otros dispositivos controlados por el primer usuario 240 y previamente registrados con el servidor 230.
Las operaciones de varias realizaciones del sistema 200 se describiran ahora en dos partes. La primera parte describe las operaciones del sistema en realizaciones de ejemplo desde la perspectiva del primer usuario 240 y el agente 204 de encriptado en el primer dispositivo 202a. La segunda parte describe algunos procedimientos de ejemplo de acciones entre el agente 204 de encriptado, el primer usuario 240, el servidor Q 230 y, en algunos casos, los otros dispositivos 202.
Operacion del sistema
Desde la perspectiva del primer usuario 240 y el agente 204 de encriptado en el primer dispositivo 202a, puede parecer que el sistema 200 opera como una maquina de estados finitos. Como tal, comenzamos con la descripcion de algunos estados de ejemplo que se pueden encontrar en varias realizaciones del sistema QSSAS 200. Estos estados de ejemplo incluyen:
• Un estado de usuario no registrado (NRU). NRU indica que el primer usuario 240 no se ha registrado en servidor Q 230.
• Un usuario registrado con estado de agente de encriptado no registrado (RUNRC). Este estado puede indicar que el primer usuario 240 se ha registrado en el servidor Q 230, pero el agente 204 de encriptado para el primer dispositivo 202a no se ha registrado en el servidor Q 230.
• Un agente de encriptado en ejecucion y abierto al estado del usuario (ROU). Este estado puede indicar que el primer usuario 240 y el agente 204 de encriptado en el primer dispositivo 202a se registraron en el servidor Q 230, el agente 204 de encriptado se esta ejecutando, y el primer usuario 240 fue autentificado por el agente 204 de encriptado para acceder a los archivos 208/210 administrados por el agente 204 de encriptado, crea o agrega nuevos archivos para que el agente 204 de encriptado administre, y/o toma o solicita al agente 204 de encriptado que tome ciertas medidas. El primer usuario 240 puede autentificarse de la misma manera que se describe anteriormente en el sistema 100.
• Un agente de encriptado que se ejecuta en segundo plano, pero cerrado al estado del usuario (RCU). Este estado puede indicar que tanto el primer usuario 240 como el agente 204 de encriptado en el primer dispositivo 202a se han registrado en el servidor Q 230, el agente 204 de encriptado se esta ejecutando en segundo plano, pero el primer usuario 240 no ha sido autentificado por el agente 204 de encriptado.
• Un estado de ejecucion de agente de encriptado finalizado (EXIT). Este estado puede indicar que tanto el primer usuario 240 como el agente 204 de encriptado en el primer dispositivo 202a se registraron en servidor Q 230, y que la ejecucion del agente 204 de encriptado se termino.
• Un estado de visualizacion y/o edicion de contenido (CVE). Este estado puede ser un estado transitorio. En algunas realizaciones, el sistema 200 puede transitar al estado de CVE desde el estado de ROU cuando el primer usuario 240 selecciona algunos archivos 208/210 encriptados en el agente 204 de encriptado para su visualizacion y/o edicion.
• Un estado de reencriptado de contenido (CRE). Este estado puede ser un estado transitorio. En algunas realizaciones, el sistema 200 pasa al estado de CRE desde el estado de ROU cuando el primer usuario 240 solicita al agente 204 de encriptado que utilice nuevas claves FED para volver a encriptar los archivos encriptados antiguos administrados por el agente 204 de encriptado. Las nuevas claves FED se pueden generar como se describio anteriormente con referencia a la figura 1.
• Un nombre de usuario y/o contrasena cambio de estado (UPC). Este estado puede indicar que el primer usuario 240 ha cambiado el nombre de usuario y/o la contrasena en el servidor Q 230 a traves de medios distintos al agente 204 de encriptado que se ejecuta en el primer dispositivo 202a.
• Un codigo de verificacion cambio de estado (VCC). Este estado puede indicar que el primer usuario 240 ha cambiado el codigo de verificacion usando un agente 204 de encriptado en otro dispositivo 202 controlado por el primer usuario 240.
En diversas realizaciones, puede haber mas o menos estados del sistema 200. Tambien puede haber muchas transiciones de estado en las que el sistema transita de uno de los estados anteriores a otro, o a otros estados no mencionados espedficamente. El sistema 200 puede transitar de un estado a otro en respuesta a las acciones del primer usuario 240, el agente 204 de encriptado, el primer dispositivo 202a, otro dispositivo 202 y/o el servidor 230.
En diferentes realizaciones, el primer usuario 240, el agente 204 de encriptado, y/o el primer dispositivo 202a pueden tomar una serie de acciones diferentes. Ejemplos de tales acciones incluyen el registro de usuarios (UR); el registro de agente de encriptado y generacion de valor de inicializacion de almacen de claves (CRKG); el nuevo registro del agente de encriptado (CRR); el cambio de ID (nombre de usuario y contrasena) en el servidor Q 230 (IDCS); el cierre de agente de encriptado (CC), es decir, cierre del agente 204 de encriptado, pero manteniendo el agente 204 de encriptado ejecutandose en segundo plano; la autentificacion de usuario por el agente 204 de encriptado (UAC); la ejecucion del agente de encriptado (CE); la terminacion del agente de encriptado (CT); el cambio de ID a traves del agente de encriptado registrado en ejecucion 204 (IDCC); el cambio de ID a traves de medios diferentes al agente de encriptado registrado en ejecucion 204 en el primer dispositivo 202a (IDCO); el acceso al contenido (CA); el reencriptado mediante el uso de un nuevo algoritmo criptografico de clave simetrica (RE); nueva generacion activa de valores de inicializacion de almacen de claves (ANKG); nueva generacion de valores de inicializacion de almacen de claves pasivas (PNKG); cambio de codigo de verificacion activo (AVCC); cambio de codigo de verificacion pasivo (PVCC); cambio de pin (PC); actualizacion del codigo de verificacion (VCU); y creacion y/o adicion de contenidos (CCA).
Algunas de las acciones de ejemplo mencionadas anteriormente pueden requerir la colaboracion del servidor Q 230. En general, el servidor Q 230 es pasivo y actua en respuesta a las solicitudes de uno de los agentes 204 de encriptado en un dispositivo 202 y/o el primer usuario 240. En algunas realizaciones, el servidor Q 230 puede no tener acceso a los 240 archivos del primer usuario. Ademas, en algunas realizaciones, el servidor Q 230 puede no conocer ninguna de los valores de inicializacion de claves y/o claves FED. Estas realizaciones pueden minimizar los riesgos que surgen de los ataques al servidor Q 230 y personas maliciosas.
La figura 3 muestra un ejemplo de diagrama de transicion de estado, en una realizacion del sistema 200, desde la perspectiva del agente 204 de encriptado en el primer dispositivo 202a y el primer usuario 240. En general, el sistema 200 puede comenzar con el estado de NRU si el primer usuario 240 no se ha registrado en el servidor Q 230. Si el primer usuario 240 se ha registrado en el servidor 230, el sistema 200 puede comenzar en el estado de RUNRC.
Si el primer usuario 240 esta registrado en el servidor 230, se puede generar una primera cuenta para el primer usuario 240. La primera cuenta puede almacenar datos de la cuenta en la memoria no volatil del servidor 230. Los datos de la cuenta pueden incluir un identificador del primer usuario que identifica al primer usuario en el control de los dispositivos 202. Los datos de la cuenta tambien pueden incluir informacion de autentificacion de la cuenta, la informacion de autentificacion de la cuenta se puede usar para autentificar a un usuario que intenta acceder a los archivos almacenados en un agente 204 de encriptado asociado con la primera cuenta o para acceder a informacion o datos asociados con la primera cuenta que se almacena en el servidor 230. Por ejemplo, como se describira con mas detalle a continuacion, la informacion de autentificacion de la cuenta se puede usar para autentificar a un usuario y/o dispositivo cuando se sincronizan valores de inicializacion de claves entre dispositivos 202.
Para la transicion de NRU a RUNRC, se puede tomar la accion de UR. Un ejemplo del procedimiento de UR se describira en detalle mas adelante. En respuesta a la accion de UR, el sistema 200 puede transitar de NRU a RUNRC. En el estado RUNRC, el primer usuario 240 puede realizar la accion de IDCS. IDCS puede permitir que el primer usuario 240 cambie su ID directamente en el servidor Q 230. Esto puede ser util cuando uno de los L dispositivos 202 con un agente 204 de encriptado instalado se pierde o es robado y el primer usuario 240 no tiene acceso a otros agentes 204 de encriptado en ese momento. En tales casos, el primer usuario 240 puede comunicarse con el servidor Q 230 directamente para cambiar su ID en el servidor Q 230. En algunas realizaciones, si el dispositivo perdido o robado 202 tiene una conexion de red y el agente 204 de encriptado se esta ejecutando, el agente 204 de encriptado en el dispositivo 202 perdido o robado puede cerrar sesion automaticamente despues de descubrir mediante comunicacion con el servidor 230 que el primer ID del usuario 240 ha sido cambiado.
Otra accion de ejemplo que se puede tomar en el estado de RUNRC es CRKG. La accion de CKRG puede permitir que el agente 204 de encriptado en el primer dispositivo 202a se registre en el servidor Q 230. En algunos casos, el agente 204 de encriptado puede configurar un PIN para autentificar al primer usuario 240 cada vez que el primer usuario 240 quiera acceder a los archivos administrados por el agente 204 de encriptado mas adelante a traves del agente 204 de encriptado. En algunos casos, se puede configurar un codigo de verificacion C, por ejemplo, si el agente 204 de encriptado en el primer dispositivo 202a es el primer agente de encriptado que el primer usuario 240 ha instalado en cualquiera de los L dispositivos 202.
En algunos casos, un conjunto de valores de inicializacion de claves FED (es decir, una pluralidad de valores de inicializacion de claves) puede generarse por el agente 204 de encriptado. El agente de encriptado puede utilizar la pluralidad de valores de inicializacion de claves para derivar una o mas claves de encriptado, por ejemplo, al encriptar un archivo o para generar un almacen de claves FED. En algunos casos, la pluralidad de valores de inicializacion de claves se puede generar a traves de la comunicacion entre el agente 204 de encriptado y el servidor Q 230. El agente de encriptado puede determinar la informacion de valor de inicializacion de clave en base a la pluralidad de valores de inicializacion de clave y almacenar la informacion de valor de inicializacion de clave en la memoria no volatil del primer dispositivo 202a. Por ejemplo, el agente de encriptado puede generar la informacion de valor de inicializacion de clave mediante el encriptado de los valores de inicializacion de clave utilizando el codigo de verificacion C como su clave de encriptado. Los valores de inicializacion de claves encriptadas se pueden almacenar como la informacion de valores de inicializacion de clave en la memoria no volatil del primer dispositivo 202a.
Si el primer usuario 240 ya ha generado una pluralidad de valores de inicializacion de claves en otro dispositivo 202, el primer usuario 240 puede generar la pluralidad de valores de inicializacion de claves en el primer dispositivo para que sea igual a los valores de inicializacion de claves utilizados por el agente de encriptado en el otro dispositivo. Las realizaciones de ejemplo del sistema 200 en las que los valores de inicializacion de claves estan sincronizados entre dispositivos 202 se describiran con mas detalle mas adelante.
El sistema 200 puede transitar desde el estado de RUNRC al estado de ROU, por ejemplo, despues de CKRG. En el estado de ROU, el primer usuario 240 puede realizar una serie de acciones diferentes. Por ejemplo, el primer usuario 240 puede cambiar el PIN de autentificacion utilizado por el agente 204 de encriptado, cambiar su ID a traves del agente 204 de encriptado, crear y/o agregar nuevos archivos para que el agente 204 de encriptado pueda administrar, cambiar el codigo de verificacion y solicitar para generar un nuevo conjunto de valores de inicializacion de claves FED a traves de las acciones de PC, IDCC, CCA, AVCC y ANKG, respectivamente. En el ejemplo que se muestra, el primer usuario 240 puede realizar estas acciones sin que el sistema 200 abandone el estado de rOu .
En algunos casos, mientras esta en el estado ROU, el agente 204 de encriptado puede generar automaticamente un nuevo conjunto de valores de inicializacion de claves alimentado a traves basa en la comunicacion con el servidor Q 230 a traves de la accion de PNKG. Por ejemplo, esto puede ocurrir si el agente 204 de encriptado determina, en base a la comunicacion con el servidor Q 230, que otro agente 204 de encriptado del primer usuario 240 ha generado un nuevo conjunto de valores de inicializacion de claves FED del primer usuario, en algunos casos con la colaboracion del servidor Q 230. Cualquier archivo recien creado y/o agregado puede ser encriptado automaticamente por el agente 204 de encriptado utilizando una clave f Ed seleccionada desde el almacen de claves de FED o derivada de los valores de inicializacion de claves (por ejemplo, por archivo) disponible en el agente 204 de encriptado y designada para el primer usuario 204, a menos que el archivo agregado ya este encriptado por otro agente 204 de encriptado del primer usuario 204. El archivo encriptado resultante junto con la informacion de generacion de claves (como el mdice de la clave FED utilizada en el almacen de claves, o la informacion que indica como derivar la clave de los valores de inicializacion de claves) a partir de las cuales se puede derivar la clave FED se puede guardar como el archivo encriptado en la memoria no volatil del primer dispositivo 202a.
En algunos casos, el sistema 200 puede permanecer en el estado de ROU a menos que se tome una de las acciones de CA, RE, PVCC, IDCO, CC, CT. Ahora se describiran ejemplos de estas acciones.
CA: Con el sistema 200 en el estado de ROU, el primer usuario 240 puede querer acceder a sus archivos 208/210 administrados por el agente 204 de encriptado para ver y/o realizar cambios. En este caso, el agente 204 de encriptado puede desencriptar los archivos 208/210 seleccionados por el primer usuario 240 y almacenar los archivos de texto sin formato desencriptados en la memoria volatil del primer dispositivo 202a para que el primer usuario 240 los lea y modifique. En tales casos, el sistema 200 puede transitar desde el estado de ROU al estado de CVE transitorio.
Despues de que el primer usuario 240 cierre cada archivo de texto sin formato, el agente 204 de encriptado puede borrar el archivo de texto sin formato de la memoria volatil del primer dispositivo 202a si no hay cambios. En algunos casos, el agente 204 de encriptado puede volver a encriptar el archivo de texto sin formato utilizando una clave FED derivada de la informacion del valor de inicializacion de clave (por ejemplo, por archivo o seleccionada del almacen de claves) y sobrescribir el archivo encriptado original en la memoria no volatil del primer dispositivo 202a con el archivo recien encriptado. Esto puede ocurrir si el primer usuario 240 ha realizado algun cambio en el archivo de texto sin formato o no. Luego, el agente 204 de encriptado puede borrar el archivo de texto sin formato de la memoria volatil del primer dispositivo 202a. Despues de que se cierran todos los archivos seleccionados, el sistema 200 puede volver al estado de ROU.
RE: En algunas realizaciones, cuando el agente 204 de encriptado se actualiza con un nuevo algoritmo criptografico de clave simetrica debido a la evolucion estandar del encriptado u otras razones, los archivos 208/210 encriptados con el antiguo algoritmo criptografico de clave simetrica dentro del agente 204 de encriptado deben ser reencriptados con el nuevo algoritmo criptografico de clave simetrica. Si se toma la accion de RE, el sistema 200 puede transitar temporalmente al estado transitorio de CRE, en el que el agente 204 de encriptado puede usar primero el antiguo algoritmo criptografico para desencriptar todos los archivos 208/210 bajo su administracion en el primer dispositivo 202a, y luego usar el nuevo algoritmo criptografico para volver a encriptar todos los archivos desencriptados nuevamente. Luego, QSSAS puede volver al estado de ROU. Esto puede permitir que el mismo agente 204 de encriptado permanezca actual y actualizado con el nivel de seguridad deseado, por ejemplo, si se detectan vulnerabilidades en el algoritmo de encriptado que utiliza el agente 204 de encriptado, o si se desarrollan algoritmos de encriptado mas seguros.
PVCC: En algunas realizaciones, si el primer usuario 240 ha cambiado el codigo de verificacion a traves de uno de sus otros dispositivos 202 a traves del agente 204 de encriptado, el agente 204 de encriptado en el primer dispositivo 202a en el estado de ROU puede cerrar automaticamente la sesion despues de detectar tal cambio basado en la comunicacion con el servidor Q 230. En tales realizaciones, el sistema 200 puede transitar desde el estado de ROU al estado de VCC, en el cual el agente 204 de encriptado en el primer dispositivo 202a puede no funcionar a menos que el primer usuario 240 ingrese los codigos de verificacion antiguos y nuevos para habilitar el agente 204 de encriptado en el primer dispositivo 202a para actualizar su codigo local encriptado, y la informacion de valor de inicializacion de clave almacenada en el primer dispositivo 202a a traves de la accion de VCU. Despues de la accion de VCU, QSSAS puede volver al estado de ROU.
IDCO: En algunas realizaciones, si el primer usuario 240 ha cambiado su ID a traves de otros medios distintos al agente 204 de encriptado en el primer dispositivo 202a, con el sistema 200 en el estado de ROU, el agente 204 de encriptado en el primer dispositivo 202a puede cerrar sesion automaticamente despues de detectar un ID modificado basado en la comunicacion con el servidor Q 230. En tales casos, el sistema 200 puede transitar desde el estado de ROU al estado de UPC. En el estado de UPC, el agente 204 de encriptado en el primer dispositivo 202a puede dejar de estar registrado. Si el agente 204 de encriptado en el primer dispositivo 202a deja de estar registrado, es posible que el agente 204 de encriptado no opere a menos que se vuelva a registrar con el servidor Q 230 con el nuevo ID del primer usuario 240 (por ejemplo, a traves de la accion de CRR). Despues de la accion de CRR, el sistema 200 puede volver al estado de ROU.
CC: En algunas realizaciones, si el sistema 200 se deja en el estado de ROU durante un cierto penodo de tiempo sin ninguna actividad del primer usuario 240 o si el primer usuario 240 cierra el agente 204 de encriptado (por ejemplo, cerrando la pantalla o la carpeta del agente de encriptado) en el primer dispositivo 202a), el sistema 200 puede transitar de ROU al estado de RCU. En el estado de RCU, el agente 204 de encriptado puede ejecutarse en segundo plano, pero el primer usuario 240 no podra acceder a los archivos 208/210 bajo su administracion a menos que el primer usuario 240 sea autentificado nuevamente por el agente 204 de encriptado ingresando el PIN correcto o codigo de verificacion (es decir, a traves de la accion de UAC). Despues de la accion de UAC, el sistema 200 puede volver a ROU.
CT: En algunas realizaciones, si la ejecucion del agente de encriptado finaliza ya sea por el primer usuario 240 o el primer dispositivo 202a, el sistema 200 puede transitar desde ROU al estado de EXIT. Para volver a ROU desde EXIT, el agente 204 de encriptado debe ejecutarse nuevamente ingresando el nombre de usuario, la contrasena y el codigo de verificacion correctos (es decir, a traves de la accion de CE), y luego el primer usuario 240 debe ser autentificado nuevamente por el agente 204 de encriptado a traves de la accion de UAC.
Las transiciones del sistema 200 de RCU a UPC a traves de la accion de IDCO, a VCC a traves de la accion de PVCC, a EXIT a traves de la accion de CT, y a RCU a traves de la accion de PNKG en la figura 3 pueden ser similares a las respectivas transiciones del sistema 200 desde ROU descritas anteriormente.
En general, los archivos 208/210 administrados por agentes 204 de encriptado y almacenados en una memoria no volatil (ya sea en los L dispositivos 202 del primer usuario 240 o en otro lugar, tal como en un servidor en la nube) pueden permanecer encriptados todo el tiempo. Sus archivos de texto sin formato pueden ser visibles solo dentro de los agentes 204 de encriptado del primer usuario 240 cuando se descifran y se almacenan temporalmente en la memoria volatil de los dispositivos 202 del primer usuario 240 en el estado transitorio de CVE. En algunas realizaciones, aparte de los agentes 204 de encriptado del primer usuario 240, ninguna otra parte, incluido el servidor Q 230, conoce ninguna de los valores de inicializacion de claves FED y/o las claves FED disponibles en los agentes 204 de encriptado, los archivos 208/210 no pueden ser desencriptados y, por lo tanto, no son significativos fuera de los agentes 204 de encriptado del primer usuario 240 para tales realizaciones. En tales realizaciones, los archivos 208/210 pueden considerarse "vivos" solo dentro de los agentes 204 de encriptado y "muertos" siempre que se eliminen de los agentes 204 de encriptado. De esta manera, se puede considerar que los agentes 204 de encriptado proporcionan un sistema de seguridad en cuarentena en el que los archivos solo son accesibles dentro de la zona de cuarentena del agente de encriptado. Dado que el conjunto de valores de inicializacion de claves FED utilizadas por cada agente 204 de encriptado y designadas para el primer usuario 240 se pueden sincronizar de forma automatica y segura en todos los agentes 204 de encriptado del primer usuario 240, los archivos administrados por los agentes 204 de encriptado del primer usuario 240 pueden ser desencriptados por cualquiera de esos agentes 204 de encriptado. Esto, junto con la naturaleza en cuarentena del sistema 200, tambien puede permitir que el primer usuario 240 sincronice de forma segura los archivos administrados por esos agentes 204 de encriptado a traves de algun servicio informatico en la nube de terceros u otros medios a traves de Internet.
La figura 5 ilustra una realizacion de ejemplo de un sistema 500 implementado junto con un servicio informatico en la nube 550. El sistema 500 generalmente corresponde al sistema 200, con una pluralidad de dispositivos 502a-502l configurados para comunicarse con el servidor 530. Los archivos 508/510 administrados por los agentes 504 de encriptado del primer usuario 540 se pueden sincronizar con la nube 550 y en esos L dispositivos 502 del primer usuario 540 a traves del servicio informatico en la nube 550. Debido a la naturaleza en cuarentena de los sistemas 200/500, los riesgos de seguridad inherentes a la computacion en la nube pueden reducirse significativamente, lo que permite al primer usuario 540 disfrutar de los beneficios de la computacion en la nube sin mayores preocupaciones de seguridad.
Procedimientos de Acciones
A continuacion, se describiran los procedimientos de esas acciones en la figura 3 que no han sido explicados completamente en la subseccion anterior, a saber, UR, IDCS, IDCC, CRKG, AVCC, VCU, ANKG, y PNKG. Una vez mas, con referencia a la figura 2, usamos el agente 204 de encriptado en el primer dispositivo 202a como ejemplo.
Procedimiento de UR
Cuando el primer usuario 240 quiere registrarse con el servidor Q 230, el primer usuario 240 puede proporcionar primero un par de nombre de usuario o identificador del primer usuario, U y una primera contrasena de usuario P. El servidor Q 230 puede almacenar el identificador del primer usuario en la primera cuenta para el usuario U. El servidor 230 tambien puede hacer dos copias de U, una guardada y designada como Uo, que puede usarse para indicar el identificador del primer usuario antiguo cuando el primer usuario 240 desea cambiar el identificador del primer usuario mas adelante, y el otro guardado y designado como el registro inicial, identificador del primer usuario Ur para el primer usuario 240.
El sistema 200 (por ejemplo, cualquiera de los dispositivos 202a o el servidor 230) puede determinar primero la contrasena de usuario basandose en la primera contrasena de usuario. El servidor 230 puede almacenar la primera informacion de la contrasena del usuario como la informacion actual de la primera contrasena del usuario. El servidor tambien puede almacenar una copia de la informacion de la contrasena del primer usuario como la informacion de la contrasena del primer usuario anterior y otra copia de la informacion de la contrasena del primer usuario como la informacion de la contrasena del primer usuario del registro inicial para el primer usuario 240.
Por ejemplo, el sistema 200 puede determinar la primera informacion de la contrasena del usuario calculando un valor hash E(P) de la contrasena P. El servidor Q 230 puede almacenar la clave hash E(P) como la primera contrasena actual del usuario informacion, y tambien hacer dos copias de E(P), una guardada y designada como la informacion antigua de la contrasena del primer usuario E(Po) y la otra guardada y designada como la informacion inicial de la contrasena del primer usuario E(Pr) para el primer usuario 240. En algunos casos, la informacion de la contrasena del primer usuario E(Pr) del registro inicial no se puede cambiar incluso cuando el primer usuario 240 cambia la primera contrasena del usuario mas adelante.
El servidor Q 230 puede inicializar una cadena llamada cadena de estado de clave. La cadena de estado de clave puede incluir una parte de estado de clave y una parte de indicador de clave de servidor. La cadena de estado de clave puede inicializarse para tener una parte de estado de clave que indica que no se han generado valores de inicializacion de clave para el primer usuario 240. En algunos casos, en la etapa de fuente, antes de la generacion de valores de inicializacion de clave, la porcion del indicador de clave del servidor puede estar en blanco, o puede incluir datos aleatorios. Por ejemplo, cuando la cadena de estado de clave se representa como S = S0S1S2 ··· S2(/+i), la cadena de estado de clave se puede inicializar para que sea S = 0.
En algunos casos, el sistema 200 puede solicitar al primer usuario 240 que proporcione una direccion de correo electronico o numero de telefono valido para servidor Q si el nombre de usuario proporcionado no es una direccion de correo electronico. En tales casos, la direccion de correo electronico o el numero de telefono pueden considerarse el identificador del primer usuario. En algunos casos, como se explica mas adelante, el primer usuario 240 puede tener una pluralidad de identificadores de alias (tal como varias direcciones de correo electronico, nombres de usuario y/o numeros de telefono u otros identificadores). El identificador del primer usuario puede incluir cada uno de los identificadores de alias.
Procedimientos de IDCS y IDCC
Como se ha mencionado antes, en algunos casos, el primer usuario 240 puede cambiar su ID directamente al servidor Q 230 para proporcionar una seguridad adicional. En este ejemplo, usamos el cambio de contrasena como ejemplo para ilustrar el procedimiento. La primera contrasena de usuario que el primer usuario 240 tiene actualmente con el servidor Q 230 puede denominarse la primera contrasena de usuario actual Pc, y la contrasena a la que el primer usuario 240 quiere cambiar se llama la nueva contrasena de primer usuario Pn. Ahora se describira un procedimiento de ejemplo para cambiar la primera contrasena de usuario directamente en el servidor Q 230. El primer usuario 240 puede transmitir una solicitud de cambio de contrasena al servidor 230. En respuesta, el servidor Q 230 puede solicitar el identificador del primer usuario (por ejemplo, el nombre de usuario U), la contrasena actual del primer usuario Pc , y la nueva contrasena del primer usuario Pn. El primer usuario 240 puede entonces proporcionar el identificador del primer usuario y una contrasena de primer usuario putativo al servidor 230. El servidor 230 puede determinar la informacion de la contrasena del primer usuario putativo basandose en la contrasena del primer usuario putativo. El servidor 230 puede entonces usar el identificador del primer usuario para identificar la primera cuenta y comparar la informacion de la contrasena del primer usuario putativo con la informacion de la primera contrasena de usuario almacenada en la informacion de autentificacion de la primera cuenta.
Por ejemplo, el sistema 200 (por ejemplo, el dispositivo 202a o el servidor 230) puede calcular valores hash de la contrasena del primer usuario putativo y la nueva contrasena (Pc y Pn), y verificar el nombre de usuario U y el hash de contrasena de primer usuario putativo E(Pc) con el registro del nombre de usuario actual y el hash de contrasena almacenados en servidor Q para la autentificacion.
Una vez que el primer usuario 240 ha sido autentificado, el servidor Q 230 puede actualizar el hash de la contrasena actual en su registro a E(Pn) , y el hash de la contrasena anterior en su registro a E(Po) = E(Pc) manteniendo la contrasena de registro inicial hash E(Pr) sin tocar.
Se aplican procedimientos similares para cambiar el identificador del primer usuario/nombre de usuario o cambiar el nombre de usuario y la contrasena directamente en el servidor Q 230. Una vez que el primer usuario 240 se autentifica con exito, el servidor Q 230 puede, para cualquier credencial que el primer usuario 240 quiere cambiar (y esta autorizado a cambiar), actualizar la credencial actual correspondiente de su registro a la credencial anterior respectiva y actualizar la respectiva nueva credencial a la respectiva credencial actual en su registro. Del mismo modo, cuando se realizan cambios de ID a traves del agente 204 de encriptado en el primer dispositivo 202a, los cambios se pueden registrar tanto en el agente 204 de encriptado como en el servidor Q 230 una vez que el primer usuario 240 se autentifica con exito.
Procedimiento de CRKG sin recuperacion de codigo de verificacion
Para sincronizar de forma segura y automatica el conjunto de valores de inicializacion de claves FED utilizadas por cada agente 204 de encriptado y designadas para el primer usuario 240 en todos los agentes 240 de encriptado del primer usuario 240, podemos integrar los conceptos de funcion unidireccional y sistema de encriptado de clave publica en el funcionamiento del sistema 200, incluidos CRKG, AVCC, VCU, ANKG y PNKG. La generacion y sincronizacion de valores de inicializacion de claves se describiran ahora con referencia a las figuras 2 y 4A-4C. Las figuras 4A-4C muestran una serie de diagramas de flujo de un ejemplo de realizacion de un procedimiento 400 para proporcionar el encriptado en una pluralidad de dispositivos. Por ejemplo, el sistema 200 se puede usar para implementar el procedimiento 400 para proporcionar encriptado en los dispositivos 202 controlados por el primer usuario 240. Las extensiones del procedimiento 400 cuando el primer usuario incluye diferentes usuarios con el control de los dispositivos 202 o una pluralidad de usuarios de grupos se describiran mas adelante con referencia a las figuras 6C, 8 y 9.
En el procedimiento 400, el servidor 230 ha generado una primera cuenta para el primer usuario 240 en el control de la pluralidad de dispositivos 202. Como se menciono anteriormente, la primera cuenta almacena los datos de la cuenta en la memoria del servidor no volatil, donde los datos de la cuenta incluyen un identificador del primer usuario e informacion de autentificacion de la cuenta.
Aunque las operaciones del sistema 200 y el procedimiento 400 se describiran en detalle, en algunos casos, se describiran ejemplos espedficos de aspectos incorporados de un sistema de encriptado de clave publica bien conocido. Dado que existen varios sistemas criptograficos de clave publica conocidos como RSA (R. L. Rivest, A. Shamir, y L. Adleman, "A method for obtaining digital signatures and public-key cryptosystems", Comm. ACM, vol.
21, n.° 2, paginas 120 - 126, Feb. 1978) ElGamal (T. ElGamal, "A public-key cryptosystem and a signature scheme based on discrete logarithms," IEEE Transactions on Information Theory, vol. 31, n.° 4, paginas 469 - 472, Julio 1985), y "ECC public key cryptosystems" (I. F. Blake, G. Seroussi, y N. P. Smart, Elliptic Curves in Cryptography. Cambridge University Press, 1999), para ser espedficos, se describiran a continuacion algunos ejemplos espedficos que incorporan aspectos del sistema publico de ElGamal como ejemplo. Sin embargo, sera evidente para los expertos que otras realizaciones de los sistemas y procedimientos descritos en este documento pueden no incorporar ningun aspecto del sistema criptografico ElGamal.
En algunos ejemplos espedficos a continuacion, los aspectos del sistema 200 pueden describirse en el contexto de un gran numero primo seguro N (es decir, (N - 1)/2 tambien es un primo) y el campo finito GF(N) = {0,1,2, ···, N -1}. Una rafz primitiva a de GF(N), se fija tambien en estos ejemplos (es decir, 1 < a < N - 1 donde a es un numero entero cuyas potencias debajo del modulo de N producen cada elemento no nulo en GF(N)).
En 405, para cada dispositivo 202 en la pluralidad de dispositivos 202, un agente 204 de encriptado esta instalado sobre el mismo. El agente 204 de encriptado se puede utilizar para controlar la operacion del procesador del dispositivo, cuando se implementan aspectos del procedimiento 400. El agente 204 de encriptado puede instalarse utilizando los diversos procesos de registro de clientes descritos en este documento.
Por ejemplo, el primer usuario 240 puede ingresar el identificador del primer usuario y la primera contrasena de usuario putativo en el agente 204 de encriptado instalado en el primer dispositivo 202a. El agente 204 de encriptado puede generar informacion de la contrasena del primer usuario putativo basada en la contrasena del primer usuario putativo, y transmitir el identificador del primer usuario, la informacion de la contrasena del primer usuario putativo y un primer identificador del dispositivo al servidor 230. Por ejemplo, el agente 204 de encriptado puede calcular un valor de hash E(P) de la contrasena de primer usuario putativo P, que no es necesariamente el mismo que el hash de contrasena de usuario primero almacenado en servidor Q, y luego envfa el nombre de usuario U, la clave hash E(P) y el identificador de dispositivo (D) del primer dispositivo 202a (por ejemplo, una direccion MAC) al servidor Q 230 para la autentificacion. En algunas realizaciones, el identificador de dispositivo D del primer dispositivo 202a de usuario es unico.
El servidor Q 230 puede comparar el identificador del primer usuario U y la informacion de contrasena de primer usuario putativo E(P) con su registro actual (es decir, el nombre de usuario actual y el hash de la contrasena actual registrados en el servidor Q 230). Si se encuentra una coincidencia, la autentificacion del nombre de usuario y la contrasena se realiza correctamente. En algunos casos, se puede realizar otra ronda de verificacion al permitir que el servidor Q 230 envfe algunos mensajes de verificacion de autentificacion a la direccion de correo electronico o numero de telefono proporcionado por el primer usuario 240 en la etapa de registro de usuario. El servidor Q 230 solicita al primer usuario 240 que proporcione los mensajes al agente de encriptado, que a su vez reenvfa los mensajes al servidor Q para su confirmacion. En algunos casos, el proceso de autentificacion del usuario puede incluir informacion de identificacion biometrica del primer usuario 240. Un ejemplo de tal proceso de autentificacion remota se describira en detalle mas adelante.
Si el primer usuario 240 se autentifica, el servidor Q 230 asocia el primer identificador de dispositivo D del primer dispositivo 202a con el primer usuario 240. Si el primer usuario 240 no esta autentificado, el proceso de autentificacion descrito anteriormente puede repetirse hasta que se logre la autentificacion exitosa y la confirmacion del mensaje.
El servidor Q 230 puede enviar un acuse de recibo de autentificacion exitosa junto con la cadena de estado de clave S = S0S1S2 · · S2(/+1) al agente 204 de encriptado. Al recibir el acuse de recibo de una autentificacion exitosa junto con la cadena de estado de clave S = S0,S-iS2---S2(/+1), el agente 204 de encriptado puede almacenar el identificador del primer usuario (por ejemplo, nombre de usuario U) e informacion de la contrasena del primer usuario (por ejemplo, hash de contrasena E(P)) en la memoria no volatil del primer dispositivo 202a.
Si la porcion del indicador de estado de la cadena de estado de clave recibida indica que no se han generado valores de inicializacion de clave, esto sugiere que el primer dispositivo 202a es el primer dispositivo 202 registrado por el primer usuario 240 con el servidor 230 (esto no es necesariamente el caso, pero indica que los valores de inicializacion de clave aun no se han generado en otro dispositivo 202 asociado con el primer usuario 202a). Por ejemplo, si la cadena de estado de clave S comienza con 0, es decir, S0 = 0, esto puede indicar que el agente 204 de encriptado en el primer dispositivo 202a es el primer agente 204 de encriptado registrado por el primer usuario 240 con el servidor Q 230. El agente 204 de encriptado puede solicitar al primer usuario 240 configurar un primer codigo de verificacion C. En algunas realizaciones, el codigo de verificacion C se puede usar para administrar y sincronizar los valores de inicializacion de claves a traves de los dispositivos 202 controlados por el primer usuario. El codigo de verificacion tambien puede permitir la generacion de la clave privada del primer usuario 240 en todos los agentes 204 de encriptado del primer usuario 240.
El agente 204 de encriptado puede generar una pluralidad de contrasenas desde el codigo de verificacion. La pluralidad de contrasenas se puede generar de tal manera que el codigo de verificacion sea determinable a partir de todas las contrasenas en la pluralidad de contrasenas, pero no es determinable a partir de menos de todas las contrasenas. En algunos casos, la pluralidad de contrasenas puede consistir en una primera contrasena y una segunda contrasena.
Por ejemplo, el agente 204 de encriptado puede convertir el codigo de verificacion C en un par de contrasenas C1 y C2 a traves de f(C) = (C1, C2). La conversion se puede realizar a traves de una funcion de uno a uno f de modo que tanto Ci como C2 se vean como numeros aleatorios de GF(N). El codigo de verificacion C puede determinarse a partir de la primera contrasena Ci y la segunda contrasena C2, pero no de Ci o C2 solamente.
El agente 204 de encriptado puede determinar un codigo local encriptado basado en el primer codigo de verificacion. Por ejemplo, el agente de encriptado puede determinar un primer valor local encriptado a partir de la primera contrasena y la segunda contrasena, en el que ninguna de la primera contrasena y la segunda contrasena se pueden determinar solo a partir del primer valor local encriptado. En algunos casos, el primer valor local encriptado puede generarse multiplicando la segunda contrasena con a elevado a la potencia de la primera contrasena. El agente 204 de encriptado tambien puede determinar un segundo valor local encriptado a partir de la segunda contrasena. La segunda contrasena puede ser un logaritmo discreto del segundo valor local encriptado con una base a.
Por ejemplo, el agente de encriptado puede determinar el codigo local encriptado f i = (Si, £2) = (aC1C2, aC2) , (donde pi corresponde al primer valor local encriptado, y fi2 corresponde al segundo valor local encriptado). El agente 204 de encriptado puede guardar el codigo local encriptado f i en la memoria no volatil del primer dispositivo 202a con el fin de verificar una entrada del codigo de verificacion putativo local por parte del primer usuario 240 en el futuro. El agente 204 de encriptado tambien puede determinar un codigo de servidor de encriptado basado en el primer codigo de verificacion. El codigo de servidor encriptado puede incluir un primer valor de servidor encriptado determinado a partir de la primera contrasena y la segunda contrasena. El codigo de servidor encriptado tambien puede incluir un segundo valor de servidor encriptado determinado a partir de la primera contrasena. En algunas realizaciones, ni la primera contrasena ni la segunda contrasena se pueden determinar a partir del primer valor del servidor encriptado. En general, la primera contrasena y la segunda contrasena pueden ser computacionalmente imposibles de determinar a partir del primer valor de servidor encriptado y/o el segundo valor de servidor encriptado ya sea solo o en combinacion, es decir, debido a la dificultad de determinar logaritmos discretos. Por ejemplo, el agente 204 de encriptado puede determinar el codigo del servidor encriptado como f i = ( f i i, f i 2) = (aC1C2, aCi). El codigo del servidor encriptado se puede transmitir al servidor Q 230. El servidor 230 puede almacenar el codigo de servidor encriptado en la informacion de autentificacion de la primera cuenta.
En algunos casos, el servidor 230 puede generar valores de encriptado del servidor independientes y aleatorizar (o mas encriptar) el codigo del servidor encriptado basado en los valores independientes de encriptado del servidor antes de su almacenamiento. El servidor 230 puede generar los valores de encriptado de servidor independientes como numeros aleatorios independientes V-i,V-2 basados en Ur, E(P), y su propia clave secreta v. Los numeros aleatorios independientes V-i, V-2 puede ser distribuido uniformemente sobre {1, 2, •••, N - i}. El servidor 230 puede entonces aleatorizar f i convirtiendolo en D(fi) = (D(fi1,V-i),D(fi2,V-2)), y guardar D ( f i ) junto con el nombre de usuario y la contrasena hash. La funcion D (•,) puede ser de uno a uno y desde {i,2, •••, N - i } a { i ,2, •••, N - 1} dado ya sea f i j o V- j. En algunos casos, el codigo de servidor encriptado del servidor puede generarse utilizando un valor de hash (por ejemplo, un valor de hash derivado de HMAC) con la clave de servidor secreta v como su clave y el codigo de servidor encriptado f i como su entrada.
En 4i0, el agente 204 de encriptado puede generar de forma aleatoria una pluralidad de indicadores de claves. Por ejemplo, el agente 204 de encriptado puede generar independientemente numeros aleatorios Xj, j = 0,i, •••, J como la pluralidad de indicadores de claves. En algunos casos, cada numero aleatorio (es decir, cada indicador de clave) se puede distribuir de manera uniforme en {i,2, •••, N - 1}.
En 415, el agente 204 de encriptado puede generar una pluralidad de indicadores de claves encriptados desde la pluralidad de indicadores de claves utilizando una clave de encriptado del segundo dispositivo. Cada uno de los indicadores de claves encriptados puede corresponder a uno de los indicadores de claves en la pluralidad de indicadores de claves. La clave de encriptado del segundo dispositivo puede corresponder a una clave de desencriptado del segundo dispositivo desconocida para el servidor.
En algunos casos (por ejemplo, cuando se utiliza el sistema ElGamal), el agente 204 de encriptado puede tambien generar aleatoriamente una pluralidad de valores de encriptado. Por ejemplo, el agente de encriptado puede generar la pluralidad de valores de encriptado como numeros aleatorios independientes Yj . El agente 204 de encriptado puede generar la pluralidad de indicadores de claves encriptados a partir de la pluralidad de indicadores de claves utilizando la clave de encriptado del segundo dispositivo y la multitud de valores de encriptado. En tales casos, cada uno de los indicadores de claves encriptados tambien corresponde a uno de los valores de encriptado en la pluralidad de valores de encriptado. El agente 204 de encriptado tambien puede generar una pluralidad de claves publicas de indicadores de claves. Cada clave publica del indicador de clave puede corresponder a uno de los valores de encriptado en la pluralidad de valores de encriptado. Por ejemplo, el agente de encriptado puede calcular
la pluralidad de indicadores de claves encriptados como
Figure imgf000024_0002
y la pluralidad de claves publicas de indicador de clave como
Figure imgf000024_0001
En 420, el agente 204 de encriptado puede transmitir la pluralidad de indicadores de claves encriptados al servidor 230. Los indicadores de claves encriptados pueden transmitirse al servidor 230 para impedir la exposicion de los indicadores de claves al servidor 230. Al mismo tiempo, el servidor 230 puede utilizar los indicadores de claves encriptados para actualizar la cadena de estado de clave de la primera cuenta. La cadena de estado de clave actualizada se puede usar para sincronizar los valores de inicializacion de claves en otros dispositivos controlados por el primer usuario.
En algunos casos, el agente 204 de encriptado tambien puede transmitir la pluralidad de claves publicas indicador de clave al servidor 230. Por ejemplo, el agente 204 de encriptado puede enviar (£j, j j = 0, 1, ···, J , al servidor Q 230.
En 425, el agente 204 de encriptado puede generar una pluralidad de valores de inicializacion de clave basandose en la pluralidad de indicadores de claves. Para cada valor de inicializacion de clave, el agente 204 de encriptado puede ser operable para generar una pluralidad de claves de encriptado independientes. Como se menciono anteriormente, en algunas realizaciones, el agente 204 de encriptado puede generar un almacen de claves de encriptado que comprende una pluralidad de claves de encriptado. En otras realizaciones, el agente 204 de encriptado puede derivar claves de encriptado segun sea necesario en respuesta a una indicacion de un archivo a encriptar.
En algunos casos, el agente 204 de encriptado puede generar la pluralidad de valores de inicializacion de clave con asistencia desde el servidor 230. El servidor 230 puede generar aleatoriamente valores de clave de servidor para la primera cuenta. Los valores de clave del servidor pueden almacenarse en la memoria no volatil del servidor y transmitirse al primer dispositivo 202a. El agente 204 de encriptado puede generar la pluralidad de valores de inicializacion de clave basadas en los valores de clave del servidor y la pluralidad de indicadores de claves.
En algunas realizaciones, el agente 204 de encriptado puede enviar una cantidad de indicador de clave al servidor Q 230. La cantidad de indicador de clave puede identificar el numero de indicadores de claves generados por el agente de encriptado en 410. La cantidad de indicadores de claves puede tener la forma de un par de enteros (0, J). La cantidad del indicador de clave puede indicar al servidor 230 que se solicita su asistencia para generar valores de inicializacion de claves FED.
Al recibir la cantidad del indicador de clave (por ejemplo, el par de enteros (0, J), el servidor Q 230 puede generar, basandose en Ur, E(Pr), y su propia clave secreta v, los valores de la clave del servidor como numeros aleatorios independientes Vo, Vi , ···, Vj . Los valores de la clave del servidor pueden ser numeros aleatorios distribuidos uniformemente sobre {1,2, ···, N - 1}. El servidor 230 puede enviar Vo, Vi , ···, Vj de vuelta al agente 204 de encriptado. Basado en Vo, Vi , ···, Vj y Xo, X i , ···, Xj , el agente 204 de encriptado puede generar J valores de inicializacion de clave FED independientes Kj = A(X, Vj), j = 1,2, ···, J.
En algunos casos, el agente 204 de encriptado tambien puede generar una primera clave de desencriptado de usuario basandose en la pluralidad de indicadores de claves (y, en algunas realizaciones, la pluralidad de valores de claves del servidor). El agente 204 de encriptado puede generar una primera clave de encriptado del usuario basada en la primera clave de desencriptado del usuario y transmitir la primera clave de encriptado del usuario al servidor 230. La primera clave de encriptado del usuario se puede almacenar en la primera cuenta.
Por ejemplo, el agente 204 de encriptado puede generar la clave de desencriptado del primer usuario 240 como Ko = A(Xo, Vo), donde la funcion A ( , ) es de uno a uno y va desde {1,2, · · ·, N -1 } a (1,2, · · ·, N -1 } dados, ya sea Xj o Vj . El agente 204 de encriptado puede enviar la clave publica y = aK0 del primer usuario 240 al servidor Q 230, que a su vez guarda y registra y junto con el hash de nombre de usuario y contrasena para el primer usuario.
En 430, la informacion inicial de clave basada en la pluralidad de valores de inicializacion de claves puede almacenarse en la memoria no volatil del primer dispositivo 202a. En algunas realizaciones, el almacenamiento de la informacion de valores de inicializacion de clave puede incluir el encriptado de la pluralidad de valores de inicializacion de clave utilizando el primer codigo de verificacion, y el almacenamiento de la pluralidad encriptada de valores de inicializacion de claves en la memoria no volatil del primer dispositivo 202a.
Por ejemplo, el agente 204 de encriptado puede usar el codigo de verificacion C para encriptar la pluralidad de indicadores de claves (Xq, Xi, ···, Xj) y la pluralidad de valores de inicializacion de clave (K0, K1, ···, Kj ) en el primer dispositivo, los indicadores de claves encriptados Ec(Xq, Xi, ···, X J ) y las claves de encriptado Ec(K0, Ki, ···, Kj ) respectivamente. El agente 204 de encriptado puede entonces guardar Ec(Xq,Xi, ■■■, Xj ) y Ec(K0, Ki, memoria no volatil del primer dispositivo 202a. El agente 204 de encriptado puede luego encriptar y desencriptar los archivos 208/210 bajo la administracion del agente 204 de encriptado, incluso cuando la conexion de red entre el agente 204 de encriptado y el servidor Q 230 no esta disponible cuando el primer usuario 240 esta autentificado y verificado por el agente de encriptado 204 en el primer dispositivo 202a. Las realizaciones de ejemplo del encriptado y desencriptado de archivos se describiran con mas detalle a continuacion con referencia a las figuras 6A-6C.
En 435, una cadena de estado de clave para la primera cuenta se puede generar. La cadena de estado de clave puede incluir una porcion del indicador de la clave del servidor generada en funcion de la pluralidad de indicadores de claves encriptados. En algunos casos, la cadena de estado de clave para la primera cuenta ya puede existir. Por ejemplo, como se menciono anteriormente, la cadena de estado de clave puede inicializarse cuando el primer usuario 240 registra el agente 204 de encriptado en el primer dispositivo 202a con el servidor 230. En tales casos, la cadena de estado de clave para la primera cuenta puede generarse actualizando la cadena de estado de clave previamente almacenada.
En algunos casos, la porcion del indicador de clave del servidor se puede generar en funcion de la pluralidad de indicadores de claves encriptados y la pluralidad de claves publicas del indicador de clave. Por ejemplo, al recibir q,^0,£i ,^i , -,£j ,^j ), el servidor 230 puede actualizar la cadena de estado de clave de S = 0 a S = SqSv S2(j+i) =
1 £q^ 0 j^ j . La cadena de estado de clave se puede actualizar agregando la pluralidad de indicadores de claves encriptados a la cadena de estado de clave. Cuando se utilizan claves publicas de indicadores de claves, tambien se pueden agregar a la cadena de estado de clave y asociarse con los indicadores de claves encriptados a los que corresponden. La porcion del indicador de estado tambien se puede actualizar para identificar la porcion del indicador de la clave del servidor actual.
En 440, la cadena de estado de clave se puede almacenar en la memoria no volatil del servidor 230. En general, la cadena de estado de clave se puede usar para sincronizar los valores de inicializacion de claves en los dispositivos
202 asociados con el primer usuario 240.
Si la cadena de estado de clave recibida por el primer dispositivo 202a indica que la porcion del indicador de clave del servidor ya se ha generado para la primera cuenta, el primer dispositivo 202a puede sincronizar los valores de inicializacion de claves usando la cadena de estado de clave. Por ejemplo, cada dispositivo puede usar los valores almacenados en la porcion del indicador de clave del servidor para generar la pluralidad de indicadores de claves y luego generar la pluralidad de valores de inicializacion de clave en funcion de la pluralidad de indicadores de claves.
Por ejemplo, la cadena de estado de clave recibida S = SoSiS2---S2(/+i) puede tener una porcion de indicador de estado como So = i, lo que indica que al menos otro agente 204 de encriptado en uno de esos L dispositivos 202 del primer usuario 240 ya se ha registrado en el servidor Q 230, se ha definido el codigo de verificacion C y se ha generado el conjunto de valores de inicializacion de claves FED {Ki, K2, ···, Ki}, donde i es un multiplo entero de J.
En algunos casos, tambien se habra generado la clave privada Kq del primer usuario 240 (correspondiente a la clave publica y = aK0 del primer usuario 240).
Por simplicidad, el proceso de sincronizacion de valores de inicializacion de clave se describira con referencia al segundo dispositivo 202b. Sin embargo, como se indico anteriormente, los procesos descritos en este documento generalmente pueden ser realizados por un agente 204 de encriptado en cualquiera de los dispositivos 202 en el sistema 200. Ademas, el proceso se describe en el contexto de un usuario unico que controla el primer dispositivo
202a y el segundo dispositivo 202b, pero se puede usar un proceso similar cuando diferentes usuarios controlan los dispositivos 202, como se describira en detalle mas abajo.
En general, antes de proporcionar el segundo dispositivo 202b con acceso a la cadena de estado de clave, el servidor 230 puede autentificar el primer usuario 240 en el segundo dispositivo 202b. En algunos casos, el servidor
230 puede transmitir la porcion del indicador de estado de la cadena de estado de clave al agente 204 de encriptado en el segundo dispositivo 202b antes de requerir la autentificacion. Por ejemplo, el servidor 230 puede recibir una solicitud de registro para el segundo dispositivo 202b. La solicitud de registro puede incluir el identificador del primer usuario de la primera cuenta y una contrasena de usuario putativo.
En respuesta, el servidor 230 puede comparar el identificador del primer usuario y contrasena de usuario putativo a los datos de la cuenta almacenados y datos de autentificacion de cuenta. La porcion del indicador de estado de la cadena de estado de clave se puede transmitir al segundo dispositivo 202b y puede indicar al agente 204 de encriptado en el segundo dispositivo 202b que se ha definido el codigo de verificacion y que se requiere la autentificacion del primer usuario 240. El servidor 230 tambien puede enviar una solicitud de autentificacion al segundo dispositivo 202b junto con la porcion del indicador de estado. El agente 204 de encriptado en el segundo dispositivo 202b puede solicitar al primer usuario 240 que ingrese el codigo de verificacion C.
En 445, la informacion de autentificacion putativa puede ser recibida en el segundo dispositivo 202b. La informacion de autentificacion putativa puede ser un codigo de verificacion putativo.
En 450, el agente 204 de encriptado en el segundo dispositivo 202b puede generar informacion de autentificacion del servidor putativo basado en la informacion de autentificacion putativa. El agente 204 de encriptado puede transmitir la informacion de autentificacion del servidor putativo al servidor 230. Por ejemplo, el agente 204 de encriptado puede generar la informacion de autentificacion putativa del servidor como un codigo de servidor encriptado putativo basado en el codigo de verificacion putativo. El agente 204 de encriptado puede calcular (5 utilizando la misma funcion que la anterior y enviar este valor al servidor 230.
En 455, el servidor 230 puede comparar la informacion de autentificacion del servidor putativo con la informacion de autentificacion de cuentas. El servidor 230 puede comparar la informacion de autentificacion putativa del servidor con el codigo de servidor encriptado almacenado en la informacion de autentificacion de la cuenta de la primera cuenta. El servidor 230 puede comparar el valor recibido de (5 recibido del segundo dispositivo 202b con el valor almacenado de jS.
En algunos casos, el servidor 230 puede generar ademas informacion de autentificacion de servidor putativo encriptada del servidor. Esto se puede usar cuando el codigo de servidor encriptado es un codigo de servidor encriptado adicional generado en el servidor antes del almacenamiento. Por ejemplo, el servidor 230 puede calcular D(S) del codigo de servidor encriptado recibido utilizando la misma funcion D (es decir, con los valores V-1 y V-2) utilizados para aleatorizar el codigo encriptado del servidor antes del almacenamiento. Esto se puede comparar con el valor almacenado de D(S) guardado en la memoria no volatil del servidor 230 para determinar si el codigo de servidor encriptado putativo coincide con el codigo de servidor encriptado.
En 460, el servidor 230 puede proporcionar al segundo dispositivo 202b acceso a la cadena de estado de clave si y solo si la informacion de autentificacion del servidor putativo corresponde a la informacion de autentificacion de cuentas. En algunos casos, la informacion de autentificacion de servidor putativo corresponde a la informacion de autentificacion de cuenta si y solo si el codigo de servidor encriptado putativo coincide con el codigo de servidor encriptado. En realizaciones en las que los valores de inicializacion de claves se generaron utilizando valores de clave de servidor, el servidor 230 tambien puede proporcionar al segundo dispositivo 202b acceso a los valores de claves del servidor si y solo si la informacion de autentificacion de servidor putativo corresponde a la informacion de autentificacion de cuenta. El servidor 230 puede transmitir los valores de la clave del servidor almacenados en la primera cuenta al agente 204 de encriptado en el segundo dispositivo 202b despues de que el primer usuario 240 se autentifique en el segundo dispositivo 202b.
Si la autentificacion es exitosa en 460, el agente 204 de encriptado en el segundo dispositivo 202b puede aceptar el codigo de verificacion putativo recibido desde el primer usuario 240 como el codigo de verificacion correcto. El agente 204 de encriptado puede calcular el codigo local encriptado y almacenar el codigo local encriptado en la memoria no volatil del segundo dispositivo 202b. Por ejemplo, el agente 204 de encriptado puede calcular el codigo local encriptado como se describe anteriormente (por ejemplo, S = (orc1C2, orC2)) y guardar S en la memoria no volatil del segundo dispositivo 202b de usuario.
En 465, el agente 204 de encriptado en el segundo dispositivo 202b puede determinar la pluralidad de indicadores de claves de la pluralidad de indicadores de claves de encriptado en la cadena de estado de clave utilizando la clave de desencriptado del segundo dispositivo. Por ejemplo, la pluralidad de indicadores de claves encriptadas puede encriptarse utilizando la clave de encriptado del segundo dispositivo. La clave de encriptado del segundo dispositivo corresponde a la clave de desencriptado del segundo dispositivo y se puede generar en funcion de la clave de desencriptado del segundo dispositivo.
Por ejemplo, la clave de encriptado del segundo dispositivo se puede generar en funcion del codigo de verificacion. Del mismo modo, la clave de desencriptado del segundo dispositivo tambien se puede generar en funcion del codigo de verificacion. En el escenario de un solo usuario, el codigo de verificacion definido en el primer dispositivo 202a y el segundo dispositivo 202b puede ser el mismo. Por consiguiente, la clave de desencriptado del segundo dispositivo y la clave de encriptado del segundo dispositivo pueden generarse por separado. Por ejemplo, el primer dispositivo 202a puede generar la clave de encriptado del segundo dispositivo y encriptar la pluralidad de indicadores de claves utilizando la clave de encriptado del segundo dispositivo incluso antes de que el segundo dispositivo 202b se registre con el servidor 230. Cuando el segundo dispositivo 202b se registra con el servidor 230, el segundo dispositivo 202b puede generar la correspondiente clave de desencriptado del segundo dispositivo en funcion del codigo de verificacion definido en el segundo dispositivo 202b.
En algunas realizaciones, como se describe a continuacion, el segundo dispositivo 202b puede generar la clave de desencriptado del segundo dispositivo y transmitir la segunda clave de encriptado dispositivo al servidor 230. El primer dispositivo 202a puede generar la pluralidad de indicadores de claves encriptadas para el segundo dispositivo 202b utilizando la clave de encriptado del segundo dispositivo recibida desde el servidor 230. En algunos casos, esto puede ocurrir incluso despues de que algunos archivos 208/210 se hayan transmitido desde el primer dispositivo 202a al segundo dispositivo 202b.
En algunas realizaciones, el agente 204 de encriptado en el segundo dispositivo 202b puede determinar la pluralidad de indicadores de claves de la portion de indicador de clave de la cadena de estado de clave mediante la determination de Xj, j = 0,1, -J, fuera de la cadena de estado de clave S = SoSiS2-"S2(/+i) usando X-j~ i = S 2j - i S~ 2jCl ’ j = 1,2, - ,/ 1. Los indicadores de claves determinados por el agente 204 de encriptado en el segundo dispositivo 202b pueden ser los mismos que la pluralidad de indicadores de claves generados en el primer dispositivo 202a. Esto permite que el agente 204 de encriptado en el segundo dispositivo 202b genere la misma pluralidad de valores de initialization de clave que las generadas por el agente 204 de encriptado en el primer dispositivo 202a.
En 470, el agente 204 de encriptado en el segundo dispositivo 202b puede generar la pluralidad de valores de inicializacion de clave basandose en la pluralidad de indicadores de claves. Para cada valor de inicializacion de claves, el agente 204 de encriptado en el segundo dispositivo 202b puede generar la misma pluralidad de claves encriptadas independientes que el primer dispositivo 202a, sin que se proporcione ninguna clave, information de valor de inicializacion de claves y claves de encriptado al segundo dispositivo 202b. La pluralidad de valores de inicializacion de clave se puede generar en el segundo dispositivo 202b de la misma manera que se describio anteriormente para el primer dispositivo 202a. En algunas realizaciones, al igual que con el primer dispositivo 202a, el agente 204 de encriptado en el segundo dispositivo 202b puede generar la pluralidad de valores de inicializacion de clave en funcion de la pluralidad de indicadores de claves y los valores de claves del servidor recibidos desde el servidor 230.
El agente 204 de encriptado en el segundo dispositivo 202b puede generar la pluralidad de valores de inicializacion de claves de una manera similar a la descrita anteriormente para el primer dispositivo 202a en 425. Por ejemplo, con el codigo de verification C y los numeros aleatorios X, j = 0,1, •••, /, disponibles, el agente 204 de encriptado en el segundo dispositivo 202b puede realizar las operaciones descritas en 425 con J reemplazado por /. Cuando la clave publica del primer usuario 240 ya se ha generado y almacenado en la primera cuenta, no es necesario que el segundo dispositivo 202b envie la clave publica y al servidor Q 230. El agente 204 de encriptado en el segundo dispositivo 202b puede completar el registro del segundo dispositivo 202b y generar los valores de inicializacion de claves y la clave privada del primer usuario 240 (o la clave de desencriptado del segundo dispositivo) para el agente 204 de encriptado.
En algunas realizaciones, todos los calculos que implican numeros en el procedimiento 400 descrito anteriormente puede llevarse a cabo en el campo finito GF(N). Tambien podemos verificar que la pluralidad de valores de inicializacion de claves FED y la clave privada del primer usuario 240 generadas y guardadas por el agente 204 de encriptado en el segundo dispositivo 202b son las mismas que las utilizadas por todos los agentes 204 de encriptado actualizados en otros dispositivos 202 registrados ante el nuevo agente de encriptado registrado (en el caso de un solo usuario). Por ejemplo, supongamos que / = J en el parrafo [0192]. Se puede verificar que la pluralidad de indicadores de claves Xj , j = 0,1,2, •••, J, determinados por el agente 204 de encriptado del segundo dispositivo 202b en 465 son los mismos que los generados por el agente 204 de encriptado del primer dispositivo 202a en 410:
Figure imgf000027_0001
En 475, el agente 204 de encriptado en el segundo dispositivo 202b puede almacenar la informacion de valor de inicializacion de clave basada en la pluralidad de valores de inicializacion de claves en la memoria no volatil del segundo dispositivo 202b. El agente 204 de encriptado en el segundo dispositivo 202b puede almacenar la informacion de valor de inicializacion de clave de la misma manera que se describio anteriormente para el primer dispositivo 202a, en 430.
En algunas realizaciones, las comunicaciones y los acuerdos entre el agente 204 de encriptado y el servidor Q 230 se pueden asumir como seguros. Ademas, el entero i en la description anterior puede ser un multiplo entero de J y aumentar en J cada vez que cualquiera de los agentes de encriptado registrados 204 del primer usuario 240 solicite un nuevo conjunto de valores de inicializacion de claves FED. Cuando cada Kj es largo, pero cada clave FED k es relativamente corta, J puede ser pequeno. Por ejemplo, uno puede seleccionar J = 1 cuando Kj tiene una longitud de 4096 bits y k tiene una longitud de 256 bits. En realizaciones de la descripcion anterior, cuando los valores de servidor aleatorios independientes y distribuidos uniformemente y los valores de claves del servidor V-2, V-i, V0, Vi, •••, Vi se generan por primera vez, pueden ser encriptados por el servidor Q 230 con su propia clave secreta v y luego guardado en la primera cuenta para el primer usuario 240 para otras posibles solicitudes de generation de valores de inicializacion de claves y la clave privada del primer usuario 240 realizada posteriormente por los agentes de encriptado registrados del primer usuario 240.
En algunas realizaciones, si o no el agente 204 de encriptado en el primer dispositivo de usuario 202a es el primer agente de encriptado del primer usuario 240 registrado con el servidor Q 230, al final del proceso de Cr Kg , el agente 204 de encriptado registrado en el primer dispositivo 202a de usuario puede tener parte o toda la siguiente informacion almacenada en la memoria no volatil del primer dispositivo 202a de usuario:
el identificador de usuario o nombre de usuario U;
information de la contrasena del primer usuario, como el hash de contrasena E(P);
el hash de PIN E(R);
el codigo local encriptado, por ejemplo, p = (@1,^2) = (aC1C2, aC2) basado en el codigo de verification C;
la pluralidad de indicadores de claves encriptados (por ejemplo, numeros aleatorios Ec(X0, X1, ···, X)) e; informacion de valores de initialization de claves, como valores de initialization de claves encriptadas Ec(Ko, Ki , ··, Ki).
En consecuencia, en algunas realizaciones, el servidor Q 230 puede tener parte o toda la siguiente informacion almacenada en su memoria no volatil, por ejemplo, en la primera cuenta para el primer usuario 240:
el identificador del primer usuario, por ejemplo, los nombres de usuario de registro actual, antiguo e inicial U, Uo, y U
la primera informacion de la contrasena del usuario, por ejemplo, los valores hash de la contrasena de registro actual, anterior e inicial E(P), E(Po) y E(Pr);
los identificadores de dispositivo de todos los dispositivos 202 del primer usuario 240 que tienen instalados en el mismo agente 204 de encriptado y estan registrados con el servidor 230;
la clave de encriptado del segundo dispositivo del primer usuario 240, como la clave publica y;
el codigo de servidor encriptado, o un codigo de servidor encriptado adicional basado en el codigo de verificacion C, por ejemplo, p y/o D(p); y
la cadena de estado de clave que incluye la portion del indicador de la clave del servidor y, en algunos casos, la portion del indicador de estado, por ejemplo, S = S0S1S2 ··· S2 (/+1).
En algunas realizaciones, la informacion almacenada por un agente 204 de encriptado registrado en la memoria no volatil del primer dispositivo 202a de usuario y la informacion almacenada en la memoria no volatil del servidor 230 para el primer usuario 240 pueden satisfacer una o mas de las siguientes propiedades:
Figure imgf000028_0001
En las propiedades (2), (3), y (5), = indica que el lado derecho es consistente con el lado izquierdo. En general, estas seis propiedades consistentes pueden permanecer validas hasta que el primer usuario 240 solicite algun cambio en el nombre de usuario, la contrasena, el codigo de verificacion C y/o la generation de nuevos valores de inicializacion de claves y las claves privadas y publicas del primer usuario 240 a traves de servidor Q 230 u otro agente de encriptado registrado 204 en uno de esos L dispositivos 202 del primer usuario 240. Por lo tanto, al marcar una o mas de estas propiedades consistentes, el agente 204 de encriptado registrado en el primer dispositivo 202a de usuario puede detectar si los cambios solicitados por el primer usuario 240 se han realizado a traves de servidor Q 230 u otro agente de encriptado registrado en uno de esos L dispositivos 202 del primer usuario 240 (segun sea el caso). En caso afirmativo, el agente 204 de encriptado registrado en el primer dispositivo 202a de usuario puede actualizar su informacion correspondiente para garantizar que estas propiedades consistentes vuelvan a ser validas y, al hacerlo, tambien se sincronice con estos cambios. Para facilitar el proceso de detection, el agente 204 de encriptado en el primer dispositivo 202a de usuario, una vez registrado con exito con el servidor Q 230, puede ser requerido para comparar su informacion almacenada localmente con la informacion respectiva en el servidor Q 230 durante su proceso de autentificacion de intercambio con el servidor Q 230 siempre que quiera hablar con el servidor Q 230. La deteccion de cambios y la actualization de la informacion relacionada para obtener el agente de encriptado registrado 204 en el primer dispositivo de usuario 202a sincronizado con los cambios se analizara mas adelante a traves de los procedimientos de AVCC, VCU, ANKG y PNKG.
Debido a la dificultad de computar logaritmos discretos, el servidor 230 puede tener dificultades significativas para determinar el codigo de verificacion del codigo de servidor encriptado, especialmente porque tanto la primera contrasena como la segunda contrasena pueden ser requeridas para determinar el codigo de verificacion. Ademas, un codigo de servidor encriptado adicional, por ejemplo, generado como una aleatorizacion o un hash con clave de p, puede hacer que esta tarea sea aun mas diffcil (es decir, el servidor Q 230 puede tener dificultades para desencriptar el codigo de verificacion C, en particular Ci, de D(p)). Por lo tanto, el servidor Q 230 puede no conocer el conjunto de valores de inicializacion de claves FED y la clave privada del primer usuario 240 utilizadas por todos los agentes 204 de encriptado registrados del primer usuario 240.
En el sistema 200, la pluralidad de valores de inicializacion de clave (y la clave privada del primer usuario 240 o la clave de desencriptado del dispositivo) solo puede ser expuesta a los agentes 204 de encriptado registrados en los dispositivos 202 de primer usuario 240, tfpicamente en un formato encriptado. La cadena de estado de clave S no puede exponer ninguna informacion sobre la pluralidad de valores de inicializacion de claves FED, la clave privada del primer usuario 240 y/o el codigo de verificacion C en un sentido de la teona de la informacion. Del mismo modo, cada agente 204 de encriptado registrado puede tener dificultades para determinar tambien el codigo de verificacion C del codigo encriptado local p. Como tal, en algunas realizaciones, incluso en los agentes 204 de encriptado registrados del primer usuario 240, la pluralidad de valores de inicializacion de claves FED (y la clave privada de desencriptado del dispositivo o la clave de desencriptado del dispositivo del primer usuario 240) solo pueden estar disponibles para cada agente 204 de encriptado registrado despues de que el primer usuario 240 proporcione informacion de autentificacion putativa correspondiente al codigo de verificacion correcto C para ese agente de encriptado.
La descripcion anterior explica diversas realizaciones de como la pluralidad de indicadores de claves, la pluralidad de valores de inicializacion de claves, y de este modo las claves de encriptado se pueden sincronizar en multiples dispositivos que utilizan un servidor 230. Algunas realizaciones de ejemplo del encriptado y desencriptado de archivos que utilizan el sistema 200 se describiran ahora con referencia a las figuras 6A-6C. En la descripcion de las figuras 6A-6C, las operaciones se describiran con referencia al primer dispositivo 202a y al segundo dispositivo 202b para mayor claridad. Sin embargo, en general, las operaciones realizadas por cada uno de estos dispositivos 202a y 202b pueden ser realizadas por cualquiera de la pluralidad de dispositivos 202 que tienen instalado un agente 204 de encriptado.
La figura 6 muestra un procedimiento 600 de ejemplo que puede ser utilizado por un agente 204 de encriptado para encriptar y almacenar un archivo proporcionado al primer dispositivo 202a.
En 605, un archivo para ser encriptado se proporciona al primer dispositivo 202a. El archivo que se va a encriptar se puede encriptar para su almacenamiento en el primer dispositivo 202a, para transmitirlo a un servidor en la nube para su almacenamiento, para transmitirlo a un segundo dispositivo 202b (por ejemplo, directamente al segundo dispositivo 202b a traves de una red tal como la red 230 o a traves del servidor en la nube, o de otro modo transmitido al segundo dispositivo) u otro dispositivo o plataforma de almacenamiento para almacenamiento encriptado, o desencriptado y revision o edicion.
En 610, una de las claves de encriptado se puede derivar de la informacion de valor de inicializacion de clave almacenada en el primer dispositivo 202a usando informacion de clave. La clave de encriptado se puede derivar de varias maneras, como se describio anteriormente, como al seleccionar una clave de encriptado particular de un almacen de claves utilizando informacion de clave que indica un valor de mdice de esa clave de encriptado particular, o generando/derivando la clave de encriptado particular de los valores de inicializacion de claves correspondientes a la informacion de valores de inicializacion de claves almacenada en el primer dispositivo 202a. La clave de encriptado puede seleccionarse aleatoriamente cuando el agente 204 de encriptado recibe una indicacion del archivo que se va a encriptar.
En 615, el archivo se puede encriptar utilizando la clave de encriptado derivada. En algunos casos, la clave de encriptado derivada puede borrarse del primer dispositivo 202a despues de encriptar el archivo.
En 620, el archivo encriptado puede entonces ser almacenado en la memoria no volatil del primer dispositivo 202a. La informacion de codificacion utilizada para derivar el archivo encriptado tambien se puede almacenar con el archivo encriptado.
En algunos casos, el archivo encriptado no necesita almacenarse en el primer dispositivo 202a. Por ejemplo, el archivo encriptado puede transmitirse a otro dispositivo 202 o a un servidor en la nube junto con la informacion de codificacion. En algunas realizaciones, el archivo y el archivo encriptado se pueden borrar del primer dispositivo 202a despues de la transmision.
La figura 6B muestra un procedimiento 630 de ejemplo que se puede usar para desencriptar un archivo encriptado de acuerdo con algunas realizaciones. En 635, el archivo encriptado y la informacion de codificacion se reciben en el segundo dispositivo 202b.
En 640, el segundo dispositivo 202b puede derivar la clave de encriptado de la informacion inicial de clave almacenada en la memoria no volatil del segundo dispositivo 202b usando la informacion de generacion de claves recibida. En algunas realizaciones, la clave de encriptado puede ser derivada por el segundo dispositivo 202b de muchas maneras diferentes, como los procedimientos de ejemplo descritos anteriormente, dependiendo de la naturaleza de la informacion de valor de inicializacion de clave almacenada en el segundo dispositivo 202b.
En 645, el segundo dispositivo 202b puede desencriptar el archivo encriptado usando la clave de encriptado derivada en 640. El usuario del segundo dispositivo 202b puede acceder entonces al archivo para su revision y/o modificacion o cualquiera de las otras acciones relacionadas con el archivo descritas anteriormente. En algunas realizaciones, el archivo desencriptado puede almacenarse en texto sin formato en la memoria volatil del segundo dispositivo 202b, y borrarse de la memoria volatil cuando el usuario ha completado las acciones deseadas. El archivo desencriptado tambien se puede almacenar en la memoria no volatil del segundo dispositivo 202b, despues de encriptarse con una clave de encriptado derivada (la misma clave o una nueva), junto con la informacion de codificacion.
La figura 6C muestra un procedimiento 650 de ejemplo para desencriptar el archivo encriptado cuando un usuario diferente tiene el control del segundo dispositivo 202b. En la descripcion del procedimiento 650, el primer usuario 240 puede considerarse como una pluralidad de usuarios. La pluralidad de usuarios puede incluir un usuario administrativo que controla el primer dispositivo 202a y un segundo usuario que controla el segundo dispositivo 202b.
En general, el encriptado de un archivo antes del procedimiento 650 puede proceder de acuerdo con el procedimiento 600 descrito anteriormente. El primer dispositivo 202a puede derivar una de las claves de encriptado a partir de la informacion de valor de inicializacion de clave utilizando la informacion de codificacion, encriptar el archivo como un archivo encriptado utilizando el encriptado derivado y transmitir el archivo encriptado y la informacion de codificacion al segundo dispositivo 202b. En algunas realizaciones del procedimiento 650, el archivo encriptado y la informacion de codificacion pueden enviarse al segundo dispositivo 202b con una segunda autorizacion del usuario, que se explicara mas adelante.
En 655, el archivo encriptado y la informacion de codificacion se reciben en el segundo dispositivo 202b. Para desencriptar el archivo encriptado, un agente 204 de encriptado instalado en el segundo dispositivo 202b puede derivar la clave de encriptado a partir de la informacion de valor de inicializacion de clave almacenada en la memoria no volatil del segundo dispositivo 202b y luego puede desencriptar el archivo encriptado utilizando la clave de encriptado derivada.
Sin embargo, en algunas realizaciones, el segundo dispositivo 202b puede recibir el archivo encriptado antes de la informacion de valor de inicializacion de clave que se genera en el segundo dispositivo 202b. No obstante, las realizaciones de los sistemas y procedimientos descritos en este documento pueden permitir que el segundo dispositivo 202b desencripte los archivos encriptados incluso si se reciben antes de instalar un agente de encriptado y/o registrar el segundo dispositivo 202b en el servidor 230.
El usuario administrativo puede transmitir una autorizacion del segundo usuario al segundo usuario mediante la transmision de un identificador del segundo usuario al servidor 230, por ejemplo, usando uno de los dispositivos asociados con el usuario de administracion, o de otra manera. El servidor 230 puede generar una segunda autorizacion de servidor de usuario basada en el identificador del segundo usuario y una contrasena del segundo usuario. La contrasena del segundo usuario puede ser una contrasena temporal asignada por el servidor 230 a un usuario asociado con el identificador del segundo usuario (es decir, el segundo usuario). La autorizacion del servidor del segundo usuario generalmente puede indicar al servidor 230 que, al segundo usuario, una vez autentificado, se le puede proporcionar acceso a la primera cuenta.
El servidor 230 tambien puede generar una informacion de registro del segundo usuario basada en el identificador del segundo usuario y una contrasena del segundo usuario. La contrasena del segundo usuario puede ser utilizada por el segundo usuario cuando el segundo usuario registra el segundo dispositivo 202b con el servidor 230. La informacion de registro del segundo usuario se puede almacenar en la memoria no volatil del servidor 230.
En 660, el segundo usuario, tras recibir la autorizacion del servidor del segundo usuario, puede registrar el segundo dispositivo 202b con el servidor 230. En algunos casos, el segundo usuario puede instalar un agente 204 de encriptado en el segundo dispositivo 202b durante el proceso de registro (o puede que uno ya este instalado). El segundo usuario puede registrarse con el servidor 230 en asociacion con la primera cuenta de usuario, y tambien puede registrar el segundo dispositivo 202b con la primera cuenta de usuario. Esto puede permitir que el segundo dispositivo 202b (u otros dispositivos del segundo usuario) accedan a la cadena de estado de clave almacenada en la memoria no volatil del servidor 230 (despues de autentificarse).
El segundo usuario puede entonces introducir una contrasena del segundo usuario putativo (es decir, el usuario intenta introducir la contrasena del segundo usuario) en el segundo dispositivo 202b. El agente 204 de encriptado del segundo dispositivo 202b puede generar informacion de registro del segundo usuario putativo basandose en el identificador del segundo usuario y la contrasena del segundo usuario putativo. La informacion de registro de segundo usuario putativo se puede transmitir al servidor 230.
El servidor 230 puede comparar la informacion de registro del segundo usuario putativo con la informacion de registro del segundo usuario almacenada. El servidor 230 puede autentificar el segundo dispositivo 202b para la primera cuenta solo si la informacion de registro del segundo usuario putativo corresponde a la informacion de registro del segundo usuario almacenada. El servidor 230 puede proporcionar al segundo dispositivo acceso a la cadena de estado de clave para la primera cuenta si, y solo si, el segundo dispositivo 202b se autentifica para la primera cuenta.
Sin embargo, si el segundo dispositivo 202b no se ha registrado previamente con la primera cuenta y/o la clave de encriptado del segundo dispositivo para el segundo dispositivo 202b no se conoda previamente en el primer dispositivo 202a, la cadena de estado clave almacenada en la primera cuenta puede no proporcionar informacion suficiente para que el segundo dispositivo 202b determine la pluralidad de indicadores de claves y, por lo tanto, la clave de encriptado. En algunas realizaciones, para evitar tales problemas, el primer dispositivo 202a puede generar una porcion espedfica de usuario de la cadena de estado de clave para el segundo usuario.
En 665, el segundo dispositivo 202b puede generar una clave de encriptado del segundo dispositivo. El segundo dispositivo 202b puede generar una clave de desencriptado del segundo dispositivo y generar la clave de encriptado del segundo dispositivo basandose en la clave de desencriptado del segundo dispositivo. En algunas realizaciones, la clave de desencriptado del segundo dispositivo puede ser la clave privada del segundo usuario, tambien denominada clave privada espedfica del usuario (que se puede generar de manera similar a la clave privada Ko como se menciono anteriormente), y la clave de encriptado del segundo dispositivo puede ser la clave publica del segundo usuario, tambien conocida como clave publica espedfica del usuario (que se puede generar de manera similar a la clave publica y mencionada anteriormente). El segundo dispositivo 202b puede transmitir la clave de encriptado del segundo dispositivo al servidor 230.
El servidor 230 puede almacenar la clave de encriptado del segundo dispositivo para el segundo dispositivo 202b en una segunda cuenta de usuario para el segundo usuario. El servidor 230 tambien puede proporcionar la clave de encriptado del segundo dispositivo para el segundo dispositivo 202b al primer dispositivo 202a para ayudar al agente 204 de encriptado en el primer dispositivo 202a a generar la pluralidad de indicadores de claves encriptados. Por ejemplo, el servidor 230 puede almacenar la clave de encriptado del segundo dispositivo para el segundo dispositivo 202b en los datos de la cuenta de la primera cuenta como una clave publica espedfica del usuario para el segundo usuario.
En 670, el primer dispositivo 202a puede generar una pluralidad de indicadores de claves encriptados a partir de la pluralidad de indicadores de claves almacenados en el mismo usando la clave de encriptado del segundo dispositivo para el segundo dispositivo 202b recibido desde el servidor 230. Por ejemplo, el primer dispositivo 202a puede generar la pluralidad de indicadores de claves encriptados para incluir una pluralidad de indicadores de claves encriptados espedficos del usuario utilizando la clave publica espedfica del usuario para el segundo dispositivo 202b.
El primer dispositivo 202a puede transmitir la pluralidad de indicadores de claves encriptados espedficos del usuario para el segundo usuario al servidor 230. El servidor 230 puede generar una porcion de cadena espedfica del usuario (para el segundo usuario) en la cadena de estado de clave (de la primera cuenta) en funcion de la pluralidad de indicadores de claves encriptados espedficos del usuario para el segundo usuario. El servidor 230 puede autentificar el segundo dispositivo 202b y autentificar al segundo usuario antes de proporcionar al agente 204 de encriptado en el segundo dispositivo 202b con acceso a la cadena de estado de clave para la primera cuenta. El servidor 230 puede proporcionar al segundo dispositivo 202b acceso a la parte espedfica del usuario de la cadena de estado de clave para el segundo usuario (almacenada en la primera cuenta) si y solo si el segundo dispositivo 202b esta autentificado para la primera cuenta.
En 675, una vez que el segundo dispositivo 202b esta registrado y autentificado para la primera cuenta (y el segundo usuario ha sido verificado/autentificado en el segundo dispositivo 202b, por ejemplo, usando un codigo de verificacion tal como se describe mas arriba) el segundo dispositivo 202b puede recibir la cadena de estado clave (o la segunda parte espedfica del usuario de la cadena de estado clave).
En 680, el agente 204 de encriptado en el segundo dispositivo 202b puede entonces derivar la informacion inicial de clave de la segunda porcion espedfica del usuario de la cadena de estado de clave utilizando la segunda clave de desencriptado dispositivo, generalmente de la misma manera que la descrita anteriormente. El agente 204 de encriptado en el segundo dispositivo 202b puede luego derivar la clave de encriptado a partir de la informacion de valor de inicializacion de clave utilizando la informacion de clave recibida, y desencriptar el archivo encriptado.
Procedimiento de CRKG con recuperacion de codigo de verificacion
En algunas realizaciones de CRKG descrito anteriormente, si el primer usuario 240 se olvida de su codigo de verificacion C, el sistema 200 puede no ser capaz de recuperarlo (o puede ser computacionalmente imposible de recuperar). En algunos casos, esta puede ser una propiedad deseable para garantizar la seguridad del sistema 200. Sin embargo, esto puede causar problemas al primer usuario 240 si se olvida el codigo de verificacion C.
En algunas realizaciones descritas en esta subseccion, las realizaciones del proceso de CRKG descrito anteriormente se puede modificar ligeramente para permitir la recuperacion de un codigo de verificacion C perdido u olvidado. Algunas realizaciones permiten que el codigo de verificacion sea recuperado a traves de la colaboracion entre el primer usuario 240, uno o mas agentes 204 de encriptado en los dispositivos 202, y el servidor Q 230 o un servidor de proveedor de servicio remoto. Estas realizaciones todavfa pueden mantener el mismo nivel de seguridad que antes.
En algunas realizaciones, ademas del servidor Q 230, los agentes 204 de encriptado, y el primer usuario 240, un servidor de proveedor de servicio remoto separado tambien se puede utilizar. El servidor del proveedor de servicio remoto puede estar asociado con el proveedor de servicio que proporciona el sistema 200. Sin embargo, en otras realizaciones, puede que no sea necesario utilizar un servidor adicional. Aunque, por simplicidad, las realizaciones espedficas del sistema y el procedimiento de recuperacion del codigo de verificacion se describen a continuacion en combinacion con el sistema 200 de sincronizacion automatica, los sistemas y procedimientos del codigo de verificacion descritos en este documento tambien se pueden usar en otros sistemas o procedimientos para recuperar un codigo de verificacion definido por el usuario en un dispositivo controlado por el usuario.
La figura 9 muestra un procedimiento de ejemplo para recuperar un codigo de verificacion definido por un usuario en un agente de encriptado instalado en al menos un dispositivo controlado por el usuario. Cada dispositivo puede configurarse para la comunicacion con un servidor de proveedor de servicio remoto. Para mayor claridad, la descripcion de las figuras 9 y 10 que sigue se describira con referencia al primer usuario 240 que es un solo usuario en control de la pluralidad de dispositivos 202. Ademas, en la descripcion que sigue, el servidor del proveedor de servicio remoto puede estar separado del servidor 230, o puede ser el mismo servidor 230.
En 905, para cada dispositivo, el agente 204 de encriptado puede generar un codigo de recuperacion local basado en el codigo de verificacion y un codigo de recuperacion remoto basado en el codigo de verificacion. El codigo de verificacion se puede determinar a partir de una combinacion del codigo de recuperacion local y el codigo de recuperacion remoto, pero no se puede determinar solo con el codigo de recuperacion remoto.
Para cada dispositivo 202, el agente 204 de encriptado instalado en ese dispositivo puede generar una pluralidad de contrasenas a partir del codigo de verificacion. La pluralidad de contrasenas se puede generar de tal manera que el codigo de verificacion sea determinable a partir de todas las contrasenas en la pluralidad de contrasenas, pero no es determinable a partir de menos de todas las contrasenas. El agente 204 de encriptado puede generar el codigo de recuperacion local utilizando la pluralidad de contrasenas. El codigo de recuperacion local puede incluir un valor de funcion unidireccional generado a partir del codigo de verificacion. Por ejemplo, el codigo de recuperacion local puede ser el codigo local encriptado descrito anteriormente. Por lo tanto, en algunas realizaciones, el agente 204 de encriptado puede generar el codigo de recuperacion local calculando f i = ^(C), es decir, f i = (81,82) = (aC1C2,aC2). El agente 204 de encriptado tambien puede generar el codigo de recuperacion remoto utilizando la pluralidad de contrasenas.
Ahora se describira un procedimiento de ejemplo para generar el codigo de recuperacion local y el codigo de recuperacion remoto con referencia a la figura 10. El procedimiento 1000 es un ejemplo de un procedimiento para generar un codigo de recuperacion local y un codigo de recuperacion remoto de acuerdo con una realizacion.
En 1005, el agente 204 de encriptado puede generar una primera contrasena y una segunda contrasena basadas en el codigo de verificacion. La pluralidad de contrasenas mencionadas anteriormente puede incluir la primera contrasena y la segunda contrasena. El agente de encriptado puede generar la primera y la segunda contrasenas de tal manera que el codigo de verificacion se puede determinar a partir de una combinacion de la primera contrasena y la segunda contrasena, pero no se puede determinar a partir de la primera contrasena y la segunda contrasena solamente.
En el ejemplo espedfico dado anteriormente, el agente 204 de encriptado puede convertir el codigo de verificacion C en una primera contrasena C1 y una segunda contrasena C2 a traves de f(C) = (C1, C2). En algunas realizaciones, la conversion se puede realizar a traves de una funcion de uno a uno f de modo que tanto C1 como C2 se vean como numeros aleatorios de GF(N).
En 1010, el agente 204 de encriptado puede generar un primer valor de recuperacion local de la primera contrasena y la segunda contrasena. El primer valor de recuperacion local se puede generar de tal manera que ni la primera contrasena ni la segunda contrasena sean determinables solo a partir del primer valor de recuperacion local. Por ejemplo, el primer valor de recuperacion local puede generarse multiplicando la segunda contrasena (por ejemplo, C2) con el numero entero a (donde a es un numero entero mayor que 1) elevado a la potencia de la primera contrasena (por ejemplo, aC1). Por lo tanto, en algunas realizaciones, el primer valor de recuperacion local se puede generar como fi1 = aC1C2.
En 1015, el agente 204 de encriptado puede generar un segundo valor de recuperacion local de la segunda contrasena. La segunda contrasena puede ser un logaritmo discreto del segundo valor de recuperacion local con una base a. Por lo tanto, aunque en algunas realizaciones la segunda contrasena se puede determinar a partir del segundo valor de recuperacion, la segunda contrasena puede ser computacionalmente imposible de determinar como resultado de la dificultad asociada con el calculo de logaritmos discretos. Por ejemplo, el segundo valor de recuperacion local se puede determinar como fa = oC2
En 1020, el agente 204 de encriptado puede determinar el codigo de recuperacion local desde el primer valor de recuperacion local y el segundo valor de recuperacion local. Por ejemplo, el codigo de recuperacion local puede incluir el primer valor de recuperacion local y el segundo valor de recuperacion local.
En 1025, el agente 204 de encriptado puede generar el codigo de recuperacion remoto basado en la primera contrasena y la segunda contrasena. El codigo de recuperacion remoto se puede generar de tal manera que ni la primera contrasena ni la segunda contrasena sean determinables solo a partir del codigo de recuperacion remoto. En algunas realizaciones, el codigo de recuperacion remoto puede generarse multiplicando a, elevado a la potencia de la segunda contrasena, con la primera contrasena (por ejemplo, aC2Ci).
Con referenda nuevamente a la figura 9, en 910 el agente 204 de encriptado puede determinar la informacion del codigo de recuperacion remoto basandose en el codigo de recuperacion remoto. El agente 204 de encriptado puede transmitir la informacion del codigo de recuperacion remoto al servidor del proveedor de servicio remoto y borrar el codigo de recuperacion remoto del dispositivo.
En algunos casos, la informacion del codigo de recuperacion remoto puede ser una version modificada y/o encriptada del codigo de recuperacion remoto generado en 905. En algunas realizaciones, el proveedor de servicio remoto puede generar una clave de proveedor de servicio privado y una clave de proveedor de servicio publico basada en la clave de proveedor de servicio privado. El servidor del proveedor de servicio puede almacenar la clave privada del proveedor de servicio en la memoria no volatil del servidor del proveedor de servicio. El proveedor de servicio tambien puede proporcionar la clave del proveedor de servicio publicos a cada uno de los dispositivos 202. Por ejemplo, el servidor del proveedor de servicio puede generar la clave de proveedor de servicio privado al elegir un numero aleatorio secreto A de {1,2, ···, N -1 } y hacer publica una clave de proveedor de servicio publico o''. El agente 204 de encriptado sobre el primer dispositivo 202a puede entonces determinar la informacion remota de codigo de recuperacion mediante la generacion de un codigo de recuperacion remoto encriptado basado en el codigo de recuperacion a distancia utilizando la clave de proveedor de servicio publico. El agente 204 de encriptado puede transmitir el codigo de recuperacion remoto encriptado al proveedor de servicio remoto. Por ejemplo, el agente 204 de encriptado puede calcular fa 0 = (oAYaC2C1,aY), utilizando la clave del proveedor de servicio publico y un numero aleatorio independiente Y de {1,2, ·· ·, N - 1}. El agente 204 de encriptado puede enviar fa0 al servidor Q 230, que a su vez puede pasar fa 0 junto con el identificador del primer usuario al servidor del proveedor de servicio remoto. En algunas realizaciones, el servidor 230 puede borrar la informacion del codigo de recuperacion remoto despues de transmitir la informacion del codigo de recuperacion remoto al servidor del proveedor de servicio remoto que indica que no hay una marca en fa0 en el servidor Q 230. En otros casos, el agente 204 de encriptado puede enviar la informacion del codigo de recuperacion remoto al servidor del proveedor de servicio remoto directamente o a traves de un canal lateral.
En algunas realizaciones, la informacion de codigo de recuperacion remoto puede ser un codigo de recuperacion espedfica del dispositivo. El agente 204 de encriptado puede generar aleatoriamente un modificador de codigo remoto espedfico del dispositivo. El agente 204 de encriptado puede luego modificar el codigo de recuperacion remoto utilizando el modificador de codigo remoto espedfico del dispositivo para generar la informacion del codigo de recuperacion remoto. El agente de encriptado puede almacenar el codigo remoto espedfico del dispositivo modificado en la memoria no volatil del primer dispositivo 202a. En algunos casos, el agente 204 de encriptado tambien puede encriptar el codigo de recuperacion remoto modificado, por ejemplo, utilizando el proceso descrito anteriormente.
Por ejemplo, el agente 204 de encriptado puede aleatorizar aun mas el codigo de recuperacion remoto aC2C1 reemplazando aC2C1 con D(aC2C1, X) en fa El agente 204 de encriptado puede determinar el modificador de codigo X espedfico del dispositivo como un numero aleatorio de {1,2, ···, N-1}. El modificador X del codigo espedfico del dispositivo puede ser generado independientemente por cada agente 204 de encriptado y guardado en la memoria no volatil del dispositivo 202 respectivo.
En algunas realizaciones, cuando el primer usuario 240 tiene el control de una pluralidad de dispositivos, el servidor del proveedor de servicio puede mantener varias versiones de codigos de recuperacion remota espedficos del dispositivo (por ejemplo, versiones multiples de fa , una de cada agente 204 de encriptado del primer usuario 240. El servidor del proveedor de servicio puede almacenar un identificador de dispositivo para la informacion del codigo de recuperacion remoto para cada dispositivo, donde el identificador del dispositivo identifica el dispositivo 202 correspondiente a esa informacion del codigo de recuperacion remoto.
Debido a la dificultad de calcular logaritmos discretos, el servidor Q 230 y el servidor del proveedor de servicio solos o juntos pueden tener dificultades para determinar el codigo de verificacion C, y en particular la primera contrasena de recuperacion C1, desde el codigo de servidor encriptado (por ejemplo, D(fa)) y la informacion del codigo de recuperacion remoto (por ejemplo, fa 0). Como tal, el servidor Q 230, el agente 204 de encriptado y el servidor del proveedor de servicio pueden no ser capaces de recuperar C (sin recursos significativos, lo que hace que la recuperacion sea computacionalmente factible en muchas realizaciones). En algunas realizaciones, el codigo de verificacion C se puede recuperar mediante la colaboracion entre el agente 204 de encriptado en un dispositivo de recuperacion asociado con el primer usuario 240, el servidor del proveedor de servicio y el primer usuario 240. En 915, el agente 204 de encriptado puede almacenar el codigo de recuperacion local en una memoria no volatil del primer dispositivo 202a. En general, el agente 204 de encriptado en cada dispositivo puede almacenar el codigo de recuperacion local en la memoria no volatil de ese dispositivo. Ademas, como se menciono anteriormente, cada dispositivo tambien puede almacenar el modificador de codigo remoto espedfico del dispositivo para ese dispositivo en la memoria no volatil de ese dispositivo.
En 920, el servidor del proveedor de servicio puede recibir una solicitud de recuperacion de codigo. El servidor del proveedor de servicio tambien puede autentificar al primer usuario. Un procedimiento de ejemplo que se puede usar en algunas realizaciones para autentificar al usuario se describira en detalle mas adelante con referencia a la figura 11. En respuesta a la recepcion de la solicitud de recuperacion de codigo, y solo despues de autentificar al usuario, el servidor del proveedor de servicio puede determinar la informacion del codigo de recuperacion del servidor basandose en la informacion del codigo de recuperacion remoto almacenado en la memoria no volatil del servidor del proveedor de servicio.
En algunas realizaciones, el primer usuario 240 puede enviar una clave de usuario temporal al servidor del proveedor de servicio. Por ejemplo, el primer usuario 240 puede enviar una clave temporal, digamos K, al proveedor de servicio del sistema 200. El proveedor de servicio puede generar la informacion del codigo de recuperacion del servidor mediante el encriptado de la informacion del codigo de recuperacion remoto mediante la clave temporal. Por ejemplo, el servidor del proveedor de servicio puede usar K para encriptar orC2Ci en Ek(otC2Ci ), y luego envfa Ek(oC2Ci ) al primer usuario 240 en un canal lateral o a traves del canal entre los agentes 204 de encriptado y el servidor Q 230.
Como se ha mencionado anteriormente, en algunas realizaciones, la informacion remota codigo de recuperacion es un codigo de recuperacion remoto encriptado generado a partir del codigo de recuperacion a distancia utilizando la clave de proveedor de servicio publico. En tales realizaciones, el servidor de proveedor de servicio puede desencriptar el codigo de recuperacion remoto encriptado (por ejemplo, £0) almacenado para la recuperacion utilizando la clave del proveedor de servicio privado (por ejemplo, A). El servidor del proveedor de servicio puede luego determinar la informacion del codigo de recuperacion del servidor basandose en el codigo de recuperacion remoto desencriptado.
Como se menciono anteriormente, en algunas realizaciones, la informacion del codigo de recuperacion remoto puede incluir un codigo de recuperacion remoto espedfico del dispositivo modificado. La solicitud de recuperacion de codigo recibida en el servidor del proveedor de servicio puede incluir un identificador de dispositivo de recuperacion que identifique el dispositivo de recuperacion. El servidor del proveedor de servicio remoto puede determinar la informacion del codigo de recuperacion del servidor para el dispositivo de recuperacion identificando la informacion del codigo de recuperacion remoto correspondiente al dispositivo de recuperacion utilizando el identificador de dispositivo de recuperacion recibido y los identificadores de dispositivo almacenados. El servidor del proveedor de servicio puede luego determinar la informacion del codigo de recuperacion del servidor a partir de la informacion del codigo de recuperacion del identificador. Como sera evidente para un lector experto, en algunas realizaciones, las caractensticas de los diversos ejemplos para generar la informacion del codigo de recuperacion remoto y la informacion del codigo de recuperacion del servidor se pueden usar en combinacion entre sf o con otros procedimientos para la transmision segura de datos.
En 925, el servidor 230 puede transmitir la informacion de codigo de recuperacion de servidor para el primer usuario 240. Como se menciono anteriormente, la informacion del codigo de recuperacion del servidor se puede transmitir al primer usuario 240 de varias maneras, como a traves de un canal lateral o directamente al dispositivo de recuperacion (por ejemplo, a traves del servidor 230). En algunas realizaciones, el primer usuario 240 puede proporcionar la informacion del codigo de recuperacion del servidor a cualquiera de los dispositivos 202 y usar ese dispositivo como dispositivo de recuperacion. Por ejemplo, el primer usuario 240 puede ingresar la informacion del codigo del servidor Ek(otC2Ci ) y la clave temporal K a cualquiera de sus agentes 204 de encriptado registrados. En otras realizaciones, por ejemplo, aquellas que utilizan informacion del codigo de recuperacion remoto espedfico del dispositivo, la informacion del codigo de recuperacion del servidor solo se puede proporcionar al dispositivo de recuperacion asociado con la informacion del codigo de recuperacion remoto espedfico del dispositivo en funcion de la cual se genero la informacion del codigo de recuperacion del servidor.
En 930, el agente 204 de encriptado en un dispositivo 202 de recuperacion puede recibir la informacion del codigo de recuperacion del servidor. El agente 204 de encriptado puede determinar el codigo de recuperacion remoto a partir de la informacion del codigo de recuperacion del servidor y determinar el codigo de verificacion utilizando el codigo de recuperacion remoto y el codigo de recuperacion local.
En algunos casos, el agente 204 de encriptado puede determinar el codigo de recuperacion a distancia de la informacion de codigo de recuperacion del servidor utilizando el dispositivo modificador de codigo remoto espedfico almacenado en la memoria no volatil para el dispositivo de recuperacion. En algunas de tales realizaciones, el agente 204 de encriptado en el dispositivo de recuperacion debe ser el que contiene el numero aleatorio correspondiente X.
Por ejemplo, el agente 204 de encriptado puede calcular (Ci, C2) a partir del codigo de recuperacion remoto (por ejemplo, aC2Ci) y el codigo de recuperacion local (6 = (81,82) = (orC1C2,arC2)). El agente 204 de encriptado puede determinar un codigo de recuperacion remoto inverso (por ejemplo, orC2) a partir del segundo valor de recuperacion local (por ejemplo, aC2). El agente 204 de encriptado puede entonces determinar la primera contrasena (Ci) utilizando el codigo de recuperacion remoto inverso y el codigo de recuperacion remoto. Multiplicar el codigo de recuperacion remoto inverso (por ejemplo, orC2) con el codigo de recuperacion remoto (por ejemplo, aC2Ci) puede proporcionar la primera contrasena (Ci). El agente 204 de encriptado puede entonces determinar la segunda contrasena utilizando la primera contrasena y el primer valor de recuperacion local. Por ejemplo, el agente 204 de encriptado puede determinar orC1 y determinar la segunda contrasena (C2) multiplicando orC1 y aC1C2. El agente 204 de encriptado puede entonces determinar el codigo de verificacion usando la primera contrasena y la segunda contrasena.
En 935, el agente 204 de encriptado puede mostrar el codigo de comprobacion en el dispositivo 202 de recuperacion. El primer usuario 240 puede usar el codigo de verificacion para acceder a los archivos almacenados por el agente de encriptado en cualquiera de los dispositivos 202 asociados con el primer usuario 240.
En algunas realizaciones, el agente 204 de encriptado puede validar el codigo de recuperacion remoto recibido del servidor del proveedor de servicio remoto. Esto puede ser util si el primer usuario 240 no puede usar el codigo de verificacion determinado en 930 para acceder y/o desencriptar archivos almacenados en el agente 204 de encriptado en los dispositivos 202. Por ejemplo, esto puede ocurrir si el proveedor de servicio remoto modifica o corrompe el codigo de recuperacion remoto. Esto puede permitir que el primer usuario 240 demuestre que la perdida efectiva de datos que se produce porque los archivos no se pueden desencriptar es el resultado de un fallo en la parte del servidor del proveedor de servicio. Cualquier modificacion en el codigo de recuperacion remoto cambiara el valor de la primera contrasena (Ci) determinada en 930 y, a su vez, el valor de la segunda contrasena (C2), que luego sera inconsistente con el segundo valor de recuperacion local aC2 almacenado localmente.
El agente 204 de encriptado puede generar un codigo de recuperacion local putativo usando el codigo de recuperacion a distancia determinada a partir de la informacion de codigo de recuperacion de servidor y el codigo de recuperacion local. El agente 204 de encriptado puede generar el codigo de recuperacion local putativo determinando un codigo de verificacion putativo utilizando los procedimientos de ejemplo descritos anteriormente en 930. El agente 204 de encriptado puede luego calcular un codigo de recuperacion local putativo a partir del codigo de verificacion putativo utilizando el mismo procedimiento que se utilizo para generar el codigo de recuperacion local almacenado a partir del codigo de verificacion.
El agente 204 de encriptado puede comparar el codigo de recuperacion local putativo con el codigo de recuperacion local almacenado en la memoria no volatil del dispositivo de recuperacion. El agente 204 de encriptado puede validar el codigo de recuperacion remoto determinado a partir de la informacion del codigo de recuperacion del servidor si y solo si el codigo de recuperacion local putativo coincide con el codigo de recuperacion local almacenado.
En algunas realizaciones, el agente 204 de encriptado puede generar un segundo valor de recuperacion local putativo usando el codigo de recuperacion a distancia determinada a partir de la informacion de codigo de recuperacion de servidor y el codigo de recuperacion local. El agente 204 de encriptado puede comparar el segundo valor de recuperacion local putativo con el segundo valor de recuperacion local almacenado en la memoria no volatil del dispositivo de recuperacion. El agente 204 de encriptado puede validar el codigo de recuperacion remoto determinado a partir de la informacion del codigo de recuperacion del servidor si y solo si el segundo valor de recuperacion local putativo coincide con el segundo valor de recuperacion local almacenado.
En algunas realizaciones, la autentificacion del primer usuario 240 (o cualquier otro usuario) se puede lograr de forma remota utilizando el procedimiento 1100 que se muestra en la figura 11. El procedimiento 1100 es un ejemplo de un procedimiento que se puede usar para autentificar a un usuario de forma remota.
En 1105, el servidor 230 guarda la informacion de autentificacion del usuario para el primer usuario 240 en la memoria no volatil del servidor de proveedor de servicio. La informacion de autentificacion del usuario puede incluir informacion de identificacion biometrica del primer usuario 240. El primer usuario 240 puede proporcionar la informacion de identificacion biometrica a traves del agente 204 de encriptado en uno de los dispositivos 202 controlados por el primer usuario 240. La informacion de identificacion biometrica se puede proporcionar al proveedor de servicio del sistema 200 a traves del agente 204 de encriptado y el servidor Q 230 o a traves de un canal lateral.
En algunas realizaciones, la informacion de identificacion biometrica del usuario puede incluir al menos una grabacion de audio del usuario, una grabacion de video del usuario, una imagen del usuario, una huella digital, una huella dactilar, una exploracion retiniana. En algunos casos, la informacion de identificacion biometrica del usuario 240 puede incluir una pluralidad de tipos de identificacion biometrica. En algunos casos, la pluralidad de tipos de identificacion biometrica puede incluir una grabacion de audio del usuario y al menos una imagen de la cara del usuario y un video de la cara del usuario.
Por ejemplo, durante el procedimiento de CRKG, se le puede pedir al primer usuario 240 que proporcione una verdadera foto de frente o videoclip del primer usuario 240. Tambien se le puede pedir al primer usuario 240 que proporcione un clip de audio que grabe la voz del primer usuario 240. El clip de audio puede incluir una grabacion de la voz del primer usuario 240 para una pluralidad de contrasenas de autentificacion. Por ejemplo, las contrasenas de autentificacion pueden ser los numeros del 0 al 9.
En 1110, el servidor del proveedor de servicio puede recibir una solicitud de recuperacion de codigo de verificacion. La solicitud de codigo de verificacion puede ser similar a la solicitud de recuperacion de codigo descrita anteriormente en 920 del procedimiento 900.
En 1115, el servidor de proveedor de servicio puede generar una secuencia de autentificacion de usuario. El servidor del proveedor de servicio puede generar la secuencia de autentificacion del usuario de manera aleatoria en respuesta a la recepcion de la solicitud de recuperacion del codigo de verificacion. El servidor del proveedor de servicio tambien puede almacenar la secuencia de autentificacion del usuario en la informacion de autentificacion del usuario para el usuario. El servidor del proveedor de servicio tambien puede determinar un penodo de validez de secuencia.
En algunas realizaciones, al recibir la peticion del primer usuario 240 para la recuperacion de codigo de verificacion C, el servidor de proveedor de servicio, a traves de uno de los agentes 204 de encriptado del primer usuario 240, generar una secuencia de autentificacion de usuario de manera aleatoria para el primer usuario 240.
Por ejemplo, la secuencia de autentificacion del usuario puede incluir una secuencia aleatoria de contrasenas generadas en funcion de la pluralidad de contrasenas de autentificacion almacenadas en 1105. El primer usuario 140 puede entonces ser requerido para realizar la secuencia de autentificacion del usuario diciendo un codigo de audio verbal. En otros ejemplos, la secuencia de autentificacion del usuario puede incluir una secuencia de orientaciones de los dedos, y el usuario debe realizar la secuencia de autentificacion del usuario utilizando huellas digitales y orientaciones de los dedos correspondientes a la secuencia de autentificacion del usuario. Otro ejemplo de secuencia de autentificacion de usuario puede estar relacionada con el ritmo tfpico de pulsacion de teclas del usuario, y el usuario debe realizar la secuencia de autentificacion de usuario escribiendo una contrasena generada aleatoriamente. Otro ejemplo de secuencia de autentificacion del usuario puede estar relacionada con la imagen del usuario, y el usuario debe realizar la secuencia de autentificacion del usuario agitando sus brazos para deletrear una contrasena generada aleatoriamente en semaforo. Otro ejemplo de secuencia de autentificacion de usuario puede incluir una secuencia de parpadeos generada aleatoriamente que el primer usuario 240 podna realizar mientras se realizan exploraciones de la retina.
En 1120, antes de transmitir el codigo de recuperacion de servidor al primer usuario 240, el servidor del proveedor de servicio remoto puede transmitir una solicitud de autorizacion al dispositivo de recuperacion. La solicitud de autorizacion puede incluir la secuencia de autentificacion de usuario generada en 1115. Por ejemplo, la solicitud de autorizacion puede hacer que el primer usuario 240 use un agente 204 de encriptado para tomar un video corto y autofoto mientras habla en voz alta la secuencia aleatoria de las contrasenas.
En 1125, el dispositivo de recuperacion puede recibir informacion de autentificacion putativa. El dispositivo de recuperacion puede transmitir la informacion de autentificacion putativa al servidor del proveedor de servicio remoto. La informacion de autentificacion putativa puede comprender un rendimiento de la secuencia de autentificacion del usuario, por parte del usuario putativo. La informacion de autentificacion putativa tambien puede incluir informacion de identificacion biometrica putativa que identifica al usuario putativo como resultado del rendimiento. Por ejemplo, la informacion de autentificacion putativa puede incluir una grabacion de video de la cara de un usuario putativo coincidente con una grabacion de audio del usuario putativo hablando un codigo de audio putativo. En otras palabras, el usuario puede tomar un video corto autofoto mientras habla en voz alta la secuencia aleatoria de contrasenas que utilizan el dispositivo de recuperacion y luego transmite el video al servidor del proveedor de servicio remoto. En otras realizaciones, la informacion de autentificacion putativa puede incluir un videoclip propio corto del usuario que agita los brazos para deletrear una contrasena generada de manera aleatoria en el semaforo. Otro ejemplo de informacion de autentificacion putativa puede incluir la sincronizacion de las pulsaciones de teclas del usuario a medida que el usuario escribe una contrasena generada aleatoriamente.
En 1130, el servidor del proveedor de servicio remoto puede comparar la informacion de autentificacion putativa con la informacion de autentificacion del usuario almacenada en la memoria no volatil del servidor del proveedor de servicio. La informacion de autentificacion putativa puede corresponder a la informacion de autentificacion de usuario almacenada solo si la informacion de autentificacion putativa incluye la secuencia de autentificacion de usuario. El servidor del proveedor de servicio puede transmitir la informacion del codigo de recuperacion del servidor al primer usuario 240 si y solo si la informacion de autentificacion putativa corresponde a la informacion de autentificacion del usuario almacenada.
En una realization espetifica descrita anteriormente, la information de autentificacion putativa puede corresponder a la informacion de autentificacion del usuario almacenada si y solo si: la cara del usuario putativo corresponde a al menos una de la imagen de la cara del usuario y el video de la cara del usuario; la grabacion de audio del usuario putativo corresponde a la grabacion de audio del usuario; y el codigo de audio putativo corresponde al codigo de audio verbal. Por ejemplo, si el clip de audio/video cargado se corresponde con el codigo aleatorio y el clip de audio/foto y video almacenado en el servidor del proveedor de servicio para el primer usuario 240, el primer usuario 240 puede considerarse autentificado.
En algunas realizaciones, el servidor de proveedor de servicio puede tambien generar un periodo de secuencia de validez para la secuencia de autentificacion de usuario. El periodo de validez de secuencia puede proporcionarse al primer usuario 240 en la solicitud de autorizacion. La informacion de autentificacion putativa puede corresponder a la informacion de autentificacion de usuario almacenada solo si la informacion de autentificacion putativa que comprende la secuencia de autentificacion de usuario se recibe dentro del periodo de validez de secuencia. En efecto, el periodo de validez de la secuencia puede corresponder a un tiempo de espera para la secuencia de autentificacion aleatoria particular.
En el ejemplo espedfico dado, si la action de grabacion de audio-video se completa dentro de un periodo de tiempo limitado (el periodo de validez de la secuencia) inmediatamente despues de la generation del codigo aleatorio, el clip de audio-video grabado puede considerarse valido. De lo contrario, se puede generar un nuevo codigo aleatorio (secuencia de autentificacion de usuario) y se puede repetir la accion de grabacion de audio-video (generacion de informacion de autentificacion putativa).
Aunque el procedimiento 1100 se ha descrito en el contexto de una implementation de recuperation de codigo de verification, algunos aspectos del procedimiento 1100 de autentificacion remota tambien se pueden aplicar para autentificar usuarios en varias otras circunstancias. Por ejemplo, en algunas realizaciones, la etapa 1110 puede reemplazarse por cualquier solicitud de informacion o registro o una secuencia de inicio de autentificacion en general. Luego, las etapas restantes del procedimiento 1100 se pueden usar para autentificar a un usuario de forma remota.
En la description que sigue, las realizaciones de sistema 200 puede ser denominado como QSSAS sin recuperacion de codigo de verificacion (QSSAS-NR) si se implementan realizaciones del procedimiento de c RkG sin recuperacion de codigo de verificacion, y realizaciones del sistema 200 pueden indicarse como QSSAS con recuperacion de codigo de verificacion (QSSAS-R) si se adoptan realizaciones del procedimiento de CRKG con recuperacion del codigo de verificacion.
Procedimiento de AVCC
Siempre que surja la necesidad, el primer usuario 240 puede cambiar el codigo de verificacion C a traves de cualquier agente 204 de encriptado en ejecucion en uno de esos L dispositivos 202 en el ROU de estado. Nuevamente, usamos el agente 204 de encriptado en el primer dispositivo 202a como ejemplo. En algunas realizaciones, el procedimiento de AVCC puede funcionar de la siguiente manera:
El primer usuario 240 ingresa un nuevo codigo de verificacion indicado por Cn en el agente 204 de encriptado en el primer dispositivo 202a de usuario. El agente 204 de encriptado determina un codigo local encriptado actualizado y reemplaza el codigo local encriptado actualmente almacenado (por ejemplo, el agente de encriptado calcula
y actualiza el guardado localmente en fin).
al servidor Q 230, que a su vez actualiza el codigo de servidor encriptado del servidor guardado localmente D (fi) en D(fi'n). En el caso de QSSAS-R, el agente 204 de encriptado calcula f in y un codigo de recuperacion remoto actualizado. En el ejemplo en el que el proveedor de servicio proporciona una clave publica del proveedor de servicio, el codigo de recuperacion remoto actualizado puede determinarse como on __ (x ^ C n
v i > )> donde Y es un nuevo numero aleatorio independiente de {1,2, ···, N - 1} y A es la clave
privada del proveedor de servicio. El agente 204 de encriptado puede enviar /T" y Rn al servidor Q 230, que a su
vez actualiza su D(/T) guardado localmente en D(JS'n) y pasa el codigo de recuperacion remoto actualizado 0o al
proveedor de servicio del sistema 200 para actualizar/To en 00 ·
El agente 204 de encriptado puede usar el codigo de verificacion C existente para desencriptar Ec(X0, Xi, •••, X) y generar nuevos indicadores de claves encriptados basados en el codigo de verificacion actualizado. Los indicadores de claves encriptados actualizados pueden transmitirse al servidor 230 para actualizar la cadena de estado de clave. En la realizacion de ejemplo de ElGamal, el agente 204 de encriptado puede generar independientemente nuevos numeros aleatorios Y jj = 0,1,2, •••, i, donde cada nuevo numero aleatorio se distribuye de manera uniforme en {1,2, ■■■ , AM}, calcular
Figure imgf000038_0002
y luego enviar
Figure imgf000038_0003
j , , , ,/, al servidor Q, que a su vez actualiza la cadena de estado de clave de S = UoM) ··· £i/Ji a
Figure imgf000038_0004
El agente 204 de encriptado puede usar el codigo de verification existente C para desencriptar Eo(Ko,Ki, -,Ki), usar el codigo de verification actualizado Cn para volver a encriptar (X0,Xi, - ,X ) y (K o ,K v,K ), y finalmente sobreescribir Ec(Xq,Xi , -,X ) y Ec(K0,K1, -,K ) con Ecn(X0,Xv,X) y Ecn(K0,Kv-,K/), respectivamente.
Al final del procedimiento de AVCC, las propiedades consistentes de la Ec. (1) a la Ec. (6) pueden seguir siendo validas entre el agente 204 de encriptado en el primer dispositivo 202a de usuario y el servidor Q 230 con respecto al nuevo codigo de verificacion Cn.
Procedimiento de VCU
Despues de que el primer usuario 240 cambia el codigo de verificacion a traves del agente 204 de encriptado en el primer dispositivo 202a de usuario, las propiedades consistentes Ec. (3) y Ec. (4) puede que ya no sea valido entre cualquiera de los otros agentes 204 de encriptado del primer usuario 240 y el servidor Q 230. Si esos agentes 204 de encriptado se estan ejecutando y se comunican con el servidor Q 230, en algunas realizaciones pueden cerrar la sesion automaticamente. En tales casos, cada agente 204 de encriptado puede solicitar al primer usuario 240 que actualice el codigo de verificacion despues de que se detecte el cambio del codigo de verificacion. Se toma el agente 204 de encriptado en el segundo dispositivo 202b como ejemplo. El procedimiento de VCU puede funcionar de la siguiente manera:
1) El agente 204 de encriptado en el segundo dispositivo 202b le pide al primer usuario 240 que ingrese el nombre de usuario, la contrasena, el antiguo codigo de verificacion C y el PIN R correctos.
2) El agente 204 de encriptado en el segundo dispositivo 202b usa C para desencriptar Ec(X0,Xi, - ,X ) and Ec(K0,Kv,K).
3) El agente 204 de encriptado en el segundo dispositivo 202b le pide al primer usuario 240 que ingrese el nuevo codigo de verificacion Cn.
4) El agente 204 de encriptado en el segundo dispositivo 202b luego calcula f correspondiente a Cn y lo envia al servidor Q para verificar su consistencia con D ( f ) guardado en el servidor Q.
Si la prueba de consistencia anteriormente en la Etapa 4) tiene exito, entonces el agente 204 de encriptado en el segundo dispositivo 202b acepta la entrada Cn del primer usuario 240 como el nuevo codigo de verificacion correcto; de lo contrario, las etapas 3) y 4) se repetirian hasta que la prueba de consistencia anterior sea exitosa.
El agente 204 de encriptado en el segundo dispositivo 202b luego calcula
Figure imgf000038_0001
actualiza su 0 guardado localmente en f n, utiliza el nuevo codigo de verificacion C n para volver a encriptar (X0,Xi, - ,X ) y (K 0 ,K v,K ), y finalmente sobreescribe Ec(X0,Xv ,X) y Ec(K0,Kv,K) con Ecn(X0,Xv,X) y Ecn(K0,Kv,K), respectivamente.
Al final del procedimiento de VCU, las propiedades consistentes de la Ec. (1) a la Ec. (6) puede volver a ser valido entre el agente 204 de encriptado en el segundo dispositivo 202b y el servidor Q 230 con respecto al nuevo codigo de verificacion Cn, y el agente 204 de encriptado en el segundo dispositivo 202b tambien se puede reiniciar al ROU de estado.
Procedimiento de ANKG
En algunas realizaciones, siempre que surja la necesidad, el primer usuario 240 puede solicitar generar un nuevo conjunto de valores de initialization de claves FED a traves de cualquier agente 204 de encriptado en ejecucion en uno de esos L dispositivos 202 en el ROU de estado. Nuevamente, usamos el agente 204 de encriptado en el primer dispositivo 202a de usuario como ejemplo. El procedimiento de ANKG puede funcionar como sigue:
El agente 204 de encriptado genera una pluralidad actualizada de indicadores de claves. Por ejemplo, el agente 204 de encriptado puede generar independientemente numeros aleatorios adicionales Xj como la pluralidad actualizada de indicadores de claves. El agente 204 de encriptado puede encriptar la pluralidad actualizada de indicadores de claves y transmitir la pluralidad actualizada de indicadores de claves encriptados al servidor 230. El servidor 230 puede entonces actualizar el indicador de estado de la clave utilizando la pluralidad de indicadores de claves encriptados y actualizados.
En el ejemplo de EIGamal, el agente 204 de encriptado tambien genera numeros aleatorios adicionales Yj,j = i+ 1,2,
*
···, i+J, donde cada numero aleatorio se distribuye uniformemente sobre {1,2, ···, AM}, calcula
Figure imgf000038_0005
j = i + 1,2, - , i+J, y entonces envia (jv ;), j = i+ 1,2, - , /+J, , al servidor Q 230, que a su vez actualiza la cadena de estado de clave S agregando £/+iV/+i "£/+jV'+j al extremo derecho de S, es decir, extendiendo S desde S = 1£0y0- £iyi a S = lEofJo"Ei+jfJi+j.
En las realizaciones que emplean los valores de clave de servidor, el agente 204 de encriptado puede enviar la cantidad indicador de clave al servidor 230, por ejemplo, como un par de enteros (i1, i+J) al servidor Q 230 a la petition del servidor Q 230 de asistencia para generar un nuevo conjunto de valores de initialization de claves FED.
Al recibir la cantidad del indicador de clave (por ejemplo, el par de enteros (i+1, i+J)), el servidor Q 230 puede generar los valores de la clave del servidor como se describio anteriormente. Por ejemplo, el servidor 230 puede generar valores de clave de servidor basados en Ur, E(Pr) y su propia clave secreta v como numeros aleatorios independientes adicionales V+i, V+2, •••, V+j, donde cada numero aleatorio adicional se distribuye uniformemente sobre {1,2, ••• , N-i}, y envia Vi+i , V+2, •••, Vi+jde vuelta al agente 204 de encriptado.
Basado en los valores de clave del servidor V+i,V+2,---,V+j y la pluralidad actualizada de indicadores de claves X+i,X+2, -,X+j, el agente 204 de encriptado puede generar un nuevo conjunto de valores de inicializacion de claves FED Kj = A(X,V), j = i+1,i+2,-, i+ J.
Finalmente, el agente 204 de encriptado puede almacenar information de valor de inicializacion de clave basada en los valores de inicializacion de clave actualizadas. Por ejemplo, el agente 204 de encriptado puede utilizar el codigo de verification C para encriptar (X+i,Xi+2,",X+j) y (K/+i ,K+2,---,K/+j) en Ec(Xi+i,Xi+2,-,X+j) y Ec(Ki+i,Ki+2,---,K/+j), respectivamente, y guardarlos en la memoria no volatil del primer dispositivo 202a de usuario.
Una vez mas, al final del procedimiento de ANKG, las propiedades consistentes Ec. ( i) a la Ec. (6) puede seguir siendo valido entre el agente 204 de encriptado en el primer dispositivo 202a de usuario y el servidor Q 230.
Procedimiento de PNKG
Despues de que se genere un nuevo conjunto de valores de inicializacion de claves FED a traves del agente 204 de encriptado en el primer dispositivo 202a de usuario, cualquiera de los otros agentes 204 de encriptado del primer usuario 240 lo puede detectar si ese agente 204 de encriptado se esta ejecutando y esta en comunicacion con el servidor Q 230. En consecuencia, ese agente 204 de encriptado (por ejemplo, el agente de encriptado en el segundo dispositivo 202b) puede generar automaticamente el mismo conjunto nuevo de valores de inicializacion de claves FED para si mismo a traves de su comunicacion con el servidor Q 230 mediante el procedimiento de PNKG. En general, el procedimiento de PNKG funciona de manera similar al procedimiento de ANKG combinado con el procedimiento de sincronizacion inicial de valor de inicializacion de clave descrito anteriormente con referencia a las figuras 4B y 4C.
Despues de detectar que otro agente de encriptado ha generado un nuevo conjunto de valores de inicializacion de claves FED, el agente 204 de encriptado en el segundo dispositivo 202b puede solicitar al servidor Q 230 que devuelva la cadena de estado de clave S = SoSi S2---S2(/+j+i)-iS2(/+j+i) = ie0y0 -ei+jyi+j.
El agente 204 de encriptado en el segundo dispositivo 202b puede determinar la pluralidad de indicadores de claves X, C . c
X jJ = /+ 1, ·",/ J, fuera de la cadena de estado de clave Smediante el calculo 1 2J 1 2-f ' j = /+ 2, ··■,/+ J + 1.
El agente 204 de encriptado en el segundo dispositivo 202b puede entonces seguir el procedimiento general del ANKG descrito anteriormente, para completar la generation de la nueva serie de valores de inicializacion de claves FED por si mismo.
Al final del procedimiento de PNKG, las propiedades consistentes de la Ec. ( i) a la Ec. (6) pueden ser validas de nuevo entre el agente de encriptado en el segundo dispositivo 202b y el servidor Q 230.
Alias
El primer usuario 240 (o cualquier otro usuario) puede comunicarse con otros usuarios utilizando muchos nombres de usuario diferentes, como diferentes direcciones de correo electronico y numeros de telefono. En muchas aplicaciones (por ejemplo, correo electronico y comunicaciones moviles), cada uno de estos nombres de usuario a menudo corresponde a su propia cuenta unica para la aplicacion respectiva, aunque estos nombres de usuario y cuentas pertenecen al mismo primer usuario 240. Sin embargo, en el caso del sistema 200, esta correspondencia uno a uno entre los nombres de usuario y las cuentas puede no ser conveniente en algunos casos. En algunas realizaciones, puede ser preferible tener una cuenta QSSAS por usuario por dispositivo. En algunas otras realizaciones, incluso si se permiten varias cuentas QSSAS por usuario por dispositivo, los archivos del primer usuario 240 administrados bajo una cuenta QSSAS no se pueden desencriptar en general cuando el primer usuario 240 inicia sesion en otra cuenta QSSAS en el mismo dispositivo 202, ya que diferentes cuentas QSSAS suelen tener diferentes conjuntos de valores de inicializacion de clave FED, como se describe en el procedimiento de CRKG anterior.
Para superar los problemas mencionados anteriormente, en algunas realizaciones, la nocion de alias se puede introducir en QSSAS para permitir que los multiples nombres de usuario del primer usuario 240 (es decir, alias) compartan la misma cuenta QSSAS y, por lo tanto, la misma contrasena, codigo de verificacion, un conjunto de valores de inicializacion de claves FED y un par de claves privadas y publicas en esos L dispositivos 202 del primer usuario 240. El primer usuario 240 puede ser un solo usuario que controla la pluralidad de dispositivos 202. Sin embargo, el primer usuario 240 puede tener una pluralidad de identificadores de alias de usuario (por ejemplo, multiples direcciones de correo electronico, nombres de usuario de redes sociales, numeros de telefono, etc.). En algunas realizaciones, cada identificador de alias de usuario en la pluralidad de identificadores de alias de usuario puede compartir la misma informacion de autentificacion de cuenta.
Cada vez que el primer usuario 240 agrega un nuevo nombre de usuario (es decir, un alias) a la cuenta QSSAS del primer usuario 240 a traves de cualquier agente de encriptado registrado 204 en uno de esos L dispositivos, ese alias se puede grabar en ese agente 204 de encriptado, enviado al servidor Q 230, que a su vez lo guarda en la primera cuenta de usuario del primer usuario 240, y ese alias se puede sincronizar posteriormente en todos los demas agentes 204 de encriptado registrados en otros dispositivos 202 (existentes o nuevos) del primer usuario 240 automaticamente.
En tales realizaciones, el primer usuario 240 puede iniciar sesion en la cuenta QSSAS del primer usuario 240 a traves de cualquiera de los agentes de encriptado registrados 204 en esos L dispositivos 202 con el alias de cualquier primer usuario 240. Esto puede ser particularmente conveniente cuando otras personas comparten archivos encriptados con el primer usuario 240 a traves de los diferentes alias del primer usuario 240. No importa cual del alias del primer usuario 240 se utilice para compartir archivos encriptados, todos pueden ser desencriptados cuando el primer usuario 240 ingresa en cualquiera de los agentes 204 de encriptado registrados del primer usuario 240 con cualquier alias del primer usuario 240 siempre y cuando esos archivos encriptados puedan ponerse a disposicion de ese dispositivo 202 respectivo.
Extension de QSSAS para compartir en grupo archivos encriptados
Realizaciones ejemplares se describiran ahora que pueden proporcionar el intercambio en grupo de archivos encriptados entre una pluralidad de grupos de usuarios. La figura 7 muestra una realizacion de ejemplo de un sistema 700 para proporcionar encriptado para una pluralidad de dispositivos 702 configurados para comunicacion electronica con un servidor 730. El sistema 700 es generalmente similar a los sistemas 200 y 500 descritos anteriormente, pero en el sistema 700 el primer usuario comprende una pluralidad de usuarios 740a-t del grupo. La pluralidad de usuarios 740 del grupo puede incluir un usuario 740a del grupo administrativo y un segundo usuario 740b del grupo.
Cada uno de los usuarios 740 del grupo puede tener una cuenta espedfica del usuario registrada con el servidor 730. Cada usuario 740 del grupo puede controlar al menos uno de los dispositivos 702. En el ejemplo que se muestra en la figura 7, el usuario 740a del grupo administrativo tiene el control del primer dispositivo 702a y el segundo usuario del grupo tiene el control del segundo dispositivo 702b. Cada dispositivo 702 puede tener instalado en el mismo un agente 704 de encriptado. Cada agente 704 de encriptado instalado en un dispositivo 702 particular se puede registrar con el servidor Q 730 para el usuario 740 del grupo que tiene el control de ese dispositivo 702 particular.
Es decir, para cada usuario 740 del grupo en la pluralidad de usuarios del grupo, la cuenta espedfica de usuario correspondiente puede incluir un identificador de usuario del grupo (es decir, el nombre de usuario de ese usuario). La cuenta espedfica del usuario tambien puede almacenar otros datos de cuenta, como se describe anteriormente, como los alias, por ejemplo. Cada usuario 740 del grupo tambien puede tener contrasenas, codigos de verificacion, pares de claves publicas y privadas, y un conjunto distinto de valores de inicializacion de claves FED. La pluralidad de usuarios 740 del grupo puede estar interesada en compartir entre sf ciertos archivos encriptados. Por ejemplo, los archivos encriptados pueden estar relacionados con un proyecto de interes comun (por ejemplo, un proyecto compartido). Las realizaciones del sistema 700 pueden proporcionar este intercambio en grupo de archivos encriptados utilizando aspectos de los sistemas 100, 200 y 500 descritos anteriormente. Ademas, las realizaciones del sistema 700 tambien pueden introducir nuevos conceptos tales como carpetas virtuales (VF), superusuarios (SU) y cuentas de superusuarios (SUA). En algunas realizaciones, se pueden usar procesos ligeramente modificados para generar y sincronizar un nuevo conjunto de valores de inicializacion de claves FED espedficas para cada VF para el proyecto compartido a traves de la comunicacion entre agentes de encriptado de los usuarios 740 del grupo y el servidor Q 730.
En general, una carpeta virtual puede referirse al conjunto particular de archivos encriptados asociados con cada pluralidad de valores de inicializacion de claves generadas por el usuario. Aunque el ejemplo de un mdice se describe en detalle aqrn, sera evidente que una carpeta virtual puede implementarse de muchas maneras diferentes. La carpeta virtual puede ser en efecto un identificador para un grupo particular de archivos encriptados. La carpeta virtual para los archivos correspondientes a cada proyecto compartido (o cada grupo de usuarios) con los que esta involucrado el usuario puede asociarse con los valores de inicializacion de claves correspondientes y la informacion de la cadena de estado de clave para ese grupo de usuarios.
El concepto de una carpeta virtual (VF) que se utiliza en algunas realizaciones de sistema 700 se describira usando el usuario 740a administrativo como un ejemplo. El usuario 740a administrativo ha registrado una cuenta espedfica de usuario con el servidor 730, por ejemplo, utilizando una realizacion del procedimiento de CRKG descrito anteriormente. El usuario 740a administrativo puede haber registrado uno o mas agentes 704 de encriptado en los dispositivos 702 controlados por el usuario 740aadministrativo (es decir, un agente 704 de encriptado por dispositivo 702 controlado por el usuario 740a administrativo). Hasta este punto, el usuario 740a administrativo puede haber utilizado su cuenta espedfica de usuario y los agentes 704 de encriptado solo para proteger y administrar sus archivos no compartidos, ya sea que esten almacenados en sus propios dispositivos 702, en el servidor 750 en la nube o transmitidos a traves del servidor 750 en la nube, o en otros lugares, como otros lugares de Internet. El servidor Q 730 puede haber almacenado solo una cadena de estado de clave S en la cuenta espedfica del usuario del usuario 740a administrativo, y el conjunto de valores de inicializacion de claves FED utilizadas por los agentes 704 de encriptado del usuario 740a administrativo y se sincronizaron automaticamente utilizando las realizaciones de sistema 200/500 a traves de la cadena de estado de clave S se puede usar solo para encriptar y desencriptar los archivos no compartidos administrados por los agentes 704 de encriptado del usuario 740a administrativo.
Para facilitar la descripcion posterior, los archivos no compartidos gestionados por los agentes 704 de encriptado del usuario 740a administrativo se puede decir que forman una carpeta virtual indexada por 0 (VF0) para el usuario 740a administrativo. En consecuencia, el conjunto de valores de inicializacion de claves FED utilizadas por los agentes 704 de encriptado del usuario 740a administrativo para encriptar y desencriptar los archivos no compartidos contenidos en VF0 y la cadena de estado de clave S correspondiente registrada por el servidor Q 730 en la cuenta espedfica del usuario del usuario 740a administrativo que puede decir que se asigna a VF0 para el usuario 740a administrativo. A medida que pasa el tiempo, el usuario 740a administrativo puede querer involucrarse o ser involucrado por otros usuarios, tal como los usuarios 740 del grupo, para compartir archivos encriptados, para participar en proyectos compartidos y compartir archivos encriptados relacionados con cada uno de los proyectos compartidos con el conjunto respectivo de otros usuarios 740.
Para cada proyecto compartido del usuario 740a administrativo, el sistema 700 ahora puede asignarle un VF con un mdice l, donde l puede aumentarse en 1 cada vez que el usuario 740a administrativo participa en un nuevo proyecto compartido. Cada VF l puede asociarse con el l-esimo proyecto compartido del usuario 740a administrativo. La asignacion a VFl puede ser una cadena de estado de clave S1 espedfica de VF/ y un conjunto de nuevos valores de inicializacion de claves FED utilizadas por los agentes 704 de encriptado del usuario 740a administrativo para encriptar y desencriptar archivos contenidos en VF l para el l Proyecto compartido del usuario 740a administrativo y generado nuevamente a traves de la comunicacion entre los agentes 704 de encriptado en los dispositivos 702 del usuario 740a administrativo y del servidor Q 730 (como se describio anteriormente) junto con el superusuario respectivo (SU) y la cuenta de superusuario (SUA). Debe tenerse en cuenta que aunque el usuario 740a administrativo puede usar diferentes agentes de encriptado en diferentes dispositivos para trabajar en diferentes proyectos compartidos, el servidor Q 730 puede saber en todo momento en cuantos proyectos compartidos ha participado el usuario administrativo, y saber como asignar los indices a VF del usuario 740a administrativo.
Asociado con cada proyecto compartido del usuario 740a administrativo puede haber un grupo de usuarios (es decir, una pluralidad de usuarios del grupo) que participan en el proyecto compartido. Los usuarios del grupo pueden compartir entre sf archivos encriptados relacionados con el proyecto compartido. Dentro del grupo de usuarios, se puede hacer referencia a uno de los usuarios como el usuario administrativo para el proyecto compartido (para simplificar, usaremos al usuario 740a administrativo como el usuario administrativo en la siguiente descripcion). Por ejemplo, cuando el primer usuario incluye una pluralidad de usuarios del grupo, se puede hacer referencia al primer usuario como superusuario.
En algunas realizaciones, el usuario administrativo puede ser el iniciador del proyecto compartido. El usuario administrativo y el conjunto de otros usuarios en el grupo pueden llamarse superusuario. Cada usuario del grupo puede identificarse segun su identificador de usuario del grupo o un mdice en una base de datos de usuario registrada en el servidor Q 730. En el servidor Q 730, un SU puede estar representado por un par (w, Q), donde w es el mdice del usuario administrativo para el proyecto compartido en la base de datos de usuarios, y Q es el conjunto de indices de otros usuarios en el grupo en la base de datos de usuarios. El sistema 700 puede asignar ademas a cada SU un identificador de grupo unico (por ejemplo, el identificador del primer usuario) tal como un ID indicado por I.
Para cada SU, el servidor Q 730 puede crear una cuenta de superusuario. El servidor 730 puede generar la primera cuenta de usuario como la cuenta de superusuario para esa pluralidad de usuarios del grupo. La primera cuenta de usuario (la cuenta de superusuario/SUA) puede incluir el identificador del primer usuario (el iD de ese SU). El identificador del primer usuario puede representarse en forma de un par (w , Q).
En algunas realizaciones, el SUA puede generar y almacenar una cadena de estado de clave para permitir que los usuarios del grupo determinen la misma pluralidad de indicadores de claves, y de ese modo generar la misma pluralidad de valores de inicializacion de claves y claves de encriptado. Esto puede permitir que los usuarios del grupo compartan de forma segura los archivos encriptados y, al mismo tiempo, proporcionen a cada usuario del grupo acceso a los archivos desencriptados.
De una manera similar a las realizaciones del procedimiento de CRKG descrito anteriormente, el SUA tambien puede generar una pluralidad de valores de clave de servidor para la primera cuenta, y los valores de clave de servidor pueden almacenarse en el servidor 730 para el SUA. Por ejemplo, los valores de clave del servidor pueden ser una secuencia de numeros aleatorios independientes Vi, V2, ···, Vi para el primer usuario, que a su vez se pueden usar para ayudar a los agentes 704 de encriptado de los usuarios del grupo 702 dentro de ese SU generado mediante la comunicacion con el servidor Q 730, la pluralidad de indicadores de claves y un conjunto de nuevos valores de inicializacion de claves FED utilizadas por los agentes de encriptado de los usuarios dentro de ese SU para encriptar y desencriptar archivos relacionados con el proyecto compartido correspondiente a ese SU.
Se toma el usuario 740a administrativo como un ejemplo otra vez. Con la introduccion de los conceptos de proyecto compartido, VF, SU y SUA, la informacion almacenada por cada agente 704 de encriptado del usuario 740a administrativo en la memoria no volatil del dispositivo 702 correspondiente controlado por el usuario 740a administrativo se puede expandir para incluir conjuntos adicionales de indicadores de claves de encriptado basados en el codigo de verificacion para el usuario 740a administrativo y la informacion clave de valores de inicializacion para cada VF del usuario 740a administrativo, junto con la lista de indices VF l y los correspondientes identificadores de superusuario Ii registrados por ese agente de encriptado del usuario 740a administrativo. Por ejemplo, un conjunto adicional de numeros aleatorios encriptados Ec,i(Xi,i ,Xi,2, - ,X i,/) y valores de inicializacion FED encriptados Ec,i(Ki,i,K(2,---,K(/) l = 1,2, -, un conjunto adicional por VF, puede ser almacenado. Ii se refiere al ID del SU asociado con el proyecto compartido correspondiente a VF l del usuario 740a administrativo. El(los) agente(s) 704 de encriptado del usuario administrativo puede(n) utilizar el conjunto de valores de inicializacion de claves FED {Ki,i, K(2,---,K(/} asignadas a VFl del usuario 740a administrativo para encriptar y desencriptar archivos relacionados con el proyecto compartido correspondiente a VFl. Del mismo modo, la informacion guardada por el servidor Q 730 en su memoria no volatil para el usuario 740a administrativo tambien se puede expandir para incluir la lista de todos los indices de FVl del usuario 740 administrativo, los ID de superusuario correspondientes Ii, y una cadenas de estado de claves adicionales S1 = Si,0Si,i Si,2- S i,2/ en la forma de {(l,li,Sl): l = 1,2, -}, donde S1 es la cadena de estado de clave asignada a VFl del usuario 740a administrativo. En algunas realizaciones, la cadena de estado de clave S1 asignada a VFl del usuario 740a administrativo puede ser iniciada por el usuario administrativo para el proyecto compartido correspondiente a VFl del usuario 740a administrativo a traves de un agente de encriptado de funcionamiento del usuario administrativo.
En algunas realizaciones, el usuario 740a administrativo, el segundo usuario 740b del grupo y los usuarios 740 restantes del grupo pueden querer participar en un proyecto compartido y compartir archivos encriptados relacionados con el proyecto compartido a traves del sistema 700. Sin perdida de generalidad, se asume que el usuario 740a administrativo es el iniciador y el administrador del proyecto compartido. En este caso, el SU correspondiente al proyecto compartido consiste en el usuario 740a administrativo y la pluralidad de otros usuarios 740 del grupo. Para cada usuario 740 del grupo, el VF correspondiente al proyecto compartido puede ser VFlt. Los archivos encriptados reales relacionados con el proyecto compartido se pueden sincronizar con la nube y con los agentes 704 de encriptado de todos los usuarios dentro del SU a traves del servicio informatico en la nube u otros medios. Sin embargo, para que los usuarios dentro del SU puedan ver los archivos de texto sin formato correspondientes, el conjunto de valores de inicializacion de claves FED utilizados por los agentes 704 de encriptado de todos los usuarios 740 del grupo en el primer usuario para encriptar y desencriptar archivos relacionados con el proyecto compartido puede sincronizarse mediante el sistema 700 a traves de los agentes 704 de encriptado de todos los usuarios 740 del grupo.
Con referencia a la figura 8, un procedimiento 800 de ejemplo se describe para la generacion y la sincronizacion de valores de inicializacion de clave cuando el primer usuario incluye una pluralidad de usuarios del grupo. El conjunto de valores de inicializacion de claves FED utilizadas para encriptar y desencriptar archivos relacionados con el proyecto compartido puede ser generado inicialmente por el usuario administrativo para el proyecto compartido, que es el usuario 740a administrativo en el caso actual, de acuerdo con los ejemplos descritos anteriormente.
En 805, se puede registrar una pluralidad de usuarios del grupo con la primera cuenta. El proceso de registro de un usuario con la primera cuenta puede ser similar al descrito anteriormente con referencia a 660 en la figura 6C. En algunas realizaciones, el identificador de usuario de cada usuario del grupo dentro del primer usuario puede ser una direccion de correo electronico valida de ese usuario. El primer usuario 740a administrativo puede usar uno de sus agentes 704 de encriptado para enviar una solicitud de autorizacion al servidor 730. La solicitud de autorizacion de grupo puede incluir los identificadores de usuario de todos los usuarios del grupo en el primer usuario. La solicitud de autorizacion de grupo puede indicar al servidor Q 730 que se debe generar una primera cuenta para el proyecto compartido.
El servidor Q 730 puede configurar el SUA y tambien puede transmitir, en nombre del usuario 740a administrativo, una invitacion a unirse al proyecto compartido a cada uno de los usuarios 740 del grupo. La invitacion puede enviarse como un correo electronico a una direccion de correo electronico asociada con el identificador de usuario de ese usuario 740 del grupo. El correo electronico tambien puede solicitar a cada usuario del grupo que configure una cuenta espedfica del usuario con el servidor 730 si ese usuario del grupo no tiene una.
En algunas realizaciones, el servidor 730 puede generar la primera cuenta para que el primer usuario incluya informacion de autentificacion de cuenta correspondiente a cada usuario del grupo. La informacion de autentificacion de la cuenta puede incluir un codigo encriptado del servidor espedfico del usuario para cada usuario 740 del grupo. Para cada usuario, el agente 704 de encriptado puede generar el codigo encriptado del servidor espedfico del usuario en uno de los dispositivos controlados por ese usuario. El agente 704 de encriptado puede definir un codigo de verificacion espedfico del usuario y generar el codigo encriptado del servidor espedfico del usuario basandose en el codigo de verificacion espedfico del usuario. El agente de encriptado puede transmitir el codigo encriptado del servidor espedfico del usuario donde se puede almacenar en la informacion de autentificacion de la cuenta de la primera cuenta. En algunos casos, la informacion de autentificacion de la cuenta de la primera cuenta puede simplemente indicar la cuenta espedfica del usuario donde se puede acceder al codigo encriptado del servidor espedfico del usuario para autentificar al usuario.
Despues de que los usuarios dentro del SU respondan, el servidor Q 730 puede comunicarse aun mas, para cada usuario 740 del grupo que acepta la invitacion, con un agente 704 de encriptado de ese usuario del grupo para que se configure el FV correspondiente al proyecto compartido en el agente 704 de encriptado, de ese grupo de usuarios y el mdice It de VFlt y el ID del SU asociado con el proyecto compartido estan registrados por el servidor Q 730 en la cuenta espedfica del usuario t y tambien por ese agente de encriptado del usuario t.
En 810, cada usuario 740 grupo puede generar una clave publica espedfica del usuario. La clave publica espedfica del usuario para cada usuario puede generarse basandose en una clave privada espedfica del usuario almacenada en la memoria no volatil de un dispositivo 702 correspondiente controlado por el usuario 740 del grupo. La clave publica espedfica del usuario para cada usuario se puede proporcionar al usuario 740a administrativo. La clave privada espedfica del usuario y la clave publica espedfica del usuario se pueden generar como se describio anteriormente con referencia a 470 en la figura 4C.
Por ejemplo, para cada usuario 740 del grupo que acepta la invitacion, el servidor Q 730 puede devolver al agente 704 de encriptado del usuario 740 administrativo el valor de y registrado en la cuenta espedfica del usuario 740a del grupo, donde y es la clave publica de ese usuario 740 del grupo. El servidor 730 tambien puede enviar el mdice de ese usuario del grupo en la base de datos de usuarios almacenada en el servidor Q 730. La clave publica espedfica del usuario para un usuario 740t del grupo puede estar indicada por pt,2 para facilitar nuestras descripciones posteriores.
En 815, el agente 704 de encriptado del primer dispositivo 702a puede generar la pluralidad de indicadores de claves de encriptado para el primer usuario mediante la generacion de una pluralidad de indicadores de claves encriptados espedficos del usuario. El indicador de clave encriptado se puede generar basandose en los indicadores de claves generados de la misma manera que se describe anteriormente. El agente 704 de encriptado del primer dispositivo 702a puede generar, para cada usuario 740 del grupo, una pluralidad de indicadores de claves encriptados espedficos del usuario utilizando la clave publica espedfica del usuario para ese usuario del grupo.
Por ejemplo, el agente 704 de encriptado del usuario 740a administrativo puede generar los indicadores de claves como una pluralidad de numeros aleatorios independientes Xiij, j = 1,2,-,J, donde cada numero aleatorio es distribuido uniformemente sobre {1,2, ···, N - 1}. En algunas realizaciones, el agente 704 de encriptado del usuario 740a administrativo puede enviar un par de enteros (1, J) al servidor Q 730 para solicitar la asistencia del servidor Q 730 para generar los valores de inicializacion de claves FED para el proyecto compartido. En dichas realizaciones, al recibir el par de enteros (1, J), el servidor Q 730 puede generar, en funcion del SUA, y su propia clave secreta v, valores de clave de servidor como los numeros aleatorios independientes V1, V2, ···, Vj , donde cada numero aleatorio se distribuye uniformemente sobre {1,2, ···, N - 1}, y envfa V1, V2, ···, Vj de vuelta al agente 704 de encriptado del usuario 740a administrativo.
El agente 704 de encriptado del usuario 740a administrativo puede generar J valores de inicializacion de claves FED independientes Knj = A(Xnj, Vj), j = 1,2, - , J, para el proyecto compartido basado en V1, V2, - , Vj y Xi1,1, Xi1,2, - ,X v ,.
El agente 704 de encriptado del usuario 740a administrativo puede utilizar el codigo de verificacion C del usuario 740a administrativo junto con el mdice I1 del VF correspondiente al proyecto compartido para el usuario 740a administrativo para encriptar la pluralidad de indicadores de claves (Xi1,1,Xi1,2, -,Xi1,j) en Ec,n(Xn,1 ,Xn,2,■■■,Xn,J) y generar la informacion de valor de inicializacion de clave mediante encriptado (Ki1,1,Ki1,2,- ,K i1,j) en Ec,i1(Ki1,1,Ki1,2, -,Ki1,j), respectivamente. El agente 704 de encriptado puede luego guardar la pluralidad de indicadores de claves (Ec,i1(Xi1,1,Xi1,2,-,Xi1,j)) y la informacion de valor de inicializacion de clave Ec,i1(Ki1,1,Ki1,2,- ,K i1,j) en la memoria no volatil del primer dispositivo 702a.
En algunas realizaciones, para cada grupo de usuarios t, 1 < t < T, que acepta la invitacion, el agente 704 de encriptado del usuario 740a administrativo puede generar, ademas, una segunda pluralidad de numeros aleatorios independientes Ytj, j = 1,2, ···, J, donde cada numero aleatorio se distribuye uniformemente sobre {1,2, ···, A/-1},
determina los indicadores de claves encriptados especificos del usuario stj = y una pluralidad de claves publicas indicadoras espedficas del usuario ^ , = anj, j = 1,2, -,J, y enviar (£tj,ytj), j = 1,2, -, J, junto con el mdice de usuario t y el ID (digamos I) del SU asociado con el proyecto compartido al servidor Q 730, donde p t,2 es la clave publica del usuario t.
Al recibir los indicadores de claves encriptados
Figure imgf000044_0002
en la implementacion espedfica utilizando EIGamal descrito anteriormente junto con el mdice del grupo de usuarios t y el ID/ del primer usuario asociado con el proyecto compartido, el servidor Q 730 puede usar el primer identificador del usuario lD/ del SU para determinar el mdice lt del FV correspondiente al proyecto compartido para el usuario del grupo t a partir de la informacion de cuenta espedfica del usuario del usuario del grupo t, y luego actualizar la cuenta espedfica del usuario t del usuario reemplazando (lt,/) con (lt,/,Slf), donde Slt = S/t,oS/t,iS/t,2 "S/t,2J = 1 tt,iy ty ttM ,j.
Es decir, la porcion del indicador de clave del servidor de la cadena de estado de clave para la primera cuenta puede incluir, para cada usuario 740 del grupo, una porcion de la cadena espedfica del usuario que se genera en funcion de la pluralidad de indicadores de claves encriptados espedficos del usuario para ese usuario 740 del grupo. La porcion de la cadena espedfica del usuario tambien se puede almacenar en la cuenta espedfica del usuario para ese usuario del grupo, junto con el primer identificador del usuario.
En 820, el segundo dispositivo 702b puede recibir la porcion de cadena espedfico del usuario para el segundo usuario 740b. El agente 704 de encriptado en el segundo dispositivo 702b puede usar la porcion de cadena espedfica del usuario recibida para determinar la pluralidad de indicadores de claves para la primera cuenta y, por lo tanto, los valores de inicializacion de clave y las claves de encriptado para los archivos del proyecto compartido.
En 825, el agente 704 de encriptado del segundo dispositivo 702b puede determinar la pluralidad de indicadores de claves de la pluralidad de indicadores de claves encriptados espedficos del usuario en la porcion espedfica de usuario de la porcion de indicador de clave servidor (recibida en 820) utilizando la clave privada del segundo dispositivo.
Por ejemplo, supongamos que el agente 704 de encriptado del segundo usuario 740b esta en el ROU de estado. El conjunto de valores de inicializacion de claves FED generadas por el usuario administrativo para la primera cuenta se puede sincronizar de forma automatica y segura con el agente 704 de encriptado del segundo usuario 740b.
Durante el proceso de intercambio entre el agente 704 de encriptado del segundo dispositivo 702b y el servidor Q 730, que puede ser iniciado por el agente de encriptado del segundo usuario 740b, el servidor Q 730 puede enviar de vuelta al agente 704 de encriptado del segundo dispositivo 702b la lista {(/, //, S1): / = 1,2, •••} de los indices VF /, superusuario ID //, y cadenas de estado de claves adicionales S/ = S/,0 S/,1 S/,2 ••• S/,2j contenidas en la cuenta espedfica del usuario del segundo usuario 702b.
Al comparar la lista {(/, //, S/): / = 1,2, ...} con su informacion local, el agente 704 de encriptado del segundo dispositivo 702b puede detectar que la nueva carpeta virtual VF /t que se ha establecido entre el servidor Q 730 y otro agente 704 de encriptado del segundo usuario 740b, si el agente 704 de encriptado del segundo dispositivo 702b no tiene ningun registro de VF /t.. El agente 704 de encriptado del segundo dispositivo 702b tambien puede determinar que la pluralidad de valores de inicializacion de claves FED para el proyecto compartido correspondiente a VF /t (es decir, para la primera cuenta asociada con el primer usuario) ya ha sido generada por el usuario 740a administrativo para ese proyecto compartido.
El agente 704 de encriptado del segundo dispositivo 702b puede configurar la carpeta virtual VFlt para si mismo y registrar la informacion (/t, //t) si no tiene ningun registro en VF /t. El agente 704 de encriptado del segundo dispositivo 702b tambien puede recuperar la cadena de estado de clave correspondiente S/t=S/t,0S/t,iS/t,2"S/t,2J de la lista {(/,//,S/): / = 1,2,-}. El agente 704 de encriptado del segundo dispositivo 702b puede luego calcular
Figure imgf000044_0001
donde Kt,0 es la clave privada del usuario t.
El agente 704 de encriptado del segundo dispositivo 702b puede enviar el par de enteros (1, J) junto con el primer ID de identificador de usuario //t del primer usuario asociado con el proyecto compartido correspondiente a VF /t al servidor Q 730 para solicitar la asistencia del servidor Q 730 para generar valores de inicializacion de claves FED para ese proyecto compartido para que lo utilice el agente 704 de encriptado del segundo dispositivo 702b.
Al recibir (1, J, //t), el servidor Q 730 puede generar, basandose en el SUA correspondiente al primer usuario con el identificador del primer usuario ID //t, y su propia clave secreta v, los valores de la clave del servidor como numeros aleatorios independientes V1, V2, •••, Vj , donde cada numero aleatorio se distribuye de manera uniforme en {1,2, •••, N -1}, y envia V1, V2, •• •, Vj de vuelta al agente 704 de encriptado del segundo dispositivo 702b.
En funcion de los valores de clave del servidor V1, V2, •••, Vj y la pluralidad de indicadores clave X/t,1, X/t,2, •••, X/tj, el agente 704 de encriptado del segundo dispositivo 702b puede generar J valores de inicializacion de clave Fed independientes K/t,j = A(X/tj, Vj), j = 1,2, •••, J , para que el proyecto compartido sea utilizado por el agente 704 de encriptado del segundo dispositivo 702b.
El agente 704 de encriptado del segundo dispositivo 702b puede usar el codigo de verification C del segundo usuario 740b junto con el mdice lt de la carpeta virtual VFlt en el agente 704 de encriptado del segundo dispositivo 702b a encriptar (X/t,i,X/t,2/” ,X/t,j) y (K/t,i,K/t,2,-,K/t,j) en Ec,/t(X/t,i,X/t,2,^,X/t,j) y Ec,/t(K/t,i,K/t,2,^,K/t,j), respectivamente, y guardar Ec,/t(X/t,1,X/t,2,-,X/t,j) and Ec,/t(K/t,1,Kft,2,",K/t,j) en la memoria no volatil del segundo dispositivo 702b.
En base a la description anterior, se deduce que los numeros aleatorios X/t,j, j = 1,2, ..., J, se calculan en la Ec. (7), pueden ser los mismos que los generados por el usuario 740a administrativo en el procedimiento de generation de valores de initialization de claves FED para compartir en grupo los archivos encriptados descritos anteriormente. Ademas, la descripcion anterior tambien puede implicar:
Figure imgf000045_0001
Por lo tanto, el conjunto de valores de inicializacion de claves FED {K/i,i,K/i,2,--,K/i,j} se puede sincronizar en todos los agentes 704 de encriptado de todos los usuarios 740 del grupo dentro del primer usuario SU.
Una vez que se genera y sincroniza el conjunto de valores de inicializacion de claves FED {K/i ,i ,K/i ,2, -,K/i ,j}, la carpeta virtual VF/t en cualquier agente 704 de encriptado del segundo usuario 740b puede funcionar de la misma manera que VF0. Por ejemplo, cualquier archivo creado/modificado dentro o movido a VFltt puede ser encriptado automaticamente por el agente 704 de encriptado respectivo del usuario del grupo t usando una clave FED elegida de manera aleatoria del almacen de claves FED correspondiente al conjunto {K/i ,i ,K/i ,2, -,K/i ,j} a menos que el archivo movido ya este en el formato encriptado por otro agente 704 de encriptado de un usuario 740 del grupo dentro del primer SU. Los datos encriptados resultantes por archivo junto con la information de generacion de claves (como el mdice de la clave FED utilizada en el almacen de claves) a partir de la cual se puede derivar la clave FED con la ayuda de los valores de inicializacion de claves, y el ID del SU asociado con el proyecto compartido correspondiente a la carpeta virtual VF/t puede guardarse como el archivo encriptado. Los archivos encriptados con claves del almacen de claves FED correspondientes al conjunto {K/i ,i ,K/i ,2,- ,K /i ,j} pueden ser desencriptados por el agente de encriptado correspondiente del usuario del grupo a solicitud del usuario t cuando se colocan en la carpeta virtual VF/t. Dado que los archivos administrados por agentes de encriptado de todos los usuarios 740 del grupo y almacenados en una memoria no volatil pueden permanecer encriptados todo el tiempo, los archivos encriptados con claves del almacen de claves FED correspondientes al conjunto {K/i,i,K/i,2,--,K/i,j} para el proyecto compartido puede denominarse "muerto" una vez que estan fuera de todas las carpetas virtuales VF/t, i < t<T .
A traves del procedimiento de sincronizacion de valores de inicializacion de claves FED para compartir grupos de archivos encriptados, la informacion local registrada por los agentes 704 de encriptado de cada usuario 740 del grupo tambien se puede sincronizar con la informacion de la cuenta del usuario 740 del grupo registrada en el servidor Q 730. Ademas, en algunas realizaciones puede haber propiedades consistentes extendidas que, ademas de las propiedades consistentes Ec. ( i) a la Ec. (6), tambien incluyen propiedades consistentes que involucran indices VF, ID de superusuario correspondientes y conjuntos de numeros aleatorios X/,i ,X/,2, -,X/,j y valores de inicializacion de claves FED K/,i ,K/,2, -,K/,j, i < / < /t, para todos los VF del usuario t. Del mismo modo, los procedimientos de AVCC, VCU, An KG y PNKG se pueden ampliar para cubrir el intercambio de archivos encriptados en grupo.
En otras realizaciones del sistema 700 se pueden usar otras caracteristicas y componentes de seguridad. Ademas, muchos de los ejemplos descritos anteriormente para los sistemas i00, 200 y 500 tambien pueden usarse en realizaciones del sistema 700.
En algunas realizaciones, cuando se crea un archivo encriptado para compartir dentro de un SU a traves del sistema 700, uno de los usuarios 740 del grupo puede especificar la cantidad maxima de veces que el archivo encriptado puede ser desencriptado para ser visto por cualquier agente 704 de encriptado en cualquier dispositivo 702 del usuario del grupo u otros usuarios 740 del grupo dentro del SU. Una vez que el agente 704 de encriptado desencripta esa cantidad maxima de veces, ese agente 704 de encriptado puede rechazarla para su posterior desencriptacion. En algunas realizaciones, para evitar cualquier alteration, ese numero maximo de veces, junto con el archivo de texto simple original, se puede encriptar y formar parte de los datos encriptados del archivo encriptado.
En algunas realizaciones, cuando se crea un archivo encriptado para compartir dentro de un SU a traves del sistema 700, uno de los usuarios 740 del grupo puede especificar un periodo de caducidad. El periodo de caducidad puede definir un periodo a partir del cual el agente 704 de encriptado denegara el desencriptado del archivo encriptado en cualquier dispositivo 702 del usuario del grupo u otros usuarios del grupo 740 dentro del SU. En algunas realizaciones, para evitar cualquier alteracion, el periodo de caducidad junto con el archivo de texto simple original se puede encriptar y formar parte de los datos encriptados del archivo encriptado.
En algunas realizaciones, el usuario 740a administrativo para un proyecto compartido puede ser capaz de eliminar o quitar uno de los usuarios del grupo, digamos usuario t, de la pluralidad de usuarios del grupo (SU) asociados con el proyecto compartido. El usuario 740a administrativo puede enviar una solicitud al servidor Q 730 para actualizar la cadena de estado de clave Sn del usuario t correspondiente al proyecto compartido a una cadena de estado de clave de elimination. La cadena de estado de clave de elimination puede indicar a los agentes de encriptado en los dispositivos asociados con la eliminacion del usuario del grupo que el usuario del grupo ya no es uno de los usuarios del grupo en el primer usuario. Por ejemplo, la cadena de estado de clave puede actualizarse de Slt = Sff,oSff,iSff,2 ^Sff,2J a S = Sff,o00- 0, es decir, Sit,o seguido de 2J ceros. La eliminacion del usuario puede ser gestionada automaticamente por el procedimiento de sincronizacion de valores de inicializacion de claves FED para compartir en grupo archivos encriptados, como se describe anteriormente. Este proceso se puede aplicar para cambiar el conjunto de valores de inicializacion de claves FED (y numeros aleatorios) correspondientes al proyecto compartido y guardarlas localmente por todos los agentes de encriptado del usuario t en un conjunto diferente para que los archivos encriptados con claves FED para el proyecto compartido que ya no puedan desencriptarse por ningun agente de encriptado del usuario t.
En algunas realizaciones, el usuario 740a administrativo para un proyecto compartido puede permitir que un usuario eliminado vuelva a unirse al SU asociado con el proyecto compartido. Para lograr esto, el usuario administrativo puede enviar una solicitud al servidor Q 730 para actualizar la cadena de estado clave del usuario eliminado correspondiente al proyecto compartido. Por ejemplo, la solicitud puede indicar al servidor 730 que actualice la cadena de estado de clave SH del usuario t correspondiente al proyecto compartido de SH = Sit,o00- 0 de vuelta a S = Sit,oSit,iSit,2-Sit,2J.S" = Sit,o00- 0 de vuelta a S = Sit,oSit,iSit,2"Sit,2J. El resto se puede gestionar automaticamente mediante el procedimiento de sincronizacion de valores de inicializacion de claves FED para compartir grupos de archivos encriptados una vez mas.
En las realizaciones de ejemplo descritas anteriormente, el sistema publico ElGamal se ha utilizado como ejemplo para describir las realizaciones de los sistemas 2oo, 5oo, y 7oo. Otros sistemas de claves publicas (ver, por ejemplo, W. Diffie y M. Hellman, "New directions in cryptography", Transacciones IEEE sobre la teona de la informacion, vol.
22, n.° 6, paginas 644 - 654, noviembre de 1976), tal como RSA y ECC tambien se pueden utilizar. Ademas, los sistemas descritos en este documento tambien pueden proporcionar una solucion deseable para la administracion de derechos digitales. Por ejemplo, se considere un proyecto compartido entre un proveedor de servicio de contenido y un usuario final, donde el proveedor de servicio de contenido actua como el usuario administrativo del proyecto compartido. Con las realizaciones de los sistemas descritos en el presente documento, cualquier contenido creado/propiedad por el proveedor de servicio de contenido y comprado por el usuario final puede verse solo dentro de los agentes de encriptado del usuario final en los dispositivos del usuario final.
Se han descrito varias realizaciones de ejemplo en el presente documento. Sin embargo, los expertos en la tecnica entenderan que pueden realizarse otras variaciones y modificaciones sin apartarse del alcance de las realizaciones como se define en las reivindicaciones adjuntas.

Claims (15)

REIVINDICACIONES
1. Un procedimiento para proporcionar encriptado en una pluralidad de dispositivos (102a-1021) configurados para comunicacion electronica con un servidor (230), incluyendo la pluralidad de dispositivos (102a-1021) al menos un primer dispositivo (102a) y un segundo dispositivo (102b), comprendiendo el procedimiento:
generar una primera cuenta para un primer usuario (140) en control de la pluralidad de dispositivos (102a-1021), en el que la primera cuenta almacena datos de cuenta en una memoria de servidor no volatil, comprendiendo los datos de cuenta un identificador del primer usuario (140) e informacion de autentificacion de la cuenta; para cada dispositivo (102a-1021) en la pluralidad de dispositivos (102a-1021), instalar un agente (104) de encriptado en ese dispositivo (102a-1021);
operar un procesador del primer dispositivo (102a) bajo el control del agente (104) de encriptado para: generar aleatoriamente una pluralidad de numeros aleatorios;
generar una pluralidad de numeros aleatorios encriptados a partir de la pluralidad de numeros aleatorios utilizando una clave de encriptado del segundo dispositivo, correspondiendo cada numero aleatorio encriptado a uno de los numeros aleatorios en la pluralidad de numeros aleatorios;
transmitir la pluralidad de numeros aleatorios encriptados al servidor (230) para impedir la exposicion de los numeros aleatorios al servidor (230);
generar una pluralidad de valores de inicializacion (106) de claves basadas en la pluralidad de numeros aleatorios, en el que para cada valor de inicializacion de clave, el agente (104) de encriptado es operable para controlar el procesador del primer dispositivo (102a) para generar una pluralidad de claves de encriptado independientes; y
almacenar informacion de valores de inicializacion de clave basada en la pluralidad de valores de inicializacion (106) de claves en la memoria del primer dispositivo no volatil;
generar una cadena de estado de clave para la primera cuenta, incluyendo la cadena de estado de clave una porcion de numero aleatorio de servidor generada basandose en la pluralidad de numeros aleatorios encriptados; almacenar la cadena de estado clave en la memoria del servidor no volatil;
recibir informacion de autentificacion putativa en el segundo dispositivo (102b);
operar un procesador del segundo dispositivo (102b), bajo el control del agente (104) de encriptado instalado en el segundo dispositivo (102b), para generar informacion de autentificacion putativa del servidor basada en la informacion de autentificacion putativa y transmitir la informacion de autentificacion putativa del servidor al servidor (230); y
operar el procesador del servidor (230) para comparar la informacion de autentificacion del servidor putativo con la informacion de autentificacion de la cuenta, y proporcionar al segundo dispositivo (102b) acceso a la cadena de estado de clave si y solo si la informacion de autentificacion del servidor putativo corresponde a la informacion de autentificacion de la cuenta;
operar el procesador del segundo dispositivo (102b) bajo el control del agente (104) de encriptado para: determinar la pluralidad de numeros aleatorios a partir de la pluralidad de numeros aleatorios encriptados en la cadena de estado de clave utilizando la clave de desencriptado del segundo dispositivo;
generar la pluralidad de valores de inicializacion (106) de claves basandose en la pluralidad de numeros aleatorios, en el que para cada valor de inicializacion de clave, el agente (104) de encriptado es operable para controlar el procesador del segundo dispositivo (102b) para generar la misma pluralidad claves de encriptado independientes como el primer dispositivo (102a), sin que ninguna de los valores de inicializacion (106) de claves, informacion de valor de inicializacion de clave y claves de encriptado se proporcionen al segundo dispositivo (102b); y
almacenar la informacion de valor de inicializacion de clave basada en la pluralidad de valores de inicializacion (106) de claves en la memoria del segundo dispositivo no volatil.
2. El procedimiento de acuerdo con la reivindicacion 1, en el que:
la generacion de la pluralidad de valores de inicializacion (106) de claves en el primer dispositivo (102a) comprende, ademas:
operar el procesador del servidor para generar aleatoriamente los valores de clave de servidor para la primera cuenta, almacenar los valores de clave de servidor en la memoria del servidor no volatil, y transmitir los valores de la clave del servidor al primer dispositivo (102a); y
operar el procesador del primer dispositivo (102a) bajo el control del agente (104) de encriptado para generar la pluralidad de valores de inicializacion (106) de claves basandose en los valores de la clave del servidor y la pluralidad de numeros aleatorios;
en el que:
el procesador del servidor es operado para proporcionar al segundo dispositivo (102b) acceso a los valores de clave del servidor si y solo si la informacion de autentificacion del servidor putativo corresponde a la informacion de autentificacion de la cuenta; y
el procesador del segundo dispositivo (102b) se opera, bajo el control del agente (104) de encriptado, para generar la pluralidad de valores de inicializacion (106) de claves basadas en la pluralidad de numeros aleatorios y los valores de la clave del servidor.
3. El procedimiento de acuerdo con la reivindicacion 1, que comprende, ademas:
operar el procesador del primer dispositivo (102a), bajo el control del agente (104) de encriptado, para generar la pluralidad de numeros aleatorios encriptados mediante:
definir un primer codigo de verificacion;
definir la clave de encriptado del segundo dispositivo basada en el primer codigo de verificacion; y encriptar la pluralidad de numeros aleatorios utilizando la clave de encriptado del segundo dispositivo; en el que
la clave de desencriptado del segundo dispositivo se genera al operar el procesador del segundo dispositivo (102b) bajo el control del agente (104) de encriptado para definir un segundo codigo de verificacion y generar la clave de desencriptado del segundo dispositivo basandose en el segundo codigo de verificacion; y
el segundo codigo de verificacion es el primer codigo de verificacion.
4. El procedimiento de acuerdo con la reivindicacion 3, que comprende, ademas:
proporcionar un archivo para encriptar y almacenar en el primer dispositivo (102a);
operar el procesador del primer dispositivo (102a) bajo el control del agente (104) de encriptado para derivar una de las claves de encriptado a partir de la informacion de valor de inicializacion de clave utilizando informacion de generacion de claves;
encriptar y almacenar el archivo como un archivo (108, 110) encriptado en la memoria del primer dispositivo no volatil utilizando la clave de encriptado derivada;
almacenar la informacion de generacion de claves con el archivo (108, 110) encriptado en la memoria del primer dispositivo no volatil;
recibir el archivo (108, 110) encriptado y la informacion de generacion de claves en el segundo dispositivo (102b); y
operar el procesador del segundo dispositivo (102b) bajo el control del agente (104) de encriptado para: derivar la clave de encriptado a partir de la informacion de valor de inicializacion de clave almacenada en la memoria del segundo dispositivo no volatil utilizando la informacion de generacion de claves recibida; y desencriptar el archivo (108, 110) encriptado utilizando la clave de encriptado derivada;
en el que la informacion de valor de inicializacion de clave se encripta utilizando el primer codigo de verificacion antes del almacenamiento.
5. El procedimiento de acuerdo con la reivindicacion 1, en el que
el primer usuario (140) comprende una pluralidad de usuarios del grupo que incluyen al menos un usuario del grupo administrativo y un segundo usuario del grupo, teniendo cada uno de los usuarios del grupo el control de al menos uno de los dispositivos (102a-1021) en la pluralidad de dispositivos (102a-1021), en el que el usuario del grupo administrativo tiene el control del primer dispositivo (102a) y el segundo usuario del grupo tiene el control del segundo dispositivo (102b);
para cada usuario del grupo en la pluralidad de usuarios del grupo, los datos de la cuenta comprenden ademas una clave publica espedfica del usuario, en la que la clave publica espedfica del usuario para cada usuario se genera basandose en una clave privada espedfica del usuario almacenada en una memoria no volatil de un dispositivo correspondiente en la pluralidad de dispositivos (102a-1021); y
el procesador del primer dispositivo (102a) opera bajo el control del agente (104) de encriptado para generar la pluralidad de numeros aleatorios encriptados, para cada usuario del grupo en la pluralidad de usuarios del grupo: generar una pluralidad de numeros aleatorios encriptados espedficos del usuario utilizando la clave publica espedfica del usuario para ese usuario;
la porcion del numero aleatorio del servidor de la cadena de estado de clave para la primera cuenta comprende ademas, para cada usuario del grupo en la pluralidad de usuarios del grupo, una porcion de la cadena espedfica del usuario que se genera en funcion de la pluralidad de numeros aleatorios encriptados espedficos del usuario para ese usuario del grupo; y
el procesador del segundo dispositivo (102b) se opera bajo el control del agente (104) de encriptado para: determinar la pluralidad de numeros aleatorios a partir de la pluralidad de numeros aleatorios encriptados espedficos del usuario en la porcion espedfica del usuario de la porcion del numero aleatorio del servidor correspondiente al segundo usuario del grupo que usa la segunda clave privada del dispositivo.
6. El procedimiento de acuerdo con la reivindicacion 1, en el que el primer usuario (140) comprende una pluralidad de usuarios que incluyen un usuario administrativo que controla el primer dispositivo (102a) y un segundo usuario que controla el segundo dispositivo (102b), comprendiendo tambien el procedimiento transmitir una autorizacion del segundo usuario al segundo usuario mediante:
transmits un identificador del segundo usuario del segundo usuario desde el primer dispositivo (102a) al servidor (230);
operar el procesador del servidor (230) para generar informacion de registro de segundo usuario basada en el identificador del segundo usuario y una contrasena del segundo usuario, almacenar la informacion de registro del segundo usuario en la memoria del servidor no volatil y transmitir una autorizacion de servidor del segundo usuario al segundo usuario;
recibir, por el segundo usuario, la autorizacion del servidor del segundo usuario y posteriormente instalar un agente (104) de encriptado en el segundo dispositivo (102b);
recibir una contrasena del segundo usuario putativo en el segundo dispositivo (102b);
operar el procesador del segundo dispositivo (102b) bajo el control del agente (104) de encriptado para generar informacion de registro del segundo usuario putativo basada en el identificador del segundo usuario y en la contrasena del segundo usuario putativo y transmitir la informacion de registro del segundo usuario putativo al servidor (230);
operar el procesador del servidor (230) para:
comparar la informacion de registro del segundo usuario putativo con la informacion de registro del segundo usuario almacenada;
autentificar el segundo dispositivo (102b) para la primera cuenta solo si la informacion de registro del segundo usuario putativo corresponde a la informacion de registro del segundo usuario almacenada;
operar el procesador del segundo dispositivo (102b) autentificado bajo el control del agente (104) de encriptado para:
generar la clave de desencriptado del segundo dispositivo;
generar la clave de encriptado del segundo dispositivo basada en la clave de desencriptado del segundo dispositivo; y
transmitir la clave de encriptado del segundo dispositivo al servidor (230);
recibir la clave de encriptado del segundo dispositivo en el primer dispositivo (102a); y
operar el procesador del primer dispositivo (102a) bajo el control del agente (104) de encriptado para generar la pluralidad de numeros aleatorios encriptados a partir de la pluralidad de numeros aleatorios usando la clave de encriptado del segundo dispositivo recibido.
7. El procedimiento de acuerdo con la reivindicacion 1, en el que el primer usuario (140) comprende una pluralidad de usuarios que incluyen un usuario administrativo que controla el primer dispositivo (102a) y un segundo usuario que controla el segundo dispositivo (102b), comprendiendo el procedimiento tambien:
proporcionar un archivo para ser encriptado al primer dispositivo (102a);
operar el procesador del primer dispositivo (102a) bajo el control del agente (104) de encriptado para: derivar una de las claves de encriptado a partir de la informacion de valor de inicializacion de clave utilizando informacion de generacion de claves; y
encriptar el archivo como un archivo (108, 110) encriptado utilizando la clave de encriptado derivada; transmitir el archivo (108, 110) encriptado, la informacion de generacion de claves y una autorizacion del segundo usuario al segundo usuario;
recibir, por el segundo usuario, la autorizacion del segundo usuario y posteriormente instalar un agente (104) de encriptado en el segundo dispositivo (102b);
recibir el archivo (108, 110) encriptado y la informacion de generacion de claves en el segundo dispositivo (102b); y
operar el procesador del segundo dispositivo (102b) bajo el control del agente (104) de encriptado para: derivar la clave de encriptado a partir de la informacion de valor de inicializacion de clave almacenada en la memoria del segundo dispositivo no volatil utilizando la informacion de generacion de claves recibida; y desencriptar el archivo (108, 110) encriptado utilizando la clave de encriptado derivada.
8. Un producto de programa de ordenador para usar en una pluralidad de dispositivos (102a-1021) para proporcionar encriptacion para la pluralidad de dispositivos (102a-1021), estando configurados la pluralidad de dispositivos (102a-1021) para comunicacion electronica con un servidor (230) e incluyendo al menos un primer dispositivo (102a) que tiene un primer procesador de dispositivo y una primera memoria de dispositivo no volatil y un segundo dispositivo (102b), teniendo el servidor (230) almacenado en el mismo una primera cuenta para un primer usuario (140) en control de la pluralidad de dispositivos (102a-1021), almacenando la primera cuenta datos de cuenta que comprenden un identificador del primer usuario (140) e informacion de autentificacion de cuenta en una memoria de servidor no volatil, comprendiendo el producto de programa de ordenador:
un medio de grabacion no transitorio; y
instrucciones grabadas en el medio de grabacion, siendo las instrucciones para configurar el primer procesador del dispositivo para:
generar aleatoriamente una pluralidad de numeros aleatorios;
generar una pluralidad de numeros aleatorios encriptados a partir de la pluralidad de numeros aleatorios utilizando una clave de encriptado del segundo dispositivo, correspondiendo cada numero aleatorio encriptado a uno de los numeros aleatorios en la pluralidad de numeros aleatorios, correspondiendo la clave de encriptado del segundo dispositivo a una clave de desencriptado del segundo dispositivo desconocido al servidor (230);
transmitir la pluralidad de numeros aleatorios encriptados al servidor (230) para impedir la exposicion de los numeros aleatorios al servidor (230), siendo el servidor (230) operable para generar una cadena de estado de clave para la primera cuenta que incluye una porcion de numero aleatorio del servidor basado en la pluralidad de numeros aleatorios encriptados y para proporcionar al segundo dispositivo (102b) acceso a la cadena de estado de clave si y solo si la informacion de autentificacion del servidor putativo recibida desde el segundo dispositivo (102b) corresponde a la informacion de autentificacion de la cuenta;
generar una pluralidad de valores de inicializacion (106) de claves basadas en la pluralidad de numeros aleatorios, en el que para cada valor de inicializacion de clave, el primer procesador del dispositivo es operable para generar una pluralidad de claves de encriptado independientes;
almacenar informacion de valor de inicializacion de clave basada en la pluralidad de valores de inicializacion (106) de claves en la memoria del primer dispositivo no volatil;
en el que:
la pluralidad de numeros aleatorios se puede determinar en el segundo dispositivo (102b) a partir de la pluralidad de numeros aleatorios encriptados en la cadena de estado de clave utilizando la clave de desencriptado del segundo dispositivo, de manera que la misma pluralidad de valores de inicializacion (106) de claves se puede generar en debase a la pluralidad de numeros aleatorios, y para cada valor de inicializacion de clave, un procesador del segundo dispositivo (102b) puede generar la misma pluralidad de claves de encriptado independientes que el primer dispositivo (102a), sin proporcionar ninguno de valores de inicializacion (106) de claves, informacion de valores de inicializacion de claves y claves de encriptado al segundo dispositivo (102b).
9. El producto de programa de ordenador de acuerdo con la reivindicacion 8, que comprende ademas instrucciones para configurar el primer procesador de dispositivo para generar la pluralidad de valores de inicializacion (106) de claves mediante:
recibir una pluralidad de valores de claves de servidor generados aleatoriamente desde el servidor (230), almacenandose los valores de claves de servidor en la primera cuenta; y
generar la pluralidad de valores de inicializacion (106) de claves basadas en los valores de claves del servidor y la pluralidad de numeros aleatorios.
10. El producto de programa de ordenador de acuerdo con la reivindicacion 8, que comprende ademas instrucciones para configurar el primer procesador de dispositivo para:
definir un primer codigo de verificacion;
definir la clave de encriptado del segundo dispositivo basada en el primer codigo de verificacion; y
encriptar la pluralidad de numeros aleatorios utilizando la clave de encriptado del segundo dispositivo;
en el que la clave de desencriptado del segundo dispositivo tambien se genera basandose en el primer codigo de verificacion.
11. El producto de programa de ordenador de acuerdo con la reivindicacion 10, que comprende ademas instrucciones para configurar el primer procesador de dispositivo para:
recibir un archivo para ser encriptado;
derivar una de las claves de encriptado a partir de la informacion de valor de inicializacion de clave utilizando informacion de generacion de claves;
encriptar y almacenar el archivo como un archivo (108, 110) encriptado en la memoria del primer dispositivo no volatil utilizando la clave de encriptado derivada;
almacenar la informacion de generacion de claves con el archivo (108, 110) encriptado en la memoria del primer dispositivo no volatil;
encriptar la informacion de valor de inicializacion de clave utilizando el primer codigo de verificacion antes del almacenamiento;
y el producto de programa de ordenador comprende instrucciones para configurar el procesador del segundo dispositivo (102b) para
recibir el archivo (108, 110) encriptado e informacion de generacion de claves;
derivar la clave de encriptado a partir de la informacion de valor de inicializacion de claves almacenada en una memoria no volatil del segundo dispositivo del segundo dispositivo (102b) utilizando la informacion de generacion de claves recibida; y
desencriptar el archivo (108, 110) encriptado utilizando la clave de encriptado derivada.
12. El producto de programa de ordenador de acuerdo con la reivindicacion 8, en el que:
el primer usuario (140) comprende una pluralidad de usuarios del grupo que incluyen al menos un usuario del grupo administrativo y un segundo usuario del grupo, teniendo cada uno de los usuarios del grupo el control de al menos uno de los dispositivos en la pluralidad de dispositivos (102a-1021), en el que el usuario del grupo administrativo tiene el control del primer dispositivo (102a) y el segundo usuario del grupo tiene el control del segundo dispositivo (102b);
para cada usuario del grupo en la pluralidad de usuarios del grupo, los datos de la cuenta comprenden ademas una clave publica espedfica del usuario, en la que la clave publica espedfica del usuario para cada usuario se genera en base a una clave privada espedfica del usuario almacenada en una memoria no volatil de un dispositivo correspondiente en la pluralidad de dispositivos (102a-1021); y
el producto de programa de ordenador comprende ademas instrucciones para configurar el primer procesador de dispositivo para:
generar la pluralidad de numeros aleatorios encriptados, para cada usuario del grupo en la pluralidad de usuarios del grupo, generando una pluralidad de numeros aleatorios encriptados espedficos del usuario utilizando la clave publica espedfica del usuario para ese usuario; y
transmitir la pluralidad de numeros aleatorios encriptados espedficos del usuario al servidor (230), siendo el servidor (230) operable para generar la porcion del numero aleatorio del servidor de la cadena de estado de clave generando, para cada usuario del grupo en la pluralidad de usuarios del grupo, una porcion de cadena espedfica del usuario basada en la pluralidad de numeros aleatorios encriptados espedficos del usuario para ese usuario del grupo; y
la pluralidad de numeros aleatorios es determinable en el segundo dispositivo (102b) a partir de la pluralidad de numeros aleatorios encriptados espedficos del usuario en la porcion espedfica del usuario de la porcion del numero aleatorio del servidor correspondiente al segundo usuario del grupo que usa la segunda clave privada del dispositivo.
13. El producto de programa de ordenador de acuerdo con la reivindicacion 8, en el que:
el primer usuario (140) comprende una pluralidad de usuarios que incluyen un usuario administrativo que controla el primer dispositivo (102a) y un segundo usuario que controla el segundo dispositivo (102b); y el producto de programa de ordenador comprende ademas instrucciones para configurar el primer procesador de dispositivo para transmitir una autorizacion del segundo usuario al segundo usuario transmitiendo un identificador del segundo usuario del segundo usuario desde el primer dispositivo (102a) al servidor (230), siendo el servidor (230) operable para generar informacion de registro de segundo usuario basada en el identificador del segundo usuario y una contrasena del segundo usuario, almacenar la informacion de registro de segundo usuario en la memoria del servidor no volatil y transmitir una autorizacion de servidor de segundo usuario al segundo usuario; y
el producto de programa de ordenador comprende ademas instrucciones para configurar un procesador del segundo dispositivo (102b), cuando se instala en el mismo, para:
recibir una contrasena del segundo usuario putativo;
generar informacion de registro del segundo usuario putativo basada en el identificador del segundo usuario y la contrasena del segundo usuario putativo;
transmitir la informacion de registro del segundo usuario putativo al servidor (230), siendo el servidor (230) operable para comparar la informacion de registro del segundo usuario putativo con la informacion de registro de segundo usuario almacenada, y autentificar el segundo dispositivo (102b) solo para la primera cuenta si la informacion de registro de segundo usuario putativo corresponde a la informacion de registro de segundo usuario almacenada; y una vez autentificado el segundo dispositivo (102b),
generar la clave de desencriptado del segundo dispositivo;
generar la clave de encriptado del segundo dispositivo basada en la clave de desencriptado del segundo dispositivo; y
transmitir la clave de encriptado del segundo dispositivo al servidor (230); y
el producto de programa de ordenador comprende ademas instrucciones para configurar el primer procesador de dispositivo para recibir la clave de encriptado del segundo dispositivo y generar la pluralidad de numeros aleatorios encriptados a partir de la pluralidad de numeros aleatorios utilizando la clave de encriptado del segundo dispositivo recibida.
14. El producto de programa de ordenador de acuerdo con la reivindicacion 8, en el que:
el primer usuario (140) comprende una pluralidad de usuarios que incluyen un usuario administrativo que controla el primer dispositivo (102a) y un segundo usuario que controla el segundo dispositivo (102b); y el producto de programa de ordenador, que comprende ademas instrucciones para configurar el primer procesador de dispositivo para:
recibir un archivo para ser encriptado;
derivar una de las claves de encriptado a partir de la informacion de valor de inicializacion de clave utilizando informacion de generacion de claves;
encriptar el archivo como un archivo (108, 110) encriptado utilizando la clave de encriptado derivada; transmitir el archivo (108, 110) encriptado, la informacion de generacion de claves y una autorizacion del segundo usuario al segundo usuario; y
el producto de programa de ordenador comprende ademas instrucciones para configurar un procesador del segundo dispositivo (102b), cuando se instala en el mismo, para:
registrar el segundo dispositivo (102b) con el servidor (230) segun la autorizacion del segundo usuario; determinar la pluralidad de numeros aleatorios basandose en la pluralidad de numeros aleatorios encriptados en la cadena de estado de clave utilizando la clave de desencriptado del segundo dispositivo;
generar la pluralidad de valores de inicializacion (106) de claves basadas en la pluralidad de numeros aleatorios;
almacenar informacion de valor de inicializacion de clave basada en los valores de inicializacion (106) de claves en una memoria del segundo dispositivo no volatil;
recibir el archivo (108, 110) encriptado y la informacion de generacion de claves;
derivar la clave de encriptado a partir de la informacion de valor de inicializacion de clave almacenada en la memoria del segundo dispositivo no volatil utilizando la informacion de generacion de claves recibida; y desencriptar el archivo (108, 110) encriptado utilizando la clave de encriptado derivada.
15. Un dispositivo para proporcionar encriptado para una pluralidad de dispositivos (102a-1021) incluyendo el dispositivo, estando cada dispositivo configurado para la comunicacion electronica con un servidor (230), teniendo el servidor (230) almacenado en el mismo una primera cuenta para un primer usuario (140) en control de la pluralidad de dispositivos (102a-1021), almacenando la primera cuenta datos de cuenta que comprenden un identificador del primer usuario (140) e informacion de autentificacion de cuenta en una memoria de servidor no volatil, comprendiendo el dispositivo:
un procesador; y
una memoria de dispositivo no volatil que tiene almacenadas en la misma instrucciones para configurar el procesador para:
generar aleatoriamente una pluralidad de numeros aleatorios;
generar una pluralidad de numeros aleatorios encriptados a partir de la pluralidad de numeros aleatorios utilizando una clave de encriptado del segundo dispositivo, correspondiendo cada numero aleatorio encriptado a uno de los numeros aleatorios en la pluralidad de numeros aleatorios, correspondiendo la clave de encriptado del segundo dispositivo a una clave de desencriptado del segundo dispositivo desconocido para el servidor (230);
transmitir la pluralidad de numeros aleatorios encriptados al servidor (230) para impedir la exposicion de los numeros aleatorios al servidor (230), pudiendo el servidor (230) operar para generar una cadena de estado de clave para la primera cuenta que incluye una porcion de numero aleatorio del servidor basada en la pluralidad de numeros aleatorios encriptados y para proporcionar un segundo dispositivo (102b) en la pluralidad de dispositivos (102a-1021) con acceso a la cadena de estado de clave si y solo si la informacion de autentificacion del servidor putativo que se recibe de ese dispositivo corresponde a la informacion de autentificacion de la cuenta;
generar una pluralidad de valores de inicializacion (106) de claves basadas en la pluralidad de numeros aleatorios, en el que para cada valor de inicializacion de clave, el procesador es operable para generar una pluralidad de claves de encriptado independientes;
almacenar informacion de valor de inicializacion de clave basada en la pluralidad de valores de inicializacion (106) de claves en la memoria del dispositivo no volatil;
en el que la pluralidad de numeros aleatorios se puede determinar en el segundo dispositivo (102b) a partir de la pluralidad de numeros aleatorios encriptados en la cadena de estado de clave usando la clave de desencriptado del segundo dispositivo de tal manera que la misma pluralidad de valores de inicializacion (106) de claves se puede generar basandose en una pluralidad de numeros aleatorios, y para cada valor de inicializacion de claves, pudiendo generar un procesador del segundo dispositivo (102b) la misma pluralidad de claves de encriptado independientes que el dispositivo, sin proporcionar ninguno de valores de inicializacion (106) de claves, informacion de valores de inicializacion de claves y las claves de encriptado al segundo dispositivo (102b).
ES15806851T 2014-06-13 2015-06-12 Procedimientos, sistemas y producto de programa de ordenador para proporcionar encriptado en una pluralidad de dispositivos Active ES2713673T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201462011837P 2014-06-13 2014-06-13
PCT/CA2015/050543 WO2015188277A1 (en) 2014-06-13 2015-06-12 Methods, systems and computer program product for providing encryption on a plurality of devices

Publications (1)

Publication Number Publication Date
ES2713673T3 true ES2713673T3 (es) 2019-05-23

Family

ID=54832664

Family Applications (1)

Application Number Title Priority Date Filing Date
ES15806851T Active ES2713673T3 (es) 2014-06-13 2015-06-12 Procedimientos, sistemas y producto de programa de ordenador para proporcionar encriptado en una pluralidad de dispositivos

Country Status (5)

Country Link
US (3) US9576149B2 (es)
EP (2) EP3155754B1 (es)
CN (2) CN106664202B (es)
ES (1) ES2713673T3 (es)
WO (2) WO2015188277A1 (es)

Families Citing this family (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8924712B2 (en) * 2011-11-14 2014-12-30 Ca, Inc. Using QR codes for authenticating users to ATMs and other secure machines for cardless transactions
US9576149B2 (en) * 2014-06-13 2017-02-21 BicDroid Inc. Methods, systems and computer program product for providing verification code recovery and remote authentication
US9210187B1 (en) * 2015-01-13 2015-12-08 Centri Technology, Inc. Transparent denial of service protection
EP3308498A4 (en) * 2015-06-12 2019-01-23 Bicdroid Inc. METHODS AND COMPUTER PROGRAM PRODUCTS FOR THE GENERATION AND MANAGEMENT OF ENCRYPTION KEYS
US9973481B1 (en) * 2015-06-16 2018-05-15 Amazon Technologies, Inc. Envelope-based encryption method
US10033703B1 (en) 2015-06-16 2018-07-24 Amazon Technologies, Inc. Pluggable cipher suite negotiation
US10032044B2 (en) * 2015-08-08 2018-07-24 Airwatch Llc Multi-party authentication and authorization
US9876783B2 (en) * 2015-12-22 2018-01-23 International Business Machines Corporation Distributed password verification
US10103885B2 (en) * 2016-01-20 2018-10-16 Mastercard International Incorporated Method and system for distributed cryptographic key provisioning and storage via elliptic curve cryptography
JP2017169147A (ja) * 2016-03-17 2017-09-21 株式会社東芝 検証装置、電子機器、プログラムおよび検証システム
US9894080B1 (en) * 2016-10-04 2018-02-13 The Florida International University Board Of Trustees Sequence hopping algorithm for securing goose messages
CN106534077B (zh) * 2016-10-18 2019-08-20 华南理工大学 一种基于对称密码的可认证的代理重加密***及方法
CN107995151B (zh) * 2016-10-27 2020-02-21 腾讯科技(深圳)有限公司 登录验证方法、装置及***
JP2018128602A (ja) * 2017-02-09 2018-08-16 日本電気株式会社 暗号化データベース管理装置、暗号化データベース管理方法、暗号化データベース管理プログラムおよび暗号化データベース管理システム
CN108702607B (zh) * 2017-03-14 2021-01-05 华为技术有限公司 一种多设备无线连接方法和设备
CN107426163A (zh) * 2017-05-10 2017-12-01 深圳天珑无线科技有限公司 一种加密的方法及装置
CN109150804B (zh) * 2017-06-16 2022-10-25 中兴通讯股份有限公司 委托登录方法、相关设备和计算机可读存储介质
CN107508679B (zh) * 2017-07-11 2020-07-14 深圳市中易通安全芯科技有限公司 一种智能终端主控芯片与加密芯片的绑定及认证方法
US11563555B2 (en) * 2017-09-26 2023-01-24 Thales Dis Cpl Usa, Inc. Management of encryption agents in data storage systems
US10867055B2 (en) 2017-12-28 2020-12-15 Corlina, Inc. System and method for monitoring the trustworthiness of a networked system
US10951406B2 (en) * 2018-01-24 2021-03-16 Salesforce.Com, Inc. Preventing encryption key recovery by a cloud provider
CN108366052B (zh) * 2018-01-29 2021-01-01 深圳壹账通智能科技有限公司 验证短信的处理方法及***
US11509636B2 (en) 2018-01-30 2022-11-22 Corlina, Inc. User and device onboarding
CN108390758B (zh) * 2018-04-04 2022-02-22 广州赛姆科技资讯股份有限公司 用户口令处理方法、装置和内控安全监察***
CN110636028B (zh) * 2018-06-21 2021-07-27 蔡利锋 密钥生成装置、加密装置、密钥生成和分发***
US11025425B2 (en) 2018-06-25 2021-06-01 Elasticsearch B.V. User security token invalidation
CN110650013B (zh) * 2018-06-27 2022-10-18 上海赢亥信息科技有限公司 一种基于生物特征的密钥恢复方法
US11223626B2 (en) 2018-06-28 2022-01-11 Elasticsearch B.V. Service-to-service role mapping systems and methods
US10848304B2 (en) * 2018-07-17 2020-11-24 Visa International Service Association Public-private key pair protected password manager
US11196554B2 (en) * 2018-07-27 2021-12-07 Elasticsearch B.V. Default password removal
US11005971B2 (en) * 2018-08-02 2021-05-11 Paul Swengler System and method for user device authentication or identity validation without passwords or matching tokens
CN110858249B (zh) * 2018-08-24 2021-11-16 中移(杭州)信息技术有限公司 一种数据库文件加密方法、解密方法和相关装置
US11017108B2 (en) * 2018-10-30 2021-05-25 International Business Machines Corporation Storage unification with security management
CN110012048B (zh) 2018-11-22 2021-11-12 创新先进技术有限公司 信息识别码生成方法、装置、电子设备及计算机存储介质
JP7174237B2 (ja) * 2018-11-29 2022-11-17 富士通株式会社 鍵生成装置、鍵更新方法および鍵更新プログラム
US11023598B2 (en) 2018-12-06 2021-06-01 Elasticsearch B.V. Document-level attribute-based access control
US10721311B1 (en) * 2019-01-11 2020-07-21 Accenture Global Solutions Limited System and method for coupling two separate applications to an application session within a serverless infrastructure
KR102413497B1 (ko) * 2019-01-28 2022-06-24 크넥트아이큐 인크. 보안 전자 데이터 전송을 위한 시스템 및 방법
JP7300866B2 (ja) * 2019-03-28 2023-06-30 オムロン株式会社 制御システム
CN110008725B (zh) * 2019-04-01 2021-08-24 山东睿德科技成果转化有限公司 一种用户结构化数据处理***
US11533167B2 (en) 2019-05-27 2022-12-20 BicDroid Inc. Methods and devices for optimal information-theoretically secure encryption key management
CN112231716A (zh) * 2019-07-15 2021-01-15 珠海艾派克微电子有限公司 数据的防盗装置和防盗方法
CN114467279A (zh) * 2019-07-31 2022-05-10 奇跃公司 使用分布式账本用于增强现实的用户数据管理
EP3772795A1 (de) * 2019-08-05 2021-02-10 Siemens Aktiengesellschaft Registrieren eines geräts bei einer recheneinrichtung
US11817209B2 (en) 2019-08-20 2023-11-14 Rune Labs, Inc. Neuromodulation therapy development environment
US11779764B2 (en) 2019-08-20 2023-10-10 Rune Labs, Inc. Neuromodulation therapy monitoring and continuous therapy reprogramming
US20210058257A1 (en) * 2019-08-20 2021-02-25 Rune Labs, Inc. Security and identity verification for neuromodulation therapy implant device programming
CN110808961B (zh) * 2019-10-16 2022-02-01 上海易点时空网络有限公司 用于安全验证的数据处理方法及装置
JP2021149417A (ja) * 2020-03-18 2021-09-27 キオクシア株式会社 記憶装置および制御方法
WO2021258109A1 (en) * 2020-06-17 2021-12-23 The Regents Of The University Of California Extra-compact key with reusable common key for encryption
CN111884800A (zh) * 2020-07-31 2020-11-03 青岛海信智慧家居***股份有限公司 一种对电子密钥进行同步的方法和设备及***
CN114553445A (zh) * 2020-11-10 2022-05-27 腾讯科技(深圳)有限公司 设备方法、装置、电子设备及可读存储介质
CN112463454B (zh) * 2020-12-04 2021-11-05 北京深思数盾科技股份有限公司 数据恢复方法、服务器、终端设备及存储介质
CN112613058A (zh) * 2020-12-30 2021-04-06 绿盟科技集团股份有限公司 一种加密密钥的找回方法、装置、电子设备及存储介质
CN114036495B (zh) * 2022-01-11 2022-03-25 北京顶象技术有限公司 一种更新私有化部署验证码***的方法及装置

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5297207A (en) 1993-05-24 1994-03-22 Degele Steven T Machine generation of cryptographic keys by non-linear processes similar to processes normally associated with encryption of data
US5455862A (en) * 1993-12-02 1995-10-03 Crest Industries, Inc. Apparatus and method for encrypting communications without exchanging an encryption key
EP0804758B1 (en) 1994-07-29 2005-11-09 Certicom Corp. Elliptic curve encryption systems
US5937066A (en) * 1996-10-02 1999-08-10 International Business Machines Corporation Two-phase cryptographic key recovery system
US20020131592A1 (en) 2001-03-16 2002-09-19 Harris Hinnant Entropy sources for encryption key generation
EP1425874B1 (en) 2001-08-13 2010-04-21 Board Of Trustees Of The Leland Stanford Junior University Systems and methods for identity-based encryption and related cryptographic techniques
US7346167B2 (en) * 2002-05-10 2008-03-18 Harris Corporation Secure mobile ad-hoc network and related methods
US7822797B2 (en) * 2002-07-29 2010-10-26 Broadcom Corporation System and method for generating initial vectors
US20040059913A1 (en) 2002-09-13 2004-03-25 Sun Microsystems, Inc., A Delaware Corporation Accessing for controlled delivery of digital content in a system for digital content access control
US7379551B2 (en) 2004-04-02 2008-05-27 Microsoft Corporation Method and system for recovering password protected private data via a communication network without exposing the private data
EP1825412A1 (en) 2004-10-25 2007-08-29 Rick L. Orsini Secure data parser method and system
US20070067833A1 (en) * 2005-09-20 2007-03-22 Colnot Vincent C Methods and Apparatus for Enabling Secure Network-Based Transactions
JP2008131072A (ja) * 2006-11-16 2008-06-05 Sony Corp 情報処理装置、端末装置、情報処理方法、及び鍵生成方法
EP2127195A2 (en) * 2007-01-22 2009-12-02 Global Crypto Systems Methods and systems for digital authentication using digitally signed images
CN101682506B (zh) * 2007-05-18 2013-10-16 美国唯美安视国际有限公司 用于确定在保护数据时应用的可编程处理步骤的***和方法
US8006291B2 (en) * 2008-05-13 2011-08-23 Veritrix, Inc. Multi-channel multi-factor authentication
KR101465263B1 (ko) * 2008-06-11 2014-11-26 삼성전자주식회사 휴대 방송 시스템에서 암호화 키 분배 방법 및 이를 위한시스템
KR101514840B1 (ko) * 2008-06-11 2015-04-23 삼성전자주식회사 휴대 방송 시스템에서의 암호화 키 분배 방법 및 이를 위한시스템
US8245039B2 (en) 2008-07-18 2012-08-14 Bridgewater Systems Corp. Extensible authentication protocol authentication and key agreement (EAP-AKA) optimization
TW201105083A (en) * 2009-03-25 2011-02-01 Pacid Technologies Llc Token for securing communication
US8588410B2 (en) * 2009-04-06 2013-11-19 Elster Electricity, Llc Simplified secure symmetrical key management
JP5757536B2 (ja) * 2009-05-19 2015-07-29 セキュリティー ファースト コープ. クラウド内にデータを確保するシステムおよび方法
US9525999B2 (en) * 2009-12-21 2016-12-20 Blackberry Limited Method of securely transferring services between mobile devices
US8312519B1 (en) * 2010-09-30 2012-11-13 Daniel V Bailey Agile OTP generation
US20140040622A1 (en) * 2011-03-21 2014-02-06 Mocana Corporation Secure unlocking and recovery of a locked wrapped app on a mobile device
EP2512061A1 (en) * 2011-04-15 2012-10-17 Hanscan IP B.V. System for conducting remote biometric operations
EP2571192A1 (en) 2011-09-16 2013-03-20 Certicom Corp. Hybrid encryption schemes
US8892866B2 (en) * 2011-09-26 2014-11-18 Tor Anumana, Inc. Secure cloud storage and synchronization systems and methods
US8924712B2 (en) * 2011-11-14 2014-12-30 Ca, Inc. Using QR codes for authenticating users to ATMs and other secure machines for cardless transactions
US9323912B2 (en) * 2012-02-28 2016-04-26 Verizon Patent And Licensing Inc. Method and system for multi-factor biometric authentication
US9106411B2 (en) * 2012-09-30 2015-08-11 Apple Inc. Secure escrow service
US8997197B2 (en) * 2012-12-12 2015-03-31 Citrix Systems, Inc. Encryption-based data access management
US9639710B2 (en) 2013-12-23 2017-05-02 Symantec Corporation Device-based PIN authentication process to protect encrypted data
US9576149B2 (en) * 2014-06-13 2017-02-21 BicDroid Inc. Methods, systems and computer program product for providing verification code recovery and remote authentication

Also Published As

Publication number Publication date
WO2015188277A1 (en) 2015-12-17
EP3451575A1 (en) 2019-03-06
CN106664202B (zh) 2020-04-03
EP3451575B1 (en) 2021-01-06
EP3155754A4 (en) 2018-01-17
US9832016B2 (en) 2017-11-28
EP3155754B1 (en) 2018-10-24
EP3155754A1 (en) 2017-04-19
US9619667B2 (en) 2017-04-11
EP3451575B8 (en) 2021-03-17
CN106664202A (zh) 2017-05-10
CN107925577B (zh) 2020-04-24
WO2016197250A1 (en) 2016-12-15
CN107925577A (zh) 2018-04-17
US20150363607A1 (en) 2015-12-17
US20170118019A1 (en) 2017-04-27
US9576149B2 (en) 2017-02-21
US20150365232A1 (en) 2015-12-17

Similar Documents

Publication Publication Date Title
ES2713673T3 (es) Procedimientos, sistemas y producto de programa de ordenador para proporcionar encriptado en una pluralidad de dispositivos
US11184157B1 (en) Cryptographic key generation and deployment
US10129240B2 (en) Distributing security codes through a restricted communications channel
US10116645B1 (en) Controlling use of encryption keys
US20200084027A1 (en) Systems and methods for encryption of data on a blockchain
US10320765B2 (en) Method and system for securing communication
US8462955B2 (en) Key protectors based on online keys
US20150244522A1 (en) Method and system for providing data security
US10003467B1 (en) Controlling digital certificate use
US11387999B2 (en) Access to secured information
US10250576B2 (en) Communication of messages over networks
US11153074B1 (en) Trust framework against systematic cryptographic
CN110445840B (zh) 一种基于区块链技术的文件存储和读取的方法
US20220360429A1 (en) Location-key encryption system
EP3886355B1 (en) Decentralized management of data access and verification using data management hub
CN113111396B (zh) 一种增强存储媒体安全性的方法及***及装置及介质
US11012245B1 (en) Decentralized management of data access and verification using data management hub
US10931454B1 (en) Decentralized management of data access and verification using data management hub
JP2013179473A (ja) アカウント生成管理システム、アカウント生成管理サーバ、アカウント生成管理方法及びアカウント生成管理プログラム
Kumar Yadav et al. An Efficient Approach for Security in Cloud Computing
CN113449345A (zh) 一种由微处理器实现的用于保护数据的方法及***
Figueira Elliptic Curve Cryptography Services for Mobile Operating Systems