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

一方向性関数

pointこの用語のポイント

point関数だよ

point結果(戻り値)から原因(引数)を推測するのが難しいよ

スポンサーリンク

簡単に書くよ

一方向性関数(読:イチホウコウセイカンスウ 英:oneway function)とは

結果(出力:戻り値)を基にして、その結果を得るに至った原因(入力:引数)を見つけるのが「ちょー難しいんですけどー」な関数(処理のまとまり)のこと
です。


image piyo

詳しく書くよ

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

関数
引数(ヒキスウ)
戻り値


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

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

一方向性関数

引数は「プログラムや関数に渡す値」です。

一方向性関数2

戻り値は「プログラムや関数から戻ってくる値」です。

一方向性関数3

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

一方向性関数4

人間を関数だとすれば、ご飯に相当するものが引数です。
ウンチに相当するものが戻り値です。

一方向性関数5

以上を踏まえて

出力を見ても入力が何か分からない関数

が「一方向性関数」です。
言い方を変えると

戻り値を見ても引数が推測できない関数

です。

先ほどの例で言えば、ウンチを見て「ん?この粒は……さてはトウモロコシを食べたな!」のような推測ができれば一方向性関数では ありません。

一方向性関数6

ウンチを見ても「う~ん、何を食べたか分からないなぁ」と食べたものが推測できなければ一方向性関数です。

一方向性関数7

……汚い話で終わるのもアレなので、もう少しキレイな例も載せておきましょう。

例えば、そうですね。
ここに1つの怪しい箱が ありました。

一方向性関数8

この箱にミカンを1つ入れると、ケーキが1つ出てきます。

一方向性関数9

この箱にミカンを2つ入れると、ケーキが2つ出てきます。

一方向性関数10

おっと、ちょっと目を離した隙をついて、ピヨ太君が何か入れたようです。
箱からケーキが3つ出てきました。

一方向性関数11

ピヨ太君は何を入れたでしょう?

ピヨ太君が何を入れたのか、何となく想像がつきますよね。

ミカンを1つ入れるとケーキが1つ出てきます。
ミカンを2つ入れるとケーキが2つ出てきます。
何かを入れたらケーキが3つ出てきました。

きっと、ピヨ太君はミカンを3つ入れたのでしょう。

一方向性関数12

このような「出てきたものから入れたものを推測できる関数」は一方向性関数ではありません

さて、もう一個、似たような箱が ありました。

一方向性関数13

この箱にミカンを1つ入れると、ケーキが1つ出てきます。

一方向性関数14

この箱にミカンを2つ入れると……おや、イチゴが3つ出てきました。

一方向性関数15

おっと、ちょっと目を離した隙をついて、ピヨ太君が何か入れたようです。
箱からはピヨ子さんが出てきました。

一方向性関数16

ピヨ太君は何を入れたでしょう?

今度は「そんなの、しらねーよ!」となりますよね。

ミカンを1つ入れるとケーキが1つ出てきます。
ミカンを2つ入れるとイチゴが3つ出てきます。
何かを入れたらピヨ子さんが出てきました。

法則性は皆無です。
何を入れたらピヨ子さんが出てくるのかなんて、想像もつきません。

一方向性関数17

このような「出てきたものから入れたものを推測できない関数」が一方向性関数です。

一方向性関数は暗号化のあれやこれやで使われていたりします。
興味がある方は他のところで勉強してください。


image piyo2

一言でまとめるよ

まぁ「一方向性関数」って単語が出てきたら「出力から入力を推測するのが難しい関数(処理のまとまり)なんだな~」と お考えください。

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

おまけ

■検索してみる?




書籍画像
わわわ説明術コラム
宣伝だよ
つくって、壊して、直して学ぶ Kubernetes入門
「分かった!」と思わせる説明の技術 知識ゼロの相手にも伝わるようになる本【Audible】
ウォーターサーバーのキャッチコピーを100本考える方法