Public-Key

不同類型的 PGP 密鑰或 ID,如何解釋它們?

  • May 30, 2016

當人們說“這是我的 PGP 密鑰”時,他們往往會想出各種不同的東西。

有時他們會提供一個 8 位的十六進制數字,這似乎是一個密鑰 ID(儘管我不確定)。

我還看到人們提供 16 位十六進制數字,甚至 40 位數字(列印為 4 個十六進制數字的 10 個欄位)的情況。

我還看到人們發送包含通常內容的文件的情況:

-----public key----- 
....
(whole lot of base64 encoded data)
....

我可以處理後者,但我不知道如何從其他格式中獲取密鑰。我該怎麼做?

交換完整的 RSA 密鑰可能非常不方便,因為它們包含非常長的數字。在 OpenPGP ASCII 裝甲版本中,我的公鑰(沒有任何使用者 ID 和證書!)已經是很長的流:

mQQNBFDaK/sBIADm2gjnw7aPoNIoCy7gj85btwZU+zGkvtGonznlLrXELdU6zR3u
VHNCn9vAl6OoU32r+suFvGdX+7MjiPbGKwJFOvICpAVh6bV55+hdqJbS02cpPmJH
1BrrUAmm6ZVEybGd+II1pTI6Mt/SAI1E/59VIBdC/1AwsxQtCTFeyaLqTdyd1FhQ
chkjcvdRHLb4cEqldAGqBL7SbiSNOP3p+vX8iwRN6PQ/erAGseawHnunuNIna+tA
t4te/MkI2uxT0KjsfF/NWHCB2aXt++egP8jGSaHRsVOlfHRVA3hHcUDlnW9DZRvG
QabHFcZvfcXAlNIRYKUzDIHEwpavAmHeGNhc2GNmDcDRF56741grVLNQT58vxK5o
dBLlC8ANckvE5ymdIKVPm+t5q10kFOAATcnmDV0oBt+15vzI3f+88yCoY904UWdY
LwTbNMiszIB4ngNfzdLWeXPOCDs4CYa9BBKb1VkVtWn6NTE7m0/urrAP3Mb9qTwz
AlBVHvDPo6BG2yVqoCVzDBNOjb7czO3cns2M8sThizD2gvdKUV5Bq7THp6MFAzP0
Wbad3JLVIn65BNzVKJYhC7rGAU2QjlRbXq+P08NsewNbFC/E3fct249PM5xVl4lW
vcsqBo1o+iuHuzb7tvveht1N79n3V+pPISLj8QCb9rEI09MJ93IQbn5yuyPCgXe6
/OiNyiv3QxY/x3zImLiiuSurbw1E0ILyX/qm+36XVSpewduXk2yen8x+eMmLWRfS
ZhyPXHFbO8am7niF1AuZjnIfhETsiyqAGmYmb9d7nL6GwCrvA7QCHrRl/EDd4r2a
Un2q6QYXQ78Wj6Ys1/jH49GkFUhBKl0PfLKtKPiPwL71wb6sD6nA30Ix6hMGreZk
B1697KPVLCP4v87xyrMJFNgXC2FBKML3PlokOyrZzbXLRM78yHmoBl13Tu3UZkFK
O1TV7cFzQScHMd+yBGN/AmVUF8Br2bExtuIvQqoQbj6gPIEk5xGWvGzSbR9LcAng
VRUHDlOy3dUd8QuhJANPk6knHZR0OT0C5c2Wzvcznr5ros5PQ8XZFCOJTaNLfc7u
9TGe/FVG3d7RMyB/9ILhS5ef3VarGzuyiYwwsC3P+w/3lHt+PhzVQRfeq0WrB+RK
3bfweIm30k1g8xJuQ0mg2JmmICYL/uihWVREZNOZZPboFBV8dZec+hif1tfuqchV
qVsy3cMuhg/K/EJafVbA3o59Z9IYIC3XN7NGoYYXuzbLgaDtVxGdcWTg8D4a1FaD
cEkeAR/Mm9FxVDK01itXatol/ZB0oBCrYS0DLdYQ/YWrAfoqR7Av7uY+hQiwvIo3
+lVlQGsr7rlhv/oNrf2P2M5aKPOdp2vPIEqpABEBAAE=
=pzM1

出於這個原因,公鑰被散列到密鑰的指紋中。來自RFC 4880, 12.2 密鑰 ID 和指紋

V4 指紋是八位字節 0x99 的 160 位 SHA-1 雜湊,後跟兩個八位字節的數據包長度,然後是從版本欄位開始的整個公鑰數據包。Key ID 是指紋的低 64 位。

長和短鍵 ID 分別是最後 16 位和 8 位數字。再次以我自己的公鑰為例:

fingerprint: 0D69 E11F 12BD BA07 7B37  26AB 4E1F 799A A4FF 2279
long id:                                    4E1F 799A A4FF 2279
short id:                                             A4FF 2279

由於指紋和密鑰 ID 是通過散列從公鑰派生的,因此您無法將它們“轉換回”為公鑰。因此,雖然它們不能立即用於加密操作,並且必須使用它們作為搜尋令牌查詢密鑰伺服器,但您可以更輕鬆地交換它們,例如在名片上。請注意,短密鑰 ID 是不安全的,不應使用。

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