Перед использованием randomness обязательно ознакомьтесь с «randomness 免责声明»!
- Спасибо проекту zhebinhu/randomnessTests.
- Благодарю Sun Yimin за ключевой вклад в этот проект.
Этот набор инструментов реализует 15 методов проверки случайности, описанных в стандарте «GM/T 0005-2021 Проверка случайности» .
Если вам нужно использовать связанные инструменты тестирования, вы можете скачать скомпилированную версию из Release или скомпилировать программу вручную, см. документацию:
Инструмент для проверки rddetector
— это только один из способов использования randomness
, который предоставляет богатый API-интерфейс для настройки под ваши нужды.
Установите randomness
:
go get -u github.com/Trisia/randomness
Вот пример проверки покера для последовательности из 1 000 000 бит:
package main
import (
"crypto/rand"
"fmt"
"github.com/Trisia/randomness"
)
func main() {
// Генерируем случайную последовательность
n := 1000_000
buf := make([]byte, n/8)
_, _ = rand.Read(buf)
// Преобразуем в массив битов
bits := randomness.B2bitArr(buf)
// Запускаем проверку
p, _ := randomness.PokerTest(bits)
fmt.Printf("Покерная проверка n: 1000000, P-value: %f\n", p)
}
Дополнительные примеры использования API см.: документация randomness API.
randomness
реализует стандарт GM/T 0062-2018 «Требования к проверке случайных чисел криптопродуктов» для четырёх этапов проверки генераторов случайных чисел:
См. примеры использования в тестовом примере detect_test.go.
Если ваш процессор имеет несколько ядер, вы можете использовать API серии Fast для ускорения проверки, см. тестовый пример detect_fast_test.go.
Обратите внимание: для дискретного преобразования Фурье требуется более 1024 МБ памяти для однократной проверки 10^8 бит данных, чтобы избежать переполнения памяти (OOM), если на вашем компьютере несколько процессоров.
Стандарты проверки:
В стандарте GM/T 0005-2021 «Проверка случайности» на основе критерия прохождения выборки добавлен критерий равномерности выборки в качестве критерия прохождения проверки, см. GM/T 0005-2021 «Проверка случайности» 6.3.
На данный момент randomness уже обновлен до стандарта GM/T 0005-2021 «Проверка случайности».
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )