Подключите АЦП к аппаратному источнику шума и используйте программное обеспечение для «отбеливания» случайных чисел, если это необходимо.
Вот проект на основе AVR, который делает это: мини портативный генератор случайных чисел Леона (mPRNG)
В зависимости от того, насколько криптографически он должен быть защищен, вы можете использовать шум заземленного аналогового входа или « внутреннего датчика температуры » в качестве начального числа случайности вместо внешнего оборудования.
Обновление : позже я написал программу для Arduino, которая использует таймеры чипа в качестве источника энтропии (АЦП оказался бесполезным, потому что биты с шумом усекаются), и это вдохновило на создание библиотеки Entropy .
В обоих случаях случайность связана, например, не с самим значением температуры, которое изменяется только медленно, а с младшими значащими битами , которые случайным образом меняются от одного чтения к следующему. Я прочитал значение несколько раз, один раз для каждого бита вывода, сдвига битов и XORing с предыдущим чтением. XOR по-настоящему случайного бита с некоррелированным битом сохраняет случайность , поэтому случайность распространяется на все биты и становится настоящим белым шумом. Тем не менее, ваша скорость передачи данных будет не очень высокой, поскольку вы получаете только один бит вывода за время захвата или цикл таймера. С помощью метода таймера я получил около 64 бит / с.