Rsa

為什麼所有 SSH-RSA 密鑰都以“AAAAB3NzaC1yc”開頭?

  • April 14, 2021

我和我的朋友一直在生成一些 SSH2 RSA 密鑰,並註意到所有的公鑰都以 開頭AAAAB3NzaC1yc,相似性擴展到AAAAB3NzaC1yc2EAAAABIwAAAQEA在同一台機器上連續兩次嘗試生成的兩個密鑰之間(Google搜尋AAAAB3Nz最終也得到了一些點擊)。

這是正常的還是我們在生成時做錯了什麼,例如熵不足?

公鑰 blob 不僅僅包含構成公鑰的數字:它以一個標頭開頭,上面寫著“這是一個 SSH 公鑰”。重複的前綴編碼此標頭。

RFC 4254以 SSH 密鑰格式指定公鑰的編碼。

“ssh-rsa”密鑰格式具有以下特定編碼:

 string    "ssh-rsa"
 mpint     e
 mpint     n

這裡的 ’e’ 和 ’n’ 參數形成簽名密鑰 blob。

該字元串編碼為 32 位大端長度,後跟文字字元串:

0,0,0,7,'s','s','h','-','r','s','a'

在Base64中編碼這個字節序列給出:

AAAAB3NzaC1yc2E

公共指數通常也相同,因此公共前綴更長。大部分密鑰是公共模數,這在不同的密鑰中是完全不同的。

引用自:https://crypto.stackexchange.com/questions/5944