dimanche 26 février 2023

How could you encrypt random numbers and sell securely them via an API (randomness-as-a-service)

Since computers only have pseudo-random numbers, I could imagine setting up a company that offers random-numbers-as-a-service. The idea would be that you pay a small amount per month, and when you make an API call to the service, you get truly-random numbers. These numbers could be generated from natural sources of complexity. I found random.org which does this for free, and lavarand who did this for a price, based on lava lamps.

Assuming Alice is generating the random numbers, and wants to send them securely to Bob, how could Alice ensure that Eve (who has access to all traffic between Alice and Bob) can't steal the random numbers?

The issue with regular encryption, is that encrypting a random number would just result in another random number. In which case Eve could just take the encrypted random number and use that number for her random number needs. My assumption here is that any cryptographically secure encryption method, when applied on a uniform distribution, would result in another uniform distribution.

My core question is: How can Alice securely send a random number to Bob, but still ensure that the transferred data is less random than the original random number (such that the encrypted random number is useless as a random number in it's own right). I'm using 'less random' to mean that the encrypted number is further from a uniform distribution than the original number.




Aucun commentaire:

Enregistrer un commentaire