Skip to main content

Posts

Showing posts with the label Random Numbers

Simple RdRand base random number generator library

RDRAND is an instruction to return random number from new Intel CPUs. This is NIST SP 800-90A compliant random number generator and now this instruction is a part of IA-32/IA-64 instruction sets. RdRand instruction is available from 3 rd generation Intel Core i5 and Core i7 processors. RdRandLib is lightweight DLL to generate random numbers based on RdRand instruction. This library contain signal function to generate one or many random numbers and sample codes are available for C/C++, Delphi, Lazarus and C# languages.  RdRandLib source codes and sample codes are available at http://github.com/dilshan/rdrandlib . Compiled version of DLL is available at http://github.com/dilshan/rdrandlib/releases page.

USB Random Number Generator

This project is about USB port base true hardware random number generator and it is design around the avalanche noise which occurred in reversed biased P-N junction. This random number generator is design using commonly available electronic components. The core component of this system is Microchip’s PIC18F2550 microcontroller. The noise source is 2N3904 (Q1) transistor and LM386 low voltage power amplifier is used to amplify the incoming noise signals. This peripheral is design to work as a self-powered USB HID device. Cumulative distribution graph of random number sample In this design we use 2N3904 as a noise source because it give more noise amplitude than any another transistors which we tested. Theoretically this transistor (Q1) can be replaced with any other suitable NPN transistor like BC548, BC107, 2SC945, etc. The control software of this system is available for Linux and it’s compiled as x86 - 32bit binary file. This controller application required libusb driver ...