Intel RNGIntroduction
Random Number Generators (RNGs) are an essential building block for
many protocols and cryptographic algorithms. While Eastlake et al. [1]
are discussing different ways of implementing Pseudo Random Number
Generators, I got interested in the hardware based RNGs. This short
article documents my activities in purchasing & setting up such
a system and is hopefully of help to others interested in the
same.
NO WARRANTY - Please notice, that this text comes without any warranty. Using the information in this text or referred articles is at your own risk! Buying hardware
Of course the first step is to decide about which hardware to choose.
The OpenBSD homepage for instance provides a list of supported
cryptographic hardware [2]. Beside others it lists the Intel 82802AB
firmware hub that gets further discussed in the following white paper
[3]. According to the authors, the Intel chip provides more then 75
Kbit/sec of random data. It got build into i386 based PCs and gets
supported by different operating systems [4]. So I decided to buy
such a system (motherboard plus CPU) via eBay.
Stacy L. Millions - the author of the FreeBSD driver - mentioned at his homepage [5], that he got it to work with an Asus CUSL2 board. As it was reported to be tricky to know for shure if one has this RNG in his system [4], I decided to be on the save side and looked for this Asus board as well (it was also one of the most popular 370 socket based boards at eBay). I bought an Asus CUSL2-C (revision 1.02) which is - according to - Asus an extended version of the CUSL2 with Intel's 815EP chipset. Telling from the data sheet, it is supposed to come with the Intel 82802AB firware hub (FWH), but instead turned out to come with an alternative chip from SST. figure 1: The alternative SST chip on the left and the Intel firmware hub (containing the hardware RNG) on the right Reselling the board I started a survey under the eBay sellers and asked those who was offering a board with potential for naming me the writings on the chip on their board. The combinations I got involved with was:
I got the Dell board and now finally had the chip I was looking for. The Internet has some remarks that this board got manufactured for Dell by Intel (with some Dell specific adjustments), but I didn't find a final proof for that. Hard- and Software setup
Assembling the system and powering it on for the first time (the
pin layout of the front panel switch/LED connector is described
in [6]), one will find, that the board has a standard ATX power
connector but the pin wiring is different. This is a known problem,
and [7] is providing an execellent description on how modify an
ATX cable extender to act as an adaptor.
figure 2: The custom made ATX power plug to dell motherboard adapter On the software side, I decided to choose FreeBSD (version 4.10 RELEASE) as operating system, as the driver implementation [5] provides the /dev/rng device for reading straight from the RNG. In addition it also feeds random data into the entropy pool for the /dev/urandom device. <to be continued/> References
|
||||||||||||||||||||||||||||||||||||||