Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support for RDRAND #12

Open
simsong opened this issue Jan 6, 2020 · 3 comments
Open

Support for RDRAND #12

simsong opened this issue Jan 6, 2020 · 3 comments

Comments

@simsong
Copy link

simsong commented Jan 6, 2020

It appears that this project uses openssl/rand.h as its randomness source. Unfortunately, openssl's random number generator is frequently not sufficient for providing privacy protection many statistics. In our analysis, we have found that the only secure way to get private random numbers is to call the RDRAND instruction directly, or to use a pluggable random number generator that supports RDRAND.

You can read more about the issue of OpenSSL and RDRAND here.

So it would be useful if you could support RDRAN directly.

ps: I just discovered this project. Congrats on putting it out!

@dasmdasm
Copy link

The source you linked doesn't appear to cover weaknesses in RAND_bytes, just that it no longer uses RDRAND. Can you cite any sources for the fact that "openssl's random number generator is frequently not sufficient for providing privacy protection many statistics"?

@simsong
Copy link
Author

simsong commented Jan 23, 2020

I cannot. The problem is that differential privacy requires true random numbers, not pseudorandomnumbers. That's because DP assumes a computationally unbounded adversary. If you cannot assure that the randomness is not truly random, then the randomness fails the DP requirement.

The DP literature is quite poor in its consideration of randomness sources.

@simsong
Copy link
Author

simsong commented May 2, 2020

We are working on an article about issues we've had with randomness. Email me if you would like to get a draft.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants
@simsong @dasmdasm and others