¿Por qué las codificaciones PEM de las claves públicas y privadas de la CE usan encabezados diferentes?

2

Los estados del comando de OpenSSL ec :

   The PEM private key format uses the header and footer lines:

    -----BEGIN EC PRIVATE KEY-----
    -----END EC PRIVATE KEY-----

   The PEM public key format uses the header and footer lines:

    -----BEGIN PUBLIC KEY-----
    -----END PUBLIC KEY-----
  1. ¿En qué estándar se basa (si existe)?
  2. ¿Por qué 'EC' se indica en el encabezado / pie de página de la clave privada, pero no en el público? Supongo que esta es una parte de "metainformación" que describe el contenido, ¿por qué falta en la parte pública?
pregunta Konstantin Shemyak 30.08.2018 - 15:27
fuente

1 respuesta

3

Para responder a su primera pregunta, esto se basa en el RFC enlace (sección 4)

El nombre del algoritmo faltante tiene que ver con el formato de codificación utilizado al codificar, es decir, pkcs # 1 vs pkcs # 8. El primero no contiene el algorithmIdentifier y, por lo tanto, el nombre algo (EC, RSA, etc.) se incluye en la etiqueta. Sin embargo, pkcs # 8 encapsula el identificador de algoritmo y, por lo tanto, se omite en la etiqueta.

por ejemplo, el formato pkcs # 8 para clave privada es este:

PrivateKeyInfo ::= SEQUENCE {
   version                   Version,
   privateKeyAlgorithm       PrivateKeyAlgorithmIdentifier,
   privateKey                PrivateKey,
   attributes           [0]  IMPLICIT Attributes OPTIONAL }

Version ::= INTEGER

PrivateKeyAlgorithmIdentifier ::= AlgorithmIdentifier

PrivateKey ::= OCTET STRING

Attributes ::= SET OF Attribute

Para aclarar, no hay nada que impida representar la clave pública en el formato pkcs # 1 y, por lo tanto, crear un encabezado del tipo: ----- BEGIN EC PUBLIC KEY -----. Así que parece que la codificación particular producida está de acuerdo con el conjunto de codificación predeterminado para la herramienta (aunque no estoy seguro de esto). Sin embargo, cualquier herramienta / biblioteca decente debe poder manejar cualquiera de los dos formatos, incluso cuando se usan formatos diferentes para las claves públicas y privadas del mismo par de claves.

    
respondido por el Chayan Ghosh 30.08.2018 - 19:51
fuente

Lea otras preguntas en las etiquetas