random number generator - How can I know whether my machine have RNG hardware support?

06
2014-04
  • allan ruin

    I came across a blog concerning entropy pool problem and learn that there are a special hardware called RNG. I have read this kernel RNG page but I still wonder whether there is a way to find out if my server support hardware RNG or not.

  • Answers
  • mr.spuratic

    There are two likely types of "real" hardware RNG: a CPU based one, and a chipset or PCI based one. (There are also a few USB hardware RNGs, but I suspect you'd have noticed one of those ;-)

    The following is Linux specific.

    For CPU based ones, you can check /proc/cpuinfo for clues, assuming your kernel is new enough to detect them. For Intel CPUs the flag is rdrand, more info here: http://unix.stackexchange.com/questions/43539/what-do-the-flags-in-proc-cpuinfo-mean

    For chipset ones, if you have CONFIG_HW_RANDOM enabled in your kernel and the per-vendor support CONFIG_HW_RANDOM_INTEL ..._AMD etc. then your boot messages should indicate if any were found (e.g. "Intel 82802 RNG detected"). If they are present as modules you can try (modprobe intel-rng) to see if it loads, "No such device" indicates no detected hardware. Not all drivers consistently print "RNG detected" or "not detected", so you may end up reading the sources (/drivers/char/hw_random/ directory of the kernel source).

    For others, you can check lspci -v to see what's recognised.


  • Related Question

    How can I find out whether my Windows is 32bit or 64 bit?
  • Am1rr3zA

    How can I find out whether my install of Windows (specifically XP and Vista) is either 32 or 64 bit?

    Additionally, how can I find out if my hardware will support a 64 bit operating system?


  • Related Answers
  • David Pearce

    Windows Vista

    If you have Windows Vista, there are two methods to determine whether you are running a 32-bit or a 64-bit version. If one does not work, try the other.

    Method 1: View System window in Control Panel

    1. Click Start Collapse this imageExpand this image Start button , type system in the Start Search box, and then click system in the Programs list.
    2. The operating system is displayed as follows:
      • For a 64-bit version operating system: 64-bit Operating System appears for the System type under System.
      • For a 32-bit version operating system: 32-bit Operating System appears for the System type under System.

    Method 2: View System Information window

    1. Click Start Collapse this imageExpand this image Start button , type system in the Start Search box, and then click System Information in the Programs list.
    2. When System Summary is selected in the navigation pane, the operating system is displayed as follows:
      • For a 64-bit version operating system: x64-based PC appears for the System type under Item.
      • For a 32-bit version operating system: x86-based PC appears for the System type under Item.

    Windows XP

    If you have Windows XP, there are two methods to determine whether you are running a 32-bit or a 64-bit version.

    Method 1: System Manager

    1. Click Start, and then click Run.
    2. Type sysdm.cpl, and then click OK.
    3. Click the General tab. The operating system is displayed as follows:
      • For a 64-bit version operating system: Windows XP Professional x64 Edition Version < Year> appears under System.
      • For a 32-bit version operating system: Windows XP Professional Version appears under System. Note is a placeholder for a year.

    Method 2: View System Information window

    1. Click Start, and then click Run.
    2. Type winmsd.exe, and then click OK.
    3. When System Summary is selected in the navigation pane, locate Processor under Item in the details pane. Note the value.
      • If the value that corresponds to Processor starts with x86, the computer is running a 32-bit version of Windows.
      • If the value that corresponds to Processor starts with ia64 or AMD64, the computer is running a 64-bit version of Windows.

    As for hardware question, what hardware are you running?

  • 8088

    Quick way to determine if your copy of Windows is 64-bit:

    • Press Windows-Break key combination
    • Look for x64 in the System Properties

    enter image description here

    Vista:

    • Press Windows-Break key combination
    • Look for System Type

    enter image description here

    How to tell if your processor supports 64-bit extensions from looking at the part:

    • AMD: Any AMD K8 or newer based part is 64-bit unless sold as 32-bit only. This includes Athlon 64 or Opteron, and all the Athlon X2's and higher are 64-bit and some Semperons
    • Intel: I actually don't know how to determine it is 64-bit other than looking for EM64T designation for the part. Maybe somebody else can have a better answer here.

    If you are running the part, just run CPU-Z on it.

    Motherboard:

    • It just has to support a processor that is 64-bit.
  • 8088

    msinfo32

    Start -> Run -> msinfo32

    Both OS type and system type have been highlighted:

    enter image description here

  • bk1e

    Open a command prompt and type set proc.

    • If the output includes PROCESSOR_ARCHITECTURE=AMD64, you're using 64-bit Windows.
    • If the output includes PROCESSOR_ARCHITECTURE=x86, you're using 32-bit Windows. However, if the output also includes PROCESSOR_ARCHITEW6432=AMD64, this means that you're running a 32-bit command interpreter on 64-bit Windows.
  • 8088

    If you mean physically have 64 bit, most modern computers do - check either Intel or AMD for your CPU.


    If you mean software -

    For Windows XP, Vista and 7, the easiest and by far the fastest way is simply to open your C (or alternate root) drive and see if you have both a "Program Files" directory and a "Program Files (x86)" Directory.

    If you do, you are running 64 bit, if you only see "Program Files" you are running 32 bit.

    alt text


    An even quicker way is to press Windows Key+Pause/Break and it should bring up System Information. Just read under "System Type" and you should see (in Windows Vista & 7 "64-bit Operating System" (safe bet you would see 32 bit under Windows, but never run it!)

    enter image description here

    (In Windows Vista and 7)

    For XP, I think you just see x64 if 64 bit, and nothing for 32 bit systems.

  • Stevoni

    If you're stuck in a computer lab that has everything locked down for "security" reasons (like those at my university), you can still run CMD and type in SystemInfo.

    Once that's completed running, scroll to the top of the list and locate "System Type:". I can't remember what it says on a 64 bit OS, but a 32 bit says "x86-based PC". That being said, a 64 bit OS will probably say "x64-based PC".

  • Álvaro G. Vicario

    You can also run winver: just hit Win+R and type it.