Slashdot Mirror


VIA C3 Random Number Generator Reviewed

An anonymous reader writes "VIA has added a hardware random number generator to its Nehemiah C3 CPU. I found a recent review of its security. Interesting how it's done at the instruction level as opposed to the chipset level used by the i810 RNG (also reviewed there)."

22 of 289 comments (clear)

  1. News Release by Anonymous Coward · · Score: 5, Informative

    VIA Launches Seventh Generation 'Nehemiah' CPU Core, the First x86 Processor to Market with Embedded Security Features

    Combining an integrated PadLock(TM) Data Encryption Engine with a wealth of enhanced performance features, the new generation VIA C3(TM) provides the lowest power native x86 platform for the fast-growing market of connected PCs and home entertainment centers

    Taipei, Taiwan, 22 January 2003 - VIA Technologies, Inc., a leading innovator and developer of silicon chip technologies and PC platform solutions, today announced its new generation VIA C3(TM) processor integrating the 'Nehemiah' core. With its powerful PadLock(TM) Data Encryption Engine, this next generation VIA C3 is the first native x86 processor on the market with embedded security features that enhance the protection of sensitive corporate and personal data.

    Available now at a speed of 1GHz, the new processor core is based on an advanced new CoolStream(TM) processor architecture that delivers all the necessary performance for running even the most demanding digital media applications while maintaining ultra low levels of power consumption and heat dissipation.

    "The launch of the seventh generation VIA C3 processor extends our leadership in enabling the development of secure, quiet-running small form factor system designs for a rapidly growing number of exciting new lifestyle and productivity applications such as home digital media entertainment and connected computing," commented Paul Hsu, Executive Assistant to the President and Head of VIA's CPU Business Unit. "Integration of embedded security features in the processor provides the most robust and cost-effective solution for addressing the increased demands among individuals, businesses, and government organizations for enhanced authentication and protection of their data in today's connected world."

    PadLock(TM) Data Encryption Engine
    The PadLock Data Encryption Engine has been integrated into the new generation VIA C3 processor to ensure greater confidentiality, integrity, and authenticity of electronic data either stored in the computer or transmitted over a network or the Internet, and enables a host of powerful new security applications, including heavy-duty data encryption and safer online transactions.

    At its heart is an advanced Random Number Generator (RNG) that uses random electrical noise on the chip to securely produce random number values, and features a direct application level interface through a new x86 instruction. Developers can obtain random numbers directly from the hardware without having to use separate software drivers, thereby providing an inherently more secure and efficient solution than combined hardware/software RNG architectures. The RNG includes several operating modes, offering performance from 750K bits per second to as high as 6 million bits per second.

    "VIA's incorporation of a hardware random number source on the processor die is exciting for developers, since it provides a simple and effective way of obtaining high quality randomness. This is particularly important for security and cryptography applications, since it is notoriously difficult to generate random numbers of adequate quality without a hardware random number generator," said Paul Kocher, President of Cryptography Research, Inc. and co-inventor of SSL 3.0. "I am enthusiastic about the benefit to applications such as secure web browsing, cryptographic key generation, and protocols where randomness is required."

    CoolStream(TM) Architecture
    Based on the advanced CoolStream architecture, the new generation VIA C3 processor has a highly efficient design that, when coupled with the VIA Apollo CLE266 chipset, delivers performance increases of up to 20% over the current version of the VIA C3 processor in mainstream productivity applications and up to 73% for 3D graphics applications, while continuing to deliver the same benefits of low power and minimal heat dissipation.

    New performanc

  2. Testing bittorrent by Pathwalker · · Score: 2, Informative

    I'm playing around with bittorrent.

    As a test, I put the PDF file of the review of the hardware RNG up here (The summary is here).

    If you have bittorrent installed, feel free to try to download from me.

  3. Re:Artificial Intelligence vs Artificial Stupidity by ddd2k · · Score: 2, Informative

    Aye, but nothing can be truly random
    Actually, if Heisenburg theory of uncertainty holds true, which is supported by the unexplainable phenomena of singluar photon diffraction, random numbers are totally possible at the sub-atomic level and are not difficult to manipulate. This article hardly touches on how the numbers are generated, which lends me to question how valid this technology actually is.

  4. Truly Random Numbers by polv0 · · Score: 5, Informative

    The ideal source for random numbers has always been physical sources, such as the white noise you see on your television screen when tuned to an unused channel. The noise is generated by remnants from the big bang, and is cryptographically unusable (since the numbers are recordable by anyone). But is a good test for statistical algorithms such as evolutionary computation (which depend on randomn initial states).

    The idea of using electrical currents secured on a chip is much sounder - since the noise is locally generated and very difficult to tap. I project that as quantum mechanics become more mainstream, the random quantum effects of electrons will be tapped to generate even sounder and accessible random signals.

    1. Re:Truly Random Numbers by John+Miles · · Score: 5, Informative

      The noise is generated by remnants from the big bang

      A myth, for the most part. It's generated primarily in the front-end amplifier of the TV tuner by virtue of the fact that its temperature is above absolute zero.

      All dissipative (resistive) elements, whether active or passive, generate thermal, or Johnson, noise. The noise power is expressed in watts as
      Pn=KTB, where K = the Boltzman constant, T is the temperature in degrees Kelvin, and B is the bandwidth you're looking at. TV signals occupy several megahertz' worth of bandwidth, so even the smallest amount of noise in the front end will dominate the noise from atmospheric and celestial sources.

      You can prove this by disconnecting the antenna. Even if you short the TV's antenna terminals with a paper clip, neither the audio nor the video noise will change much.

      --
      Dahlmann tightly grips the knife, which he may have no idea how to use, and steps out into the plain.
  5. Re:Cool but... by Anonymous Coward · · Score: 1, Informative

    That laptop was running the old (Ezra-T) core with a half-speed FPU. This is the new (Nehemiah) core that has full-speed floating point. It's yummy :-)

  6. Re:Imagine a Beowulf cluster of these... by cpeterso · · Score: 2, Informative


    or imagine a giant P2P random number generator, something like Linux's entropy pool, but across many nodes. The problem with this is that you cannot trust external sources for input, but perhaps you could "cross the streams" and safely mix them?

    It reminds me of Random.org, a web site/service that generates random numbers for you. I think they even sell CDs of random numbers.

    1. Random numbers
    2. ???
    3. Profit!!!

  7. finite state machine by shird · · Score: 3, Informative

    This is awesome, but I feel it kind of skews one of the great things about CPUs. Presently, the same piece of code, run a million times, will always produce the same outcome, and follow the same path of execution (providing it accesses no hardware - ie, no io instructions). With the addition of this instruction, you no longer have this fixed execution path.

    Still, with IO this 'problem' exists anyway (although only at ring 0 -intel). It just makes it difficult for heuristic anti-virus progams, and debugging etc, when the path of execution can be arbitrary. Nonetheless, I think its a cool concept, and great its being done at ring 3.

    --
    I.O.U One Sig.
  8. Re:Cant the randomness be predicted? by plover · · Score: 5, Informative
    The input is not supposed to be determined by the current state of the processor (insert obligatory Knuth state-of-sin joke here.) Their design consists of a set of freewheeling* oscillators: a ~600MHz oscillator that is then further "jittered" by a ~450MHz and an ~810MHz oscillator, sampled by a much slower ~30MHz oscillator. Their engineers assume that manufacturing variances, temperature, current processor state and other external factors will all contribute to this jittery response.

    * Freewheeling means that these oscillators are not tied to a crystal, and the frequency they oscillate at is not precisely locked at any exact rate (as would be the case if it employed a crystal.) These minute variations in frequency are the source of entropy the chip designers are actually gathering.

    The sampled bits are then "whitened" to reduce biases, and the whitened bits are stored in a FIFO queue until used.

    The paper in the article explains all this, and it talks about a couple of other cool cryptogeek features. You can change the bias voltage via CPU instruction (which would affect the jitter,) but each request of "randomness" comes with a pedigree indicating what bias settings were used! Finally, Cryptography Research's testing showed that they believe the chip (with whitening enabled) is capable of generating bits with an entropy of 0.99 bits/output bit, although they recommend trusting only a conservative entropy factor of about 0.75 bits/output bit. And since it generates bits at a rate of 30-50 million bits per second, most applications can probably afford to throw away a few in the name of entropy.

    --
    John
  9. Re:A Better System by Christopher+Thomas · · Score: 4, Informative

    A better system would be to use radioactive decay to generate random numbers. Very easy to implement using existeng technology, one of the few things that is completely random

    Your proposed method would be slightly skewed, as the half-life of the material would give you an "expected" number of events in your sampling period, which would cause the result to lean towards either even or odd. The effect would be small, but present.

    An alternative approach is to have two detectors, and see which one triggers first. While that method would have no systemic bias, removing intrinsic bias from differences in the samples would be difficult.

    The system in the new C3 chip, though, is also completely random if they designed it well (i.e. amplified thermal noise and rejected other noise sources). You have biasing problems, as with any other system where matching is important, but these can be overcome. Noise injection from other parts of the system is the thing to watch out for here.

    In summary, purely electrical random number generators can be just as random as your proposed scheme, and your proposed scheme is not significantly easier to implement.

  10. Take a look a HotBits by Styx · · Score: 3, Informative

    John Walker, the founder of Autodesk, has made a system like that, from which offers random bits:

    HotBits
    --
    /Styx
  11. External hardware RNG by starman97 · · Score: 2, Informative

    Atom-Age made a hardware box that produced 64K of random numbers with
    every character entered in the serial port. They spent a lot of time
    isolating each stage to ensure no noise got to the thermal noise
    generator /amplifier. There was no whitening or other tricks played
    to make the numbers 'more random' There were 3 sets of batteries,
    a 9V for the noise source, C Cells for the microprocessor, and D cells
    to run the serial interface. The whole thing was encased in a steel box
    with sheilding around the connector and indicator lights. Analysis of
    the numbers showed very good randomness.

    Unfortunatly at $200 it never really sold well.
    They did release the code in the processor for inspection,
    I'm not sure about the schematics, probably not.

    --
    Starman97@Gmail.com (bring it on spammers)
  12. A Cheaper System by plover · · Score: 3, Informative
    They're probably using electrical noise for both performance and cost reasons. The rate of decay of a safe amount of radioactive sample is quite slow compared to the amount of entropy you might be able to derive from it. (If the sample were decaying at the rate you suggest in your posting, you'd probably want to be wearing a lead codpiece if you were to sit in front of it. :-)

    This VIA chip is producing 30-50 million bits per second.

    Also, each radiological decay event would have more potential to cause bit rot in your normal CPU, memory or other chipset's operations.

    John Walker is already doing exactly this, producing random bits with a system he calls HotBits. Take a look at this page for his system and a good explanation. Of course I also think it may help to live in a castle with a 1-meter-thick-concrete-lined cistern located three-basement-levels-down to stick your Krypton-85 source in...

    And while using nuclear decay would raise the geek factor so high as to be measurable on a geiger counter, the manufacturing and disposal licensing and other handling problems that would accompany any usage of nuclear materials would be more than onerous for any company that had an economical alternative.

    --
    John
  13. Re:Artificial Intelligence vs Artificial Stupidity by moonbender · · Score: 2, Informative

    The guy's name is Heisenberg. Sorry for nitpicking, but three posts in a row mispelling his name is a bit too much. The school I went to was named after him, incidently.

    --
    Switch back to Slashdot's D1 system.
  14. Re:A Better System by Anonymous Coward · · Score: 1, Informative

    Along similar lines, a system using visual noise rather than radioactive...

  15. USELESS by Anonymous Coward · · Score: 1, Informative

    It's too bad that, outside of a few people in the scientific community (such as those running Monte Carlo simulations and statistical thermodynamics calculations), no one uses random number generators (RNGs).

    And the worst thing is, the aforementioned people who do use RNGs undoubtedly will want to run their own generator that is most likely superior.

    For example, I run Monte Carlo simulations of polymer networks. The algorithm I use is the Mersenne Twister algorithm, which has an enormous period of 2^19937 - 1. This is much superior to VIA's built in RNG, and much faster than the standard rand() function in C.

    So I'm sorry, but I fail to see the utility of VIA's RNG. It's a cool little toy, and I'm sure it's going to get VIA some publicity, but I'm betting that it will be a hard sell to most people.

    1. Re:USELESS by viega · · Score: 4, Informative

      Is this a troll? Nevertheless, it is stupid, for a few reasons: 1) The Mersenne Twister is not cryptographically secure. 2) Even if it were, it would still need to be seeded with entropy, such as the kind provided by the VIA generator. 3) There's a big difference between entropy and pseudo-random numbers, anyway. 4) Entropy is crucial in many security-related applications. Of course, given sufficient entropy, you can stretch it out with a good cryptographic PRNG.

  16. Re:Obligatory Dilbert Quote by ottffssent · · Score: 2, Informative

    You *can* be sure whether it's random or not. "999" is not random. It may very well be randomly-generated, but that's not the same thing at all.

    Of course, it's not that simple either:

    If I have a RNG that spits a long string of the same number. Is the string random? Well, not really. So I take the string, and make sure it has the same number of each digit in it. But 1111222233334444 isn't random either, so now I make sure the same number of each pair occurs, so we've got as many 12s as we have 21s. 1234321234321234 still isn't random, so we check 3-digit sets. And at the end, I'm left with a string that is random, right? Well, it has known properties, namely that it has the same number of each digit (+-1), the same number of each pair, etc. So that's not random. But what about the original string of 8s? That's clearly not random. So what to do?

  17. You are an ingnorant, pompous fuckrod by Anonymous Coward · · Score: 1, Informative

    And you are wrong. Uncertainty principle holds with just a single particle. You clearly have no idea what you are talking about. If you know the position 100% accurately, you don't know the speed, and vice versa. This is a simple, provable, and unescapable rule of the universe.

  18. Re:Obligatory Dilbert Quote by trezor · · Score: 3, Informative

    In norwegian the strip is located in my Dilbert-archive.

    Ofcourse I got an English archive as well, for you Dilbert fans out there!

    --
    Not Buzzword 2.0 compliant. Please speak english.
  19. Re:Where does noise come from? by Anonymous Coward · · Score: 2, Informative

    Because of quantum uncertainty. If there had been no quantum uncertainty then after the big bang every particle would have had perfectly equal forces on it and thus the Universe would have settled into a perfectly homogenous soup (or maybe a big symmetric crystal), quantum uncertainty caused minute vartiations in density, forces etc, which allowed clumps to form and hence stars, planets and everything else.

  20. Why shouldn't there be noise? by Kalani · · Score: 2, Informative

    Consider a deterministic pseudorandom number generator that's highly sensitive to its initial conditions. Maybe that's the universe and we don't know it because we can't determine the initial conditions with absolute certainty nor can we even determine its current state with sufficient accuracy.

    What if space and time are discrete (Ed Fredkin and so on)? Of course, space couldn't be a rigidly even lattice (it could be a network of loosely connected nodes), but in this sense you have a rigorous foundation for modelling the evolution of the universe from one state to the next ... a computational process that defines how the universe operates. This process is only (universally) taking us toward increasing entropy, so it's a randomizing process by nature. Really I think that order is the oddity ... not randomness.

    --
    ___
    The ends are ape-chosen, only the means are man's. -- Aldous Huxley