Giter VIP home page Giter VIP logo

truerandom's Introduction

TrueRandom

A webapp which provides true random numbers based on radioactive decay

About

TrueRandom is a web application which uses the unpredictable randomness of radioactive decay to generate random numbers. The application consists of two portions, a hardware based detection system and the software based application which serves the random numbers.

Most of the random numbers we deal with on a daily basis are pseudorandom. This means that they are generated by algorithms which have deterministic steps. Pseudorandom numbers carry some interesting implications, mainly the fact that they aren't truly random. If someone knew every step the algorithm in question took to generate its seemingly random number, they could recreate said number. True random numbers on the other hand are created from physical sources. The true randomness we desire can oftentimes be found in physical phenomena such as the thermal noise generated from a resistor, and even nuclear decay which is the source being used in this project. Nuclear decay specifically is a completely random process due to its basis in quantum mechanics which states that we are unable to determine exactly when a single atom will decay. We can employ this property alongside an algorithm such as the one detailed in this paper to generate bits which can then be turned into integers of a desired length.

Hardware

The hardware portion of this project consists of two parts, an arduino and a Geiger–Müller tube which is run on a separate board and sends a pulse to the arduino on the detection of a radioactive particle. The arduino will detect these pulses and use the difference in time between pulses to determine a 1 or 0 bit value.

Web Application

The web application portion of this project will be built with React due to the need for a live updating value on the screen which will be pulled from a database built in PocketBase. The database will store the bit values generated by the hardware portion in sets of 32 allowing for 4,294,967,295 as the highest numerical value. Alongside providing an integer value, the standalone bits will also be provided. For example, the bits 1111111111111111 would correspond to an integer value of 65535. Once a specific set of bits are displayed on the website they are deleted from the database to ensure they can not be displayed again.

Testing For True Randomness

The randomness of a set of bits can be determiend through a vast number of tests, such as those outlined in this article NIST Special Publication 800-22. The article outlines the defintions of randomness as follows. Randomness is idealized as the situation where any outcome is equally likely in a given scenario, such as that of flipping a fair two sided coin. It is also important to note that events which are random must also be independent of each other, in our example this would be to say that the outcome of one coin toss will not impact the outcome of another.

truerandom's People

Contributors

hnow avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.