非正式地,一個函式 是一個單向函式,如果
1. 的描述是公開的,並且其操作不需要任何秘密資訊。
2. 給定 ,很容易計算
。
3. 給定 ,在
的範圍內,很難找到一個
使得
。更準確地說,任何解決 P 問題 的有效演算法以可忽略的機率成功反轉
。
單向函式的存在性尚未被證明。如果為真,則意味著 。因此,它將回答 複雜性理論 NP 問題,即所有表面上的 NP 問題是否實際上是 P 問題。然而,許多推測的單向函式在商業和工業中被常規使用。例如,推測(但未證明)以下是單向函式:
1. 因子分解問題:,對於隨機選擇的素數
。
2. 離散對數問題
對於 為
的生成元,其中
為某個素數。
3. 離散根提取問題:,對於
在
中,
在
中且與
互素,以及
為素數。 這是通常被稱為 RSA 加密 的函式。
4. 子集和問題:,對於
,以及
-bit 整數
。
5. 二次剩餘 問題。