Насколько я знаю, есть некоторая библиотека Intel для инструкции RDRAND https://software.intel.com/en-us/blogs/2012/09/14/rdrand-library-now-available-for-apple-os- Икс
Но действительно ли ядро OS X использует его для / dev / random устройства (как Linux, по крайней мере, для / dev / hwrng)?
Ответы:
Согласно с
man 4 random
В качестве дополнительного примечания / dev / urandom аналогичен / dev / random в OSX. (также в
man 4 random
)/dev/urandom is a compatibility nod to Linux.
Генератор псевдослучайных чисел Ярроу использует «сбор энтропии» при обычных действиях, таких как движение мыши или ввод с клавиатуры, для генерации случайных чисел. Во FreeBSD есть реализация, которую вы можете прочитать, чтобы увидеть, как на практике реализован генератор псевдослучайных чисел Ярроу.
Тем не менее, вы спрашиваете, использует ли OSX инструкции RDRAND в своей реализации или нет, но поскольку OSX является закрытым исходным кодом, мы можем полагаться только на то, что нам говорят, и я нигде не могу найти упоминания, какие библиотеки OSX использует для создания своих случайных чисел ,
Кажется, что вы хотите гарантировать (как и большинство из нас), что числа, заданные / dev / random, действительно будут криптографически защищены, поэтому, когда мы создаем ключи DSA или RSA, мы знаем, что никто, кроме целевой аудитории, не сможет получить доступ. К сожалению, независимо от того, что вы можете найти о том, как OSX должен генерировать свои случайные числа, мы никогда не сможем это проверить, поскольку у нас нет источника.
Как это очень приятно положить в исходный код Linux 3.13.0:
Если вы хотите прочитать, как это на самом деле делается в Linux, не полагаясь на аппаратное обеспечение, прочитайте root / drivers / char / random.c в исходном коде. Комментарии удивительно полезны, чтобы увидеть, что происходит, и дать вам полную картину теории, стоящей за всем этим.
В общем, если вы хотите получить лучшую гарантию криптографической защиты ваших случайных чисел, я бы порекомендовал либо получить ваши случайные числа с помощью онлайн-генератора истинных случайных чисел, либо использовать Linux для создания ваших ключей (в которые вы также можете добавить входные данные из истинного случайного числа). генератор).
источник