Rsa
為什麼所有 SSH-RSA 密鑰都以“AAAAB3NzaC1yc”開頭?
我和我的朋友一直在生成一些 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
公共指數通常也相同,因此公共前綴更長。大部分密鑰是公共模數,這在不同的密鑰中是完全不同的。