Когда я сгенерировал простое число 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.

1 ответ1

0

Моя идея, когда я обновил мой вопрос, была правильной. Спасибо dave_thompson_085 за подтверждение того, что это был вывод DER. Этот вывод DER такой же, как если бы я не поставил опцию "-text". Опция text позволила напечатать «читабельный» формат в дополнение к выводу DER.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .