Hi Soeren!

Well, for example, if someone has got a TRNG and wants to test its output
quality.

when thinking of data stream:

0. TRNG output is usually analog,
1. So it must be followed by ADC,
2. After that, goes another device for post-processing, so as to make the
data binary.

Just imagine, if we had a random binary sequence, like 0001 0110, and then
make sample rate higher, it would become 0000 0000 0000 1111  0000 1111
1111 0000 - doesn't look random, patterns of 4 are obvious. (You can never
be sure when dealing with randomness- https://i.redd.it/ik1rgf63zym31.jpg ,
but still. that's why those tests are used)

What if the trng output is oversampled, like the second sequence, - then
post-processing is applied so as to reduce the patterns. Lowering the
sample rate is obvious, but there are also other algorithms. It is very
important to choose the right threshold when making float->binary. And it's
better to lower the sample rate before computing the threshold, when the
data is float.

It feels like:
(the amount of [information = non-predictable data]) * (sequence length) ~=
const
Sure it is like that, but I cannot prove it.

It's wise to oversample the output first, so as to choose the best
post-processing algorithms for it- this way we make sure the data is not
undersampled, so we're not losing randomness. "best" means "making the
sequence random enough, but not reducing its length too much". Those could
also be compared by processing time, if the speed is much lower than analog
TRNG generation.

3. Then, the binary sequence is tested

4. Finally, based on test results, some system parameters might be changed,
to achieve better binary TRNG output,
5. Or, if all is OK, those random sequences can be used, for example as
encryption keys.

so, two cases to consider:
1. binary input >-----> NIST tests
2. "analog"=oversampled input >-------> post-processing
>-----{binary}-----> NIST tests

I'm going to start with the simplest (1) one- not sure if I have time for
all,
But I think it's better to implement it in a right way from the very
beginning - that's why I'm asking.

Regards,
Inessa

чт, 5 мар. 2020 г. в 00:37, Soeren Apel <soe...@apelpie.net>:

> Hello Inessa,
>
> While I'm sure there are use cases for this, I have to admit
> that I haven't yet come across one. Which ones do you have
> in mind?
>
> Clarifying that may help figuring out which way it should go.
>
> Regards
>  -Soeren
>
> On Wed, 2020-03-04 at 13:13 +0300, Inessa Kavalenka wrote:
> > Hi everyone!
> >
> > I got this idea to attach a randomness acquisition tool (for example,
> > NIST STS) to sigrok, for study purposes.
> >
> > As sigrok developers, do you think this feature could be useful for
> > anybody? And if yes, what would be a better way to implement this? I
> > thought about attaching the tests as protocol decoders.
> >
> > Best regards,
> > Inessa
> > _______________________________________________
> > sigrok-devel mailing list
> > sigrok-devel@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/sigrok-devel
>
>

-- 
С уважением,
Инесса
_______________________________________________
sigrok-devel mailing list
sigrok-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sigrok-devel

Reply via email to