TestU01 небольшой тестовый набор

1 min


В последних статьях я писал об использовании наборов тестов ГСЧ на выходе экстрактора энтропии μRNG. Это, наверное, последний пост в серии. Я смотрел на NIST STS, PractRand и DIEHARDER раньше. В этом посте я буду смотреть на testu01,

TestU01 включает в себя три батареи тестов: Small Crush, Crush и Big Crush. Извлекать энтропию не удалось самым маленьким из трех, поэтому я не стал переходить к более крупным наборам. Малый Давка не маленький; он использовал более 22 миллиардов 32-битных выборок в качестве входных данных, около 0,84 ГБ данных. Crush использует на два порядка больше данных, а Big Crush использует данные на другой порядок больше, чем Crush.

SmallCrush состоит из 10 тестов:

  • smarsa_BirthdaySpacings
  • sknuth_Collision
  • sknuth_Gap
  • sknuth_SimpPoker
  • sknuth_CouponCollector
  • sknuth_MaxOft
  • svaria_WeightDistrib
  • smarsa_MatrixRank
  • sstring_HammingIndep
  • swalk_RandomWalk1

Имена тестов начинаются с s, сопровождаемый префиксом, указывающим происхождение теста. Например, knuth ссылается на тесты Дональда Кнута во втором томе TAOCP и marsa относится к Джорджу Марсалья. Остальная часть названия является более описательной, такой как SimpPoker для простого покерного теста Кнута.

Выход энтропийного экстрактора не прошел четыре теста, и отказ был определен как п-значение менее 10-300, Другие тесты прошли без проблем, то есть они вернулись п-значения в диапазоне [0.001, 0.999],

Напомним из более ранних публикаций, что экстрактор энтропии μRNG берет три возможно смещенных потока битов и создает несмещенный поток битов, при условии, что каждый из входных потоков имеет минимальную энтропию по меньшей мере 1/3. Я создал смещенные потоки, взяв побитовое ИЛИ двух последовательных значений, создав поток с вероятностью 0,75, равной 1, и вероятностью 0,25, равной 0. Результат прошел все тесты STS и DIEHARDER, но не прошел некоторые тесты PractRand и Test01 SmallCrush. Это согласуется с общепринятым мнением, что STS и DIEHARDER – это относительно слабые тесты, а PractRand и TestU01 – более строгие тесты.

Я применил экстрактор энтропии к PCG без создания смещенного потока, и результат прошел PractRand и TestIU01 SmallCrush. Предположительно, это также прошло бы STS и DIEHARDER. Это подтверждает, что экстрактор не наносит вреда высококачественному потоку псевдослучайных битов. Он в значительной степени устраняет смещение из смещенных потоков, достаточное для прохождения двух простых тестовых комплектов, но недостаточно для прохождения двух более требовательных тестовых комплектов.

Предыдущие сообщения в этой серии


0 Comments

Ваш адрес email не будет опубликован. Обязательные поля помечены *