Аппаратный генератор случайных чисел (генератор истинно случайных чисел) — устройство, которое генерирует последовательность случайных чисел на основе измеряемых параметров протекающего физического процесса. Работа таких устройств часто основана на использовании надёжных источников энтропии, таких как тепловой шум, фотоэлектрический эффект, квантовые явления и т.д. Эти процессы в теории абсолютно непредсказуемы, на практике же получаемые из них случайные числа проверяются с помощью специальных статистических тестов .

Истинный генератор случайных чисел STM32F4.

Истинный генератор случайных чисел реализован на F4 серии, как аналоговый источник тока. Этот источник тока
генерирует непрерывный аналоговый шум, который охвачен обратной связью. Регистр сдвига (LFSR) используют
для получения 32-битное случайного числа.
Аналоговый источник состоит из нескольких кольцевых генераторов, выходы которых используют операцию XOR.
LFSR тактируется частотой (PLL48CLK), так что качество случайного числа не зависит от частоты HCLK.
Содержание LFSR передается в регистр данных (RNG_DR).

Алгоритм использования TRNG:
1. Запускаем STM32CubeMX.
2. Выбираем отладочную плату stm32f429i-disco.
3. Добавляем rng в нашу программу.
4. Для rng можно использовать функцию глобальное прерывания.
5. Генерируем проект для отладочной платы stm32f429i-disco, я чаще всего использую MDK Keil, поэтому генерирую проект для Keil.

Прототипы функций для работы с TRNG:

Функцию которую мы будем использовать называется HAL_RNG_GetRandomNumber, все очень легко, передаем укзатель на структуру RNG_HandleTypeDef, а функция нам возвращает истинное случайное число в формате uint32_t.

Основная часть исходного кода программы:

Аппаратные генераторы случайных чисел главным образом применяются для проведения статистических испытаний и в криптографии, где они используются для создания криптографических ключей для зашифрованной передачи данных. Также такие аппараты широко используются в интернет-казино для имитации, например, рулетки. Но из-за сложности реализации и относительной медленности использование подобных генераторов зависит от потребностей конкретной предметной области и от устройства самого генератора.

trng.7z

Отправить ответ

avatar

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.

  Subscribe  
Уведомлять о