公开密钥指纹

在公开密钥加密中，公开密钥指纹（简称：公钥指纹）是用于标识较长公共密钥字节的短序列。指纹通过应用加密散列函数到一个公共密钥来实现。由于指纹较比生成它们的密钥短得多，因此可以用来简化某些密钥的管理任务。

 创建公钥指纹 
生成公钥指纹的概括步骤如下：
 公钥（以及任选的一些额外数据）被编码成一个字节序列，以确保同一指纹以后在相同情况下可以创建，因此编码必须是确定的，并且任何附加的数据必须与公钥一同存放。附加数据通常是使用此公钥的人应该知道的信息，如：密钥持有人的身份（此情况下，X.509信任固定的指纹，且所述附加数据包括一个X.509自签名证书）。
 在前面步骤中产生的数据被散列加密，如使用SHA家族。
 如果需要，散列函数的输出可以缩短，以提供更方便管理的指纹。
产生的短指纹可用于验证一个很长的公共密钥。例如，一个典型RSA密钥的长度会在2048位以上，SHA的指纹却只有128-512位。

当指纹被显示时，通常被编码成十六进制字符串。然后，这些字符串格式化成可读性字符组。例如，如一个128位的SSH指紋将被显示为：
  43:51:43:a1:b5:fc:8b:b7:0a:3a:a9:b1:0f:66:73:a8

 使用公钥验证 

 安全性 
公钥指纹主要的安全威胁是原像攻击，攻击者构造一个密钥对，与受害者可生成的指纹相匹配，即可能伪装成受害者；某些系统的第二个威胁是，这可能允许攻击者否认他所创造的签名，或导致其他混淆。

在指纹长度必须不惜一切代价最小化的情况下，在技术上，如使用散列扩展可提升安全性。

 参见 


 PGP词汇表
 公开密钥加密

 密钥管理
 密钥签名派对
 拉宾指纹

 参考资料 

G
Category:网络安全
Category:信息技术
Category:公钥密码学