0
\$\begingroup\$

I have an idea. Lets say we have an unpowered TTL set-reset flip flop with both inputs tied to 5v(logic high). When we apply power to the flip flop, it goes into a quiescent state, so there is no telling what the output would be. Basically, we have a one bit random number generator.

Now for my question. Modern processors and microcontrollers have the ability to generate pseudo-random numbers. Of course, these aren't truly random. But if my flip flop scenario generates true-random numbers, then why don't designers use this concept, but with more flip flops?

\$\endgroup\$
5
\$\begingroup\$

They don't use that concept because, unfortunately, it doesn't work-- the start-up state of a FF won't be very random at all.

Quoting from "Cryptographic Hardware and Embedded Systems -- CHES 2003: 5th International Workshop Volume 5"

enter image description here

Making a truly random number generator is not easy.

| improve this answer | |
\$\endgroup\$
1
\$\begingroup\$

This problem has already been solved. Thermal radiation is not perfectly uniform, and fluctuates rapidly at extremely small scales. Sample a space with enough precision and you have your RNG: http://www.newscientist.com/article/dn6289-prize-draw-uses-heat-for-random-numbers.html

Intel beat you too it buddy. Hope you didn't pay the patent fee already... :P

| improve this answer | |
\$\endgroup\$
  • \$\begingroup\$ Darn it, Intel! Wait, my idea uses very little heat, and can fit a several thousand bit generator on a piece of silicon the size of my pinkie nail. And no, I didn't pay for a patent, and thank goodness I didn't. \$\endgroup\$ – Jaca Sep 30 '14 at 4:37
  • \$\begingroup\$ Their version uses the natural heat generated by the electrons. It doesn't require extra heat. Unfortunately, when it comes to the size of manufacture, so can they, they already made the chip. ::shrug:: Yours may still have applications (maybe it would be a cheaply manufactured version?), but they have definitely got a working unit and have a nice headstart. \$\endgroup\$ – SmugDoodleBug Sep 30 '14 at 4:41
0
\$\begingroup\$

As others have stated: the behaviour of the FF after power up is not random at all.

The behaviour is neither completely determinstic (considering the factors you have under control), but being not completely deterministic doesn't mean it can be used as a good random generator.

In this context a story concerning the state of FFs after power off:
I remember a case were I was looking for a way to detect whether the most recent reset of a microcontroller was a warm reset (i.e. w/o power cycle) or cold reset (with power cycle). A working solution was to check whether a 32-bit memory variable contained a distinct constant value (warm reset) or not (cold reset). The distinct constant value was initialized after reset after the check.
The microcontroller manufacturer, however, was not willing to guarantee any value of probability that those 32 bits of memory do not retain the value even after complete power off.

| improve this answer | |
\$\endgroup\$
  • \$\begingroup\$ I wonder if any manufacturers put a register on their chips that is guaranteed to power up in a deterministic state, but can be written with and hold a different state for this purpose? Actually, many processors contain a lot of peripherals where their configuration registers state 'defaults to 0 on power-up'. All that would be needed is a spec of how low the rail must drop to guarantee being interpretted as 'power-up'. \$\endgroup\$ – Neil_UK Jun 17 '17 at 8:40

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.