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

メッセージ認証

pointこの用語のポイント

point通信データの改ざんを検知する仕組みだよ

point送り手側から送られてきたチェック用のデータと受け手側で作ったチェック用のデータを比較するよ

point本体データを もとにして、チェック用のデータを作るよ

point共通鍵暗号方式やハッシュ関数を使ってチェック用のデータを作るよ

スポンサーリンク

簡単に書くよ

メッセージ認証(読:メッセージニンショウ 英:message authentication)とは

「その送られてきたデータは、途中で おかしくなってないかな?」をチェックする方法のひとつ
であり

データの やり取りにおいて「(送り手側では)送るデータをもとにして作ったチェック用のデータを一緒に送ってやる」→「(受け手側では)受け取ったデータをもとにして作ったチェック用のデータと、送られてきたチェック用のデータを比較して、一致するか確認する」をやることでデータがおかしくなってないかチェックするやり方……が、いくつか あるんだけど、その中でも「共通鍵暗号方式(暗号化と復号に同じ鍵を使う暗号化のやり方)」と呼ばれるやり方を使ったり「ハッシュ関数(入力されたデータをもとにして作った適当な値を返してくれる関数)」と呼ばれるやつを使ったりしてチェック用のデータを作る やり方
です。


image piyo

詳しく書くよ

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

改ざん
関数
ハッシュ関数
ハッシュ値
暗号
暗号化
復号
暗号鍵
暗号化方式
共通鍵暗号方式


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

改ざんは、ファイルの中身などを「こっそり書き換えちゃうこと」です。
例えば、ピヨ太君の作った苺ショートを こっそりミカンショートにしちゃうような行為を指します。

メッセージ認証

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

メッセージ認証2

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

メッセージ認証3

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

メッセージ認証4

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

メッセージ認証5

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

メッセージ認証6

ハッシュ関数は「入力に対応する適当な値(適当に見える値)を返してくれる関数」です。
例えば「愛媛みかん」を入れると「3」が返ってきます。
「青森りんご」を入れると「4」が返ってきます。
「栃木苺」を入れると「とちおとめ」が返ってきたりします。

メッセージ認証7

何を入れると何が返ってくるか、入れたものからは分かりません。
返ってくるのは適当な値です。

ただし、同じものを入れれば、必ず同じ値が返ってきます。
「愛媛みかん」を入れると、必ず「3」が返ってきます。
何回入れても「3」が返ってきます。

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


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

ハッシュ値は「ハッシュ関数から返ってくる値(戻り値)」です。
入力されたデータをもとにして作られた適当な値(適当に見える値)です。

メッセージ認証8

ハッシュ値には

1.ハッシュ値から元のデータを特定するのは、ほとんど無理
2.元のデータが同じなら生成されるハッシュ値も同じ
3.元のデータが変わると生成されるハッシュ値は(ガッツリと)変わる


といった特徴があります。
「元データ→ハッシュ値」は お手軽だけど「元データ←ハッシュ値」は すっごい大変だよ、ということです。

メッセージ認証9

暗号は「ルールを知っている人しか意味を読み取れないようにするために、特定のルールに従って ぐちゃぐちゃに変換したデータ」です。

メッセージ認証10

暗号は、そのまま見ても内容が分かりません。
パッと見では ぐちゃぐちゃになっているからです。

メッセージ認証11

ルールを知っている人は、そのルールに沿って元の形に戻すことで内容を読み取れます。

メッセージ認証12

暗号にすることで悪い人に盗み見られても大丈夫な気分になれます。
変換ルールを知らない人は書かれている内容を読み取れないからです。

データを暗号にすることを「暗号化」と言います。

メッセージ認証13

暗号を元のデータに戻すのは「復号」です。
暗号化の逆ですね。

メッセージ認証14

暗号鍵は「暗号化したり、元に戻したり(復号)するときに使うデータ」です。

メッセージ認証15

暗号化方式は「暗号化の やり方(方式)」です。
細かく見ていくと、ややこしかったりしますけどね。
今回は気にしないでください。

メッセージ認証16

共通鍵暗号方式は「暗号化と復号に同じ鍵を使う暗号化方式」です。
送る相手と受ける相手で同じ鍵を使って暗号化や復号をやります。

メッセージ認証17

例えば、そうですね。
ピヨ太君がピヨ子さんにデータを暗号化して送るとしましょう。

まずピヨ太君は自分の手元にある鍵を使ってデータを暗号化します。

メッセージ認証18

次に、暗号化したデータをピヨ子さんに送ります。

メッセージ認証19

ピヨ子さんはピヨ太君から暗号化されたデータを受け取りました。
自分の手元にある鍵を使ってデータを元に戻します。

メッセージ認証20

ピヨ太君の手元にある鍵とピヨ子さんの手元にある鍵は同じものです。

メッセージ認証21

このような

同じ鍵を使って暗号化や復号をするやり方

が共通鍵暗号方式です。
文字通り「共通を使ってやる暗号化の方式」ですね。

以上を踏まえて

1.送り手側で送るデータ(本体データ)をもとにしてチェック用のデータを作る
2.本体データとチェック用のデータを一緒に送ってやる
3.受け手側で受け取ったデータ(本体データ)をもとにしてチェック用のデータを作る
4.送られてきたチェック用のデータと受け手側で作ったチェック用のデータが一致するか判定する

ことでデータが改ざんされていないか確認する やり方……が、いくつか あるんだけど、その中でも特に、チェック用のデータを作るときに共通鍵暗号方式やハッシュ関数を使う やり方


が「メッセージ認証」です。

例えば、そうですね。

ピヨ太君がピヨ子さんにデータを送ることにしました。

メッセージ認証22

まずピヨ太君は送るデータ(本体データ)を あれやこれやして、チェック用のデータを作ります。

メッセージ認証23

次に、本体データとチェック用のデータをセットでピヨ子さんに送ってやります。

メッセージ認証24

データを受け取ったピヨ子さんは、本体データを(ピヨ太君と同じやり方で)あれやこれやして、チェック用のデータを作ります。

メッセージ認証25

最後に、ピヨ太君から送られてきたチェック用のデータとピヨ子さん自身が作ったチェック用のデータを見比べます。

メッセージ認証26

ピヨ太君から送られてきたチェック用のデータとピヨ子さん自身が作ったチェック用のデータが一致すれば「多分、改ざんは されていないんじゃないかな」と判断できます。

メッセージ認証27

もし一致しなければ「あれ?改ざんされてるっぽいな」と判断できます。

メッセージ認証28

このようなやり方で、改ざんされていないかチェックする仕組みが、メッセージ認証です……と言いたいところなのですが、チェック用のデータを付けて送ってやることで改ざんされていないかチェックする仕組みは、メッセージ認証以外にも いろいろ あります。
例えば「デジタル署名」と呼ばれるものも、そのひとつです。

ただし、デジタル署名は、チェック用のデータを作るときに「公開鍵暗号方式」と呼ばれる仕組みを使います。

それに対してメッセージ認証は、共通鍵暗号方式やハッシュ関数を使ってチェック用のデータを作ります。
理屈や考え方は一緒だけど、やり方が違うわけです。


image piyo2

一言でまとめるよ

まぁ「メッセージ認証」って単語が出てきたら「データが改ざんされていないかチェックするための仕組みなんだな~」と お考えください。

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

おまけ

■訳してみるよ

「message(メッセージ)」の意味は「伝言」とか「伝達」とか「連絡」とかです。
「認証」は日本語ですね。
何となく くっつけると

伝言の認証

となります。


■検索してみる?




書籍画像
わわわ説明術コラム
宣伝だよ
インフルエンサー六法 活動開始から情報発信、収益化までに潜むトラブル対策50
「分かった!」と思わせる説明の技術 知識ゼロの相手にも伝わるようになる本【Audible】
エンジニア育成現場の「失敗」集めてみた。 42の失敗事例で学ぶマネジメントのうまい進めかた