指紋 (公開鍵暗号)
指紋は通常、以下の手順で作成される。
公開鍵と任意の追加データはバイト列にエンコードされる。同じ指紋を後で確実に再作成できるようにするには、公開鍵に追加するデータを確定した上でエンコードする必要がある。追加データは通常、公開鍵を使用する人が知っておくべき情報で、鍵がどのバージョンのプロトコルを使用するべきか (PGPの指紋の場合)、その鍵の所有者の名前 (X.509のトラストアンカーの場合、追加データはX.509の自己署名証明書からなる) などがある。
作成されたバイト列からSHA-1やSHA-2などの暗号学的ハッシュ関数を使用してハッシュ値を得る。
必要に応じて、暗号学的ハッシュ関数の出力を切り捨てて、短くて便利な指紋を作成することができる。
こうして得られた指紋は、これよりも遥かに長い公開鍵を検証するのに使用することができる。例えば、一般的なRSA公開鍵の長さは2048ビット以上であるが、指紋の長さはSHA-1の場合は160ビット、SHA-256の場合は256ビットである。
指紋が表示されると、通常は16進数の文字列としてエンコードされる。この文字列は読みやすくするために文字のグループに体裁を整えられる。
例えば、SSH用の128ビットのMD5による指紋は次のように表示される: