Когда я сгенерировал простое число diffie-hellman с использованием openssl, в конце выходного файла были некоторые странные символы, и я хотел понять, что это значит.
Справочная информация:
Моя цель состояла в том, чтобы сгенерировать безопасное простое число для использования с Диффи-Хеллманом длиной не менее 500 бит и совместимое с генератором 5.
Это команды терминала, которые я использовал:
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$
Я переименовал файл "dh512.der" в "dh512.der.txt", и это то, что было в текстовом файле: (Это для проекта класса и не будет использоваться ни при каком важном обмене ключами.)
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⁄á
Я уверен, что
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
это простое число, которое я ищу в шестнадцатеричном формате, разделенных :
's. Но мне просто интересно об этой части:
0FAüqπÍQï“öfeΩ“°1ΩmX YƒC‚S4˘[«NH∞,ˇG&}McBœ∫BÓÉmÊ˘jZ˚ f⁄á
Для чего это? Что это значит? Я посмотрел на страницу руководства https://www.openssl.org/docs/apps/dhparam.html, и там нет описания того, что будут содержать выходные файлы.
Спасибо!
Обновить:
Я попытался просмотреть файл PEM как текст, поэтому я изменил параметр с DER на PEM.
Терминальная команда:
openssl dhparam -out dh512pem.txt 512 -5 -outform PEM -text
Терминальный выход:
Generating DH parameters, 512 bit long safe prime, generator 5
This is going to take a long time
......................................+...............................+........................................+...................+.........................+....+..........................................................................................................+.......................+............+........+...+..+................+.........................+......+.....................+........................+.........................................+..............................................+..........+..............................................+.........................+......+..............+...........+..+...............................................+....................................+..........+....................+.........+...................+........+.....................+..............................................+..+............+................+...............................+.+.............+.....................................+.............+............................+.......+.......................................................+...................+.........+.........+.................+..............+..........+.+..+.................................+.......+........+...............+....................+..................+.............+............+.........+...............++*++*++*++*++*++*
Содержимое 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-----
Я думаю, что он выводит формат DER после печати текстовой (шестнадцатеричной) версии. Потому что, когда я переключился на формат PEM, он выводит base64 после печати текстовой версии.
Источник, подкрепляющий эту идею: страница руководства https://www.openssl.org/docs/apps/dhparam.html
-inform DER | PEM Определяет формат ввода. Опция DER использует закодированную форму ASN1 DER, совместимую со структурой DHCS-параметра PKCS # 3. Форма PEM является форматом по умолчанию: она состоит из формата DER base64, закодированного с дополнительными строками верхнего и нижнего колонтитула.
-outform DER | PEM Указывает формат вывода, параметры имеют то же значение, что и параметр -inform.