
- •Імовірнісне моделювання
- •4.1. Метод статистичних випробувань
- •4.2. Генератори випадкових чисел
- •4.2.1. Типи генераторів
- •4.2.2. Лінійні конгруентні генератори
- •4.3. Перевірка послідовностей випадкових чисел
- •4.4. Моделювання випадкових подій та дискретних величин
- •4.4.1. Незалежні випадкові події
- •4.4.2. Група несумісних подій
- •4.4.3. Умовна подія
- •4.4.4. Випадкова дискретна величина
- •4.4.5. Геометричний розподіл
- •4.4.6. Біноміальний розподіл
- •4.4.7. Розподіл Пуассона
- •4.5. Моделювання неперервних випадкових величин
- •4.5.1. Метод оберненої функції
- •4.5.2. Рівномірний розподіл
- •4.5.3. Експоненціальний розподіл
- •4.5.4. Пуассонівський потік
- •4.5.5. Нормальний розподіл
- •4.5.6. Логарифмічно-нормальний розподіл
- •4.5.7. Розподіл і потоки Ерланга
- •4.5.8. Гамма-розподіл
- •4.5.9. Бета-розподіл
- •4.5.10. Розподіл Вейбулла
- •4.5.11. Гіпер- і гіпоекспоненціальні розподіли
- •4.6. Моделювання випадкових векторів
- •4.7. Моделювання випадкових процесів
- •4.8. Статистична обробка результатів моделювання
- •4.8.1. Оцінювання ймовірності
- •4.8.2. Оцінювання розподілу випадкової величини
- •4.8.3. Оцінювання математичного сподівання
- •4.8.4. Оцінювання дисперсії
- •4.8.5. Оцінювання кореляційного моменту
- •4.9. Визначення кількості реалізацій під час моделювання випадкових величин
- •4.9.1. Оцінювання ймовірності
- •4.9.2. Оцінювання середнього значення
- •Висновки
- •Контрольні запитання та завдання
- •Рождение метода Монте-Карло в Лос-Аламосе
- •Дальнейшее развитие и современность
- •Интегрирование методом Монте-Карло
- •Обычный алгоритм Монте-Карло интегрирования
- •Геометрический алгоритм Монте-Карло интегрирования
- •Квантовый метод Монте-Карло
- •Детерминированные гпсч
- •Гпсч с источником энтропии или гсч
- •Пример простейшего гсч с источником энтропии
- •Примеры гсч и источников энтропии
- •Гпсч в криптографии
- •Примеры криптостойких гпсч Циклическое шифрование
- •Аппаратные гпсч
- •Теоретическая основа Принципы построения
- •Графические тесты
- •Статистические тесты
- •Тесты diehard
- •Тесты д. Кнута
- •Тесты nist
- •Практические приложения
- •Конкурс aes
- •Свойства примитивных многочленов
- •Свойства
- •Линейная сложность
- •Корреляционная независимость
- •Алгоритмы генерации примитивных многочленов Готовые таблицы
- •КонфигурацияГалуа
- •Примеры генераторов Генераторы «стоп-пошёл»
- •Каскад Голлманна
- •Пороговый генератор
- •Другие виды Самопрореживающие
- •Многоскоростной генератор с внутренним произведением
- •[Править]Преимущества
- •[Править]Недостатки
- •Моменты
- •Свойства гамма-распределения
- •Связь с другими распределениями
- •Моделирование гамма-величин
- •Определение
- •Форма графика
- •Моменты
- •Связь с другими распределениями
- •Распределение Вейбулла
- •Свойства гиперэкспоненциального распределения
- •Моделирование марковских случайных процессов
- •Марковский процесс с дискретным временем
- •Марковские случайные процессы с непрерывным временем
- •Цепь Маркова
- •Цепь Маркова с дискретным временем Определение
- •Переходная матрица и однородные цепи
- •Граф переходов, связность и эргодические цепи Маркова
- •Примеры
- •Основное кинетическое уравнение
- •Функции Ляпунова для основного кинетического уравнения
- •Примеры функций Моримото
Аппаратные гпсч
Основная статья: Аппаратный генератор случайных чисел
Кроме устаревших, хорошо известных LFSR-генераторов, широко применявшихся в качестве аппаратных ГПСЧ в XX веке, к сожалению, очень мало известно о современных аппаратных ГПСЧ (поточных шифрах), так как большинство из них разработано для военных целей и держатся в секрете. Почти все существующие коммерческие аппаратные ГПСЧ запатентованы и также держатся в секрете. Аппаратные ГПСЧ ограничены строгими требованиями к расходуемой памяти (чаще всего использование памяти запрещено), быстродействию (1-2 такта) и площади (несколько сотен FPGA- или ASIC-ячеек). Из-за таких строгих требований к аппаратным ГПСЧ очень трудно создать криптостойкий генератор, поэтому до сих пор все известные аппаратные ГПСЧ были взломаны. Примерами таких генераторов являются Toyocrypt и LILI-128, которые оба являются LFSR-генераторами, и оба были взломаны с помощью алгебраических атак.
Из-за недостатка хороших аппаратных ГПСЧ производители вынуждены применять имеющиеся под рукой гораздо более медленные, но широко известные блочные шифры (DES, AES) и хеш-функции (SHA-1) в поточных режимах.
Тестирование псевдослучайных последовательностей — совокупность методов определения меры близости заданной псевдослучайной последовательности к случайной. В качестве такой меры обычно выступает наличие равномерного распределения, большого периода, равной частоты появления одинаковых подстрок и т. п.
Теоретическая основа Принципы построения
Один из самых
наглядных тестов — тест на равномерное
распределение частот появления каждого
символа. Пусть
—
последовательность длиной n и
размерности m. Тогда частоты νi
должны принадлежать отрезку
.
Однако, большинство тестов используют
другой метод — принятие или отклонение
гипотезы о случайности последовательности,
используя статистические распределения.
Зная вероятностные свойства истинно случайной последовательности, можно на их основе проверять гипотезу о том, насколько сгенерированная последовательность похожа на случайную. Для этого для каждого теста подбирается подходящая статистика, вычисляется её значения для идеальной и сгенерированной последовательности. Если разность этих значений превышает некоторое критическое значение, установленное заранее, то последовательность считается неслучайной. Для «хороших» последовательностей вероятность такого события крайне мала(допустим ~0,001 и обозначим её α). Однако, существует вероятность того, что «плохая» последовательность удовлетворит критерию и будет сделан вывод о её случайности(обозначим вероятность такого события β). На практике значения длины последовательности n, α и β связаны, задаётся α и подбирается n такое, чтобы минимизировать β.
Определим величину P-value как вероятность того, что идеальный генератор сгенерировал последовательность менее случайную, чем исследуемый. Тогда если P-value больше α, то исследуемая последовательность считается случайной и наоборот в противном случае.
Кратко шаги статистического тестирования можно изобразить в виде таблицы:
№ шага |
Процесс |
Комментарии |
1 |
Постановка гипотезы |
Предполагаем, что последовательность является случайной |
2 |
Вычисление статистики исследуемой последовательности |
Тестирование на битовом уровне |
3 |
Вычисление P-value |
P-value |
4 |
Сравнение P-value с α |
Задаем α в пределах [0,001; 0,01]; если P-value>α, то тест пройден |
Интерпретация результатов
Пусть дана двоичная последовательность s. Требуется установить, проходит ли данная последовательность статистический тест или нет. Для этого используются несколько различных подходов:
пороговое значение
фиксированный диапазон значений
значение вероятности
Пороговое значение
Данный подход заключается в подсчёте какой-либо статистической величины двоичной последовательности с(s) и его сравнении с некоторым пороговым значением. Если полученное значение с(s) меньше порогового значения, то последовательность s не проходит данный тест.
Фиксированный диапазон значений
Подход также заключается в подсчёте некоторой статистической величины двоичной последовательности с(s) как и в первом случае. Однако теперь мы говорим, что если с(s) выходит за пределы некоторого диапазона значений, то последовательность s не проходит данный тест.
Значение вероятности
Третий подход в определении того факта, что двоичная последовательность s проходит статистический тест, включает подсчёт не только статистической величины с(s), но и соответствующее ей значение вероятности p. Обычно подсчёт конкретной статистической величины производится таким образом, чтобы её большие значения предполагали неслучайный характер последовательности s. Тогда p есть вероятность получения значения с(s) большего либо равного значению с(s'), высчитанного для истинно случайной последовательности s'. Следовательно, малые значения вероятности p (обычно p < 0,05 или p < 0,01) могут быть интерпретированы как доказательство того, что s не является случайной. Таким образом, если для некоторого фиксированного значения a значение вероятности p < a, то двоичная последовательность s не проходит данный тест. Как правило, a принимает значения из интервала [0,001;0,01].