Skip to content

hmcguinn/rtlsdr-rng

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

rtlsdr-rng

Python subclass of Random using an RTLSDR as the entropy seed. As of now, does not provide a CSPRNG. While changing the seeding for a Mersenne-Twister (what random() uses internally) should prevent attacks, this should not be used for functions that need cryptographically secure random numbers.

Inspiration taken from https://github.com/michelp/randio

Background

The best paper I've been able to find on using radio transmissions as entropy for a random number generator is True Random Number Generator Utilizing FM Radio Signals for Mobile and Embedded Devices in Multi-Access Edge Computing by Kyungroul Lee and Manhee Lee. The 2019 paper estimates 0.71 - 1 bits of entropy for every sample bit. It does this by sampling FM radio stations, switching between them. Then playing the recorded signal through speakers and recording it as audio to mix in noise from the speakers and the microphone.

Dependecies

Should you use this?

Probably not. It's generally not a good idea to roll your own crypto. After all, just because amateurs are able to design something they themselves cannot break doesn't mean it cannot be broken.

If you're building anything other than a toy-project, I recommend you use something that's been more verified than this project.

Todo:

  • Dieharder tests
  • FIPS tests
  • Better command-line support
    • Args to set frequency
    • Sample rate

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published