HackerPapers

arXiv:1212.3777cs.CR

The Arduino as a Hardware Random-Number Generator

Benedikt Kristinsson

Early discovery. Linked by one identifiable commenter. This paper is outside the main ranking; a mention is not an endorsement.

Abstract

Cheap micro-controllers, such as the Arduino or other controllers based on the Atmel AVR CPUs are being deployed in a wide variety of projects, ranging from sensors networks to robotic submarines. In this paper, we investigate the feasibility of using the Arduino as a true random number generator (TRNG). The Arduino Reference Manual recommends using it to seed a pseudo random number generator (PRNG) due to its ability to read random atmospheric noise from its analog pins. This is an enticing application since true bits of entropy are hard to come by. Unfortunately, we show by statistical methods that the atmospheric noise of an Arduino is largely predictable in a variety of settings, and is thus a weak source of entropy. We explore various methods to extract true randomness from the micro-controller and conclude that it should not be used to produce randomness from its analog pins.

arXiv comments
Journal reference
DOI
Subjects
cs.CRCryptography and Security cs.ITInformation Theory

On Hacker News

Linked by 1 identifiable commenter in 1 comment across 1 thread, from Dec 2019 to Dec 2019.

Comments linking this paper, per year.

Discussed in comments1 thread

    • The "security" of this device is a joke, just look at how randomness is derived: unsigned int analog1 = analogRead(ANALOGPIN1); RNG.stir((uint8_t *)analog1, sizeof(analog1), sizeof(analog1)*2); unsigned int analog2 = analogRead(ANALOGPIN2); RNG.stir((uint8_t *)analog2…

      TharreView on HNParent context

Submitted to Hacker News

Connected through shared HN threads, not inferred similarity or a recommendation.