Warum überlappen sich Teile der öffentlichen (und privaten) SSH-Schlüssel?

39

Warum sind die ersten 25 Zeichen der öffentlichen Schlüssel ssh Ed25519 immer gleich?

Wenn ich zum Beispiel 5 Schlüssel mit mache ssh-keygen -o -a 100 -t ed25519, sind die ersten 25 Zeichen immer AAAAC3NzaC1lZDI1NTE5AAAAI.

Ich nehme an, dass dies eine Präambel oder eine Überschrift ist, aber ich würde gerne die tatsächliche Antwort erfahren.

Morris Cornell-Morgan
quelle
8
Crossdupe crypto.stackexchange.com/questions/5944/… . Neues Format OpenSSH- Dateien mit privatem Schlüssel sind in ähnlicher Weise die Base64-Codierung von Daten, die mit mehreren meist konstanten, XDR-formatierten Zeichenfolgen beginnt, obwohl der Schlüsseltyp / -algorithmus eine Rolle spielt. Das neue Format wird automatisch für ed25519 verwendet (da für diesen Typ kein altes Format vorhanden ist) und Sie müssen nur -o für andere Typen angeben.
Dave_thompson_085

Antworten:

65

Die Zeichenfolge ist Base64-codiert. Bei der Dekodierung wird der String erzeugt \0\0\0\vssh-ed25519\0. Dies identifiziert den Typ des Schlüssels. In diesem Fall ein EdDSA- Schlüssel.

Johan Myréen
quelle
16
Der \0\0\0\vTeil 11 wird als 32-Bit-Zahl geschrieben und gibt die Länge der Zeichenfolge an ssh-ed25519.
Kasperd