[ 通常表示 ]  [ 簡易表示 ]  [ シンプル表示 ]

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

一方向性関数 (oneway function)

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

一言でまとめるよ

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

一番上に戻るよ
スポンサーリンク