¿Existe tal cosa como una clave Diffie-Hellman estática estilo SSLeay / PKCS # 1?

0

Es decir, si alguna vez encuentra un archivo PEM que comienza:

-----BEGIN DH PRIVATE KEY-----

o:

-----BEGIN DH PUBLIC KEY-----

?

Y si es así, ¿cuál es su estructura?

Sé que las claves DH estáticas son una rareza, y tal vez incluso extintas. Y sé que puede colocar una clave privada DH dentro de un contenedor PKCS # 8, y que puede colocar una clave pública DH en un certificado X.509, o tenerla como una clave pública suelta al estilo X.509, o al menos , que OpenSSL sabe como hacerlo! Pero no puedo encontrar ninguna referencia a nadie que haya usado el formato anterior para las claves DH estáticas.

La razón por la que pregunto es que estoy escribiendo un código que toma las claves como entrada, y me gustaría admitir una amplia gama de claves como sea posible. Puedo manejar claves para los algoritmos RSA, DSA, EC y DH. En cuanto a formatos, apoyo:

  • Formato PKCS # 8 para claves privadas
  • Formato PublicKeyInfo X.509 (producido por openssl pkey ) para claves públicas
  • PKCS # 1 para claves privadas RSA
  • PKCS # 1-like para claves privadas DSA (producidas por openssl dsaparam -genkey )
  • PKCS # 1-like para claves privadas EC (producidas por openssl ecparam -genkey )

También estoy intentando solucionar el problema: hay un formato similar a PKCS # 1 para las claves privadas DH, porque si lo hay, debería admitirlo.

    
pregunta Tom Anderson 21.06.2016 - 17:31
fuente

1 respuesta

1

Versión corta:

  • Sí, PKCS # 8 es una envoltura de estilo PKCS # 1 que puede contener una clave DH.
  • PKCS # 1 es un formato específico de RSA, así que no, no encontrará una clave DH en él.

Versión mediana:

Érase una vez, RSA inventó algo de criptografía. Y querían envolverlo en un formato utilizable, por lo que inventaron PKCS # 1. Por eso es, ya sabes, # 1 - porque fue lo primero. Pero realmente solo manejaba las claves RSA, como se refleja en el uso de "RSA" en el contenedor.

Un poco más adelante en el camino, dijeron "¡Espera un minuto! Deberíamos poder hacer lo mismo con las teclas DH y las teclas de curva elíptica, y ... Vamos a crear un nuevo PKCS que sea flexible por su diseño y pueda manejar diferentes tipos de claves. Y, um, mientras lo hacemos, tomemos el nombre del algoritmo FUERA de la envoltura y lo codifiquemos como parte de los datos ". Y así es como nació PKCS # 8.

Versión larga:

Hay una pregunta sobre Desbordamiento de pila que provocó algunas respuestas excelentes en este espacio. Esta respuesta se refiere a la distinción PKCS # 1 / PKCS # 8. Y esta respuesta , que es como un oso en su genialidad, entra en los detalles de la historia del diseño que he probado para resumir en la versión Media anterior.

Nota al pie: la "versión larga" que proporcioné es en realidad una vez que haya leído las dos respuestas SO a las que se hace referencia, así que no sea snarky.

    
respondido por el gowenfawr 21.06.2016 - 18:44
fuente

Lea otras preguntas en las etiquetas