On Fri, 9 Nov 2018 04:33:48 +0300 Leonid Krivoshein wrote: > > 09.11.2018 03:30, Andrey Savchenko пишет: > > On Fri, 9 Nov 2018 02:07:05 +0300 Alexey V. Vissarionov wrote: > >> On 2018-11-08 20:06:28 +0300, Andrey Savchenko wrote: > >> > >> >> 5. желательно всем обзавестись такими энтропийными ключиками, > >> >> как у Алексея! :) > >> > И да, и нет. То, что у Алексея ключик аппаратный — это хорошо, но, > >> > как я помню, там нет равномеризации выборки и не гарантируется > >> > несмещённость. > >> > >> Первое обеспечивается аппаратно (на том ОУ, который компаратор), а > >> второе достигается банальным отбеливанием по SHA2 внутри CSPRNG. > > Покажи мне, пожалуйста, где там SHA2? > > Вот последние исходники random.c ядра: > > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/char/random.c > > > > > > Для выходных данных используется SHA-1 (чтоб не выдавать внутреннее > > состояние пула), который затем замешивается обратно в пул: > > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/char/random.c#n333 > > * The mixing operation is much less sensitive than the output hash, > > * where we use SHA-1. All that we want of mixing operation is that > > * it be a good non-cryptographic hash; i.e. it not produce collisions > > * when fed "random" data of the sort we expect to see. > > > > Когда на клетке с тигром надпись бык, не верь глазам своим! Не верь > комментариям, в коде точнее. Они действительно использовали до 4.8 sha1, > хотя много лет обсуждался переход чуть ли не на sha3, но в 4.8 > свершилось чудо и они перешли на чачу. Она просто рвёт sha1. Не путай вещи. sha1 там как был в extract_buf(), так и остался: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/char/random.c#n1437 А chacha20 используется в crng: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/char/random.c#n893 Best regards, Andrew Savchenko