Почему части открытых (и закрытых) ключей SSH перекрываются?

39

В частности, почему первые 25 символов открытых ключей ssh ​​Ed25519 всегда одинаковы?

Например, если я сделаю 5 клавиш ssh-keygen -o -a 100 -t ed25519, первые 25 символов будут всегда AAAAC3NzaC1lZDI1NTE5AAAAI.

Я предполагаю, что это какая-то преамбула или какой-то заголовок, но я хотел бы знать фактический ответ.

Моррис Корнелл-Морган
источник
8
Crossdupe crypto.stackexchange.com/questions/5944/… . Новые форматы файлов закрытых ключей OpenSSH аналогично представляют собой кодировку данных base64, которая начинается с нескольких в основном постоянных строк в формате XDR, хотя тип / алгоритм ключа в некотором роде; Новый формат автоматически используется для ed25519 (потому что для этого типа не существует старого формата), и вам нужно только указать -o для других типов.
dave_thompson_085

Ответы:

65

Строка в кодировке base64. При декодировании выдает строку \0\0\0\vssh-ed25519\0. Это определяет тип ключа. В этом случае ключ EdDSA .

Йохан Мирен
источник
16
\0\0\0\vЧасть 11 записывается в виде 32 - битового числа и указывает на длину строки ssh-ed25519.
kasperd