每一個單向函數(本身屬於 P 但反函數不屬於)都可以構造一種公鑰密碼嗎?
補充 @玄星 大牛的回答
事實上,所有的密碼學源語的構建,都是基於某個假設的——不僅僅公鑰源語如此,對稱密碼源語等等也都如此。比如,公鑰密碼中假設的「大整數分解的困難性「,以及對稱密碼中假設的「偽隨機性存在」(偽隨機發生器的存在)等。通常來講,有些假設是「高層假設」,這些假設可以通過更「低」層的假設推倒出來(可以規約到更底層的假設)。
事實上,「單項函數存在」實際上是最基本的密碼學假設。有了單項函數,我們可以構造hash函數,可以用來構造其他多種對稱密碼源語,可以保證認證性。所以說,如過說構造「公鑰密碼源語」,可以!
但是,並不能保證所有的單項函數都是lossless的,只有one-way function will trapdoor(陷門單項函數)可以用來構造公鑰加密演算法。
不限於加密的話,Lamport很早就提出了如何由單向函數構造數字簽名的方法
Lamport, Leslie. Constructing digital signatures from a one-way function. Vol. 238. Palo Alto: Technical Report CSL-98, SRI International, 1979
得具備交換性吧,不然只能拿來做散列。
比如MD5。
以及非多項式也不等效於數學無法計算,NP問題跟單向函數不是充分的關係。是否存在逆運算?反向計算能否證明安全性或複雜度?前者是構造的關鍵,後者是安全的基石
就是 Minicrypt 和 Cryptomania 是否同一的問題。結論是(暫時)不知道。
可以參考 http://ieeexplore.ieee.org/document/514853/ 和 Status of Impagliazzo"s Worlds? 。
單向之外還得有陷門吧,要不怎麼解密。
不是單向函數,是單向陷門函數。
誰邀請的我?我高三數學考二十四分的,邀請我幹啥?
推薦閱讀:
※瀏覽器保存密碼是否存在安全隱患?
※lastpass 怎麼使用更安全?
※為什麼密碼不可以是漢字?
※如何拯救忘記密碼的機械硬碟?
※為什麼密碼不支持中文?