
Ephemerand – GPS-based random number generator - j_halden
https://github.com/hoytech/ephemerand
======
viraptor
So if I understand the source data correctly, it doesn't seem to be super
random. These are the last 5 TLE entries for one of the GPS satellites:

    
    
        40105 54.5777 194.6697 0011887 101.0084 259.0886 2.00557623 33631
        40105 54.5775 194.5700 0011842 101.1165 258.9939 2.00557745 33682
        40105 54.5775 194.5700 0011842 101.1165 258.9939 2.00557745 33682
        40105 54.5775 194.5700 0011842 101.1165 258.9939 2.00557745 33682
        40105 54.5775 194.5700 0011842 101.1165 258.9939 2.00557745 32827
    

It looks like you can't really predict them, but you can certainly generate
likely candidates.

The values have expected cycles as well:
[https://space.stackexchange.com/questions/30735/why-do-
gps-s...](https://space.stackexchange.com/questions/30735/why-do-gps-
satellites-have-increasing-eccentricity-over-time)

Am I missing something here?

------
rakoo
If I understand correctly the data is updated once a day, so everyone who does
this will have the same random number. It is even described in the linked
slides: they were able to generate the same random number, without
communication. What use can this have?

~~~
therein
I can't think of a situation where two parties would want to generate the same
sequence of random numbers without communication, however, if I ever need it,
this seems like a really interesting solution.

~~~
gh02t
Generating a shared sequence of random numbers is the basis of zero knowledge
proofs, hence it could be useful for authentication. I can think of one
interesting feature this scheme would have, if we assume the numbers from GPS
are truly random. If you know the shared secret then you can predict the
output as far back in time as you want, but you can't predict more than a day
ahead.

~~~
viraptor
> Generating a shared sequence of random numbers is the basis of zero
> knowledge proofs

Could you give an example? The zero knowledge proofs I know are of the type:
here's an X, tell me f(secret, X) - which doesn't require any shared
information (apart from the secret you're verifying).

~~~
gh02t
It'd be more correct to say _pseudo_ random. The way I was taught ZKPs was in
terms comparing the output of pseudorandom number generators seeded by a
challenge and a shared secret, but you can also explain it in terms of hash
functions instead.

What I was thinking was that the random number from GPS (or some sequence
derived from it) could serve as the challenge, basically akin to a 2FA scheme
like HOTP. Or a variety of other schemes, hinging on the trait that you can't
predict the next output of the random number from GPS.

------
ggm
Take block-chain insanity out of this, and a distributed reliable consistent
unpredictable random value feels like a socially useful thing.

Put signed public ledger (which is block chain shed of the economic games to
ICO) back on the table, and It feels like this, alongside a trusted third
party time stamp, would become enabling technology for a non-repudiation
'happened on this day' service.

I would prefer to use GPS than NIST. If this is combined with mix-in from
Glonass and Galileo, Does it get stronger or weaker?

~~~
wmf
_signed public ledger ... alongside a trusted third party time stamp, would
become enabling technology for a non-repudiation 'happened on this day'
service._

Indeed. [https://motherboard.vice.com/en_us/article/j5nzx4/what-
was-t...](https://motherboard.vice.com/en_us/article/j5nzx4/what-was-the-
first-blockchain)

