單向函數
單向函數
單向函數 (One-way function)是一種具有下述特點的單射函數:對於每一個輸入,函數值都容易計算(多項式時間),但是給出一個隨機輸入的函數值,算出原始輸入卻比較困難(無法在多項式時間內使用確定性圖靈機計算)。 單向函數是否存在仍然是計算機科學中的一個開放性問題。事實上,如果單向函數存在,將證明複雜性類P/NP問題中,P不等於NP。
目錄
單向函數定義:
一函數f若滿足下列二條件,則f稱為單向函數:
① 對於所有屬於 f 定義域的任一 x ,可以很容易計算 ;
②對於幾乎所有(Almost All)屬於 f 值域的任一 y ,則在計算上不可能(Computationally Infeasible)求出 x 使得;
單向函數的例子:
1、令 f 為一 n 階多項式,且。給出a[0],a[1], …,a[n-1],p 及x,欲求 y ,只需最多n個乘法及n-1個加法。因為。此即為有名的Honer's Rule。但若已給[0],a[1], …,a[n-1]及y,欲求出 f( x )的 x,則至少需要次乘法,當n及p很大時,可知由y求x,比由x求y難上許多。
令素數p滿足p-1含有另一大素因子q(即q整除p-1)及一整數g,1 此外,還有很多單向函數的數學問題,例如因子分解問題,背包問題等,在此無法一列舉。
單向函數本身在近代密碼學領域用處並不大。但若單向函數具有交換性,則其用處就很大。所謂交換性定義如下:
交換性(Commutatve Property )
令Z為一集合,F為將Z映射至Z本身的函數集合。令z∈Z,F[x](z)表示此函數集合的第x個函數,若,則稱此函數集合具有交換性。
具有關鍵性性的單向函數是進行數據加密/編碼的一種演演算法
單向函數一般用於產生消息摘要,密鑰加密等,常見的有: