SHA-512/224
ハッシュ関数だよ
SHA-2に分類されるよ
224ビットの適当な値が返ってくるよ
SHA-512の仲間だよ
「SHA」の部分は「Secure Hash Algorithm」の略だよ
簡単に書くよ
SHA-512/224(読:エスエィチエー512/224)とは
入力されたデータをもとにして作った適当な値を返してくれる関数
(処理のまとまり)(ハッシュ関数)のひとつ
であり
「SHA-2」と呼ばれるハッシュ関数に分類されるやつ……がいくつかあるけど、その中のひとつ
です。
詳しく書くよ
順番に見ていきましょう。
まずは予備知識として
・関数
・ハッシュ関数
・SHA-1
・SHA-2
について簡単に説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。
関数は「何かを入れると何かをやって何かを返してくれる、処理のまとまり」です。
一般的には、入力を受けて処理をやり、その結果として出力があります。
ついでなので書いておくと、関数に入れる値は「引数(ヒキスウ)」と言います。
関数から出てくる値は「戻り値」です。
ちょっと汚い話で恐縮ですが、人間は、ご飯を食べて、ウンチを出します。
人間が関数だと考えてください。
ご飯に相当するものが引数です。
ウンチに相当するものが戻り値になります。
ハッシュ関数は「入力に対応する適当な値(適当に見える値)を返してくれる関数」です。
例えば、ハッシュ関数に「愛媛みかん」を入れると「3」が返ってくるとしましょう。
同じように「青森りんご」を入れると「4」が返ってきます。
「栃木苺」を入れた場合は「5」が返ってきます。
ハッシュ関数は同じ物を入れれば必ず同じ値が返ってきます。
「愛媛みかん」を入れた場合に返ってくるのは、必ず「3」です。
何回入れても「3」が返ってきます。
「4」が返ってくることは ありません。
ハッシュ関数には
1.適当な値が返ってくる
2.同じ入力に対しては同じ値が返ってくる
という特徴があります。
※話を単純化するために「適当な値」という表現を使っていますが、実際には適当では ありません。入力されたデータを「特定のルールに沿って」ぐちゃぐちゃにした値が返ってきます。
さて、このハッシュ関数ですが、世の中に1つしかないわけでは ありません。
いろいろな種類のハッシュ関数があります。
例えば、返してくれる値(適当な値)の作り方が違ったりですね。
あるいは、返してくれる値の桁数が違ったりですね。
一口に「ハッシュ関数」と言っても、いくつかの種類があるのです。
そんな「いくつかの種類」のひとつに「SHA-1」という名前のハッシュ関数があります。
SHA-1は
何か入れると長さが160ビットの適当な値を返してくれるハッシュ関数
です。
ちなみに「SHA」の部分は「Secure Hash Algorithm(セキュア・ハッシュ・アルゴリズム)」の省略ね。
secure(セキュア)の意味は「安全な」です。
hash(ハッシュ)はハッシュ関数の「ハッシュ」です。
algorithm(アルゴリズム)はカタカナで「アルゴリズム」で伝わりますかね。
単純にくっつけると
安全なハッシュアルゴリズム
となります。
さらに「SHA-2」と呼ばれるハッシュ関数もあります。
SHA-2はSHA-1をパワーアップさせたハッシュ関数です。
SHA-1の後継者がSHA-2だと思ってください。
以上を踏まえて
SHA-2に分類されるハッシュ関数のひとつ
が「SHA-512/224」です。
SHA-512/224は長さが224ビットの適当な値を返してくれます。
一口に「SHA-2」と言っても、実は、いくつかの種類があります。
・SHA-224
・SHA-256
・SHA-384
・SHA-512
・SHA-512/224
・SHA-512/256
の6種類です。
「SHA-2」という呼び名は、この6つのハッシュ関数の総称なのです。
SHA-2の枠組みの中に「SHA-512/224」がありますよね。
SHA-512/224はSHA-2に分類されるハッシュ関数のひとつです。
そして、同じく「SHA-2」に分類されるハッシュ関数のひとつであるSHA-512の仲間でもあります。
SHA-512は、何かを入れると長さが512ビットの適当な値を返してくれます。
SHA-512から返ってきた長さが512ビットの値をぶった切って224ビットにします。
それがSHA-512/224のやっていることのイメージです。
何となく分かれば満足な人は
1.SHA-2に分類されるハッシュ関数だよ
2.SHA-512の仲間だよ
3.(512ビットの値をぶった切った)224ビットの値が返ってくるよ
の3点を押さえてください。
それだけ覚えておけば困ることは少ないと思います。
……あっ、そうそう。
忘れていました。
もうひとつだけ補足しておきましょう。
「SHA-512/○○」な表記になっているのは「512ビットの値をぶった切ったよ!」と分かりやすくするためです。
実は256ビットの値をぶった切って224ビットにするハッシュ関数もあります。
「SHA-224」という名前のハッシュ関数です。
この「SHA-224」と区別するために「SHA-512/224」という表記になっています。
並べて書くと以下のようになります。
■SHA-224
1.SHA-2に分類されるハッシュ関数
2.SHA-256の仲間
3.(256ビットの値をぶった切った)224ビットの値が返ってくる
■SHA-512/224
1.SHA-2に分類されるハッシュ関数
2.SHA-512の仲間
3.(512ビットの値をぶった切った)224ビットの値が返ってくる
SHA-224とSHA-512/224は、返ってくる値の長さは同じですが中身が違うのです。
一言でまとめるよ
まぁ「SHA-512/224」って単語が出てきたら「ハッシュ関数
(入力されたデータをもとにして作った適当な値を返してくれる関数)(のひとつ)なんだな~」と お考えください。






