Short: AHIRNG - Random Number Generator via AHI Author: Rupert Hausberger Uploader: Rupert Hausberger Type: util/misc Version: 1.2 Architecture: ppc-morphos Description =========== AHIRNG (Audio Hardware Interface Random Number Generator) is a tool to generate REAL random number from a soundcard. Requirements ============ - MorphOS 1.x - NList classes - AHI 4.x - 44khz/16bit soundcard - Analoge noise source Installation ============ Installation is very simple. Just drag the AHIRNG-drawer where you like, it does not need assigns. Usage ===== Connect your Pegasos-onboard/Soundcard line-in to a analoge radio/SAT receiver. Remove the areal from the receiver so you only hear the pink-noise. This is our source for the random numbers. Now start the tool and press 'Monitor'. Adjust the input-gain to about ~90%. Watch the gauges, they should be around ~(+-)25.000 to (+-)30.000. Now select the output file, press 'Record' and see the random bytes comming... If the needed amount of random-bytes has been recorded press 'Stop'. Now press "Analyse output file" to check the quality. Quality should be at least 'High' in all five tests for randomness... Technical --------- Sampling is done at 44khz in 16bit. This means we got a raw-stream of 44000 * 2 * 2 bytes/s (44000hz * 2 bytes (16bits) * 2 channels) = 176.000 bytes/s Next step is to convert this stream into quality random numbers. This is done with the following function: for (i = 0; i < 44000; i++) //for every second { UWORD l = ((((ULONG *)rawdata)[i] >> 16) & 0xffff); //extract left channel UWORD r = (((ULONG *)rawdata)[43999 - i] & 0xffff); //extract right channel and invert rnddata[i] = (l - r) & 0xff; //substract the inverted left channel from the right } ToolTypes --------- TOOLPRI/K/N - Set to toolpri from -127 to 127, defaults to 0 Author ====== ©2005-2012 Rupert Hausberger http://natmeg.mooo.com/ Copyrights ========== NList : ©2001-2012 NList Open Source Team http://www.sourceforge.net/projects/nlist-classes/ License ======= GPL. Please refer to the file COPYING for details. History ======= Please refer to the file ChangeLog for details.