Ключи SSH: почему id_rsa больше, чем id_rsa.pub?

Это не Ваша оболочка, которая определяет ли вывод ls является цветным. Необходимо работать ls --color=auto (или как псевдоним, или явно) для получения цветным ls вывод. Я подозреваю, что Ваша конфигурация удара включала это alisa по умолчанию, но zsh не делает по некоторым причинам. Кажется нечетным, что Ubuntu нанесла бы вред их zsh установке таким способом, но я бросил пытаться разработать то, что они составили.

8
задан 9 May 2011 в 00:00
2 ответа

Ваш закрытый ключ имеет больше информации, чем Ваш открытый ключ. Принимая во внимание, что открытый ключ только передает экспоненту шифрования (e) и модуль (n), закрытый ключ дополнительно включает экспоненту дешифрования (d) и эти два простых множителя (p и q) модуля. Закрытый ключ по существу имеет открытый ключ в нем.

[Шифрование: шифрованный текст = message^e (модификация n); Дешифрование: обменивайтесь сообщениями = ciphertext^d (модификация n)]

Видеть все данные в Вашем файле секретных ключей:

$ openssl rsa -in id_rsa -text -noout

Править: Файл секретных ключей, по-видимому, не имеет экспоненты шифрования, но это имеет экспоненты d_1 и d_2, где d_1 = d (модификация p-1) и d_2 = d (модификация q-1). Они используются для ускорения дешифрования - можно разделить возведение в степень дешифрования на меньшие параллельные вызовы возведения в степень, которое заканчивает тем, что было быстрее, чем один большой m=c^d (модификация n) для большого d и большого n.

16
ответ дан 2 December 2019 в 22:47

К сожалению, Вы не указывали, в котором форматируют ключи, хранятся. Я предполагаю, что Вы обращаетесь к кодированию ключа OpenSSH. В этом формате ключи хранятся в base64-закодированных блоках данных. В зависимости от кодирования при шифровании обычно существует своего рода дополнение, включенное при шифровании данных. Таким образом, получающиеся данные являются кратными размеру блока шифрования.

Ключи OpenSSH могут также включать своего рода комментарии и дополнительные свойства, вставленные между ---- BEGIN SSH2 [PUBLIC|PRIVATE] KEY ---- и -----END RSA [PUBLIC|PRIVATE] KEY----- маркеры. См. RFC4716.

Кроме того, для открытого ключа модуль и общедоступная экспонента сохраняются, в то время как для закрытого ключа частная экспонента сохраняется. См. генерацию ключей RSA на Википедию для получения дополнительной информации о математической основе. Существует много мест в сети, которые описывают математическое соединение между этими ключами. Не уверенный, если Вам нужна копия их объяснение здесь.

Теоретически возможно вычислить закрытый ключ от информации с открытым ключом, но выполнение этого является математически намного более трудным, чем наоборот. Просто рассматривайте закрытый ключ как "источник", который включает все переменные и открытый ключ, как являющийся результатом вычисления. Легко выполнить вычисление много раз, если Вы знаете все переменные, но знающий просто результат трудно получить все исходные переменные. Это - причина также, почему достаточно для Вас сохранить закрытый ключ в безопасном месте. Можно всегда использовать закрытый ключ, чтобы повторно вычислить открытый ключ. Но не наоборот - хорошо, теоретически можно сделать это, но в зависимости от длины ключа это могло бы занять много лет ;).

2
ответ дан 2 December 2019 в 22:47

Теги

Похожие вопросы