ES2960797T3 - Encadenamiento seguro e implícito de certificados - Google Patents

Encadenamiento seguro e implícito de certificados Download PDF

Info

Publication number
ES2960797T3
ES2960797T3 ES19207028T ES19207028T ES2960797T3 ES 2960797 T3 ES2960797 T3 ES 2960797T3 ES 19207028 T ES19207028 T ES 19207028T ES 19207028 T ES19207028 T ES 19207028T ES 2960797 T3 ES2960797 T3 ES 2960797T3
Authority
ES
Spain
Prior art keywords
public key
certificate
certification authority
message
entity
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
ES19207028T
Other languages
English (en)
Inventor
David William Kravitz
Gregory Marc Zaverucha
Daniel Richard L Brown
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.)
BlackBerry Ltd
Original Assignee
BlackBerry Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by BlackBerry Ltd filed Critical BlackBerry Ltd
Application granted granted Critical
Publication of ES2960797T3 publication Critical patent/ES2960797T3/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/006Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving public key infrastructure [PKI] trust models
    • H04L9/007Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving public key infrastructure [PKI] trust models involving hierarchical structures
    • 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/321Cryptographic 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 involving a third party or a trusted authority
    • 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/3247Cryptographic 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 involving digital signatures
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

Se describen métodos, sistemas y programas informáticos para utilizar un certificado implícito. En algunos aspectos, se accede a un certificado implícito. El certificado implícito está asociado con una entidad y generado por una autoridad certificadora. El certificado implícito incluye un valor de reconstrucción de clave pública de la entidad. Se accede a la información de la clave pública de la autoridad certificadora. La información de la clave pública de la autoridad de certificación está asociada con la autoridad de certificación que emitió el certificado implícito. Se genera un primer valor basado en la evaluación de una función hash. La función hash se evalúa en función de la información de la clave pública de la autoridad certificadora y el valor de reconstrucción de la clave pública de la entidad. Se puede generar o utilizar de otro modo un valor de clave pública de la entidad en función del primer valor. (Traducción automática con Google Translate, sin valor legal)

Description

DESCRIPCIÓN
Encadenamiento seguro e implícito de certificados
Antecedentes
Esta memoria descriptiva se refiere al uso de certificados implícitos en un sistema de criptografía. Los sistemas de criptografía pueden proporcionar comunicación segura a través de canales públicos. Por ejemplo, los esquemas de firma digital pueden implementarse en un sistema de criptografía de clave pública. En algunos sistemas de criptografía, los usuarios verifican la autenticidad de otras firmas digitales de usuarios basándose en certificados emitidos por un tercero fiable.
El documento WO2010/129694A1 describe sistemas y métodos para crear un certificado implícito autofirmado. El certificado implícito autofirmado se genera y opera tras usar transformaciones de una naturaleza similar a las transformaciones utilizadas en el protocolo de curva elíptica Qu-Vanstone, ECQV. En tal sistema, una autoridad de certificación raíz u otro dispositivo informático evita tener que generar un certificado explícito autofirmado, generando en cambio un certificado implícito autofirmado.
Breve descripción de los dibujos
La Fig. 1 es un diagrama esquemático de un sistema de comunicación de datos ilustrativo.
La Fig. 2 es un diagrama esquemático de otro ejemplo de sistema de comunicación de datos.
La Fig. 3 es un diagrama esquemático de un sistema de criptografía ilustrativo.
La Fig.4 es un diagrama de flujo que muestra una técnica ilustrativa para realizar operaciones en un sistema de criptografía.
La Fig. 5 es un diagrama de flujo que muestra una técnica ilustrativa para utilizar firmas digitales.
Números de referencia y designaciones iguales en los diversos dibujos indican elementos iguales.
Descripción detallada
Las claves públicas, las firmas digitales, o ambas, pueden generarse y/o utilizarse según técnicas que reducen la probabilidad de que ciertos ataques tengan éxito contra un esquema criptográfico basado en certificados implícitos. En algunos casos, pueden implementarse una o más técnicas como contramedida contra ataques de encadenamiento u otros tipos de ataques. Las contramedidas pueden representar una clase de soluciones que pueden utilizarse para reducir eficazmente la capacidad de un adversario para falsificar certificados implícitos o firmas implícitos que se asocian a claves públicas certificadas implícitamente. Las técnicas pueden implementarse eficazmente, por ejemplo, en casos en los que la parte confiante es una entidad de extremo dentro de una infraestructura de clave pública, en los casos en los que la parte confiante es una autoridad de certificación subordinada a otra autoridad de certificación, o en otros casos.
Como tal, un esquema de certificado implícito puede incluir uno o más componentes de contramedida. En algunos casos se aplica un componente de contramedida en el algoritmo utilizado para la reconstrucción de una clave pública del sujeto de su certificado implícito. Algunas de las técnicas de contramedida ilustrativas que pueden aplicarse en las fórmulas de construcción de clave pública se describen a continuación con respecto a las Figs. 2 y 4. En algunos casos, un componente de contramedida se aplica en el algoritmo utilizado para la verificación basada en certificados implícitos de una firma digital en un mensaje. A continuación se describen algunas técnicas de contramedida ilustrativas que pueden aplicarse a las fórmulas de generación y verificación digitales de firma con respecto a las Figs. 3 y 5. En algunos casos, se utiliza una combinación de estos componentes de contramedida y otros adicionales o distintos.
La Fig. 1 es un diagrama esquemático de un ejemplo de sistema 100 de comunicación de datos, que muestra un contexto ilustrativo donde pueden implementarse un esquema criptográfico basado en certificado implícito y contramedidas asociadas. Los esquemas criptográficos basados en certificado implícito y las contramedidas asociadas pueden implementarse en otros contextos. El sistema 100 de comunicación de datos incluye un servidor 104 de autoridad de certificación, dos terminales 102, 106 y una red 108 de datos. El sistema 100 de comunicación de datos puede incluir componentes adicionales, menos componentes o componentes distintos. Por ejemplo, el sistema 100 de comunicación de datos puede incluir dispositivos de almacenamiento adicionales, servidores adicionales (incluyendo servidores de autoridad de certificación adicionales), terminales adicionales y otras características no mostradas en la figura.
El servidor 104 de autoridad de certificación y los terminales 102, 106 pueden comunicarse entre sí y con otros componentes del sistema 100 de comunicación de datos a través de la red 108 de datos. En el ejemplo mostrado en la Fig. 1, el terminal 102 puede enviar una solicitud 120 de certificado al servidor 104 de autoridad de certificación, y el servidor 104 de autoridad de certificación puede responder enviando un certificado implícito 122 al terminal 102. El terminal 102 puede enviar un mensaje firmado 124 al terminal 106, y el terminal 106 puede verificar la autenticidad del mensaje firmado 124 utilizando el certificado implícito 122 emitido por el servidor 104 de autoridad de certificación. El sistema 100 de comunicación de datos puede soportar tipos de comunicación adicionales o diferentes. En algunas implementaciones, los terminales 102, 106 también pueden intercambiar mensajes cifrados y otros tipos de información entre sí, con el servidor 104 de autoridad de certificación, y con otros componentes del sistema 100 de comunicación de datos.
En algunas implementaciones, el mensaje firmado 124 incluye una firma certificada implícitamente. La firma certificada implícitamente puede ser una firma digital en el mensaje, o la firma certificada implícitamente puede ser una firma digital en una versión modificada del mensaje. El mensaje puede firmarse y verificarse con un par de claves certificadas implícitamente. Los esquemas de certificado implícito y los esquemas de firma que utilizan certificados implícitos pueden parametrizarse basándose en un nivel de seguridad deseado, que puede representarse como k, por ejemplo, en bits. Ejemplos de esquemas de certificado implícitos incluyen los Esquemas de certificado implícito de curva elíptica de Qu-Vanstone (ECQV) y los Esquemas de certificado implícito de certificado de envío óptimo (OMC). Pueden utilizarse esquemas de certificado implícitos adicionales o distintos. Ejemplos de esquemas de firma digital que pueden utilizar certificados implícitos incluyen el esquema de firma de curva elíptica de Pintsov-Vanadowat (ECPV), el esquema de firma ECPV enclavada y el esquema de firma de Schnorr. Pueden utilizarse esquemas de firma digital adicionales o distintos.
El esquema de firma de ECPV es un esquema de firma con recuperación parcial de mensajes. Las normas ANSI X9.62, IEEE P1363a e ISO 9796-3 especifican implementaciones ilustrativas del esquema de firma ECPV (con funciones hash de salida de 2<k>bits). El paquete E especifica un ejemplo de firmas ECPV con salida de<k>bits (específicamente, AES-128-MMO). La variante enclavada del esquema de firma ECPV permite que el firmante encripte la parte recuperable del mensaje firmado de tal modo que solo el destinatario previsto pueda recuperarlo. Otras partes aún pueden verificar la firma en la parte pública del mensaje.
El esquema de certificado implícito ECQV es un esquema de certificado implícito ilustrativo. Se describe una implementación del esquema ECQV en la norma Standards for Efficient Cryptography 4 (SEC 4), versión 2.0, publicada en mayo de 2009 por Standards for Efficient Cryptography Group (SECG). La norma SEC 4 especifica el uso de una función hash con salida de 2<k>bits. El paquete E también especifica ECQV, pero con una función hash corta (<k>bits) AES-128-MMO.
En algunos aspectos, los certificados implícitos pueden permitir a una parte confiante hacer uso de una infraestructura de clave pública sin la necesidad de un transporte explícito de la clave pública a la parte confiante. La clave pública puede utilizarse dentro de un protocolo criptográfico, tal como para el propósito de verificar la integridad y la autenticidad de origen de los mensajes previstos para haber sido firmados por el propietario de esa clave pública. Comparado con certificados explícitos incluidos dentro del cuerpo del certificado de la clave pública del sujeto, el identificador del sujeto y una firma digital generada por autoridad de certificación en al menos la clave pública del sujeto y el identificador del sujeto, un certificado implícito puede ser más compacto. En algunas implementaciones, el certificado implícito no contiene explícitamente la clave pública del sujeto, sino que permite reconstruir la clave pública del sujeto a partir del certificado implícito. En algunas implementaciones, un certificado implícito puede contener explícitamente la clave pública del sujeto. La parte confiante puede utilizar la clave pública de autoridad de certificación para reconstruir la clave pública del sujeto.
En el ejemplo que se muestra en la Fig. 1, el esquema de certificado implícito es utilizado por tres partes: una autoridad de certificación, un solicitante de certificado y un procesador de certificado. En el ejemplo mostrado, la entidad solicitante obtiene un certificado implícito de la entidad emisora de certificados. El certificado implícito certifica la identidad del solicitante y permite que la entidad de procesador obtenga la clave pública del solicitante. De forma más general, entidades adicionales o distintas pueden utilizar un esquema de certificado implícito en algunos contextos.
Como ejemplo de un esquema de certificado implícito, algunas implementaciones del esquema de certificado implícito ECQV pueden describirse en términos de seis aspectos de operación. Estos seis aspectos pueden realizarse en cualquier orden o combinación adecuados. Además, los esquemas de certificado implícitos pueden implementarse con menos aspectos de operación, con aspectos adicionales, o con aspectos distintos. La descripción de seis aspectos de funcionamiento ilustrativo se proporciona aquí a modo ilustrativo.
Un primer aspecto del esquema de certificado implícito ECQV es la operación de configuración de ECQV. En esta etapa, la autoridad de certificación establece los parámetros de dominio de curva elíptica, una función hash, el formato de codificación de certificado y las entidades tienen un generador de números aleatorios. La autoridad de certificación genera un par de claves. Las entidades reciben copias auténticas de parámetros de dominio y clave pública de autoridad de certificación. Puede utilizarse cualquier técnica adecuada para implementar la configuración ECQV.
Un segundo aspecto del esquema de certificado implícito ECQV es la operación de solicitud de certificado. El solicitante del certificado genera una solicitud de un certificado. La solicitud se envía a la autoridad de certificación. El componente criptográfico de la solicitud es una clave pública, generada que utiliza el mismo procedimiento que utiliza la autoridad de certificación durante la configuración de ECQV. Puede utilizarse cualquier técnica adecuada para implementar la solicitud de certificado.
Un tercer aspecto del esquema de certificado implícito ECQV es la operación de generación de certificados. Tras recibir la solicitud de certificado, la autoridad de certificación confirma la identidad del solicitante y crea un certificado implícito. La entidad emisora de certificados envía la respuesta a la entidad solicitante. Puede utilizarse cualquier técnica adecuada para implementar la generación de certificados.
Un cuarto aspecto del esquema de certificado implícito ECQV es la operación de extracción de clave pública certificada. Dado un certificado implícito para la entidad solicitante, los parámetros de dominio y la clave pública de autoridad de certificación, el algoritmo de extracción de clave pública calcula la clave pública del solicitante. Puede utilizarse cualquier técnica adecuada para implementar la extracción de clave pública certificada.
Un quinto aspecto del esquema de certificado implícito ECQV es la operación de recepción de certificados. Después de recibir una respuesta a la solicitud de certificados, el solicitante calcula su par de claves certificado implícitamente, y se asegura de que el par de claves sea válido. Puede utilizarse cualquier técnica adecuada para implementar la recepción certificada.
Un sexto aspecto del esquema de certificado implícito ECQV es la operación de verificación de firma ECQV. En algunas implementaciones, el certificado implícito ECQV puede aumentarse con información adicional que forma una firma explícita en el certificado del solicitante. Puede utilizarse cualquier técnica adecuada para implementar la verificación de firma.
En algunos casos, la emisión implícita de certificados puede implementarse como un protocolo de dos pasos entre la autoridad solicitante y de certificación, donde el primer flujo es la solicitud de certificado del solicitante, y el segundo flujo es la respuesta de autoridad de certificación, que contiene el certificado.
En un aspecto ilustrativo de funcionamiento, la entidad solicitante, la autoridad de certificación y la entidad de verificador (o procesador) tienen acceso a parámetros de dominio de curva elíptica (incluyendo un generador G de un grupo), un generador de números aleatorios, una función hash H, un esquema de codificación de certificado, tipos de datos válidos y cualquier otro parámetro o funciones utilizados para llevar a cabo el esquema. Algunos o todos los parámetros y funciones pueden seleccionarse basándose en un nivel de seguridad especificado en el sistema de criptografía. Se ha asignado al solicitante un identificador único I. El solicitante genera una solicitud (I, R<u>) seleccionando un valor ku<e>R [1, n-1] y calculando R<u>:= kuG. Aquí, ku puede ser un número entero, G puede ser un generador de un grupo de curva elíptica, y R<u>puede ser un punto de curva elíptica en el grupo. El solicitante envía la solicitud a la autoridad de certificación. La autoridad de certificación genera un certificado implícito Certu basado en la solicitud. Para generar la solicitud, la autoridad de certificación selecciona un valor aleatorio k E<r>[1,n - 1] y genera datos de reconstrucción de clave pública P calculando P = R<u>+ kG. Aquí, k puede ser un número entero, y P puede ser un punto de curva elíptica en el grupo de curva elíptica para el cual G es un generador. La autoridad de certificación genera a continuación el certificado implícito Certu mediante una rutina de codificación de certificados Certu := Encode(P,I,*). A continuación, la autoridad de certificación genera un valor hash e calculando e := Hn(Certu), y un valor de contribución de clave privada r calculando r := ek+dcA mod n. Aquí, r representa un número entero, la función Hn representa una función hash y la salida de Hn puede ser un número entero mod n. El argumento “ *” en la función Encode() puede representar un comodín para permitir que la autoridad de certificación incluya datos adicionales en el certificado, por ejemplo, como se describe a continuación.
Ejemplos de esquemas de codificación de certificados implícitos incluyen el esquema de campo de longitud fija, el esquema de codificación de ASN mínimo, el esquema de codificación ASN de X.509, y otros. Puede utilizarse el esquema de campo de longitud fija y el esquema de codificación ASN.1 para lograr una mayor eficiencia de ancho de banda en algunos casos. El esquema de codificación ASN.1 compatible con X.509 genera un certificado implícito que puede recodificarse como un certificado X.509 estándar (p. ej., con o sin un valor de firma explícita). Un certificado codificado por el esquema de campo de longitud fija puede incluir una serie de campos, teniendo cada uno de ellos una longitud fija. Por ejemplo, pueden acordarse todas las entidades en un número de campos fn en el certificado, una longitud de octeto para cada uno de los campos, un valor de índice i que indica qué campo contendrá los datos de reconstrucción de clave pública y las reglas de validez para cada uno de los elementos de campo. En algunas implementaciones, uno de los campos del certificado es los datos de reconstrucción de clave pública, y los otros campos pueden tener un formato abierto. Por ejemplo, los otros campos pueden incluir valores tales como la dirección de correo electrónico del solicitante o una fecha de caducidad para el certificado implícito.
En un aspecto de operación ilustrativo, la autoridad de certificación envía al solicitante a los datos de contribución de clave privada r y el certificado implícito Certu. El solicitante utiliza los datos de certificado para generar el par de claves de curva elíptica del solicitante (b, B). El solicitante puede generar el par de claves de curva elíptica (b, B) calculando el valor hash e:= Hn(CertU), calculando el valor de clave privada b = eku+r (mod n), y calculando el valor de clave pública B = eP C. Las operaciones ilustrativas pueden adaptarse o modificarse para tipos adicionales o distintos de esquemas de certificado implícitos.
En el ejemplo mostrado en la Figura 1, el servidor 104 de autoridad de certificación es un sistema informático que puede realizar operaciones de una autoridad de certificación en un sistema de criptografía. El servidor 104 de autoridad de certificación funciona generalmente para recibir, transmitir, procesar y almacenar información asociada con el sistema de criptografía. Aunque la Fig. 1 muestra un único servidor 104 de autoridad de certificación, una autoridad de certificación puede implementarse utilizando múltiples servidores 104 de autoridad de certificación, incluyendo clústeres de servidores, así como tipos adicionales o distintos de dispositivos informáticos que no sean servidores.
El servidor 104 de autoridad de certificación incluye de forma general un aparato de procesamiento de datos, un medio de almacenamiento de datos y una interfaz de comunicación de datos. Por ejemplo, el servidor 104 de autoridad de certificación puede incluir un procesador, una memoria, un controlador de entrada/salida y/u otras características. Una memoria puede incluir, por ejemplo, una memoria de acceso aleatorio (RAM), un dispositivo de almacenamiento (por ejemplo, una memoria de solo lectura (ROM), etc.), un disco duro, una memoria de memoria intermedia u otro tipo de medio de almacenamiento. La memoria puede almacenar instrucciones (p. e j, código informático) asociado con aplicaciones informáticas, programas y módulos de programas informáticos, y otros recursos. El procesador puede incluir cualquier tipo de aparato de procesamiento de datos, por ejemplo, un microprocesador de propósito general, un procesador especializado, un controlador digital u otro tipo de dispositivo. Puede acoplarse un controlador de entrada/salida a dispositivos de entrada/salida (p. ej., un monitor, un teclado, etc.) y a la red 108 de datos. Los dispositivos de entrada/salida pueden recibir y transmitir datos en forma analógica o digital a través de enlaces de comunicación tales como un enlace en serie, enlace inalámbrico (por ejemplo, infrarrojos, radiofrecuencia, etc.), enlace paralelo u otro tipo de enlace.
La red 108 de datos puede incluir cualquier tipo adecuado de red de comunicación de datos. Por ejemplo, la red 108 de datos puede incluir una red inalámbrica o por cable, una red celular, una red de telecomunicaciones, una red de empresa, una red pública de aplicación específica, una red de área Local (LAN), una Red de área amplia (WAN), una red privada, una red pública (tal como Internet), una red WiFi, una red que incluye un enlace satelital u otro tipo de red de comunicación de datos. La red 108 de datos puede incluir una estructura escalonada definida por cortafuegos o características similares que implementan diversos niveles de seguridad.
Los terminales 102, 106 son dispositivos informáticos que pueden comunicarse basándose en los esquemas de comunicación especificados por un sistema 100 de comunicación de datos. Los terminales 102, 106 funcionan de forma general para recibir, transmitir, procesar y almacenar información. Aunque la Fig. 1 muestra dos terminales 102 y 106, un sistema 100 de comunicación de datos puede incluir cualquier número de terminales. El sistema 100 de comunicación de datos puede incluir grupos o subgrupos de terminales que pueden comunicarse entre sí, pero no necesariamente con los terminales en otros grupos o subgrupos. El sistema 100 de comunicación de datos puede incluir terminales de tipos dispares, que tienen diferentes tipos de configuraciones de hardware y software, y en una variedad de localizaciones distintas. En algunos casos, pueden identificarse múltiples dispositivos o subsistemas juntos como un único terminal. Los terminales en el sistema 100 de comunicación de datos pueden utilizar cada uno un certificado implícito emitido por el servidor 104 de autoridad de certificación.
Los terminales 102 incluyen, de forma típica, un aparato de procesamiento de datos, un medio de almacenamiento de datos y una interfaz de comunicación de datos. Por ejemplo, los terminales 102 pueden incluir una memoria, un procesador y un controlador de entrada/salida. Un terminal puede incluir dispositivos de interfaz de usuario, por ejemplo, un monitor, pantalla táctil, ratón o teclado. La memoria del terminal puede almacenar instrucciones (p. ej., código informático) asociadas con aplicaciones informáticas, programas y módulos de programas informáticos, y otros recursos.
Los terminales 102 pueden implementarse como dispositivos de mano tales como teléfonos inteligentes, asistentes digitales personales (PDA), reproductores de medios portátiles, ordenadores portátiles, portátiles, tabletas y otros. Los terminales pueden incluir estaciones de trabajo, ordenadores centrales, sistemas informáticos no portátiles, dispositivos instalados en estructuras, vehículos y otros tipos de instalaciones. Los terminales pueden incluir dispositivos de comunicación integrados. Por ejemplo, los terminales pueden incluir dispositivos de mensajería que están integrados en medidores de energía inteligente de un sistema de energía inteligente. También pueden utilizarse otros tipos de terminales.
Un terminal puede asociarse a una entidad de usuario particular, a una identidad de usuario particular o a cualquier combinación de las mismas. Uno o más de los terminales pueden estar asociados a un usuario humano. En algunas implementaciones, los terminales no están asociados a ningún usuario humano particular. Uno o más de los terminales pueden estar asociados a un dispositivo particular, una ubicación particular, una instalación particular u otra información de identificación.
En un aspecto de operación, el terminal 102 envía la solicitud 120 de certificado al servidor 104 de autoridad de certificación, y el servidor 104 de autoridad de certificación genera el certificado implícito 122 para el terminal 102. El certificado implícito 122 asocia un valor de clave pública particular con una entidad de usuario particular (p. ej., el terminal 102, un usuario asociado al terminal 102, un módulo implementado en el terminal 102, etc.). El terminal 102 recibe el certificado implícito 122 del servidor 104 de autoridad de certificación. Cuando el terminal 102 tiene un mensaje para enviar al terminal 106, el terminal 102 genera una firma digital para el mensaje utilizando el certificado implícito 122. La firma digital se combina con el mensaje para formar el mensaje firmado 124, que el terminal 102 envía al terminal 106. En algunas implementaciones, la firma digital y el mensaje se envían por separado. El terminal 106 recibe el mensaje firmado 124, obtiene el certificado implícito 122, y verifica la firma digital basándose en el certificado implícito 122. Los certificados implícitos también pueden utilizarse en otros tipos de esquemas, por ejemplo, esquemas de cifrado.
Un esquema de certificado implícito implementado por el sistema 100 de comunicación de datos permite que los terminales 102, 106 se comuniquen entre sí de manera segura, incluso cuando las comunicaciones en la red 108 de datos sean observables por usuarios maliciosos o cuando usuarios maliciosos manipulan el sistema 100 de comunicación (p. ej., manipulan comunicaciones de terminales honestos). El certificado implícito 122 se une a una entidad de usuario asociada a terminal 102 a un valor de clave pública particular que puede utilizarse para verificar firmas digitales generadas por el terminal 102. El terminal 106 puede obtener el certificado implícito 122 para verificar que la firma digital fue generada por la entidad de usuario asociada al terminal 102, y no por un impostor. El terminal 106 también puede verificar que el certificado implícito 122 fue generado por una tercera parte fiable en el servidor 104 de autoridad de certificación. De este modo, el certificado implícito 122 puede proporcionar confirmación por el tercero fiable de que el mensaje firmado 124 estaba firmado por la entidad de usuario asociada al terminal 102 y no por un impostor.
El certificado implícito 122 ilustrativo incluye una identificación de la entidad de usuario asociada al terminal 102. El certificado implícito 122 ilustrativo incluye información que puede utilizarse para construir la clave pública de la entidad de usuario. En algunos casos, utilizar el certificado implícito 122 para verificar una firma digital también confirma que la entidad de usuario está en posesión de la clave privada correspondiente. El certificado implícito 122 ilustrativo mostrado en la Fig. 1 no incluye una declaración explícita de la clave pública ni una declaración explícita de la firma digital de la autoridad de certificación. Por lo tanto, en algunas implementaciones, el certificado implícito 122 es más compacto que algunos otros tipos de certificados digitales. En algunos casos, el certificado implícito 122 incluye una firma digital de la autoridad de certificación que permite a las entidades de usuario, por ejemplo, una entidad de usuario asociada con el terminal 106, verificar que el certificado implícito 122 fue generado por la autoridad de certificación fiable. La autoridad de certificación puede requerir, en algunos casos, que la entidad de usuario demuestre conocimiento de la clave privada de la entidad de usuario. En algunos casos, el certificado implícito 122 incluye una declaración explícita de la clave pública del usuario.
En lugar de declarar explícitamente la clave pública del terminal 102, el certificado implícito 122 ilustrativo en la Figura 1 incluye datos de reconstrucción de claves públicas que pueden combinarse con otra información (p. ej., la clave pública de autoridad de certificación, etc.) para generar la clave pública de la entidad de usuario asociada con el terminal 102. El certificado implícito 122 ilustrativo se construye de modo que la verificación exitosa de una firma digital generada por el terminal 102 sirva como confirmación de que el terminal 102 está en posesión de la clave privada. Por lo tanto, según algunos esquemas de certificado implícitos, la unión de una entidad de usuario a su clave pública y el conocimiento de la entidad de usuario de su clave privada puede verificarse al unísono durante el uso de la clave.
Debido a que el certificado implícito 122 ilustrativo no incluye una representación explícita de la clave pública del terminal 102, es posible en algunos casos la autoridad de certificación emita el certificado implícito 122, y para los terminales 102, 106 utilizar el certificado implícito 122 sin generar nunca una declaración explícita del valor de clave pública. Por ejemplo, en algunos sistemas de criptografía de curva elíptica, el valor de la clave pública puede expresarse B = eP C, y en vez de calcular explícitamente el valor de la clave pública B, los terminales 102, 106 incorporan los valores e, p, y C en una ecuación más grande (p. ej., una ecuación de firma o una ecuación de verificación) cuando utilizan la clave pública, por ejemplo, para generar o verificar una firma digital. Como tal, la clave pública puede utilizarse potencialmente en efecto, sin calcular explícitamente la clave pública.
La Fig. 2 es un diagrama esquemático de otro ejemplo de sistema 200 de comunicación de datos. El sistema 200 de comunicación de datos incluye servidores 204a, 204b y 204x de autoridad de certificación, terminales 202 y 206, una red 208 de datos y un adversario 212. El sistema 200 de comunicación de datos puede incluir componentes adicionales, menos componentes o componentes distintos. Por ejemplo, el sistema 200 de comunicación de datos puede incluir dispositivos de almacenamiento adicionales, servidores adicionales (incluyendo servidores de autoridad de certificación adicionales), terminales adicionales, adversarios adicionales y otras características no mostradas en la figura. En algunas implementaciones ilustrativas, el terminal 202 puede implementarse como el terminal 102 de la Fig. 1 y el terminal 206 puede implementarse como el terminal 106 de la Fig.1. En algunas implementaciones ilustrativo, cada uno de los servidores 204a, 204b, 204x de autoridad de certificación puede implementarse como el servidor 104 de autoridad de certificación de la Fig. 1. El adversario 212 puede implementarse como un terminal, un servidor o cualquier otro dispositivo o sistema informático adecuado.
Los terminales 202, 206 pueden intercambiar mensajes basándose en un esquema de certificado implícito. Por ejemplo, el esquema de certificado implícito puede utilizarse para la autenticación de datos, el cifrado de datos o una combinación de estas y otras funciones. En algunos ejemplos, el terminal 202 envía mensajes al terminal 206, y el terminal 202 puede cifrar los mensajes, firmar los mensajes, o ambos basándose en un certificado implícito emitido por uno de los servidores 204a, 204b, 204x de autoridad de certificación. El adversario 212 puede observar comunicaciones en la red 208 y los ataques de lanzamiento que intentan comprometer la seguridad del esquema de certificado implícito. El esquema de certificado implícito implementado por los servidores 204a, 204b, 204x de autoridad de certificación y los terminales 202, 206 incluye contramedidas que pueden impedir ciertos tipos de ataques por el adversario 212.
En algunos casos, el certificado implícito asociado con el terminal 202 se emite basándose en una cadena de certificados implícitos generados por los servidores 204a, 204b, 204x de autoridad de certificación. Por ejemplo, los servidores 204a, 204b, 204x de autoridad de certificación pueden incluir una autoridad de certificación raíz y múltiples autoridades certificadoras subordinadas. La cadena de certificados implícitos puede incluir un certificado implícito para la autoridad de certificación raíz y certificados implícitos para cada autoridad de certificación subordinada.
En algunas implementaciones ilustrativas, el esquema de certificado implícito implementado en el sistema 200 de comunicación utiliza claves públicas derivadas basadas en una cadena de certificados implícitos de ECQV. De forma general, la autoridad de certificación raíz o cualquier autoridad de certificación subordinada puede emitir un certificado implícito. La cadena de certificados implícitos ECQV puede generarse por una combinación de la autoridad de certificación raíz y una o más autoridad de certificación subordinadas, donde cada autoridad de certificación subordinada tiene un certificado implícito de una autoridad de certificación superior. La última autoridad de certificación en la cadena puede emitir certificados implícitos a las entidades de usuario (p. ej., los terminales).
El esquema de certificado implícito de ECQV ilustrativo implementado por el sistema 200 de comunicación puede describirse utilizando notación aditiva para un grupo en el que se cree que el problema de logaritmo discreto es difícil, tal como un grupo de curva elíptica. El grupo tiene orden n. En algunas implementaciones, el grupo tiene orden principal. Los parámetros del sistema incluyen un generador G del grupo, que es conocido y está disponible para todas las entidades que utilizan el sistema 200 de comunicación.
En algunos casos, se emite un certificado implícito de ECQV a una entidad de usuario representada por o asociada al terminal 202. El certificado implícito de ECQV de la entidad de usuario puede representarse mediante, o basándose en, el par (P, I). El valor P es los datos de reconstrucción de clave pública para la entidad de usuario, y el valor I es la información de identidad para la entidad de usuario. La clave pública B de la entidad de usuario puede reconstruirse a partir del certificado implícito. La entidad de usuario interactúa con la autoridad de certificación para obtener el certificado implícito de ECQV (P, I) y una clave privada b de modo que B = bG. En algunas implementaciones, el certificado implícito de ECQV de la entidad de usuario (P,I) se basa en una cadena de certificado implícita de ECQV formada por las autoridades de certificación.
En algunos casos, cada clave pública de autoridad de certificación subordinada actúa como la clave pública para verificar un certificado que emite la autoridad de certificación subordinada. Por ejemplo, la autoridad de certificación raíz puede tener una clave privada c, que puede ser un número entero y una clave pública C = cG. Cada certificado implícito en una cadena se indica por el par (P<j>, j) para j de 1 a m 1, donde m 1 es la longitud de la cadena. La clave pública correspondiente se denomina Cj. Cada clave pública Cj, excepto para B = Cm<+1>, es la clave pública de una autoridad de certificación subordinada. La clave pública de orden l puede generarse en función de una función F según la ecuación
Estas m 1 ecuaciones pueden combinarse en una única ecuación como:
Aquí, se ha incluido */ (for i = 1, ...,m+1) para capturar la posibilidad de incluir información adicional en la estructura de certificado implícita, por ejemplo, (Pj,Ij,*j).
En algunos casos, la salida de la función F en las ecuaciones 1a y 1b se genera basándose en la evaluación de una función hash o de otro tipo de función. Por ejemplo, la función F puede ser una función hash, la función F puede incluir una o más funciones hash, la función F puede invocar una o más funciones hash o la función F puede utilizar de otro modo una función hash u otro tipo de función. En algunos casos, una función hash es, o está cerca de, una función aleatoria que asigna entradas arbitrarias a números enteros entre 0 y n. En algunos casos, una función hash es, o está cerca de, una función
aleatoria que asigna entradas arbitrarias a números enteros entre 0 y Ejemplos de funciones hash incluyen la familia de SHA de funciones hash (SHA-1, SHA-256, etc.), variantes de estas funciones creadas truncando su entrada, y otras. Otra función hash ilustrativa es la función hash MMO, construida con un cifrado de bloque, a menudo AES (la función resultante se denomina AES-MMO). También pueden ser adecuadas otras funciones hash basadas en cifrado de bloques. Otra función ilustrativa es una función creada por la construcción HMAC con una clave fija (publicada en los parámetros de dominio). En algunas implementaciones, pueden utilizarse otras funciones MAC instanciadas con una clave fija, tal como CBC-MAC.
Las ecuaciones 1a y 1b son una representación general de la fórmula de generación de clave pública utilizada en el esquema de certificado implícito ilustrativo implementado en la Fig. 2. La función F puede tomar diversas formas en diversas implementaciones. A continuación se describen varios ejemplos específicos. La función F puede seleccionarse de modo que rechace ataques del adversario. En otras palabras, la función F puede reducir la probabilidad de un ataque exitoso del adversario en algunos casos. Por ejemplo, las funciones F pueden seleccionarse para proporcionar una seguridad mejorada sobre ciertos esquemas convencionales en algunos casos.
Según algunos esquemas convencionales, cada clave pública puede reconstruirse como sigue a continuación
donde H es una función hash. Según los esquemas convencionales, estas m 1 ecuaciones pueden combinarse en una sola ecuación como
En algunos casos, este esquema convencional permite que un adversario falsifique certificados implícitos que serían aceptados por una parte confiante involuntaria. Como tal, el adversario podría simular potencialmente la acción legítima de una entidad, tal como una autoridad de certificación subordinada a otra autoridad de certificación, que solicita a la autoridad de certificación superior un certificado implícito que permitirá, a su vez, generar un certificado aceptable para una autoridad de certificación subordinada al mismo, o generar un certificado aceptable para cualquier entidad que utilice la clave privada correspondiente a la clave pública certificada para, por ejemplo, firmar digitalmente un mensaje que sea verificable utilizando la clave pública certificada, o para descifrar un mensaje cifrado que se cifró utilizando la clave pública certificada. En algunos casos, la simulación maliciosa por parte del adversario requiere únicamente conocimiento pasivo de información disponible públicamente, tal como los parámetros de sistema de certificación implícitos y la clave pública o certificado implícito de la autoridad de certificación que el adversario falsamente reclama que produjo el certificado implícito simulado. En algunos casos, el esquema representado en las ecuaciones 1a y 1b anteriores puede implementarse como una contramedida exitosa contra tales ataques.
En algunos ataques ilustrativos en el esquema convencional representado por las ecuaciones 2 y 3 anteriores, un adversario puede utilizar con éxito el conocimiento de una clave pública de autoridad de certificación raíz o de una clave pública de una autoridad de certificación subordinada a una autoridad de certificación raíz para agregar a esa cadena de certificado cuatro enlaces adicionales, dando lugar a que el adversario conozca la clave privada que corresponde a la clave pública del cuarto enlace agregado. En otro ejemplo de ataque del esquema convencional, el adversario añade tres enlaces y la firma digital de cualquier mensaje elegido único, y esa firma digital verifica correctamente utilizando la clave pública asociada al tercer enlace agregado. En algunos casos, el esquema representado en las ecuaciones 1a y 1b anteriores puede implementarse como una contramedida exitosa contra tales ataques.
En algunas implementaciones ilustrativas, el esquema representado en las ecuaciones 1a y 1b anteriores puede utilizarse para derrotar a un ataque de encadenamiento, mientras que el esquema representado en las ecuaciones 2 y 3 puede ser vulnerable al ataque de encadenamiento. En el ataque de encadenamiento, el adversario tiene acceso a los parámetros de dominio de curva elíptica que incluyen G (o generalmente, la descripción del grupo de logaritmo discreto y el generador), la clave pública C de la autoridad de certificación raíz, y m 1 cadenas de identidad /<1>, ..., /<m>+<1>. La salida de un ataque de esfuerzo exitoso es m 1 valores de datos de reconstrucción de clave pública P1, Pm 1y una clave privada b correspondiente a la clave pública reconstruida B = C<m>+<1>, que es bG = B.
Para implementar el ataque de encadenamiento para una cadena de longitud cuatro ilustrativa, el adversario accede a entradas que incluyen la clave pública de autoridad de certificación raíz C y los cuatro identificadores /<1>, k, k, /4. El ataque de encadenamiento puede hacer suposiciones sobre la función hash H en las ecuaciones 2 y 3 anteriores para simplificar el análisis de cuando el ataque tiene éxito, pero estos supuestos no son necesarios para permitir el ataque. Por ejemplo, el ataque de encadenamiento puede suponer que la función hash H en las ecuaciones 2 y 3 anteriores genera valores uniformemente en el intervalo 1 a n. El ataque de encadenamiento podría suponer potencialmente que la función hash H e n las ecuaciones 2 y 3 anteriores genera valores no tan
distribuidos, por ejemplo, valores entre 0 y o valores que están sesgados de alguna forma.
Una implementación con éxito del ataque de encadenamiento puede generar salidas que incluyen los cuatro valores de reconstrucción de clave pública P<1>, P<2>, P<3>, P<4>y la clave privada b, de modo que
Para implementar el ataque de encadenamiento para una cadena de longitud cuatro ilustrativa, el adversario lleva a cabo las siguientes acciones basadas en las entradas. Si j varía de 1 a 2. Calcular H¡,k = H(P¡,k,/¡) donde P,k = C kG, y k varían de 1 a n<1/3>. Reunir los valores H¡, k en una lista L ¡. El cálculo total (para j = 1 y j = 2) puede llevar tiempo, 2n<1/3>multiplicidades escalares y evaluaciones de hash.
El ataque de encadenamiento ilustrativo puede continuar como sigue. Generar una lista L<1,2>de valores (r, s, 1 H1 , r+ H<2 ,s>mod n, (H<1,r>)r (H<2>,<s>)s mod n) tal que 1 H1 , r+ H<2,s>mod n < n<2/3>Esta lista (que ahora puede reemplazar la lista L<1>y la lista L<2>) tendrá una longitud de aproximadamente n<1/3>, porque cada lista L¡tiene tamaño n<1/3>y la probabilidad H1,r H<2 ,s>mod n < n<2/3>es aproximadamente n_<1/3>. No se realizan todas las comparaciones por pares. Pueden utilizarse tablas hash (memoria alta) o listas clasificadas (memoria baja). Debe indicarse que 1 H<1,r>+ H<2,s>(no negativo) puede ser como máximo 2n - 1. Así 1 H1 , r+ H<2,s>mod n es 1 H1 , r+ H<2,s>o 1 H1 , r+ H<2,s>- n. Para H<1,r>< n<2/3>-1, los valores que satisfacen 0<<>H<2,s>< n<2/3>-1-H<1,r>son adecuados. Además, valores para los cuales H<1,r>, n - 1 - H<1 ,r>< H<2,s>< min(n,n+n<2/3>-1- Hi ,r) son adecuados.
El ataque de encadenamiento ilustrativo puede continuar como sigue. Si j varía de 3 a 4. Calcular H,k = H(Pj,k, /j) donde Pjk = C kG, y k varía de 1 a n<1/3>. Reunir los valores H,ken una lista L¡. El cálculo total (para j = 3 y j = 4) puede llevar tiempo 2n<1/3>multiplicidades escalares y evaluaciones de hash. Generar una lista L<3,4>de valores (t, u, -(H3,t H4,u) mod n, (H3,f)t (H<4 ,u>)u mod n) de forma que -(H<3>,<t>+ H<4,u>) mod n < n<23>. Esta lista ahora puede sustituir a la lista L<3>y la lista L<4>.
El ataque de encadenamiento ilustrativo puede continuar como sigue. Ahora encuentra una colisión (r*, s*, t*, u*) en la lista L<12>y L3,4. Ya que los terceros valores de coordenadas en L<i ,2>y L3,4 cada intervalo de 0 a n2/3, y cada lista tiene n1/3 entradas, debería haber una colisión en algunos casos. El coste de encontrar la colisión puede mantenerse en torno a n1/3 en algunas implementaciones. Buscar una colisión identifica los valores (r*, s*, t*, u*) de forma que
El ataque de encadenamiento ilustrativo puede completarse estableciendo
En algunas implementaciones, el ataque de encadenamiento ilustrativo descrito anteriormente explota la metodología generalizada de ataque de cumpleaños. Por ejemplo, la publicación titulada “A Generalized Birthday Problem” by David Wagner, published in Advances in Cryptology-CRYPTO 2002 proporciona una descripción de la metodología del cumpleaños generalizado. Algunos ataques convencionales requieren tiempo en el orden de n1/2 que es considerablemente más alto, lo que demuestra la efectividad del ataque. Por ejemplo, comparar n1/2 and n1/3 para una elección de n que tiene una longitud de 256 bits (una elección común en la práctica), muestra una reducción de seguridad desde el nivel de 128 bits (si el mejor ataque tiene un coste n1/2), hasta el nivel de 85 bits (cuando el mejor ataque tiene coste n1/3).
En algunos casos, el ataque de encadenamiento puede extenderse, como en el ejemplo a continuación, a una cadena de longitud de tres seguida de una firma de mensaje utilizando el algoritmo de Schnorr (que es una base del algoritmo PVS), con la firma en el mensaje M compuesto por (e = H*(U, M), v), de la siguiente forma:
Para implementar el ataque de encadenamiento en este escenario ilustrativo, elegir el valor deseado del mensaje M. Si Pj = C pjG, para j = 1,2,3, y U = fC tG. Solucionar
f C=- H t(U ,M )a H ÍP 1, l 1)P1 + H(P2 , 12 )P2 + H(P3, I 3)P3)C.
O de forma equivalente,
El ataque de encadenamiento ilustrativo puede continuar como sigue. Si f = 1 y proceder como se ha señalado anteriormente para la cadena de longitud de cuatro, pero utilizando H*(U, M)-1 mod n como valores de la función hash en vez de H en el lado izquierdo, y resolver
A continuación, establecer v como corresponda. Por ejemplo, v puede establecerse según
Por lo tanto, estos ataques de encadenamiento ilustrativos podrían comprometer potencialmente la fiabilidad de un esquema de certificado implícito, tal como el esquema representado por las Ecuaciones 2 y 3 anteriores. Sin embargo, el éxito de tales ataques de encadenamiento puede evitarse o reducirse mediante contramedidas. Por ejemplo, algunas o todas las siguientes técnicas pueden utilizarse para derrotar los ataques de encadenamiento descritos anteriormente, en algunas implementaciones.
Cada uno de los siguientes algoritmos de generación de clave pública pueden utilizarse como contramedida contra el ataque de encadenamiento descrito anteriormente, así como otros tipos de ataques. Los siguientes algoritmos ilustrativo se expresan en términos de la cadena de certificado implícito de E<c>Q<v>descrita anteriormente. Estos ejemplos también pueden adaptarse a otros esquemas de certificado implícito. Además, los ejemplos se expresan generalmente para casos en los que hay múltiples autoridades certificadoras (una autoridad de certificación raíz y una o más autoridades certificadoras subordinadas). Estos ejemplos pueden implementarse eficazmente en casos donde haya una única autoridad de certificación (p. e j, solo una autoridad de certificación raíz). Además, aunque las técnicas se describen como contramedidas, las técnicas pueden ser útiles o proporcionar ventajas incluso cuando no hay adversario o amenaza de ataque. Como tales, las técnicas pueden utilizarse en cualquier contexto, por ejemplo, como contramedidas contra ataques o para otros fines.
Como un primer esquema de contramedida ilustrativo, las siguientes fórmulas pueden utilizarse para generar claves públicas en algunos esquemas ilustrativos que utilizan una cadena de certificado implícito de ECQV. Las siguientes fórmulas pueden utilizarse como contramedida contra un ataque de encadenamiento, como contramedida contra otro tipo de ataque, o para otros fines.
Como un segundo esquema de contramedida ilustrativo, las siguientes fórmulas pueden utilizarse para generar claves públicas en algunos esquemas ilustrativos que utilizan una cadena de certificado implícito de ECQV. Las siguientes fórmulas pueden utilizarse como contramedida contra un ataque de encadenamiento, como contramedida contra otro tipo de ataque, o para otros fines.
donde H<1>= H(Pt,l, , ; )
Como un tercer esquema de contramedida ilustrativo, las siguientes fórmulas pueden utilizarse para generar claves públicas en algunos esquemas ilustrativos que utilizan una cadena de certificado implícito de ECQV. Las siguientes fórmulas pueden utilizarse como contramedida contra un ataque de encadenamiento, como contramedida contra otro tipo de ataque, o para otros fines.
Como un cuarto esquema de contramedida ilustrativo, las siguientes fórmulas pueden utilizarse para generar claves públicas en algunos esquemas ilustrativos que utilizan una cadena de certificado implícito de ECQV. Las siguientes fórmulas pueden utilizarse como contramedida contra un ataque de encadenamiento, como contramedida contra otro tipo de ataque, o para otros fines.
Como un quinto esquema de contramedida ilustrativo, las siguientes fórmulas pueden utilizarse para generar claves públicas en algunos esquemas ilustrativos que utilizan una cadena de certificado implícito de ECQV. Las siguientes fórmulas pueden utilizarse como contramedida contra un ataque de encadenamiento, como contramedida contra otro tipo de ataque, o para otros fines. Si una función hash se construye según la construcción de Merkle-Damgard, tiene una determinada propiedad que lo hace no aleatoria, denominada propiedad de extensión-longitud. Si la función hash tiene la propiedad de Merkle-Damgard (MD), entonces puede utilizarse la siguiente técnica. La siguiente técnica también puede ser útil en otros contextos y situaciones. Si H indica la sustitución del IV (vector de inicialización) de una función hash de propiedad de MD estándar mediante IV. Un vector de inicialización (IV), es una entrada de tamaño fijo a una primitiva criptográfica que a veces se requiere que sea aleatoria o pseudoaleatoria. Cuando se usa en funciones hash, el IV se especifica de forma típica como parte de la función, y no cambia. En consecuencia,
y así sucesivamente. Además,
En algunos casos, una autoridad de certificación, incluida una autoridad de certificación raíz o una autoridad de certificación subordinada, puede codificar cualquier información adicional necesaria dentro del certificado implícito, pero si uno no confía implícitamente en esa autoridad de certificación, uno puede ir más arriba a una autoridad de certificación o parte de confianza. Este modelo de confianza puede ser “ transitivo” en que uno podría confiar en una entidad que presumiblemente comprobó una parte más alta de la cadena, y esa entidad, a su vez, podría no haberse comprobado independientemente hasta una autoridad de certificación (raíz o intermedia) directamente fiable, sino más bien habiendo confiado en alguna otra entidad para comprobar (o confiar en) una parte aún más temprana de la cadena. Como ejemplo de dicha información adicional, una autoridad de certificación podría codificar información correspondiente a certificados implícitos más altos en la cadena. Si una parte confiante particular confía el dicha autoridad de certificación particular, dicha información adicional podría ahorrar en ancho de banda y comunicaciones. Como ejemplo, en el segundo esquema de contramedida ilustrativo anterior, que incluye las fórmulas:
alguna autoridad de subcertificado Cj (para j = 1, m) podría codificar Hj-identro de *>i. Si la parte confiante no confía directamente en la autoridad de subcertificados Cj la parte confiante puede buscar confirmación independiente de Hj- i, tal como comunicando con autoridades de certificación anteriores o, de otro modo adquiriendo certificados implícitos anteriores y/o valores de salida de función hash.
Cualquiera de las cinco contramedidas ilustrativas descritas anteriormente, así como otras contramedidas ilustrativas, pueden modificarse o adaptarse. Más generalmente, la clave pública de orden l para un esquema de certificado implícito de ECQV puede generarse en función de una función F según la ecuación
Similarmente, la clave pública de orden l para un esquema de certificado implícito de OMC puede generarse en función de una función F según la ecuación
En ambos casos, la función F proporciona un número entero y es, incluye, invoca o utiliza de otro modo una función hash.
La Fig. 3 es un diagrama esquemático de un sistema 300 de criptografía ilustrativo que implementa un esquema de firma digital basado en certificado implícito. El sistema 300 de criptografía incluye módulos terminales 302, 306, un módulo 304 de autoridad de certificación y posiblemente características adicionales. Por ejemplo, el sistema 300 de criptografía puede incluir uno o más módulos 310 de autoridad de certificación adicionales. El sistema 300 de criptografía puede incluir componentes adicionales o distintos. Los módulos terminales 302, 306 pueden ser, cada uno, módulos de programa informático implementados por uno o más terminales. Por ejemplo, el módulo terminal 302 puede implementarse mediante el terminal 102 de la Figura 1 o el terminal 202 de la Figura 2, y el módulo terminal 306 puede implementarse mediante el terminal 106 de la Figura 1 o el terminal 206 de la Figura 2.
El módulo 304 de autoridad de certificación puede ser un módulo de programa informático implementado por uno o más servidores de autoridad de certificación. Por ejemplo, el módulo 304 de autoridad de certificación puede implementarse mediante el servidor 104 de autoridad de certificación de la Fig. 1 o mediante cualquiera de los servidores 204a, 204b, 204x de autoridad de certificación de la Fig. 2. En algunos casos, el módulo 304 de autoridad de certificación puede funcionar para realizar operaciones de una autoridad de certificación subordinada, y los módulos 310 de autoridad de certificación adicionales son operables para realizar operaciones de una autoridad de certificación raíz y posiblemente una o más autoridad de certificación intermedias. En algunos casos, el módulo 304 de autoridad de certificación puede funcionar para realizar operaciones de una autoridad de certificación raíz o una autoridad de certificación intermedia.
Los módulos terminales 302, 306 y el módulo 304 de autoridad de certificación pueden implementarse mediante tipos adicionales o distintos de sistemas de hardware. Por ejemplo, el módulo 304 de autoridad de certificación, o en algunos casos módulos individuales, datos u otros aspectos del módulo 304 de autoridad de certificación pueden descargarse a dispositivos de autoridad no certificados. En algunos casos, por ejemplo, en un entorno informático entre pares, la funcionalidad del servidor puede distribuirse entre dispositivos cliente. Como otro ejemplo, pueden proporcionarse módulos terminales, o en algunos casos, módulos individuales, datos u otros aspectos de un módulo terminal, en un dispositivo servidor, tal como un servidor de autoridad de certificación u otro tipo de servidor.
Los módulos terminales 302, 306 y el módulo 304 de autoridad de certificación pueden comunicarse entre sí, por ejemplo, a través de una red de datos u otro tipo de enlace de comunicación. En algunas implementaciones, los módulos terminales 302, 306 y el módulo 304 de autoridad de certificación pueden comunicarse entre sí mediante mensajes transmitidos a través de la red 108 de datos de la Figura 1 o la red 208 de datos de la Figura 2. En el ejemplo mostrado en la Fig. 3, el módulo terminal 302 puede enviar una solicitud 320 de certificado al módulo 304 de autoridad de certificación. El módulo 304 de autoridad de certificación puede recibir la solicitud 320 de certificado del módulo terminal 302 y enviar un certificado implícito 322 al módulo terminal 302 en respuesta a la solicitud 320 de certificado. El módulo 304 de autoridad de certificación también puede enviar los datos de contribución privada del módulo terminal 302. Los datos de contribución de clave privada pueden enviarse al módulo terminal 302 junto con, o separados del, certificado implícito 322. El módulo 304 de autoridad de certificación también puede publicar el certificado implícito 322, por ejemplo, a una base de datos de certificado. El módulo terminal 302 puede recibir el certificado implícito 322 del módulo 304 de autoridad de certificación y enviar un mensaje 324 firmado al módulo terminal 306. El módulo terminal 306 puede recibir el mensaje 324 firmado y el certificado implícito 322 del módulo terminal 302. En algunos casos, el módulo terminal 306 puede recuperar el certificado implícito 322 de otra fuente. El sistema 300 de criptografía puede soportar tipos de comunicaciones adicionales o distintos.
El sistema 300 de criptografía utiliza un esquema de certificado implícito que permite que los módulos terminales verifiquen la autenticidad de los mensajes recibidos de otros módulos terminales. Según el esquema de certificado implícito, los certificados implícitos emitidos por la autoridad de certificación vinculan la identidad de cada entidad de usuario a un valor de clave pública particular. Una entidad de usuario puede generar firmas digitales basadas en la clave privada de la entidad de usuario, y otros usuarios pueden verificar la firma digital basada en la clave pública de la entidad de usuario. Los esquemas de certificado implícito pueden implementarse basándose en cualquier tipo de grupos adecuados. Por ejemplo, el esquema de certificado implícito de ECQV, así como otros, puede implementarse utilizando un grupo de puntos en una curva elíptica, un grupo multiplicativo de un campo finito u otros grupos donde el problema de logaritmo discreto puede ser difícil. Ejemplos de esquemas de firmas digitales basados en curva elíptica incluyen ECDSA (Algoritmo de firma digital de curva elíptica), firmas de ECPV y ECNR (Curva elíptica de Nyberg Rueppel). Pueden utilizarse tipos adicionales o distintos de esquemas de certificado implícitos, tales como, por ejemplo, un esquema de OMC.
Cuando el módulo terminal 302 firma un mensaje M<0>, la firma digital para el mensaje M<0>puede generarse basándose en M, que es una versión modificada del mensaje M<0>. El mensaje modificado M puede formarse combinando el mensaje M<0>con información adicional. Por ejemplo, el mensaje M puede formarse concatenando el mensaje M<0>con un sufijo, prefijo o una combinación de estos y otros apéndices. La información combinada con el mensaje M<0>puede incluir la clave pública utilizada para verificar el mensaje, alguna parte de la clave pública utilizada para verificar el mensaje, una función de la clave pública utilizada para verificar el mensaje u otra información. En algunas implementaciones, la información combinada con el mensaje M<0>incluye el certificado implícito del firmante o alguna parte o función del certificado implícito del firmante. En algunas implementaciones, la información combinada con el mensaje M<0>incluye una clave pública de autoridad de certificación, un valor de reconstrucción de clave pública de autoridad de certificación u otra información asociada con una autoridad de certificación.
Por lo tanto, para firmar el mensaje M<0>, el módulo terminal 302 genera el mensaje modificado M a partir del mensaje M<0>. Por ejemplo, el mensaje modificado M puede generarse según la ecuación
donde F<1>y F<2>son algunas funciones. La función F<2>puede ser una función hash u otro tipo de función. Por ejemplo, la función F<2>puede generar un valor entero basado en uno o más de los valores P,I,[C],*. Como ejemplo, la función F<2>puede generar un valor entero en función de los valores P, I. En algunos ejemplos, la función F<2>puede utilizar una o más de la familia SHA de funciones hash. Como otro ejemplo, la función F<2>puede concatenar la lista de entradas (p. ej., mezclando el orden, aplicando una transformación reversible a las entradas, o mezclando de otro modo las entradas) y proporcionar un valor único. La función F<1>puede ser una función de anexado u otro tipo de función que combina valores de entrada. Por ejemplo, la función F<1>puede anexar la salida de la función F<2>al mensaje M<0>como prefijo, sufijo, o como una combinación de estos y uno o más de otros tipos de apéndices. Como otro ejemplo, la función F<1>puede aplicar de forma adicional o alternativa una transformación reversible, tal como codificación de caracteres o compresión de datos.
El mensaje modificado M puede utilizarse en la función de firma. La función de firma puede generar una firma digital basándose en el mensaje modificado M, la clave privada del firmante y el certificado implícito.
Un destinatario puede recibir el mensaje firmado y utilizar la clave pública del firmante para recuperar el mensaje modificado M de la firma digital. En algunos casos, el mensaje firmado incluye el mensaje original M<0>y la firma digital basada en M. En tales casos, el receptor puede generar el mensaje modificado M basado en el mensaje M<0>y la información de clave pública que el emisor utiliza para generar el mensaje modificado M. En algunos casos, el mensaje firmado incluye el mensaje modificado M y la firma digital basada en el M modificado. En tales casos, el receptor puede generar el mensaje original M<0>basado en el mensaje modificado M y la información de clave pública que el emisor utiliza para generar el mensaje modificado M.
En el ejemplo mostrado en la Fig. 3, la clave pública utilizada para verificar la firma digital del firmante está certificada implícitamente En algunos casos, generar una firma digital basándose en el mensaje modificado M que se ha modificado basándose en la clave pública (o información relacionada con la clave pública), en vez de generar la firma digital basándose en el mensaje original M<0>, puede servir como contramedida para reducir la probabilidad de un ataque satisfactorio de falsificación. Por ejemplo, en algunos casos esta contramedida puede reducir la probabilidad de ciertos tipos de ataques de encadenamiento u otros tipos de ataques que implican el problema de cumpleaños. En algunos casos, esta contramedida puede utilizarse como contramedida contra ataques que no invocan el problema de cumpleaños. Por ejemplo, esta técnica puede evitar algunos tipos de ataques en las combinaciones de ECDSA con ECQV y con OMC.
El módulo terminal 302 incluye un módulo 344 de modificación, un módulo 342 de generación de firma, un módulo 340 de generación de solicitudes y otros posiblemente otros módulos. El módulo 340 de generación de solicitudes puede generar una solicitud 320 de certificado. La solicitud 320 de certificado puede incluir una identificación I de una entidad de usuario particular. La solicitud 320 de certificado puede incluir un punto de curva elíptica R<u>. La solicitud 320 de certificado puede incluir información adicional o diferente. El valor de identificación I puede ser un identificador único para una entidad de usuario particular, para un dispositivo particular o para ambos. El módulo 240 de generación de solicitudes puede generar el punto de curva elíptica Ru seleccionando un número aleatorio ku y calculando R<u>= kuG. Por ejemplo, el módulo terminal 302 puede tener un módulo generador de números aleatorios que genera números aleatorios.
El módulo 344 de modificación puede utilizar datos procedentes de, o relacionados con, el certificado implícito 322 y el mensaje 318 para generar un mensaje modificado 319. El mensaje 318 puede incluir cualquier tipo de documento electrónico, archivo de datos, objeto de datos u otra forma de información. En algunos casos, el mensaje 318 es un mensaje de correo electrónico, un documento electrónico o un archivo de datos electrónicos que puede editarse y representarse mediante aplicaciones de software apropiadas. En algunos casos, el mensaje 318 es un mensaje de datos o una combinación de mensajes de datos utilizados en aplicaciones de señalización entre componentes de hardware. Por ejemplo, el mensaje 318 puede incluir información de estado de un contador de energía inteligente en una infraestructura de energía inteligente.
El módulo 344 de modificación puede generar el mensaje modificado 319 basándose en el mensaje 318 e información adicional. La información adicional puede incluir el certificado implícito 322 o los datos extraídos u obtenidos de otro modo del certificado implícito 322 (p. ej., el valor de reconstrucción de clave pública P, el valor de identificación I, o una combinación de estos y otros datos). La información adicional puede incluir una información de clave pública de autoridad de certificación. Por ejemplo, la información adicional puede incluir la clave pública de autoridad de certificación C, una clave pública para cualquier autoridad de certificación raíz, una clave pública para cualquier autoridad de certificación subordinada o cualquier combinación de estas. La información adicional puede incluir un certificado implícito de autoridad de certificación o información derivada de cualquier certificado implícito de autoridad de certificación. Por ejemplo, la información adicional puede incluir un certificado implícito para cualquier autoridad de certificación subordinada en una cadena, o cualquier combinación de estos. El mensaje modificado 319 puede ser generado por el módulo 344 de modificación combinando la información adicional con el mensaje 318. Por ejemplo, la información adicional puede añadirse a, mezclarse, o combinarse de otro modo con el mensaje 318.
El módulo 342 de generación de firmas puede utilizar el certificado implícito 322 para generar una firma digital basándose en el mensaje modificado 319. Técnicas ilustrativas para generar la firma digital incluyen el esquema de firma de ECPV, la norma de ECPV de firma de ECPV, el esquema de firma de Schnorr, ECDSA y otros. El módulo 342 de generación de firmas puede generar la firma digital utilizando la clave privada del módulo terminal 302 y el certificado implícito 322. El módulo 342 de generación de firmas puede generar la clave privada del módulo terminal 302 basándose en datos de contribución de clave privada r, el certificado implícito 322, y el valor aleatorio ku que se utilizó para generar la solicitud 320 de certificado. La firma digital generada por el módulo 242 de generación de firmas puede adjuntarse a, combinarse con, o asociarse de otro modo al mensaje 318 o el mensaje modificado 319 para crear el mensaje firmado 324. La firma digital puede enviare por separado del mensaje 318. El módulo terminal 302 puede enviar el certificado implícito 322 al módulo terminal 306.
El módulo terminal 306 incluye un módulo 352 de modificación, un módulo 350 de verificación de firmas y posiblemente otros módulos. El módulo 350 de verificación de firmas puede verificar la firma digital asociada al mensaje firmado 324. Técnicas ilustrativas para decodificar una firma digital basándose en una clave pública incluyen el esquema de firma de ECPV, la norma de ECPV de firma de ECPV, el esquema de firma de Schnorr, ECDSA y otros. El mensaje firmado 324 incluye una firma digital supuestamente generada por una entidad de usuario asociada a un valor de identificación I. El módulo 350 de verificación de firmas puede recibir el certificado implícito 322 del módulo terminal 306 o recuperar el certificado implícito 322 asociado con el valor de identificación I de otra fuente. El módulo 350 de verificación de firmas puede generar el mensaje modificado 319 basándose en cualquier información adecuada, tal como, por ejemplo, la clave pública reconstruida a partir de datos de reconstrucción de claves públicas en el certificado implícito 322. Por ejemplo, el módulo 350 de verificación de firmas puede calcular la clave pública B basada en los datos de reconstrucción de clave pública P, el certificado implícito 322, y una clave pública C de la autoridad de certificación.
En el ejemplo mostrado en la Figura 3, el módulo 350 de verificación de firmas recibe el mensaje 318 como parte del mensaje firmado 324. El módulo 350 de verificación de firmas puede extraer el mensaje 318 del mensaje firmado 324 y proporcionar el mensaje 318 al módulo 352 de modificación. El módulo 352 de modificación puede generar el mensaje modificado 319 basándose en el mensaje 318 y la información adicional que se utilizó por el módulo 344 de modificación para generar el mensaje modificado 319. El módulo terminal 306 puede comparar el mensaje modificado 319 generado por el módulo 352 de modificación con el mensaje modificado 319 verificado utilizando la firma digital. El módulo terminal puede verificar la autenticidad del mensaje firmado 324, por ejemplo, si coinciden los dos mensajes modificados 319. El mensaje firmado puede verificarse mediante técnicas adicionales o distintas. Por ejemplo, en algunos casos, el mensaje firmado 324 incluye el mensaje modificado 319 en vez del mensaje original 318. En tales casos, el mensaje firmado puede verificarse basándose en parte en la generación del mensaje original 318 del mensaje modificado 319, por ejemplo, utilizando la información de clave pública del firmante.
El módulo 304 de autoridad de certificación incluye un módulo 330 de generación de certificados y posiblemente otros módulos. El módulo 304 de autoridad de certificación puede realizar una o más operaciones para emitir el certificado implícito 322 para su uso en el sistema 300 de criptografía. El módulo 330 de generación de certificados puede generar el certificado implícito 322, por ejemplo, en respuesta a la recepción de la solicitud 320 de certificado.
El módulo 230 de generación de certificados genera el certificado implícito 322 basándose en la información en la solicitud 320 de certificado. Por ejemplo, el módulo 230 de generación de certificados puede seleccionar un valor aleatorio k y generar datos de reconstrucción de claves públicas P calculando P = R<u>+ kG, donde R<u>es el punto de curva elíptica generado por el módulo 340 de generación de solicitudes e incluido en la solicitud 320 de certificado. El módulo 304 de autoridad de certificación puede tener un módulo generador de números aleatorios que genera números aleatorios. El módulo 330 de generación de certificados puede codificar los datos de reconstrucción de clave pública P, y, en ocasiones, otra información, en un certificado implícito Certu. El certificado implícito Certu puede generarse mediante un esquema de codificación de certificado, por ejemplo, un esquema de campo de longitud fija, un esquema de codificación ASN.1 mínimo, un esquema de codificación ASN.1 compatible con X.509 u otro esquema.
En algunos casos, un módulo de verificación de certificados en el módulo 304 de autoridad de certificación puede recibir la información generada por el módulo 330 de generación de certificados y verificar que el certificado implícito Certu cumple con las reglas y las configuraciones de seguridad. Si el certificado implícito Certu está aprobado, el certificado implícito Certu puede publicarse como el certificado implícito 322. Si el certificado implícito Certu no está aprobado, un
nuevo certificado implícito<C c r"t>u<r>puede generarse por el módulo 330 de generación de certificados y verificarse.
La Figura 4 es un diagrama de flujo que muestra un proceso 400 ilustrativo para realizar una operación en un sistema de criptografía. El proceso 400 puede implementarse mediante una autoridad de certificación, una correspondencia o cualquier combinación adecuada de estas y otras entidades de un sistema de criptografía. En algunos casos, el proceso 400 puede implementarse mediante los módulos terminales 302, 306 o el módulo 304 de autoridad de certificación mostrado en la Figura 3. El proceso 400 puede incluir operaciones realizadas por un sistema informático. Por ejemplo, las operaciones pueden ser realizadas por los terminales o los servidores de autoridad de certificación mostrados en las Figs. 1 y 2. El proceso 400 ilustrativo mostrado en la Fig. 4 puede implementarse utilizando operaciones adicionales, menos o distintas, que puedan realizarse en el orden mostrado o en un orden distinto. En algunas implementaciones, una o más de las operaciones pueden repetirse o iterarse, por ejemplo, hasta que se alcance una condición de terminación.
En 410, se accede a un certificado implícito. Puede accederse al certificado implícito, por ejemplo, leyendo el certificado implícito de la memoria, recibiendo el certificado implícito de una fuente remota, generando el certificado implícito de otros datos o de otra modo. El certificado implícito puede ser un certificado implícito generado por una autoridad de certificación. La autoridad de certificación puede ser cualquier autoridad de certificación adecuada, tal como, por ejemplo, una autoridad de certificación raíz, una autoridad de certificación intermedia o cualquier autoridad de certificación subordinada.
El certificado implícito está asociado a una entidad. Por ejemplo, el certificado implícito puede asociarse a un usuario, un terminal, una ubicación, un módulo de software, etc. La entidad puede ser un servidor de autoridad de certificación, un terminal correspondiente o cualquier dispositivo adecuado o componente de sistema. En algunos casos, la autoridad de certificación que generó el certificado implícito es una autoridad de certificación raíz o una autoridad de certificación intermedia, y la entidad es una autoridad correspondiente u otra autoridad de certificación que está subordinada a la autoridad de certificación raíz. El certificado implícito puede basarse en una cadena de certificados implícitos. Por ejemplo, cuando la autoridad de certificación que generó el certificado implícito es una autoridad de certificación intermedia u otra subordinada, el certificado implícito puede basarse en uno o más certificados implícitos que fueron emitidos por las autoridad de certificación superiores. El certificado implícito de la entidad puede incluir un identificador de la entidad, un valor de reconstrucción de clave pública de la entidad, o cualquier combinación adecuada de estas y otras informaciones.
En 420, se accede a la información de clave pública de autoridad de certificación. Puede accederse a la información de clave pública de autoridad de certificación, por ejemplo, leyendo la información de la memoria, recibiendo la información desde un correspondente remoto, generando la información desde otros datos, o de otro modo. En algunos casos, la información de clave pública de autoridad de certificación incluye el valor de clave pública de la autoridad de certificación que emitió el certificado implícito al que se accede en 410, el valor de reconstrucción de clave pública de la autoridad de certificación que emite el certificado implícito accedido en 410, información de clave pública de otra autoridad de certificación, o una combinación de esta y otras información.
En 430, se evalúa una función hash. Puede utilizarse cualquier función hash adecuada. Ejemplos de funciones hash incluyen la familia SHA de funciones hash (SHA-1, SHA-256, etc.) y otras. La función hash puede evaluarse mediante cualquier aparato de procesamiento de datos adecuado. Por ejemplo, la función hash puede evaluarse mediante un procesador de propósito general, un procesador principal, un procesador de propósito especial o cualquier combinación adecuada de uno o más procesadores. La evaluación de la función hash puede producir un valor hash.
La función hash puede evaluarse basándose en la información clave pública de autoridad de certificación y el valor de reconstrucción de clave pública de la entidad. En algunos casos, la función hash puede evaluarse basándose en la clave pública de autoridad de certificación, en el valor de reconstrucción de clave pública de autoridad de certificación o en una combinación de estas y cualquier otra información de clave pública de autoridad de certificación. La función hash puede tomar cualquier combinación adecuada de entradas. En algunos ejemplos, la función hash puede expresarse H(P1,h, P2, I2), donde P<1>representa el valor de reconstrucción de la clave pública de la autoridad de certificación, I<1>representa un identificador de la autoridad de certificación, P2 representa el valor de reconstrucción de la clave pública de la entidad, e I<2>representa un identificador de la entidad. Como otro ejemplo, la función hash puede expresarse como una cadena H(H(P1, I<1>), P<2>, I<2>). Como otro ejemplo, la función hash puede expresarse H(Ü1, P<2>, I<2>) donde C<1>representa el valor de clave pública de la autoridad de certificación.
En algunas implementaciones, la función hash se evalúa basándose en información de clave pública para múltiples autoridades certificadoras. Por ejemplo, en los casos en los que el certificado implícito de la entidad fue generado por una autoridad de certificación subordinada, la función hash puede evaluarse basándose en la información de clave pública de la autoridad de certificación subordinada, así como en la información de clave pública de una autoridad de certificación superior (p. ej., una autoridad de certificación raíz o intermedia). En algunos casos, la función hash puede expresarse como H(P1, I<1>, P<2>,I<2>, P<3>,I<3>), donde P<2>representa el valor de reconstrucción de la clave pública de la autoridad de certificación subordinada, I<2>representa un identificador de la autoridad de certificación subordinada, P<1>representa el valor superior de reconstrucción de la clave pública de la autoridad de certificación superior, ^representa un identificador de la autoridad de certificación superior, P<3>representa el valor de reconstrucción de la clave pública de la entidad, e I<3>representa un identificador de la entidad. En algunos casos, la función hash puede expresarse como una cadena hash H(H(H(P1,h), P<2>, I<2>), P3, I3).
En 440, se realiza una operación criptográfica. La operación criptográfica puede realizarse basándose en un valor hash producido por la función hash en 430. Por ejemplo, la operación criptográfica puede utilizar el valor hash, un valor derivado o calculado a partir del valor hash, o cualquier combinación adecuada de estas y otras entradas. La operación criptográfica puede realizarse basándose en información adicional o diferente, según proceda.
La operación criptográfica puede incluir cualquier operación adecuada realizada en un sistema de criptografía. Por ejemplo, la operación criptográfica puede ser parte de, o puede realizarse en asociación con un protocolo de autenticación de datos, un protocolo de sección de datos, un protocolo de generación de certificados u otro tipo de protocolo. En algunos casos, la operación criptográfica puede ser parte de, o puede producir información utilizada por, un algoritmo de cifrado, un algoritmo de descifrado, un algoritmo de generación de firmas digitales, un algoritmo de verificación de firmas digitales u otro tipo de algoritmo. La operación criptográfica puede producir cualquier salida adecuada. Algunas operaciones criptográficas pueden producir la clave pública de la entidad, una firma digital, verificación de una firma digital, un mensaje cifrado, un mensaje descifrado u otro tipo de salida.
Como ejemplo, la operación criptográfica puede incluir generar un valor de clave pública de la entidad. El valor de clave pública puede generarse basándose en el valor hash producido por la función hash en 430, o el valor de clave pública puede generarse basándose en otro valor que se calcula o se deriva del valor hash. En algunos casos, el valor de clave pública de la entidad puede generarse como parte de la validación del valor de clave pública, verificar una firma digital supuestamente producida por la entidad, descifrar un mensaje de la entidad u otra operación criptográfica. En algunos casos, generar el valor de clave pública produce el valor de clave pública como un valor de salida, que puede almacenarse o eliminarse, transmitirse, utilizarse en un cálculo adicional, o de otro modo.
En algunos casos, el valor de clave pública puede generarse implícitamente, por ejemplo, evaluando una función criptográfica que utiliza, o se basa en, el valor de clave pública. La función criptográfica puede recibir el valor de clave pública como entrada. En algunos casos, la función criptográfica recibe como entradas valores que pueden utilizarse para calcular el valor de la clave pública, y la función criptográfica puede utilizar estos valores de entrada en vez del valor de clave pública real, p. ej., de una forma matemáticamente equivalente. Como tal, la función criptográfica puede utilizar el valor de clave pública sin recibir explícitamente el valor de clave pública como entrada. Por lo tanto, en algunos casos, evaluar la función criptográfica que utiliza o se basa en el valor de clave pública no calcula explícitamente el valor de clave pública.
La Figura 5 es un diagrama de flujo que muestra un proceso 500 ilustrativo para utilizar firmas digitales. El proceso 500 puede implementarse mediante una autoridad de certificación, una correspondencia o cualquier combinación adecuada de estas y otras entidades de un sistema de criptografía. En algunos casos, los aspectos del proceso 500 pueden implementarse mediante los módulos terminales 302, 306 o el módulo 304 de autoridad de certificación mostrado en la Fig. 3, o una combinación de estos. El proceso 500 puede incluir operaciones realizadas por múltiples entidades en un sistema de comunicación. Por ejemplo, las operaciones pueden ser realizadas por uno o más de los terminales o los servidores de autoridad de certificación mostrados en las Figs. 1 y 2, o mediante una combinación de estos. El proceso 500 ilustrativo mostrado en la Fig. 5 puede implementarse utilizando operaciones adicionales, o distintas, que puedan realizarse en el orden mostrado o en un orden distinto. En algunas implementaciones, una o más de las operaciones pueden repetirse o iterarse, por ejemplo, hasta que se alcance una condición de terminación.
La Fig. 5 muestra operaciones realizadas por una autoridad 502 de certificación, un emisor 504 y un verificador 506. Como ejemplo, las operaciones de la autoridad 502 de certificación pueden ser ejecutadas por un servidor de autoridad de certificación, las operaciones del emisor 504 pueden ser ejecutadas por un primer terminal, y las operaciones de la verificadora 506 pueden ser ejecutadas por el segundo terminal. En algunos casos, componentes o aparatos informáticos adicionales o diferentes pueden ejecutar una o más operaciones del proceso 500 ilustrativo.
En 510, la autoridad 502 de certificación genera un certificado digital. La autoridad 502 de certificación puede ser cualquier autoridad de certificación adecuada (p. ej., una autoridad de certificación raíz, una autoridad de certificación subordinada, etc.). El certificado digital puede ser un certificado implícito, un certificado explícito o cualquier otro tipo de certificado digital. El certificado digital puede incluir un valor de reconstrucción de clave pública de una entidad, un identificador para la entidad, o cualquier combinación adecuada de estas u otra información. En el proceso 500 ilustrativo mostrado en la Fig. 5, el certificado digital generado por la autoridad 502 de certificación incluye un valor de reconstrucción de clave pública del emisor 504.
En 512, el certificado digital se comunica al emisor 504. El certificado digital puede comunicarse de cualquier forma adecuada. Por ejemplo, el certificado digital puede comunicarse a través de una red de comunicación de datos, transmitirse a través de un enlace de comunicación inalámbrica o por cable, transportarse en un disco u otro medio legible por ordenador, o cualquier combinación adecuada. En el ejemplo mostrado en la Fig. 5, el emisor 504 recibe el certificado digital de la autoridad 502 de certificación.
En 514, el emisor 504 modifica un mensaje a firmar. El mensaje puede modificarse basándose en el certificado digital. El emisor 504 puede acceder al certificado digital y al mensaje, por ejemplo, leyendo uno o más de ellos desde la memoria, recibiendo uno o más de ellos desde un dispositivo remoto, generando uno o más de ellos localmente, o mediante cualquier combinación adecuada de estas y otras técnicas para acceder a datos. La modificación del mensaje a firmar produce un primer mensaje modificado.
El primer mensaje modificado puede generarse mediante cualquier técnica adecuada. El emisor 504 puede generar el primer mensaje modificado generando un valor hash basado en el certificado digital del emisor y combinar el valor hash con el mensaje. El emisor 504 puede generar el primer mensaje modificado combinando el mensaje con el valor de reconstrucción de la clave pública del emisor. El emisor 504 puede generar el primer mensaje modificado combinando el mensaje con otro valor. El otro valor puede basarse en información del certificado digital del firmante y posiblemente en otra información. Por ejemplo, el otro valor puede producirse a partir del valor de reconstrucción de la clave pública del firmante, el valor de la clave pública del firmante, el identificador del firmante, otra información incluida en el certificado digital o cualquier combinación adecuada.
En algunos casos, el primer mensaje modificado se genera combinando el mensaje con información de clave pública de autoridad de certificación. Por ejemplo, el primer mensaje modificado puede generarse basándose tanto en el certificado digital del firmante como en la clave pública de autoridad de certificación. Cuando la autoridad 502 de certificación está subordinada a otra autoridad de certificación (p. e j, una autoridad de certificación raíz, una autoridad de certificación intermedia, etc.), el primer mensaje modificado puede generarse combinando el mensaje con un valor producido a partir del valor de reconstrucción de la clave pública del firmante y uno o más otros valores. Los otros valores pueden incluir, por ejemplo, una clave pública de autoridad 502 de certificación, una clave pública de una autoridad de certificación superior, un certificado digital de la autoridad 502 de certificación, un certificado digital de la autoridad de certificación superior, etc.
En 516, el emisor 504 genera una firma digital. La firma digital puede generarse basándose en el mensaje modificado. En algunos casos, la firma digital puede generarse basándose en información adicional o distinta. La firma digital puede generarse según cualquier algoritmo de firma adecuado u otra técnica adecuada.
En 518, la firma digital y otra información se comunican al verificador 506. En algunos casos, la información comunicada al verificador 506 incluye el mensaje (es decir, el mensaje no modificado). En algunos casos, la información comunicada al verificador 506 incluye el primer mensaje modificado. En cualquier caso, la firma digital puede comunicarse junto con la otra información, o la firma digital puede comunicarse por separado. En algunos casos, el emisor 504 también envía el certificado digital del emisor al verificador 506, o el verificador 506 puede obtener el certificado digital del emisor de otra fuente. La información comunicada desde el emisor 504 al verificador 506 puede comunicarse de cualquier forma adecuada. Por ejemplo, la información puede comunicarse a través de una red de comunicación de datos, transmitida a través de un enlace de comunicación inalámbrica o por cable, transportada en un disco u otro medio legible por ordenador, o cualquier combinación adecuada. En el ejemplo mostrado en la Figura 5, el verificador 506 recibe la información del emisor 504.
El verificador 506 puede obtener el mensaje (es decir, el mensaje no modificado) directamente del emisor 504, o el verificador 506 puede obtener el mensaje de otra información proporcionada por el emisor 504. En algunas implementaciones, en 518, el emisor comunica el primer mensaje modificado al verificador 506, y el verificador 506 extrae el mensaje original y no modificado del primer mensaje modificado. El verificador 506 puede obtener el mensaje original no modificado de cualquier forma adecuada.
En 520, el verificador 506 accede al mensaje original y no modificado y modifica el mensaje. El mensaje puede modificarse basándose en la información incluida en el certificado digital del emisor. El verificador 506 puede acceder al certificado digital y al mensaje, por ejemplo, leyendo uno o más de ellos desde la memoria, recibiendo uno o más de ellos desde un dispositivo remoto, generando uno o más de ellos localmente, o mediante cualquier combinación adecuada de estas y otras técnicas para acceder a datos. Cuando el verificador 506 modifica el mensaje, el verificador 506 produce un segundo mensaje modificado.
El segundo mensaje modificado puede generarse mediante cualquier técnica adecuada. En el proceso 500 ilustrativo mostrado en la Fig. 5, el verificador 506 modifica el mensaje en 520 de la misma forma que el emisor 504 modifica el mensaje en 514. Por ejemplo, el emisor 504 y el verificador 506 pueden modificar cada uno el mensaje según un algoritmo predeterminado o predispuesto. Como tal, el segundo mensaje modificado producido en 520 por el verificador 506 puede ser idéntico al primer mensaje modificado producido en 514 por el emisor 504.
En algunas implementaciones, el verificador 506 genera el segundo mensaje modificado generando un valor hash basado en el certificado digital del emisor y combinando el valor hash con el mensaje. El verificador 506 puede generar el segundo mensaje modificado combinando el mensaje con el valor de reconstrucción de la clave pública del emisor. El verificador 506 puede generar el segundo mensaje modificado combinando el mensaje con otro valor. El otro valor puede basarse en información del certificado digital del firmante y posiblemente en otra información. Por ejemplo, el otro valor puede producirse a partir del valor de reconstrucción de la clave pública del firmante, el valor de la clave pública del firmante, el identificador del firmante, otra información incluida en el certificado digital o cualquier combinación adecuada.
En algunos casos, el segundo mensaje modificado se genera combinando el mensaje con información de clave pública de autoridad de certificación. Por ejemplo, el segundo mensaje modificado puede generarse basándose tanto en el certificado digital del firmante como en la clave pública de autoridad de certificación. Cuando la autoridad 502 de certificación está subordinada a otra autoridad de certificación, el segundo mensaje modificado puede generarse combinando el mensaje con un valor producido a partir del valor de reconstrucción de la clave pública del firmante y uno o más otros valores. Los otros valores pueden incluir, por ejemplo, una clave pública de autoridad 502 de certificación, una clave pública de una autoridad de certificación superior, un certificado digital de la autoridad 502 de certificación, un certificado digital de la autoridad de certificación superior, etc.
En 522, el verificador 506 verifica el mensaje. El mensaje se verifica basándose en la firma digital generada en 516 por el emisor 504 y basándose en el segundo mensaje modificado generado en 520 por el verificador 506. En algunos casos, el mensaje puede verificarse basándose en información adicional o distinta. El mensaje puede verificarse basándose en parte cualquier algoritmo de verificación de firma adecuado u otra técnica apropiada. La verificación del mensaje puede proporcionar la seguridad del verificador 506 de la autenticidad del mensaje. Por ejemplo, verificar con éxito el mensaje puede indicar que el mensaje es una comunicación auténtica procedente del emisor 504, y que no se ha alterado o falsificado.
En algunos casos, el verificador 506 utiliza la firma digital para verificar el primer mensaje modificado producido por el emisor 504, y el verificador 506 compara entonces el primer mensaje modificado con el segundo mensaje modificado. En algunos casos, el primer mensaje modificado se verifica basándose en el certificado digital según un algoritmo de verificación que corresponde al algoritmo de firma digital utilizado por el emisor para generar la firma digital en 516. Si el primer mensaje modificado puede verificarse basándose en la firma digital, y si el primer mensaje modificado coincide con el segundo mensaje modificado, el verificador 506 puede aceptar el mensaje (es decir, el no modificado) como auténtico. Si el primer mensaje modificado no puede ser verificado basándose en la firma digital, o si el primer mensaje modificado no coincide con el segundo mensaje modificado, el verificador 506 puede rechazar el mensaje como no auténtico.
Parte del objeto y de las operaciones descritas en esta memoria descriptiva pueden implementarse en circuitos electrónicos digitales, o en software, firmware o hardware de ordenador, incluyendo las estructuras descritas en esta memoria descriptiva y sus equivalentes estructurales, o en combinaciones de uno o más de estos. Parte del objeto descrito en esta memoria descriptiva puede implementarse como uno o más programas informáticos, es decir, uno o más módulos de instrucciones de programa informático, codificados en medio de almacenamiento informático no transitorio para su ejecución por, o para controlar el funcionamiento del aparato de procesamiento de datos. De forma alternativa o adicional, las instrucciones del programa pueden codificarse para su transmisión a un aparato receptor adecuado para su ejecución por un aparato de procesamiento de datos. Un medio de almacenamiento informático puede ser, o incluirse en, un dispositivo de almacenamiento legible por ordenador, un sustrato de almacenamiento legible por ordenador, una matriz o dispositivo de memoria de acceso aleatorio o en serie, o una combinación de uno o más de estos. Además, aunque un medio de almacenamiento informático no es una señal propagada, un medio de almacenamiento informático puede ser una fuente o destino de instrucciones de programa informático codificadas en una señal propagada generada artificialmente. El medio de almacenamiento informático también puede ser, o estar incluido en, uno o más componentes o medios físicos separados (por ejemplo, múltiples tarjetas, discos u otros dispositivos de almacenamiento).
Las operaciones descritas en esta memoria descriptiva pueden implementarse como operaciones realizadas por un aparato de procesamiento de datos en datos almacenados en uno o más dispositivos de almacenamiento legibles por ordenador o recibidos de otras fuentes. La expresión “ aparato de procesamiento de datos” abarca todo tipo de aparatos, dispositivos y máquinas para procesar datos, incluyendo a título ilustrativo un procesador programable, un ordenador, un sistema en un chip, o múltiples, o combinaciones, de los anteriores. El aparato puede incluir sistemas de circuitos lógicos de propósito especial, p. ej., una FPGA (matriz de puertas programables en campo) o un ASIC (circuito integrado de aplicación específica). El aparato puede incluir también, además de hardware, código que crea un entorno de ejecución para el programa informático en cuestión, p. ej., código que constituye el firmware del procesador, una pila de protocolos, un sistema de gestión de bases de datos, un sistema operativo, un entorno de tiempo de ejecución de plataforma cruzada, una máquina virtual o una combinación de uno o más de ellos. El aparato y el entorno de ejecución pueden realizar diversas infraestructuras de modelos informáticos distintas, tales como servicios web, infraestructuras de computación distribuida e informática de red.
Un programa informático (también conocido como programa, software, aplicación de software, script o código) puede estar escrito en cualquier forma de lenguaje de programación, incluyendo lenguajes compilados o interpretados, lenguajes declarativos o procedimentales, y puede desplegarse en cualquier forma, incluyendo como un programa independiente o como un módulo, componente, subrutina, objeto u otra unidad adecuada para su uso en un entorno informático. Un programa informático puede corresponder, aunque no necesariamente, a un archivo en un sistema de archivos. Un programa puede almacenarse en una porción de un archivo que contenga otros programas o datos (por ejemplo, uno o más scripts almacenados en un documento de lenguaje de marcado), en un único archivo dedicado al programa en cuestión, o en múltiples archivos coordinados (por ejemplo, archivos que almacenen uno o más módulos, subprogramas o partes de código). Un programa informático puede desplegarse para ejecutarse en un dispositivo informático o en múltiples ordenadores que estén localizados en un sitio o distribuidos en múltiples sitios e interconectarse por una red de comunicación.
Los procesos y flujos lógicos descritos en esta memoria descriptiva pueden ser realizados por uno o más procesadores programables que ejecutan uno o más programas informáticos para realizar acciones que operan en datos de entrada y generan datos de salida. Los procesos y los flujos lógicos también pueden ser llevados a cabo por, y un aparato puede implementarse como, un conjunto de circuitos lógico de propósito especial, por ejemplo, una FPGA (matriz de puertas programables en campo) o un ASIC (circuito integrado específico de aplicación).
Procesadores adecuados para la ejecución de un programa informático incluyen, a título ilustrativo, microprocesadores de propósito tanto general como especial, y uno o más procesadores de cualquier tipo de dispositivo informático digital. Generalmente, un procesador recibirá instrucciones y datos a partir de una memoria de sólo lectura o una memoria de acceso aleatorio o ambas. Los elementos esenciales de un dispositivo informático son un procesador para realizar acciones según instrucciones y uno o más dispositivos de memoria para almacenar instrucciones y datos. Generalmente, un dispositivo informático también incluirá, o estará acoplado operativamente para recibir datos de, o transferir datos a, o ambos, uno o más dispositivos de almacenamiento para almacenar datos. Sin embargo, un dispositivo informático no necesita tener tales dispositivos. Además, un ordenador puede estar integrado en otro dispositivo, p. ej., un teléfono móvil, un asistente digital personal (PDA), un reproductor de audio o vídeo móvil, una consola de juegos, un receptor del Sistema de Posicionamiento Global (GPS) o un dispositivo de almacenamiento portátil (p. ej., una unidad flash de bus serie universal (USB)), por nombrar solo unos pocos. Dispositivos adecuados para almacenar instrucciones de programa informático y datos incluyen todas las formas de memoria no volátil, medios y dispositivos de memoria, incluyendo a modo ilustrativo dispositivos de memoria de semiconductores, p. ej., EPROM, EEPROM y dispositivos de memoria flash; discos magnéticos, por ejemplo, discos duros internos o discos extraíbles; discos magneto-ópticos; discos CD-ROM y DVD-ROM. El procesador y la memoria pueden complementarse mediante, o incorporarse en, un conjunto de circuitos lógico de propósito especial.
Para proporcionar interacción con un usuario, el objeto descrito en esta memoria descriptiva puede implementarse en un ordenador que tenga un dispositivo de visualización, por ejemplo, una pantalla LCD (pantalla de cristal líquido) para visualizar información al usuario y un teclado y un dispositivo de señalización, por ejemplo, pantalla táctil, lápiz óptico, ratón, etc., por el cual el usuario puede proporcionar entradas al ordenador. También pueden usarse otros tipos de dispositivos para proporcionar interacción con un usuario; por ejemplo, la retroalimentación proporcionada al usuario puede ser cualquier forma de retroalimentación sensorial, por ejemplo, retroalimentación visual, retroalimentación auditiva o retroalimentación táctil; y la entrada del usuario puede recibirse en cualquier forma, incluyendo entrada acústica, de voz o táctil. Además, un dispositivo informático puede interactuar con un usuario enviando documentos a, y recibiendo documentos de, un dispositivo utilizado por el usuario; por ejemplo, enviando páginas web a un navegador web en el dispositivo cliente de un usuario en respuesta a solicitudes recibidas del navegador web.
Parte del objeto descrito en esta memoria descriptiva puede implementarse en un sistema informático que incluye un componente de extremo trasero, p. ej., como un servidor de datos, o que incluye un componente de soporte intermedio, p. ej., un servidor de aplicaciones, o que incluye un componente de extremo frontal, p. ej., un dispositivo informático cliente con una interfaz gráfica de usuario o un navegador web a través del cual un usuario puede interactuar con una implementación del objeto descrito en esta memoria descriptiva, o cualquier combinación de uno o más de dichos componentes de extremo trasero, soporte intermedio o extremo frontal. Los componentes del sistema pueden estar interconectados por cualquier forma o medio de comunicación de datos digitales, por ejemplo, una red de datos.
El sistema informático puede incluir clientes y servidores. Un cliente y un servidor están generalmente alejados entre sí y de forma típica interactúan a través de una red de datos. La relación de cliente y servidor surge en virtud de programas informáticos que se ejecutan en los ordenadores respectivos y que tienen una relación clienteservidor entre sí. En algunas implementaciones, un servidor transmite datos a un dispositivo cliente. Los datos generados en el dispositivo cliente pueden recibirse desde el dispositivo cliente en el servidor.
Aunque esta memoria descriptiva contiene muchos detalles específicos de implementación, estos no deben interpretarse como limitaciones en el ámbito de lo que puede reivindicarse, sino más bien como descripciones de características específicas para implementaciones particulares. Ciertas características que se describen en esta memoria descriptiva en el contexto de implementaciones separadas también pueden implementarse en combinación en una única implementación. Por el contrario, diversas características que se describen en el contexto de una sola implementación también pueden implementarse en múltiples implementaciones por separado o en cualquier subcombinación adecuada. Además, aunque las características pueden describirse anteriormente como que actúan en ciertas combinaciones e incluso reivindicadas inicialmente como tales, una o más características de una combinación reivindicada pueden en algunos casos escindirse de la combinación, y la combinación reivindicada puede estar dirigida a una subcombinación o variación de una subcombinación.
De forma similar, aunque las operaciones se representan en los dibujos en un orden particular, no debe entenderse que se requiera que tales operaciones se realicen en el orden particular mostrado o en orden secuencial, o que se realicen todas las operaciones ilustradas, para lograr resultados deseables. En ciertas circunstancias pueden ser ventajosos la multitarea y el procesamiento en paralelo. Además, la separación de diversos componentes del sistema en las implementaciones descritas anteriormente no debe entenderse como que requiere dicha separación en todas las implementaciones, y debe entenderse que los componentes y sistemas de programa descritos generalmente pueden integrarse entre sí en un único producto de software o empaquetarse en múltiples productos de software.
En algunos aspectos, se accede a un certificado implícito. El certificado implícito está asociado a una entidad y es generado por una autoridad de certificación. El certificado implícito incluye un valor de reconstrucción de clave pública de la entidad. Se accede información de clave pública de autoridad de certificación asociada a la autoridad de certificación. Se genera un primer valor basándose en la evaluación de una función hash. La función hash se evalúa basándose en la información de clave pública de autoridad de certificación y el valor de reconstrucción de clave pública de la entidad. Un valor de clave pública de la entidad se genera basándose en el primer valor.
Las implementaciones de estos y otros aspectos pueden incluir una o más de las siguientes características. La autoridad de certificación es una autoridad de certificación raíz, y la entidad es una segunda autoridad de certificación subordinada a la autoridad de certificación raíz. La autoridad de certificación es una autoridad de certificación intermedia subordinada a una autoridad de certificación raíz, y la entidad es una segunda autoridad de certificación subordinada a la autoridad de certificación intermedia. El certificado implícito se basa en una cadena de certificados implícitos. La autoridad de certificación es una autoridad de certificación raíz y la entidad es una entidad de usuario.
De forma adicional o alternativa, las implementaciones de estos y otros aspectos pueden incluir una o más de las siguientes características. Validar el valor de clave pública, utilizar el valor de clave pública para verificar una firma digital de la entidad, o ambos. Evaluar una función criptográfica que utiliza el valor de clave pública. La evaluación de la función criptográfica puede o no calcular explícitamente el valor de clave pública.
De forma adicional o alternativa, las implementaciones de estos y otros aspectos pueden incluir una o más de las siguientes características. El primer valor y el valor de clave pública son generados por la entidad. El primer valor y el valor de clave pública son generados por la autoridad de certificación. El primer valor y el valor de clave pública son generados por una segunda entidad distinta que se basa en el valor de clave pública. La información de clave pública de autoridad de certificación incluye un valor de clave pública de la autoridad de certificación, un valor de reconstrucción de clave pública de la autoridad de certificación, o ambos.
De forma adicional o alternativa, las implementaciones de estos y otros aspectos pueden incluir una o más de las siguientes características. La autoridad de certificación es una autoridad de certificación subordinada. Se accede a la información de clave pública de clave pública asociada con una autoridad de certificación raíz. El primer valor se genera basándose en la evaluación de la función hash basándose en la información clave pública de clave de certificado de la autoridad de certificación subordinada, la información de clave pública de autoridad de certificación adicional de la autoridad de certificación raíz y el valor de reconstrucción de clave pública de la entidad.
En algunos aspectos, se accede a un certificado implícito asociado a una entidad. El certificado implícito incluye un valor de reconstrucción de clave pública de la entidad. Se accede a un mensaje para la firma digital por la entidad. Se genera un mensaje modificado combinando el mensaje con un valor basado en el certificado implícito. Se genera una firma digital basándose en el mensaje modificado.
En algunos aspectos, se accede a una firma digital generada por una entidad. Se accede a un mensaje a verificar en función de la firma digital. Se accede a un certificado implícito asociado a la entidad. Se genera un mensaje modificado combinando el mensaje con un valor basado en el certificado implícito. El mensaje se verifica basándose en la firma digital y el mensaje modificado.
Las implementaciones de estos y otros aspectos pueden incluir una o más de las siguientes características. El mensaje modificado se genera generando un valor hash basándose en el certificado implícito de la entidad y combinando el valor hash con el mensaje. El mensaje y la firma digital se envían a un receptor a través de una red de comunicación de datos. El mensaje modificado se genera combinando el mensaje con el valor de reconstrucción de clave pública de la entidad. El mensaje modificado se genera combinando el mensaje con un valor basado en el valor de reconstrucción de clave pública de la entidad e información adicional incluida en el certificado implícito.
De forma adicional o alternativa, las implementaciones de estos y otros aspectos pueden incluir una o más de las siguientes características. El acceso al certificado implícito incluye acceder a un certificado implícito emitido por una autoridad de certificación. El mensaje modificado se genera combinando el mensaje con un valor basado en el certificado implícito y un valor de clave pública de la autoridad de certificación. Acceder al certificado implícito incluye acceder a un certificado implícito emitido por una primera autoridad certificadora que está subordinado a una segunda autoridad certificadora. El mensaje modificado se genera combinando el mensaje con un valor basado en el valor de reconstrucción de clave pública de la entidad y uno o más de otros valores. Los otros valores incluyen una clave pública de la primera autoridad de certificación, una clave pública de la segunda autoridad de certificación, un certificado implícito de la primera autoridad de certificación, un certificado implícito de la segunda autoridad de certificación o una combinación de los mismos.
De forma adicional o alternativa, las implementaciones de estos y otros aspectos pueden incluir una o más de las siguientes características. Un verificador recibe un primer mensaje modificado de la entidad a través de una red de comunicación de datos. El mensaje modificado generado combinando el mensaje con un valor basado en el certificado implícito es un segundo mensaje modificado. La verificación del mensaje incluye utilizar la firma digital para verificar el primer mensaje modificado según un algoritmo de verificación. La verificación del mensaje incluye comparar el primer mensaje modificado con el segundo mensaje modificado. El acceso al mensaje incluye obtener el mensaje desde el primer mensaje modificado.
Por lo tanto, se han descrito implementaciones del objeto. Otras implementaciones están dentro del ámbito de las siguientes reivindicaciones. En algunos casos, las acciones enumeradas en las reivindicaciones pueden realizarse en un orden distinto y aun así lograr resultados deseables. Además, los procesos representados en las figuras adjuntas no requieren necesariamente el orden particular mostrado, o un orden secuencial, para lograr resultados deseables. En ciertas implementaciones puede ser ventajosos la multitarea y el procesamiento en paralelo.

Claims (6)

REIVINDICACIONES
1. Un método que comprende:
generar, por una autoridad (204x, 304) de certificación, un certificado implícito asociado con una entidad (102), en donde el certificado implícito incluye un valor de reconstrucción de clave pública (P) de la entidad (102) e información de identidad (I) de la entidad (102), siendo la autoridad (204x, 304) de certificación parte de una cadena de autoridades de certificación, comprendiendo la cadena además una o más autoridades (204a, 204b) de certificación superiores; acceder (410), mediante un módulo terminal (206, 306), al certificado implícito;
generar (430), mediante el módulo terminal (206, 306), un primer valor basado en la evaluación de una función hash, en donde la función hash se evalúa basándose en el valor (P) de reconstrucción de clave pública de la entidad, información de clave pública de la autoridad (204x, 304) de certificación e información de clave pública de al menos una de la una o más autoridades (204a, 204b) de certificación superiores, comprendiendo la información de clave pública al menos uno de una clave pública y un valor de reconstrucción de clave pública de la autoridad (204a, 204b, 204x) de certificación respectiva;
verificar (440), mediante el módulo terminal (206, 306), una firma digital de la entidad (102) utilizando, de forma implícita o explícita, un valor de clave pública de la entidad (102) basándose en el primer valor.
2. El procedimiento de la reivindicación 1, en donde una de la una o más autoridades (204a, 204b) de certificación superiores es una autoridad de certificación raíz, y la entidad (102) comprende una segunda autoridad de certificación subordinada a la autoridad de certificación raíz.
3. El procedimiento de la reivindicación 1, en donde la una o más autoridades (204a, 204b) de certificación superiores comprenden una autoridad de certificación intermedia que está subordinada a una autoridad de certificación raíz, la entidad (102) comprende una segunda autoridad de certificación que está subordinada a la autoridad de certificación intermedia.
4. El procedimiento de la reivindicación 1, en donde una de las una o más autoridades (204a, 204b) de certificación superiores es una autoridad de certificación raíz y la entidad (102) comprende una correspondiente.
5. El procedimiento de una cualquiera de las reivindicaciones 1 a 4, que comprende, además: validar el valor de clave pública, en donde la validación incluye generar el valor de clave pública de la entidad (102).
6. Un sistema (300) de criptografía que comprende:
una autoridad (204x, 304) de certificación configurada para generar un certificado implícito asociado con una entidad (102), en donde el certificado implícito incluye un valor de reconstrucción de clave pública (P) de la entidad (102) e información de identidad (I) de la entidad (102), siendo la autoridad (304) de certificación parte de una cadena de autoridades de certificación, comprendiendo la cadena además una o más autoridades (204a, 204b) de certificación superiores; y
un módulo terminal (206, 306) configurado para:
acceder al certificado implícito;
generar un primer valor basado en la evaluación de una función hash, en donde la función hash se evalúa basándose en el valor (P) de reconstrucción de clave pública de la entidad, información de clave pública de la autoridad (204x, 304) de certificación e información de clave pública de al menos una de la una o más autoridades (204a, 204b) de certificación superiores, comprendiendo la información de clave pública al menos uno de una clave pública y un valor de reconstrucción de clave pública de la respectiva autoridad (204a, 204b, 304) de certificación; y verificar una firma digital de la entidad (102) utilizando, de forma implícita o explícita, el valor de clave pública de la entidad (102) basándose en el primer valor.
ES19207028T 2011-06-10 2012-05-04 Encadenamiento seguro e implícito de certificados Active ES2960797T3 (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US201161495788P 2011-06-10 2011-06-10

Publications (1)

Publication Number Publication Date
ES2960797T3 true ES2960797T3 (es) 2024-03-06

Family

ID=46062772

Family Applications (1)

Application Number Title Priority Date Filing Date
ES19207028T Active ES2960797T3 (es) 2011-06-10 2012-05-04 Encadenamiento seguro e implícito de certificados

Country Status (6)

Country Link
US (1) US10148422B2 (es)
EP (2) EP2533457B8 (es)
CN (1) CN103765809B (es)
CA (1) CA2838322C (es)
ES (1) ES2960797T3 (es)
WO (1) WO2012170130A1 (es)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2976795C (en) 2011-06-10 2021-08-03 Certicom Corp. Implicitly certified digital signatures
WO2012170130A1 (en) * 2011-06-10 2012-12-13 Certicom (U.S.) Limited Implicitly certified public keys
US9584492B2 (en) * 2014-06-23 2017-02-28 Vmware, Inc. Cryptographic proxy service
DE102014017528A1 (de) * 2014-11-26 2016-06-02 Giesecke & Devrient Gmbh Signaturerstellung
US10205598B2 (en) * 2015-05-03 2019-02-12 Ronald Francis Sulpizio, JR. Temporal key generation and PKI gateway
US10542117B2 (en) 2015-09-03 2020-01-21 Verisign, Inc. Systems and methods for providing secure access to shared registration systems
US11329821B2 (en) 2015-12-28 2022-05-10 Verisign, Inc. Shared registration system
WO2017113353A1 (zh) 2015-12-31 2017-07-06 华为技术有限公司 数据传输方法、装置和设备
US20180062856A1 (en) * 2016-08-30 2018-03-01 Verisign, Inc. Integrated dns service provider services using certificate-based authentication
US10397002B2 (en) * 2017-02-10 2019-08-27 International Business Machines Corporation Signature scheme for homomorphic message encoding functions
US10824737B1 (en) * 2017-02-22 2020-11-03 Assa Abloy Ab Protecting data from brute force attack
CN108011888B (zh) * 2017-12-15 2020-12-29 东软集团股份有限公司 一种实现证书重构的方法、装置及存储介质、程序产品
CN108768664B (zh) * 2018-06-06 2020-11-03 腾讯科技(深圳)有限公司 密钥管理方法、装置、系统、存储介质和计算机设备
RU2728506C2 (ru) * 2018-06-29 2020-07-29 Акционерное общество "Лаборатория Касперского" Способ блокировки сетевых соединений
CN111866872B (zh) * 2019-04-29 2023-06-02 华为技术有限公司 一种通信方法及装置
CN110380862B (zh) * 2019-06-25 2022-10-14 晟安信息技术有限公司 基于隐式证书的签名验证方法、装置和计算机设备
CN111835516B (zh) * 2020-06-14 2021-11-23 西安电子科技大学 一种公钥可否认加密方法及系统
CN114079564A (zh) * 2020-08-11 2022-02-22 旭尔权(北京)科技有限公司 向两方协作式用户部件签发隐式数字证书的计算方法和系统
GB2600970A (en) * 2020-11-13 2022-05-18 Nchain Holdings Ltd Key derivation method

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2235359C (en) * 1998-03-23 2012-04-10 Certicom Corp. Implicit certificate scheme with ca chaining
US7269726B1 (en) * 2000-01-14 2007-09-11 Hewlett-Packard Development Company, L.P. Lightweight public key infrastructure employing unsigned certificates
WO2001095068A2 (en) * 2000-06-09 2001-12-13 Certicom Corp. A method for the application of implicit signature schemes
WO2003069450A2 (fr) * 2002-02-12 2003-08-21 Nagracard Sa Methode de stockage et de transport d'un certificat electronique
US20050089173A1 (en) 2002-07-05 2005-04-28 Harrison Keith A. Trusted authority for identifier-based cryptography
US7716139B2 (en) * 2004-10-29 2010-05-11 Research In Motion Limited System and method for verifying digital signatures on certificates
CN101090316B (zh) * 2006-06-16 2011-04-20 普天信息技术研究院 离线状态下存储卡与终端设备之间的身份认证方法
JP5260523B2 (ja) * 2006-09-08 2013-08-14 サーティコム コーポレーション 無線周波識別(rfid)認証およびそのための鍵配信システム
WO2008058388A1 (en) * 2006-11-15 2008-05-22 Certicom Corp. Implicit certificate verification
EP2186253A4 (en) 2007-09-04 2011-11-30 Certicom Corp SIGNATURES WITH RECOVERY OF CONFIDENTIAL MESSAGES
US9112910B2 (en) * 2008-10-14 2015-08-18 International Business Machines Corporation Method and system for authentication
US8582775B2 (en) 2009-02-12 2013-11-12 General Motors Llc Method of securing and authenticating data using micro-certificates
US8447971B2 (en) * 2009-05-05 2013-05-21 Certicom Corp. Self-signed implicit certificates
EP2302834B1 (en) 2009-09-09 2017-12-13 BlackBerry Limited System and method for providing credentials
US8701169B2 (en) * 2011-02-11 2014-04-15 Certicom Corp. Using a single certificate request to generate credentials with multiple ECQV certificates
US9003181B2 (en) 2011-03-23 2015-04-07 Certicom Corp. Incorporating data into cryptographic components of an ECQV certificate
WO2012151653A1 (en) * 2011-05-06 2012-11-15 Certicom Corp. Validating a batch of implicit certificates
WO2012170130A1 (en) * 2011-06-10 2012-12-13 Certicom (U.S.) Limited Implicitly certified public keys
CA2976795C (en) * 2011-06-10 2021-08-03 Certicom Corp. Implicitly certified digital signatures
US9209980B2 (en) 2011-06-21 2015-12-08 Blackberry Limited Provisioning a shared secret to a portable electronic device and to a service entity

Also Published As

Publication number Publication date
EP2533457B1 (en) 2019-11-06
US20120314856A1 (en) 2012-12-13
CA2838322A1 (en) 2012-12-13
WO2012170130A1 (en) 2012-12-13
EP3681093C0 (en) 2023-09-13
EP3681093B1 (en) 2023-09-13
EP3681093A1 (en) 2020-07-15
CN103765809B (zh) 2019-07-30
EP2533457A1 (en) 2012-12-12
CA2838322C (en) 2016-10-11
CN103765809A (zh) 2014-04-30
US10148422B2 (en) 2018-12-04
EP2533457B8 (en) 2019-12-11

Similar Documents

Publication Publication Date Title
ES2960797T3 (es) Encadenamiento seguro e implícito de certificados
US10944575B2 (en) Implicitly certified digital signatures
CN109194466B (zh) 一种基于区块链的云端数据完整性检测方法及系统
ES2687182T3 (es) Determinar un secreto común para el intercambio seguro de información y claves criptográficas jerárquicas y deterministas
US9853816B2 (en) Credential validation
US9698993B2 (en) Hashing prefix-free values in a signature scheme
US8995656B2 (en) Multiple hashing in a cryptographic scheme
CN113301022B (zh) 基于区块链和雾计算的物联网设备身份安全认证方法
CN109672530A (zh) 基于非对称密钥池的抗量子计算数字签名方法和抗量子计算数字签名系统
CN111340485B (zh) 一种用于联盟区块链的数字证书的配置方法、终端和根证书服务器
ES2400895B1 (es) Método para realizar una firma digital de grupo
CN109687977A (zh) 基于多个密钥池的抗量子计算数字签名方法和抗量子计算数字签名系统
Gonzalez et al. Verifying post-quantum signatures in 8 kB of RAM
CN110572257B (zh) 基于身份的数据来源鉴别方法和系统