⚠️ Disclaimer ⚠️
By using this software and by following all the enclosed instructions you acknowledge
that it is provided "as is" without any warranties, express or implied.
The user assumes all responsibility for any consequences, including but not limited to damage,
loss of data, or other issues arising from the use of this software
or following the enclosed instructions. The developer shall not be held liable for any claims,
damages, or losses related to the use of this software and instructions.
- Flipper Zero has an infrared transceiver.
- The flame of a lighter or a candle emits infrared radiation.
- Most flames are hardly predictable by nature.
- Combine the 3 above and get a True Random Number Generator!
This repo contains a script which does exactly that.
Currently there's only a version for Linux.
-
Make sure you have the following programs installed:
- sed
- tr
- screen
-
Set Log Baud Rate to
230400
by navigating on your Flipper Zero to:
Settings -> System -> Log Baud Rate: 230400
- Get a lighter (BiC, Zippo, etc).
- Make sure your Flipper Zero is connected to the computer.
- Stop
qFlipper
or any other software on the computer that talks to the Flipper. chmod +x ffr
./ffr
- Follow instructions on the screen.
- Once you see a blank screen, start flicking your lighter at a short distance from the Flipper, so that sparks and flame would be visible to the IR sensor.
- NB: Don't burn your Flipper!
- NB: Don't set anything around your on fire!
- NB: Be very careful!
- Flipper will record the infrared radiation as random digital data.
- You have 16 seconds to generate random data with the lighter.
- You can adjust the time of experiment by executing
./ffr <NUMBER_OF_SECONDS>
.
- You can adjust the time of experiment by executing
- Once the time runs out, the script cleans up the data and saves it to a file in the current working directory.
The project contains files data1.txt and data2.txt with random numbers collected by running ffr 150
and flicking 2 different BIC lighters.
The random numbers were then checked with dieharder RNG tests and results were generally satisfying:
Interestingly enough, distribution of individual digits in the data is not uniform. 1
, 2
and 3
happen to occur more often than the other digits. Nevertheless, the dieharder tests don't see it as a problem. You can run a digit frequency test using ./freq YOUR_FILE_NAME
.
Below are frequency charts based on data1.txt and data2.txt: