Blog. Just Blog

Генератор Mersenne Twister на Ассемблере

13.06.2021 | Категория: Образ мышления: Assembler | Автор: ManHunter
Mersenne Twister (Вихрь Мерсенна) - высокоэффективный генератор псевдослучайных чисел, разработанный Makoto Matsumoto и Takuji Nishimura. К математику Марену Мерсенну название имеет отношение потому, что период генерации равняется числу 219937-1, которое, в свою очередь, является числом Мерсенна. Несмотря на то, что Mersenne Twister является одним из наиболее тщательно протестированных генераторов ПСЧ из ныне существующих, а выдаваемые им последовательности проходят статистические тесты, использование Mersenne Twister в криптографии не рекомендуется без дополнительного шифрования.

Для работы генератора требуется достаточно объемная структура, в которой сохраняется текущее состояние каждого измерения.
  1. MT_SIZE = 624
  2. PERIOD  = 397
  3. DIFF    = MT_SIZE-PERIOD
  4.  
  5. struct MT_STATE
  6.         index       dd ?
  7.         mt          rd MT_SIZE
  8.         mt_tempered rd MT_SIZE
  9. ends
  10.  
  11. state MT_STATE
Сам генератор состоит из двух функций - инициализация и генерация. В принципе, можно добавить генерацию случайного числа в заданном интервале, но тут я этого делать не стал, можете посмотреть реализацию в других генераторах.

Читать статью целиком »
Просмотров: 263 | Комментариев: 1

Наверх
Powered by PCL's Speckled Band Engine 0.2 RC3
© ManHunter / PCL, 2008-2021
При использовании материалов ссылка на сайт обязательна
Время генерации: 0.07 сек. / MySQL: 1 (0.013 сек.) / Память: 4.75 Mb
Наверх