SHA-384
ハッシュ関数だよ
SHA-2に分類されるよ
384ビットの適当な値が返ってくるよ
SHA-512の仲間だよ
「SHA」の部分は「Secure Hash Algorithm」の略だよ
簡単に書くよ
SHA-384(読:エスエィチエー384)とは
入力されたデータをもとにして作った適当な値を返してくれる関数
(処理のまとまり)(ハッシュ関数)のひとつ
であり
「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-384」です。
SHA-384は長さが384ビットの適当な値を返してくれます。
一口に「SHA-2」と言っても、実は、いくつかの種類があります。
・SHA-224
・SHA-256
・SHA-384
・SHA-512
・SHA-512/224
・SHA-512/256
の6種類です。
「SHA-2」という呼び名は、この6つのハッシュ関数の総称なのです。
SHA-2の枠組みの中に「SHA-384」がありますよね。
SHA-384はSHA-2に分類されるハッシュ関数のひとつです。
そして、同じく「SHA-2」に分類されるハッシュ関数のひとつであるSHA-512の仲間でもあります。
SHA-512は、何かを入れると長さが512ビットの適当な値を返してくれます。
SHA-512から返ってきた長さが512ビットの値をぶった切って384ビットにします。
それがSHA-384のやっていることのイメージです。
何となく分かれば満足な人は
1.SHA-2に分類されるハッシュ関数だよ
2.SHA-512の仲間だよ
3.(512ビットの値をぶった切った)384ビットの値が返ってくるよ
の3点を押さえてください。
それだけ覚えておけば困ることは少ないと思います。
一言でまとめるよ
まぁ「SHA-384」って単語が出てきたら「ハッシュ関数
(入力されたデータをもとにして作った適当な値を返してくれる関数)(のひとつ)なんだな~」と お考えください。






