For faster navigation, this Iframe is preloading the Wikiwand page for 一方向性関数.

一方向性関数

一方向性関数(いちほうこうせいかんすう、: one-way function)とは、関数値は容易に計算できるが逆関数の計算は非常に困難である関数を指す。「トラップドア関数」という別称がある。

 暗号理論などで用いられる概念である。素因数分解問題の困難性を用いたものが代表的。

以下では、単に「多項式時間アルゴリズム」と書いた場合は「平均多項式時間確率アルゴリズム」を指す。

厳密な定義

[編集]

で自然数の集合を表す。 Σ = {0, 1} とし、とする。

関数 が以下を満たす時、関数 一方向性関数であるという:

  1. 多項式時間で計算可能。すなわちある多項式時間アルゴリズム C があって C(x) = f(x)
  2. 任意の多項式時間アルゴリズム A に対し、ある 無視可能函数 と、ある が存在して、全ての k > k0 に対し、

一方向性関数の存在性

[編集]

現在のところ、一方向性関数の存在性は証明されていない。 (一方向性関数の存在性が示せれば、P≠NP が系として従う)。 しかし、一方向性関数の候補となる関数はいくつか知られている。 一方向性関数が存在すると証明が与えられたわけではないものの、 暗号理論では一方向性関数の存在性を仮定して議論を進める。

一方向性関数族

[編集]

I を Σ* の部分集合とし、

D = {Dn}nIR ={Rn}nI を Σ*

部分集合の族とする。 G1G2 を多項式時間アルゴリズムとし、 F = {fk: DkRk} を関数の族とする。 組 (D, R, G1, G2, F) が以下を満たすとき、(D, R, G1, G2, F) を一方向性関数族という:

  1. G1 は 1k を入力すると nI∩Σk を出力するアルゴリズム。
  2. G2nI を入力すると xDn を出力するアルゴリズム。
  3. ある多項式時間アルゴリズム C があって C(x, n) = fn(x)。
  4. 任意の多項式時間アルゴリズム A に対し、ある negligible な関数 ν とある k0 が存在して、全ての k > k0 に対し、Pr[xA(n, y) | nG1(1k), xG2(n), yf(x)] < ν(l)。

一方向性関数が存在する事は一方向性関数族が存在する事の必要十分条件である事が知られている。

弱一方向性関数

[編集]

関数 f: Σ* → Σ* が以下を満たす時、関数 f弱一方向性関数であるという:

  1. f多項式時間で計算可能。
  2. ある多項式 P が存在し、任意の多項式時間アルゴリズム A に対し、ある k0 が存在し、全ての k > k0に対し、Pr[zf(x) | xR Σk, yf(x), zA(1k, y)] > 1/P(k)。

定理 一方向性関数が存在する必要十分条件は弱一方向性関数が存在する事である。

証明の概略(⇒)自明。

(⇐)f を弱一方向性関数とする。gg(x1 || … || xN) = f(x1) || … || f(xN) と定義する。ただしここで「||」はビット列の連接、N = 2kP(k)。(P は弱一方向性関数の定義の条件 2 にあるもの)。 この時 g-1 を求めるには、f -1N 回計算しなければならない。

どのようなアルゴリズムを用いても f -1 を計算するには 1/P(k) ステップかかるので、f -1N 回計算するのは多項式時間ではできない。

非一様一方向性関数

[編集]

関数 f: Σ* → Σ* が以下を満たす時、関数 f 非一様一方向性関数であるという:

  1. f多項式時間で計算可能。
  2. 任意の多項式時間サイズの回路族 A = {Ak} に対し、ある無視可能函数 ν が存在して、Pr[xAk(y) | xR Σk, yf(x)] < ν(l)。

多項式時間アルゴリズムは多項式時間サイズの回路族で表す事ができるので、非一様一方向性関数は必ず一方向性関数である。しかし逆はよく分かっていない。

一方向性関数の候補

[編集]

集合 {(p, q) ∈ 2 | p, q は素数で、p のビット数 = q のビット数} から自然数の集合 への写像 (p, q) pq は一方向性関数であると予想されている。

必要十分条件

[編集]

以下は全て同値である。

  1. 一方向性関数が存在する
  2. 弱一方向性関数が存在する
  3. 一方向性関数族が存在する
  4. 暗号論的擬似乱数生成器が存在する
  5. 擬似ランダム関数の族が存在する。
  6. 電子署名方式が存在する。

関連項目

[編集]
{{bottomLinkPreText}} {{bottomLinkText}}
一方向性関数
Listen to this article

This browser is not supported by Wikiwand :(
Wikiwand requires a browser with modern capabilities in order to provide you with the best reading experience.
Please download and use one of the following browsers:

This article was just edited, click to reload
This article has been deleted on Wikipedia (Why?)

Back to homepage

Please click Add in the dialog above
Please click Allow in the top-left corner,
then click Install Now in the dialog
Please click Open in the download dialog,
then click Install
Please click the "Downloads" icon in the Safari toolbar, open the first download in the list,
then click Install
{{::$root.activation.text}}

Install Wikiwand

Install on Chrome Install on Firefox
Don't forget to rate us

Tell your friends about Wikiwand!

Gmail Facebook Twitter Link

Enjoying Wikiwand?

Tell your friends and spread the love:
Share on Gmail Share on Facebook Share on Twitter Share on Buffer

Our magic isn't perfect

You can help our automatic cover photo selection by reporting an unsuitable photo.

This photo is visually disturbing This photo is not a good choice

Thank you for helping!


Your input will affect cover photo selection, along with input from other users.

X

Get ready for Wikiwand 2.0 🎉! the new version arrives on September 1st! Don't want to wait?