[Cryptech Tech] Noise board on Novena

Joachim Strömbergson joachim at secworks.se
Fri Sep 19 07:04:13 UTC 2014


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Aloha!

Fredrik Thulin wrote:
> Personally I _very much_ welcome experimentation with other sources.
> 
> In my mind, the HSM we build will support third party entropy sources
> through a simple SPI interface.

I totally agree and welcome any entropy source and entropy provider
module for it. I don't agree on the SPI interface though. ;-)

The important generic interface for the entropy sources in the TRNG
looks like this:

  output wire          enabled,
  output wire          rnd_syn,
  output wire [31 : 0] rnd_data,
  input wire           rnd_ack,

That is, the entropy provider is required to be able to signal that it
is enabled (if it isn't the collector will skip waiting for available
data). And if the entropy provider is enabled it is expected to signal
valid entropy data on the 32 bit data potrt by raising the syn-signal.
The mixer will then acknowledge that the data word has been consumed by
raising the ack signal for one cycle. Basically the consumer end of a
fifo with a related enable signal. If that is present, we can use the
enropy provider.

If the entropy source is using FPGA/ASIC external functionality (like
the avalanche noise), it is up to the entropy provider module to
implement the functionality required to control the external
functionality and encapsulate the external interfacce. It might be a SPI
interface, but I'm very sure we haven't decided it is required.

If the entropy provider needs any application/system control to operate
then that should be exposed in the entropy provider interface. Finally
we will add ports to allow application/system raw access to noise,
entropy and statistics (like the delta values from the avalanche noise)
as well as error signals when the on-line test functionality detects
that the entropy source is b0rked. This ports will be added to the trng
API and thus mapped into the address space for the trng.

This means that the interface for the entropy providers will evolve over
time. But the really critical ports and the bare minimum are the ones above.

You can see my first attempt of these interfaces here:
http://trac.cryptech.is/browser/core/trng/src/rtl/trng.v

And yes, one should probably rename the fifo ports to entropy_syn,
entropy_data, entropy_ack to be more correct. This is just an early version.

- -- 
Med vänlig hälsning, Yours

Joachim Strömbergson - Alltid i harmonisk svängning.
========================================================================
 Joachim Strömbergson          Secworks AB          joachim at secworks.se
========================================================================
-----BEGIN PGP SIGNATURE-----
Version: GnuPG/MacGPG2 v2.0.22 (Darwin)
Comment: GPGTools - http://gpgtools.org
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iQIcBAEBCAAGBQJUG9VsAAoJEF3cfFQkIuyNzGIP/3P7F65sqIyBmthgIwIGCYde
tlBCqICx+raoZa0xqcPEUNcFZH4yb7+vqPy/eNy3VkS+99cs0uj0JJr/xqP1llzl
jOvL9xaCO1BvoCp9n6fAtIZtr5wPWk3+zL4TpQeODb4t+ghwDcuvDrSlxD50vSnl
18zVdTxu6pHWz6GTU2B5vtLLHHM0b9j2NSdJJ1OcIAbcHqhQrT83NcThwyAKADol
Zmp5IMu7629i2eIcoIzf3e9zofYc47OoHwvPYnd3+N0mUcOO6ehUKpmjjULCcPaV
8dUAKIQJ9orIXy98QiPzjwhVEHtVbOqokUq53+y/Msro2dIKmu4gh7jU83owyYMU
CP1Bn0/s/KpaPsnt65q9Th0XBhJLsDZOGv4qOaEFxpnxSwNNs0SnOT0xsEcciShg
inMbZrbWi/gmRRfemZgVvJJYT6QM4EyWbXbV/TBKXjsCip5J4NmqKTkabcitiGf/
qSSv5Umimp62TYwYl2qLjbp1Deg2yssCiDcDa1c5+X1dXU421aQCUAVIAboH155b
79Y57UiRFoTCQCbnXE3AYozPc6DcvI2dGgi0s3a1K9iJmjAEJBKC7UJfjwA1owM2
vVKt6tlduR5rMsexJ33gUEpghQ/VD4Zt+f9ZIKqCev2RI9B0b7aGOay6t+WW6LOn
3q4oKHx81SgFms4pOjf6
=DseB
-----END PGP SIGNATURE-----


More information about the Tech mailing list