[Cryptech Tech] Hardware entropy
Stephan Mueller
smueller at chronox.de
Tue May 27 05:54:16 UTC 2014
Am Freitag, 23. Mai 2014, 15:43:07 schrieb Joachim Strömbergson:
Hi Bernd,
> Aloha!
>
> Joachim Strömbergson wrote:
> > Short answer to your latest emails: Cool and thanks for doing this.
> > I will try to recreate the results when I get back to my dev boards.
>
> Short update on my implementation test:
>
> I've created a FPGA project for testing Berndts FPGA entropy source and
> integrate it into the coretest system:
>
> https://github.com/secworks/coretest_bpaysan_entropy
>
I looked a bit into the code and found a number of questions:
- rosc.v: Unless I miss something, but it seems that you have only one
inverter here. Is that correct?
- entropy.v: the module instantiation with the following code seems to imply
to generate 16 times two ring oscillators, correct? Or do you build up the
inverter chain here (but if so, how come that you have an even number of
inverters)?
genvar i;
generate
for(i=0; i<16; i=i+1) begin: tworoscs
rosc px(clk, nreset, rng1, rng2, p[i]);
rosc nx(clk, nreset, rng1, rng2, n[i]);
end
endgenerate
Now, if I understand the code correctly, you have 32 independent inverters
which each is used to sample one bit, right? If so, how do you counter the
general problem that the inverters start to swing in harmony with a severe
lack in entropy?
Shouldn't there be, say, one ring oscillator on the chip only? Or if there are
multiple, their frequencies should be relative prime to each other to prevent
the harmony?
Another question which I could not figure out: What is the frequency of the
inverter (chain) and at which frequency does the sampling occur? I would
expect that there is a high oversampling rate (i.e. the inverters run at a
much higher frequency than the sampling code).
How do you kickstart the inverters in case they do not start swinging
immediately? Shouldn't there be some kind of dead-test or a wait for some time
or wait for a number of ring oscillator swings before sampling the output?
Ciao
Stephan
--
| Cui bono? |
More information about the Tech
mailing list