公開金鑰指紋

本页使用了标题或全文手工转换,现处于台湾繁体模式
求聞百科,共筆求聞
於 2023年9月10日 (日) 13:06 由 BXHS-bot留言 | 貢獻 所做的修訂 (机器人:清理不当的来源、移除无用的模板参数)
(差異) ←上個修訂 | 最新修訂 (差異) | 下個修訂→ (差異)

公開金鑰加密中,公開金鑰指紋(簡稱:公鑰指紋)是用於標識較長公共金鑰位元組的短序列。指紋通過應用加密雜湊函式到一個公共金鑰來實現。[1]由於指紋較比生成它們的金鑰短得多,因此可以用來簡化某些金鑰的管理任務。

建立公鑰指紋

生成公鑰指紋的概括步驟如下:

  1. 公鑰(以及任選的一些額外資料)被編碼成一個位元組序列,以確保同一指紋以後在相同情況下可以建立,因此編碼必須是確定的,並且任何附加的資料必須與公鑰一同存放。附加資料通常是使用此公鑰的人應該知道的資訊,如:金鑰持有人的身分(此情況下,X.509信任固定的指紋,且所述附加資料包括一個X.509自簽章憑證[2]
  2. 在前面步驟中產生的資料被雜湊加密,如使用SHA家族
  3. 如果需要,雜湊函式的輸出可以縮短,以提供更方便管理的指紋。

產生的短指紋可用於驗證一個很長的公共金鑰。例如,一個典型RSA金鑰的長度會在2048位元以上,SHA的指紋卻只有128-512位元。

當指紋被顯示時,通常被編碼成十六進位字串。然後,這些字串格式化成可讀性字元組。例如,如一個128位元的SSH指紋將被顯示為:

 43:51:43:a1:b5:fc:8b:b7:0a:3a:a9:b1:0f:66:73:a8

使用公鑰驗證

安全性

公鑰指紋主要的安全威脅是原像攻擊,攻擊者構造一個金鑰對,與受害者可生成的指紋相匹配,即可能偽裝成受害者;某些系統的第二個威脅是碰撞攻擊,這可能允許攻擊者否認他所創造的簽章,或導致其他混淆。[3]

在指紋長度必須不惜一切代價最小化的情況下,在技術上,如使用雜湊擴充可提升安全性。

參見

參考資料

  1. 捨得333. SSH HTTPS 公钥、秘钥、对称加密、非对称加密、 总结理解. 開源中國社群. 2014-12-22 [2016-04-01]. 
  2. Adams, C.; Farrell, S.; Kause, T.; Mononen, T. Internet X.509 Public Key Infrastructure Certificate Management Protocol (CMP). RFC. 2005 [2016-03-31] (英語). 
  3. 陳, 少暉. Hash函数MD5攻击技术研究. 西安: 知網空間. 2012 [2016-03-31].