Atributos principales de Diffie Hellman

1

Si genero un Diffie-Hellman prime openssl dhparam 512 -text (deliberadamente, de tamaño pequeño para mantener el tamaño de la pasta por debajo; sé que el mínimo es de 2048 o más), ¿cuáles son las diferentes partes de la salida?

    PKCS#3 DH Parameters: (512 bit)
        prime:
            00:84:f7:d4:6a:96:54:da:8e:b0:68:4d:8f:42:fe:
            52:a1:4f:dc:05:f7:0b:f1:4a:fd:dd:0a:27:b7:b4:
            c4:09:db:4d:80:c2:b0:46:e0:f6:dc:fe:e2:9a:d2:
            5c:e8:7c:6e:9f:81:aa:bc:4b:8c:6e:67:b5:e5:b2:
            03:b6:56:d3:c3
        generator: 2 (0x2)
-----BEGIN DH PARAMETERS-----
MEYCQQCE99RqllTajrBoTY9C/lKhT9wF9wvxSv3dCie3tMQJ202AwrBG4Pbc/uKa
0lzofG6fgaq8S4xuZ7XlsgO2VtPDAgEC
-----END DH PARAMETERS-----

Entiendo que el generador es el número base que suele ser 2 o 5. La pregunta es el número primo y los parámetros DH.

  1. ¿En qué se representa el primo?
  2. ¿Cómo se puede convertir en un entero primo real?
  3. ¿Qué se codifica (y por qué?) en la sección de parámetros de DH?
  4. ¿Cómo usan esta salida las diferentes aplicaciones (como httpd)?
pregunta mart1n 07.02.2016 - 09:01
fuente

1 respuesta

5
  
  1. ¿En qué se representa el primo?
  2.   

Codificación de base simple 16 del número real.

  
  1. ¿Cómo se puede convertir en un entero primo real?
  2.   

Simplemente conviértelo de la base 16. Así:

$ echo "ibase=16;0084F7D46A9654DA8EB0684D8F42FE52A14FDC05F70BF14AFDD\
D0A27B7B4C409DB4D80C2B046E0F6DCFEE29AD25CE87C6E9F81AABC4B8C6E67B5E5B\
203B656D3C3" | bc
69641036876619088755613794741049804861416084108574896892562277663292\
07662129683124275184714669456043499786144904245391117269209586570225\
834561454877365187

Y, sí, de hecho es un primo.

$ openssl prime -hex 0084F7D46A9654DA8EB0684D8F42FE52A14FDC05F70BF14AFDDD0A27B7B4C409DB4D80C2B046E0F6DCFEE29AD25CE87C6E9F81AABC4B8C6E67B5E5B203B656D3C3   
 84F7D46A9654DA8EB0684D8F42FE52A14FDC05F70BF14AFDDD0A27B7B4C409DB4D80C2B046E0F6DCFEE29AD25CE87C6E9F81AABC4B8C6E67B5E5B203B656D3C3 is prime
  
  1. ¿Qué está codificado (y por qué?) en la sección de parámetros de DH?
  2.   

Igual que la descripción de texto sin formato.

Versión PEM:

$ cat dh.pem
-----BEGIN DH PARAMETERS-----
MEYCQQCE99RqllTajrBoTY9C/lKhT9wF9wvxSv3dCie3tMQJ202AwrBG4Pbc/uKa
0lzofG6fgaq8S4xuZ7XlsgO2VtPDAgEC
-----END DH PARAMETERS-----

Analizando ese archivo con openssl para consumo humano:

$ cat dh.pem | openssl dhparam -noout -text
DH Parameters: (512 bit)
    prime:
        00:84:f7:d4:6a:96:54:da:8e:b0:68:4d:8f:42:fe:
        52:a1:4f:dc:05:f7:0b:f1:4a:fd:dd:0a:27:b7:b4:
        c4:09:db:4d:80:c2:b0:46:e0:f6:dc:fe:e2:9a:d2:
        5c:e8:7c:6e:9f:81:aa:bc:4b:8c:6e:67:b5:e5:b2:
        03:b6:56:d3:c3
    generator: 2 (0x2)

Y analizando la codificación ASN1 real:

$ cat dh.pem | openssl asn1parse -i
0:d=0  hl=2 l=  70 cons: SEQUENCE
2:d=1  hl=2 l=  65 prim:  INTEGER           :84F7D46A9654DA8EB0684D8F42FE52A14FDC05F70BF14AFDDD0A27B7B4C409DB4D80C2B046E0F6DCFEE29AD25CE87C6E9F81AABC4B8C6E67B5E5B203B656D3C3
69:d=1  hl=2 l=   1 prim:  INTEGER           :02
  
  1. ¿Cómo usan esta salida las diferentes aplicaciones (como httpd)?
  2.   

Supongo que simplemente se vinculan con la biblioteca OpenSSL y pasan los archivos relevantes. Y permita que OpenSSL se encargue de ello.

    
respondido por el StackzOfZtuff 07.02.2016 - 15:53
fuente

Lea otras preguntas en las etiquetas