SHA-2とは
Secure Hash Algorithmシリーズの暗号学的ハッシュ関数。SHA-1の改良となるアルゴリズム。
ちなみに読み方はシャーツー
ダイジェストとは
元データから、ハッシュ関数を使って計算によって求められた値の事。
よってハッシュ値と同じ意味になる。
SHA256とは
SHA-2に分類されるハッシュ関数。
ダイジェストの長さが256ビットの暗号化ハッシュ。
# sha256sumコマンドにてハッシュ化
echo "test" | sha256sum | cut -f 1 -d " "
# f2ca1bb6c7e907d06dafe4687e579fce76b37e4e93b7605022da52e6ccc26fd2
上の例のように、基本的にはどんな長さの文字列からでも固定長のダイジェストを作成可能、とのこと。(0文字からでも可)
また、文字列は16進数の形式をとっており、常に64文字が出力される。(256bit / 4bit = 64)
フィンガープリントとは
公開鍵を識別するための短いバイト列のこと。
SSHサーバを識別するために利用される。
# 公開鍵のフィンガープリントを表示
ssh-keygen -l -f ~/.ssh/id_rsa.pub
ソフトによってはknow hostsに保存されている公開鍵と取得した公開鍵が一致していない場合には警告が表示されることがある。
目視で公開鍵を比較するのは大変のため、短い文字列に変換するとのこと。
RandomArtとは
人間がハッシュ値を目視で比較するのをより楽にするための構造化された画像の事。
テキストではなく画像の形式にすることでより公開鍵を目視で比較しやすくなる。
#
# *Sample*
#
# $(echo test | sha256sum | cut -f 1 -d ' ') のrandomart
+--[ RandomArt ]--+
| |
| |
| . = . . |
| o X + o |
| .*S* o |
| o* . o . .|
| oo.E . + ++|
| o +O = o o=B|
| =*oo . +B*|
+-----------------+
ちなみに参考文献としては下記があるようです。
https://users.ece.cmu.edu/~adrian/projects/validation/validation.pdf
以上