求真百科欢迎当事人提供第一手真实资料,洗刷冤屈,终结网路霸凌。

单向函式查看源代码讨论查看历史

事实揭露 揭密真相
跳转至: 导航搜索
单向函式
图片来自itread01

单向函数 (One-way function)是一种具有下述特点的单射函数:对于每一个输入,函数值都容易计算(多项式时间);但是对于一个随机的函数值,算出其对应的输入却比较困难(无法在多项式时间内使用确定性图灵机计算)。 单向函数是否存在仍然是计算机科学中的一个开放性问题。事实上,如果单向函数存在,将证明复杂性类P/NP问题中,P不等于NP。与之相对,P不等于NP的假设并不能直接推出单向函数的存在。

实践中,常将“容易计算”和“不容易计算”定义为“对于合法用户容易计算,对于恶意用户不容易计算”。从这个意义上,密码散列函数[1] 可以被当作单向函数。这是因为,虽然单向函数可能根本不存在,也无人能证明一个散列函数真的是单向函数,但也无人发现可以在合理时间内破解它们的实用算法。

理论定义

函数f: {0, 1}* → {0, 1}* 是一个单向函数当且仅当f可以用一个多项式时间的算法计算,但是对于任意一个以x为输入的随机化多项式算法A,任意一个多项式p(n),和足够大n,使得

Pr_{x\in\{0,1\}^n}[ f( A( f(x) ) ) = f(x) ] < \frac{1}{p(n)}

参考文献

  1. 密码散列函数,zhuanlan