[onerng talk] RNG designs

Paul Campbell paul at taniwha.com
Fri Jan 31 01:17:55 GMT 2014


On Fri, 31 Jan 2014 13:57:10 Jim Cheetham wrote:
> Ian has just posted a good description of some of the issues in RNG design
> on his blog ... https://financialcryptography.com/mt/archives/001471.html
> 
> I need to start producing documentation for our current design (also I guess
> a high-level roadmap of what the different design versions mean) that fits
> in with this sort of view - Ian's initial advice was to just build a
> collector (i.e. expose the noise) but Paul's hardware has the AES
> functionality to act as an expander too ... should I be using those terms,
> I wonder?

I've been moving away from using the AES hardware, largely because one should 
be suspicious of  something you can't easily 'prove' correct (I think I can 
write a prover for the CRC16 hardware).

Using AES for encrypting data moving over the USB is a different matter - I can 
see it's doable, a good  key exchange may be difficult for this tiny CPU.

I don't really see that writing 'expanders' are our pervue - as far as I'm 
concerned that's the kernel's job (or software downstream from that).

As far as mixers are concerned my current firmware as written produces data in 
a number of ways, you optionally get one of these:

1) a stream of bytes from the avalanche diode
2) a stream of bytes from the rf signal LSB
3) a stream of the above interleaved

In addition we provide an optional subsequent stage where the data is fed into 
a CRC16 box and then a byte is retrieved - that 'smears' the stream a bit 
mixing the 2 random streams and also balances the 1s vs 0s which doesn't 
change the amount of entropy we're generating but does help deal with things 
like drng which expect their entropy sources to meet particular rules. 

In this taxonomy this last stage is a mixer as is 3) above - however we expect 
the kernel mixer to use our data to stir its pool

	Paul 


More information about the Discuss mailing list