Pourquoi des portions de clés publiques (et privées) SSH se chevauchent-elles?

39

Plus précisément, pourquoi les 25 premiers caractères des clés publiques ssh Ed25519 sont-ils toujours les mêmes?

Par exemple, si je crée 5 clés avec ssh-keygen -o -a 100 -t ed25519, les 25 premiers caractères sont toujours AAAAC3NzaC1lZDI1NTE5AAAAI.

Je suppose que ceci est un préambule ou un en-tête de quelque sorte, mais j'aimerais connaître la réponse réelle.

Morris Cornell-Morgan
la source
8
Crossdupe crypto.stackexchange.com/questions/5944/… . De même format, les fichiers de clé privée OpenSSH au format précédent sont l’encodage base64 des données qui commence par plusieurs chaînes au format XDR essentiellement constantes, bien que le type / algorithme de clé soit relativement précis; nouveau format est automatiquement utilisé pour ed25519 (car il n’existe pas d’ancien format pour ce type) et vous devez uniquement spécifier -o pour les autres types.
dave_thompson_085

Réponses:

65

La chaîne est codée en base64. Une fois décodé, il produit la chaîne \0\0\0\vssh-ed25519\0. Ceci identifie le type de la clé. Dans ce cas, une clé EdDSA .

Johan Myréen
la source
16
La \0\0\0\vpartie est écrite en tant que nombre de 32 bits et indique la longueur de la chaîne ssh-ed25519.
Kasperd