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

Figure out a way to add a good random value source #9

Open
mithro opened this issue Sep 16, 2016 · 5 comments
Open

Figure out a way to add a good random value source #9

mithro opened this issue Sep 16, 2016 · 5 comments

Comments

@mithro
Copy link
Member

mithro commented Sep 16, 2016

Something like the http://altusmetrum.org/ChaosKey/

@FlorianUekermann
Copy link

Maybe there are ways to do this without additional hardware. Would something similar to the approach Gniibe takes with NeuG be an option?

Documenting an approach that is straightforward to implement would be great to get some peer review and avoid broken homemade rngs.

@mithro
Copy link
Member Author

mithro commented Feb 6, 2018

Keith Packard was suggesting that we use a good random number source to bake some random data into the flash. Then as you use the random data you can clear it until you run out. As you only need the true random data to seed a pseudo random number generator it should last quite a while...

@mithro
Copy link
Member Author

mithro commented Feb 6, 2018

I'm no security / crypto expert however

@FlorianUekermann
Copy link

That sounds fine and fast for cases where you don't need cryptographically secure numbers. However, the application I had in mind was crypto.

So some (slow) source of true randomness would be great to seed a CPRNG with low frequency. Not an expert either, so I would very much like to hear what Keith, Gniibe or other experts think.

@gl-sergei
Copy link
Member

There is Neug port for Tomu here: https://github.com/im-tomu/chopstx/blob/efm32/mcu/adc-efm32.c and https://github.com/im-tomu/chopstx/blob/efm32/u2f/neug.c), would be great if someone could audit it.

There is also Fortuna PRNG implemented by Si Labs https://www.silabs.com/documents/public/application-notes/AN0806.pdf for your consideration.

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