feature article
Subscribe Now

Finding Meaning in Randomness

New Research Uncovers a Way to Generate High-Quality Random Numbers

“Anyone who attempts to generate random numbers by deterministic means is, of course, living in a state of sin.” – John von Neumann

Two days of the week are named after celestial bodies (the sun and moon), another four are named after Norse gods (Tyr, Odin, Thor, and Freida), and one after a Roman god (Saturn). What’s up with that?

Four consecutive months on the calendar have numeric names in Latin (septem, octo, novem, and decem) – but they’re wrong. September is the ninth month, not the seventh, December is twelfth, not tenth, and so on. Two other months are named after emperors (Julius and Augustus), and four others after Roman gods (Janus, Mars, Maia, and Juno). That leaves two, which aren’t named after anything, really.

Who’s in charge here?

Maybe it just seems peculiar to English-speakers. Surely other languages and cultures have more rational systems? No, not really. In Japanese, the days are named for the ancient elements of fire, water, earth, etc.  – except for Sunday and Monday. In German, the names of the weeks are just as arbitrary, except that Tuesday, Wednesday and Thursday translate literally as “service day, mid-week, and thunder day.” Oh, dear. Thor was the god of thunder, so at least that one is consistent with the English translation, if equally nonsensical.

After the French Revolution, the revolutionaries tried to rationalize their calendar, decreeing a kind of metric system for dates, with 12 equal months of three 10-day weeks. Very sensible. It lasted about a dozen years.

In the United States, Daylight Saving Time is now observed for more than six months out of the year, which means offsetting time by an hour is now the rule, rather than the exception. Except in areas where it’s not observed at all. (Each state sets its own rules. How mediaeval.)

In most of the world, QWERTY keyboards are the norm, even in countries where English isn’t the primary language (where you’ll see things like AZERTY keyboards). And the QWERTY layout was designed specifically to be inefficient. Almost any alternative would be better from an ergonomic point of view. And yet it persists.

Early automobiles didn’t have steering wheels or foot pedals. Those didn’t arrive until much later, gradually becoming the norm as automakers experimented with a variety of other random control methods. Today’s standardized wheel-and-pedals UI emerged more or less by chance.

Twitter is limited to 140 characters. Why 140? Who knows, but whatever limit it imposed, we’d always ask, “Why that number in particular?” Some things are just random. They happen, and our brains are trained to look for patterns, explanations, or causal effects. Sometimes there aren’t easy patterns, causes, or explanations, as much as we may struggle to find one.

Leveraging that randomness and lack of causality for the forces of good are two researchers at the University of Texas at Austin, who think they’ve discovered a new way to generate random numbers. True randomness has always been difficult to create with computers or electronic circuits, which are by nature manmade and predictable. The usual trick is to inject some piece of randomness from the real world, such as measurements of air temperature, decay of a radioactive isotope, or the nth decimal place on an atomic clock.

To the average observer, these are random measurements, making them good seeds for a random-number generator. But to a purist, they’re not random enough. The exact air temperature may be unpredictable at any given moment, but it’s going to be close to the air temperature taken a few minutes ago, or a few minutes from now. Sampling the stock price of a random company on a random date also seems random, but stock prices follow a rise/fall pattern that’s not completely random (much as it may seem so to the luckless investor).

Simply stated, the UT/A researchers combined two random and unrelated samples to create a super-random seed. While that seems like a pretty straightforward concept – heck, why not just gather three samples while you’re at it? – it’s the mathematics of combining the two samples that’s the real breakthrough. Lead researcher Zuckerman says he’s spent more than 20 years trying to solve this exact problem.

It’s fairly easy to find a source of randomness to seed a random number generator (RNG). But because the quality of the RNG’s output relies so heavily on its input, there’s a tricky balance between “true” randomness and cost-effectiveness. Truly random sources of input are both expensive and difficult to locate. Your average 50-cent microcontroller isn’t going to contain a cesium clock just for purposes of sampling its decay characteristics. So, instead, we rely on “weakly random” sources that are good enough, for the most part.

Zuckerman and coauthor Chattopadhyay still use commonly availably “weakly random” sources, but they combine two different ones in such a way that the result is far more random than either would be by itself. It’s like combining two base metals and creating RNG gold.

Best of all, Zuckerman and Chattopadhyay say that, although the mathematics involved in combining the two samples is complex, it’s relatively easy to implement in hardware or software. Much easier than previous methods, they say. That’s good news for chipmakers and for developers creating their own RNG hardware or software. The combination of two middling-quality seeds along with the new algorithm should create a very high-quality RNG for less money than the alternatives.

It’s not that high-quality random numbers were impossible to generate before. It’s that they were either too expensive or too resource-hungry, or both. The UT/A paper should show the way to a lower-cost method of achieving higher quality results, with implications for security and cryptography, or almost anything else these days.

Now, if only we could discover a few sources of random behavior. I’ll have to mark that on my calendar…

Leave a Reply

featured blogs
Aug 13, 2020
My first computer put out a crazy 33 MHz of processing power from the 486 CPU. That was on “Turbo Mode” of course, and when it was turned off we were left with 16 MHz. Insert frowny face. Maybe you are too young to remember a turbo button, but if you aren’t ...
Aug 13, 2020
Hi readers! Welcome to Veri-Fire, a blog series that helps you deep dive into Virtuoso® ADE Verifier and learn about its various whys and hows. In this series, Walter Hartong, a Product... [[ Click on the title to access the full blog on the Cadence Community site. ]]...
Aug 13, 2020
Imagine ambling into a small town, heading to the nearest public house to blow the froth off a few cold beers, and hearing your AI whisper '€œ...'€...
Aug 7, 2020
[From the last episode: We looked at activation and what they'€™re for.] We'€™ve talked about the structure of machine-learning (ML) models and much of the hardware and math needed to do ML work. But there are some practical considerations that mean we may not directly us...

Featured Video

Product Update: New DesignWare USB4 IP Solution

Sponsored by Synopsys

Are you ready for USB4? Join Gervais Fong and Eric Huang to learn more about this new 40Gbps standard and Synopsys DesignWare IP that helps bring your USB4-enabled SoC to market faster.

Click here for more information about DesignWare USB4 IP

Featured Paper

Computational Software: 4 Ways It is Transforming System Design & Hardware Design

Sponsored by BestTech Views

Cadence President Anirudh Devgan shares his detailed insights on Computational Software. Anirudh provides a clear definition of computational software, and four specific ways computational software is transforming system design & hardware design -- including highly distributed compute, reduced memory footprints, co-optimization, and machine learning applications.

Click here for the white paper.

Featured Chalk Talk

LPC5500 MCU Series

Sponsored by Mouser Electronics and NXP

Security is key in today’s edge designs, but where to start with designing-in security? Ad-hoc security strategies are recipes for disaster. In this episode of Chalk Talk, Amelia Dalton chats with Brendon Slade of NXP about the powerful new LPC5500 series of MCUs from NXP that have great performance and security designed in from the ground up.

Click here for more information about NXP Semiconductors LPC5500 Series Arm® Cortex®-M33 Microcontrollers