「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典イメージぴよ画像「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

SHA-3

pointこの用語のポイント

pointハッシュ関数だよ

pointSHA-2の後釜だよ

pointSHA-2と中身のつながりはないよ

pointもともとは「Keccak」という名前だよ

point「SHA」の部分は「Secure Hash Algorithm」の略だよ

スポンサーリンク

簡単に書くよ

SHA-3(読:エスエィチエー3)とは

入力されたデータをもとにして作った適当な値を返してくれる関数(処理のまとまり)(ハッシュ関数)のひとつ
であり

もともとは別の名前のハッシュ関数だけど「SHA-2」と呼ばれるハッシュ関数の後釜として採用されたから「SHA-3」という名前になったやつ
です。


image piyo

詳しく書くよ

順番に見ていきましょう。
まずは予備知識として

関数
ハッシュ関数
SHA-1
SHA-2


について簡単に説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。

関数は「何かを入れると何かをやって何かを返してくれる、処理のまとまり」です。
一般的には、入力を受けて処理をやり、その結果として出力があります。

SHA-3

ついでなので書いておくと、関数に入れる値は「引数(ヒキスウ)」と言います。

SHA-32

関数から出てくる値は「戻り値」です。

SHA-33

ちょっと汚い話で恐縮ですが、人間は、ご飯を食べて、ウンチを出します。

SHA-34

人間が関数だと考えてください。
ご飯に相当するものが引数です。
ウンチに相当するものが戻り値になります。

SHA-35

ハッシュ関数は「入力に対応する適当な値(適当に見える値)を返してくれる関数」です。

例えば、ハッシュ関数に「愛媛みかん」を入れると「3」が返ってくるとしましょう。
同じように「青森りんご」を入れると「4」が返ってきます。
「栃木苺」を入れた場合は「5」が返ってきます。

SHA-36

ハッシュ関数は同じ物を入れれば必ず同じ値が返ってきます。

「愛媛みかん」を入れた場合に返ってくるのは、必ず「3」です。
何回入れても「3」が返ってきます。
「4」が返ってくることは ありません。

SHA-37

ハッシュ関数には

1.適当な値が返ってくる
2.同じ入力に対しては同じ値が返ってくる


という特徴があります。
※話を単純化するために「適当な値」という表現を使っていますが、実際には適当では ありません。入力されたデータを「特定のルールに沿って」ぐちゃぐちゃにした値が返ってきます。

さて、このハッシュ関数ですが、世の中に1つしかないわけでは ありません。
いろいろな種類のハッシュ関数があります。

例えば、返してくれる値(適当な値)の作り方が違ったりですね。
あるいは、返してくれる値の桁数が違ったりですね。
一口に「ハッシュ関数」と言っても、いくつかの種類があるのです。

そんな「いくつかの種類」のひとつに「SHA-1」という名前のハッシュ関数があります。
SHA-1は

何か入れると長さが160ビットの適当な値を返してくれるハッシュ関数

です。

ちなみに「SHA」の部分は「Secure Hash Algorithm(セキュア・ハッシュ・アルゴリズム)」の省略ね。

SHA-38

secure(セキュア)の意味は「安全な」です。
hash(ハッシュ)はハッシュ関数の「ハッシュ」です。
algorithm(アルゴリズム)はカタカナで「アルゴリズム」で伝わりますかね。

単純にくっつけると

安全なハッシュアルゴリズム

となります。

SHA-39

さらに「SHA-2」と呼ばれるハッシュ関数もあります。
SHA-2はSHA-1をパワーアップさせたハッシュ関数です。
SHA-1の後継者がSHA-2だと思ってください。

SHA-310

以上を踏まえて

SHA-2の後釜として採用されたハッシュ関数

が「SHA-3」です。
SHA-3は、もともとは「Keccak」という名前のハッシュ関数でした。
SHA-2の後釜として採用されたことにより「SHA-3」と名乗るようになったのです。

きちんと調べたわけではないので私の推測まじりですが、アメリカだかどこだかにおける「これがハッシュ関数の標準ね!」なハッシュ関数が「SHA-2」です。
ところが、どこかの誰かが「SHA-2も、そのうちショボく感じるようになるよね。もっとスゴいハッシュ関数を標準として使おう!」と言い出しました。

そうすると、どうなるでしょうか。
おそらく、有名になりたいハッシュ関数さんたちが「私を標準として使ってー!」と言い出しますよね。
実際、言い出しました……多分。

そして、厳正なる審査の結果「Keccak」という名前のハッシュ関数が選ばれたのです。
おめでとー!ぱちぱちぱち。

ただし、それに伴い、Keccakさんは改名させられました。
「おまえはSHA-2の後釜なんだから『SHA-3』と名乗れや!」と言われたのです。

ということで、SHA-3は、もともと「Keccak」と呼ばれていたハッシュ関数です。
SHA-2の後釜ではありますが、仕組みとしての つながりは ありません。
中身は別物です。


image piyo2

一言でまとめるよ

まぁ「SHA-3」って単語が出てきたら「ハッシュ関数(入力されたデータをもとにして作った適当な値を返してくれる関数)(のひとつ)なんだな~」と お考えください。

一番上に戻るよ
スポンサーリンク
書籍画像040
書籍画像051


書籍画像
わわわ説明術コラム
宣伝だよ
「分かった!」と思わせる説明の技術 知識ゼロの相手にも伝わるようになる本【Audible】
つくって、壊して、直して学ぶ Kubernetes入門
クイズで学ぶUIデザイン ユーザビリティの基本が身につく50問