Re: [PATCH 1/2] hwrng: Add support for ASPEED RNG

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 2020-01-22 19:53, Andrew Jeffery wrote:
Thanks for reviewing the patch.

The RNG on Aspeed hardware allows eight different modes for combining
its four internal Ring Oscillators that together generate a stream of
random bits. However, the timeriomem-rng driver does not allow for mode
selection so, the Aspeed RNG with this generic driver runs always on
mode 'seven' (The default value for mode according to the AspeedTech
datasheets).

I've performed some testings on this Aspeed RNG using the NIST
Statistical Test Suite (NIST 800-22r1a) and, the results I got show that
the default mode 'seven' isn't producing the best entropy and linear
rank when compared against the other modes available on these SOCs. On
the other hand, the driver that I'm proposing here allows for mode
selection which would help improve the random output for those looking
to get the best out of this Aspeed RNG.

Have you published the data and results of this study somewhere? This
really should be mentioned in the commit message as justification for
not using timeriomem-rng.

Andrew

Hi Andrew,

I have uploaded the results of my tests to my GitHub, along with all the binaries containing the random bits that I collected from this Aspeed RNG using all 8 modes. You can also find in this repository a patch for the hw_random core driver that
I've been using to collect this data. Here is the link:
  https://github.com/operezmuena/aspeed-rng-testing

You can see in the reports that when using large enough samples (40Mb in size) this Aspeed RNG consistently fails the linear rank and entropy tests, no matter what RNG mode is selected. However, modes 2, 4 and 6 produce better entropy than
the rest.
I'm now collecting rng data from 2 other AST2520 SOCs that I have in order to
compare results.

Regards,
Oscar






[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux