在公开密钥加密中,公开密钥指纹(简称:公钥指纹)是用于标识较长公共密钥字节的短序列。指纹通过应用加密散列函数到一个公共密钥来实现。由于指纹较比生成它们的密钥短得多,因此可以用来简化某些密钥的管理任务。
生成公钥指纹的概括步骤如下:
产生的短指纹可用于验证一个很长的公共密钥。例如,一个典型RSA密钥的长度会在2048位以上,SHA的指纹却只有128-512位。
当指纹被显示时,通常被编码成十六进制字符串。然后,这些字符串格式化成可读性字符组。例如,如一个128位的SSH指纹将被显示为:
43:51:43:a1:b5:fc:8b:b7:0a:3a:a9:b1:0f:66:73:a8
使用公钥验证
安全性
公钥指纹主要的安全威胁是原像攻击,攻击者构造一个密钥对,与受害者可生成的指纹相匹配,即可能伪装成受害者;某些系统的第二个威胁是碰撞攻击(英语:Collision attack),这可能允许攻击者否认他所创造的签名,或导致其他混淆。
在指纹长度必须不惜一切代价最小化的情况下,在技术上,如使用散列扩展可提升安全性。