Als ich mit openssl eine Diffie-Hellman-Primzahl generierte, hatte die Ausgabedatei am Ende einige seltsame Zeichen und ich wollte verstehen, was das bedeutet.
Hintergrundinformation:
Mein Ziel war es, eine sichere Primzahl für Diffie-Hellman zu generieren, die mindestens 500 Bit lang und mit Generator 5 kompatibel ist.
Dies sind die Terminalbefehle, die ich verwendet habe:
mymacbookname myname$ openssl dhparam -out dh512.der 512 -5 -outform DER -text
Generating DH parameters, 512 bit long safe prime, generator 5
This is going to take a long time
.......................+.+..+..........+............+........+................+....................+................................+.+...............................................................+......+.......+.............................+........+............................+............+..................+................+..........+..............+........................................+.....+............................................+.............+......+...........+....+..........................................+.........................................................+..........................+.................................+................+...+............+...+....................+................+....+...+.+.....................+......................+..............+..................++*++*++*++*++*++*
mymacbookname myname$
Ich habe die Datei "dh512.der" in "dh512.der.txt" umbenannt und dies war in der Textdatei: (Dies ist für ein Klassenprojekt und wird bei keinem wichtigen Schlüsselaustausch verwendet.)
Diffie-Hellman-Parameters: (512 bit)
prime:
00:9f:71:b9:ea:51:1e:95:d2:9a:66:65:bd:d2:a1:
31:bd:6d:58:0d:59:06:c4:43:e2:53:34:03:f9:5b:
c7:4e:48:1e:b0:1f:2c:7f:16:ff:1d:47:26:7d:4d:
14:63:42:cf:ba:42:ee:06:83:6d:e6:f9:f0:6a:5a:
fb:ca:66:da:87
generator: 5 (0x5)
0FAüqπÍQï“öfeΩ“°1ΩmX YƒC‚S4˘[«NH∞,ˇG&}McBœ∫BÓÉmÊ˘jZ˚ f⁄á
Ich bin mir ziemlich sicher, dass
00:9f:71:b9:ea:51:1e:95:d2:9a:66:65:bd:d2:a1:
31:bd:6d:58:0d:59:06:c4:43:e2:53:34:03:f9:5b:
c7:4e:48:1e:b0:1f:2c:7f:16:ff:1d:47:26:7d:4d:
14:63:42:cf:ba:42:ee:06:83:6d:e6:f9:f0:6a:5a:
fb:ca:66:da:87
ist die von mir gesuchte Primzahl im Hex-Format, getrennt durch :
's. Aber ich bin nur neugierig auf diesen Teil:
0FAüqπÍQï“öfeΩ“°1ΩmX YƒC‚S4˘[«NH∞,ˇG&}McBœ∫BÓÉmÊ˘jZ˚ f⁄á
Wofür ist das da? Was heißt das? Ich habe mir die Handbuchseite angesehen https://www.openssl.org/docs/apps/dhparam.html und es gibt keine Beschreibung dessen, was die Ausgabedateien enthalten.
Vielen Dank!
Aktualisieren:
Ich habe versucht, die PEM-Datei als Text anzuzeigen, daher habe ich die Option von DER in PEM geändert.
Terminalbefehl:
openssl dhparam -out dh512pem.txt 512 -5 -outform PEM -text
Terminal Ausgang:
Generating DH parameters, 512 bit long safe prime, generator 5
This is going to take a long time
......................................+...............................+........................................+...................+.........................+....+..........................................................................................................+.......................+............+........+...+..+................+.........................+......+.....................+........................+.........................................+..............................................+..........+..............................................+.........................+......+..............+...........+..+...............................................+....................................+..........+....................+.........+...................+........+.....................+..............................................+..+............+................+...............................+.+.............+.....................................+.............+............................+.......+.......................................................+...................+.........+.........+.................+..............+..........+.+..+.................................+.......+........+...............+....................+..................+.............+............+.........+...............++*++*++*++*++*++*
Inhalt von dh512pem.txt:
Diffie-Hellman-Parameters: (512 bit)
prime:
00:d6:23:97:87:75:2d:88:73:24:26:dc:be:c9:70:
21:81:02:7d:ca:be:10:89:ba:57:f0:e1:2f:ca:b0:
da:fd:5d:67:c9:51:f9:8c:e8:f2:20:dd:23:72:e5:
a0:79:1c:ad:98:93:3e:c2:14:18:f9:02:5a:1a:0e:
5a:d8:de:68:27
generator: 5 (0x5)
-----BEGIN DH PARAMETERS-----
MEYCQQDWI5eHdS2IcyQm3L7JcCGBAn3KvhCJulfw4S/KsNr9XWfJUfmM6PIg3SNy
5aB5HK2Ykz7CFBj5AloaDlrY3mgnAgEF
-----END DH PARAMETERS-----
Ich denke, dass es das DER-Format nach dem Drucken der Textversion (hex) ausgibt. Denn als ich in das PEM-Format wechselte, gab es base64 nach dem Drucken der Textversion aus.
Quelle, die diese Idee sichert: Manpage https://www.openssl.org/docs/apps/dhparam.html
-inform DER | PEM Gibt das Eingabeformat an. Die DER-Option verwendet eine ASN1 DER-codierte Form, die mit dem PKCS # 3 DH-Parameter kompatibel ist Struktur. Das PEM-Formular ist das Standardformat: Es besteht aus DER format base64 mit zusätzlichen kopf- und fußzeilen.
-outform DER | PEM Gibt das Ausgabeformat an. Die Optionen haben dieselbe Bedeutung wie die Option -inform.