What PRF is generally used?
i am not really familiar with this algorithm but yesterday when i saw your comment mentioning SHA256 as the PRF i did some search on the algorithm and i haven't yet seen anybody use this.
one option is what was posted (
f(x) = 2x%k) each choosing k differently from random k in [1,20] to a k based on curve order, here is one in python:
https://github.com/crypto-class/random-modnar/blob/master/set8/58/main.pyothers use something similar to what you said here with SHA256 but they simply use their language's Random() function which uses a bunch of hashes under the hood.
another thing i've seen was finding α based on prime (p-1) factors and define
f(x) = xα %nin the end it seems like there is no good answer to the pseudorandom map function that they use. each one is trying to come up with the most efficient function while reducing the cycles to make the algorithm run faster.
As far as this PRF:
def f(Z):
(x, y) = Z.coords()
return pow(2, (y % k))
where k is varied to create new kangaroos
To quote King Crimson:
The more I look at it
The more I like it
Heh, I do think it's good
The fact is..
No matter how closely I study it
No matter how I take it apart
No matter how I'll break it down
It remains consistent
I wish you were here to see it!
Anyway I am going to try the simplest fastest possible thing I can think of and test it to see if it will work:
def f(Z):
(x, y) = Z.coords()
return (y & M)
where M is a bit mask and is varied to create new kangaroos