Diffie Hellman prime attributes

1

Se genero Diffie-Hellman prime openssl dhparam 512 -text (volutamente di piccole dimensioni per mantenere la dimensione della pasta al di sotto del minimo, so che il minimo è 2048 e oltre), quali sono le diverse parti dell'output:

    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-----

Capisco che il generatore è il numero base che di solito è 2 o 5. La domanda è il numero primo e i parametri DH.

  1. In che cosa è rappresentato il primo?
  2. Come può essere convertito in un vero numero intero principale?
  3. Che cosa è codificato (e perché?) nella sezione dei parametri DH?
  4. In che modo applicazioni diverse (come httpd) usano questo output?
posta mart1n 07.02.2016 - 09:01
fonte

1 risposta

5
  1. What is the prime represented in?

Codifica semplice base 16 del numero effettivo.

  1. How can it be converted to an actual prime integer?

Basta convertire dalla base 16. In questo modo:

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

E, sì, è in effetti un primo.

$ openssl prime -hex 0084F7D46A9654DA8EB0684D8F42FE52A14FDC05F70BF14AFDDD0A27B7B4C409DB4D80C2B046E0F6DCFEE29AD25CE87C6E9F81AABC4B8C6E67B5E5B203B656D3C3   
 84F7D46A9654DA8EB0684D8F42FE52A14FDC05F70BF14AFDDD0A27B7B4C409DB4D80C2B046E0F6DCFEE29AD25CE87C6E9F81AABC4B8C6E67B5E5B203B656D3C3 is prime
  1. What is encoded (and why?) in the DH parameters section?

Come la descrizione del testo in chiaro.

Versione PEM:

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

Analisi di quel file con openssl per il consumo umano:

$ 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)

E analizzando la vera codifica ASN1:

$ 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. How do different applications (such as httpd) use this output?

Suppongo che si colleghino solo alla libreria OpenSSL e passino nei file pertinenti. E consentire a OpenSSL di prendersene cura.

    
risposta data 07.02.2016 - 15:53
fonte

Leggi altre domande sui tag