Introduction
- One-way functions are a special subset of functions in which it is easy to compute y given x but very hard to compute x given y
- For example:
LaTeX formula:f(x) = 7^x \mod 23
- We can calculate values for f(x) very easily:
- However given a specific value for y it is difficult to find a corresponding x without computing each possible value of x and seeing if it results in a matching y.
code (Python)
Notice in the code below, the function f() has a much smaller complexity than function g()def f(_x):
return 7**_x % 23
def g(_y):
for i in range(10*1000):
if f(i) == _y:
return i
raise Exception("x is not in testable domain")
x = 8
y = f(x)
print("The image of " + str(x) + " is " + str(y)) # prints The image of 8 is 12
y = 12
x = g(y)
print("The preimage of " + str(y) + " is " + str(x)) # prints The preimage of 12 is 8