![]() | This article is rated Start-class on Wikipedia's content assessment scale. It is of interest to the following WikiProjects: | |||||||||||||||||||||||
|
I'd like some extra clarification introducing the topic. If a one-way-function means a function that is not reversible, it could be as simple as IsEven(int)->bool - you cannot recreate the input integer from it's output. Could someone please clarify how a one-way function differs from this? --198.160.96.7 (talk) 21:15, 11 April 2013 (UTC)
According to the definition of Oded Goldreich's book Foundations of Cryptography (Basic Tools), a one-way function does not need to be a bijection. And that does have some significant implication.
There is currently no really good definition of what the desirable properties of a cryptographic hash are. They are basically expected to be maximally dull, but defining that is nearly impossible. ciphergoth 10:13, 2004 Nov 17 (UTC)
I think it would be worth mentioning cryptographic hash functions here in some way. The first thing I thought when I read the definition was, "oh, so these are reminiscent of hash functions" (in the "preimage resistance"-y way); it's a natural question for a reader to ask, so it would be good to have a sentence explaining in what way they are similar, and in what way they are not. — Matt 10:25, 17 Nov 2004 (UTC)
Computing any preimage of (i.e., an element such that ), given only for some random , is not tractable (i.e. no probabilistic polynomial time algorithm exists).
Is this somewhat the same as computing x given f(x) is not tractable?
And why isn't, say, f(x) = 3 considered a one-way function? --Ihope127 21:16, 11 July 2005 (UTC)
I removed this text from the page on the grounds that questions belong on talk pages:
I think they're saying something like "if the inputs and outputs are taken from finite sets, a suitably pre-compiled inverse lookup table, if available, could do the job in O(1) time." To which the answer is, I think, "yes, but first you not only have to have enough storage for the table, but you also have to pre-fill the table, unless you have an oracle that can present you with the entire table -- and filling the table is equivalent to brute force inversion by testing all the possible inputs, which is exponential-time in n". -- Karada 15:15, 14 July 2005 (UTC)
From the article:
This is certainly confusing the notions of worst-case and cryptographic (weak/strong) one-way functions. A worst-case OWF is a function having no inverse computable in polynomial time. These exist iff P≠NP. Similarly, one-to-one worst-case OWFs exist iff P≠UP, poly-to-one worst-case iff P≠FewP, etc, etc... The proofs of these statements are all essentially the same.
Whether worst-case OWFs implies weak/strong OWFs is not known, and this is why the existence of cryptographic OWFs is a stronger assumption than P≠NP.
Anyway, the above statement surely needs to be removed, but should there also be a note about worst-case OWFs? They are still frequently used as tools in structural complexity. Blokhead 16:51, 13 October 2005 (UTC)
The notation and terminology used in the formal definition is just way beyond me, and 99% of our readership. Could we give examples of what a theoretical one-way function would do to an input, how any similar (existing and theoretical) categories of functions would differ in their output from the one-way function, and what the uses of the one-way function would be? For one of the most important unsolved problems in computer science, this page could be much clearer to the interested layman.
For specific points, two things came to mind when I heard the term "one-way function":
Both of these points are trivially true and thus probably irrelevant to this important question that I don't understand, but I would expect a fair number of people would think of things like that when they hear the term, so maybe they should be addressed. —Simetrical (talk • contribs) 00:22, 30 December 2005 (UTC)
Hmm. So this is basically what cryptographic hash functions are aiming for, just nobody's mathematically proven that any of them are actually one-way?
And what exactly (or inexactly) is meant by a function being "hard" to invert? It would mean, basically, that there's no way to do it except brute force? Or is the idea more complicated than that?
This is turning out to be simpler than I thought. I could write up a beginning once I get the basics here laid out. —Simetrical (talk • contribs) 11:02, 3 January 2006 (UTC)
I find the way we usually denote this in class more readable:
2. hard to invert
Although more wordy, I think it's much clearer broken up into steps like this.
Meekohi 16:58, 1 January 2006 (UTC)
I agree. I studied a lot of mathematics courses at university level, and I can't seem to understand the definition. I'd like a little bit more clarification. What does the * mean? Is {0, 1} a set, and interval or something else? What does it mean to be "sufficently large"? Is there a formal definition of this? Does it mean the limit of some expression goes to zero when n goes to infinity? Maybe if we don't explain it in text we should at least have a few clickable links to other articles for further clarification. I really didn't understand the definition and feel it should be possible to explain it in an alterative way. — Preceding unsigned comment added by 78.72.135.178 (talk) 09:32, 20 November 2017 (UTC)
The formal definition of "strong one-way function" is incomplete, because it refers to a "probabilistic polynomial-time algorithm" A' without defining what this is, so that when A' gets used in the expression
it's not clear what's going on. I tried to partially cure this by adding a link to "random algorithm" (since this is where a query about "probabilistic algorithm" got redirected). Alas, it's not a complete cure, since that article does not give a formal definition of probabilistic algorithm.
Since I've studied this subject a wee bit, I can guess that a probabilistic algorithm takes two inputs: the "actual" input and also an auxiliary random string. So, I can guess that these are the two arguments of A' above. But the discussion after the definition seems to be saying that the role of is just to tell A' the length of the string it's trying to compute. So maybe the auxiliary random string is completely implicit in the above expression??
A clear definition of "probabilistic algorithm", or a link to one, would not have made me guess so much.
The worst thing is, I really need to know the definition TODAY! :-)
John Baez 09:47, 10 February 2006 (UTC)
This article needs an early explanation about whether it is the same as a trapdoor function or not, and whether it can in theory be inverted at all (i.e. whether it is an injective function) - the hash function function suggests no, but this article seems to suggest yes. --Henrygb 23:07, 6 March 2006 (UTC)
I'm not sure if it's appropriate to ask a question like this on a wikipedia talk page (rather than a discussion forum), but: If I understand correctly, f^-1(f(x)) = x for all x. If, for example, we have f(x) = x mod 5, surely there's no possible f^-1? f(5), f(10), f(15) etc. all = 0, so how can it be possible to construct an inverse function that can correctly return either of these original values for the input 0? In other words: what's the difference between a one-way function and a non one-to-one function? I assume that there must in fact be some difference, because of the assertion in the article that mathematicians aren't sure whether true one-way functions exist (so either I'm wrong about what one-way functions are, the article is wrong about what mathematicians think, or I've somehow made a groundbreaking discovery (ha, ha)). - SoulSkorpion 08:05, 11 June 2006 (UTC)
I'm a bit perplexed why the asymptotic time cited here is for elliptic curve factoring, rather than the number field sieve. Generally the sort of worst-case numbers used in cryptography are most efficiently factored with NFS, right? Deco 20:07, 11 June 2006 (UTC)
There is a mistake in the prime multiplication section, the complexity of the factorization algorithm is given as O(2(log N)1/3(log log N)2/3), but log log N < log N, so 2(log N)1/3(log log N)2/3 < 2log N = Nlog 2 < N2, therefore O(2(log N)1/3(log log N)2/3) is a subset of O(N2). Either O(2(log N)1/3(log log N)2/3) is not the complexity of the factorization algorithm or else prime multiplication is not a one-way function. Wolfram[1] gives prime multiplication as an example of a potential one-way function so I suspect that the factorization complexity is incorrect. Also, the integer factorization page gives the complexity as O(exp((64/9 N)1/3(log N)2/3)) = O(2N1/3(log N)2/3). Daspiffy 23:26, 30 January 2013 (UTC).
References
The definitions on this page of strong and weak one-way functions (and most of the text surrounding them) were clearly plagiarized (with minor modifications) from Oded Goldreich's book Foundations of Cryptography I (see pp.33-35). Please remove them. --- Tom Roeder, Cornell University
I've removed the text for now. I presume it is a near word-for-word copying, and not just a re-expression of the same definition? (I don't have access to Goldreich's book). — Matt Crypto 17:03, 15 September 2006 (UTC)
See http://www.wisdom.weizmann.ac.il/~oded/foc-drafts.html for drafts of the book that contain the defs and some of the same text. Looking at the final copy in the book, however, shows that the copying was almost word-for-word. I don't have Yao's paper in front of me, but I agree that his definition (or any other) could be used, if it is cited properly. --- Tom Roeder
The article states that "One-way functions exist implies P NP, but it's not clear if P NP implies the existence of one way function." However the other direction has already been proved. See Chapter 2 of The Complexity Theory Companion. -- Pku_leehsin
I am quite certain that having a constructive proof of P=NP would bring you no closer to reversing SHA-1 or SHA-256. --- Joshua
List_of_open_problems_in_computer_science#The_existence_of_one-way_functions says that P NP does not imply the existence of a one-way function. This contradicts what is said in this article. 192.87.139.139 (talk) 12:16, 24 May 2011 (UTC)
This article says that the existence of a one-way function implies the existence of a private-key encryption scheme. Isn't this trivially true, due to the existence of the one-time pad? 71.194.163.223 13:50, 24 July 2007 (UTC)
This is just confusing concepts.
"Average case", as in taking mean time across all valid inputs, as in ZPP class, is not what we want. We want something much stronger - we want inverting to be hard for overwhelming majority of cases.
For example, if we had a function f(x) which always took 4^(number of bits in x) time (under P!=NP and whatever other assumptions we need), then the function g(x) = 2*f(x) if x prime, g(x) = 2*x+1 otherwise, would still take exponential time on average to reverse (sum 4^log2(x)/ln(x)/N = sum x^2/ln(x)/N \in O(x)), but vast majority of cases would be trivially invertible, making such function useless as a one-way function. Taw (talk) 11:02, 16 September 2009 (UTC)
It's very hard to understand... I get the general sense from this section that there exists a function that if proved to be one way, would prove that functions can be one way. But it doesn't explain much else... — Preceding unsigned comment added by 69.117.26.39 (talk) 00:33, 20 February 2013 (UTC)
Here is a one-way function that is impossible to derive its input based on outputs: f(x)=0. What is this article or definition missing? Average64 (talk) 19:51, 27 May 2014 (UTC)
AFAIK, it's not O(n^2) as stated in the article. See Fürer's algorithm, it can reach O(n\log n2^{3\log^* n}) Willrazen (talk) 19:27, 2 February 2016 (UTC)
I think it'd be a good idea to add one sentence to the header explaining that people often use the term "one-way function" to apply to functions that, while currently difficult to invert, may or may not be one-way functions under the formal definition of the term. (In fact, the articles for hash functions and cryptographic hash functions both describe them as being one-way functions.) There already is the section on "Candidates for one-way functions" but it's much further down and common alternate (albeit imprecise) usages of the term probably warrants some mention in the header. Thoughts? Jwuthe2 (talk) 11:45, 2 November 2017 (UTC)
The "Rabin function" (squaring modulo some two-factor integer N) is one-way only if the factorization of N is not known. For any such N, that function is easy to invert. Thus it is not a "one-way function" but rather a "trapdoor function" (when N is included as the parameter of f and p,q as parameters of the inverse). It should be removed and discussed only in the trapdoor function article. --Jorge Stolfi (talk) 21:33, 15 August 2018 (UTC)
On the one hand, the article states "[...] their existence would prove that the complexity classes P and NP are not equal [..]", but on the other hand also in an other section "The existence of one-way functions also implies that there is no natural proof for P≠NP". Are both implications true? If yes, what is the point of ever presenting the second one without the first one? — Preceding unsigned comment added by 2A02:8070:8798:4000:80E4:FDE0:A138:9EB6 (talk) 22:46, 7 February 2020 (UTC)
As defined here, one-way functions are defined so they are polynomial time, but their inverse is not. However, the same concept could be thought of more generally as functions with a strict upper bound that is a lower bound on their inverse. Is there any information about this more general problem, how it is formulated and described, it’s implications, and whether or not it has been solved?
In the section Candidates for one way functions, it is stated "...because the probability that an arbitrary p is odd is 1/2, and likewise for q(...)". But since 2 is the only even prime, that seems not correct? 89.99.34.48 (talk) 07:11, 24 July 2022 (UTC)
This statement implies P != NP and is therefore currently unknown. It should therefore be removed. (If P = NP, then P != NP is false and thus trivially implies anything.) --fiesh 91.43.222.42 (talk) 23:21, 15 November 2022 (UTC)
I was reading the page, and in consulting the sources for the page noticed that the source for "Lecture Notes on Cryptography" is outdated. I don't have anything else to contribute just wanted to inform the lovely editors of this page. Zipore (talk) 19:27, 6 January 2025 (UTC)