@DVoropaev
Ставлю + к карме на хабре за ответы на вопросы

Почему генератор случайных чисел python не проходит NIST тесты?

#!/usr/bin/env python3
import random


while True:
        s = ""
        for i in range(0, 500):
                s = s + str(random.randint(0, 1))
        print(s)
        input()


5cef4f6edd24d742449545.png

Значит ли это, что его нельзя применять в криптографии?
  • Вопрос задан
  • 431 просмотр
Пригласить эксперта
Ответы на вопрос 2
aRegius
@aRegius
Python Enthusiast
The random module computes random numbers using the Mersenne Twister algorithm... Functions in random() should not be used in programs related to cryptography. If you need such functionality, consider using functions in the ssl module instead. For example, ssl.RAND_bytes() can be used to generate a cryptographically secure sequence of random bytes.

David Beazley
Ответ написан
Комментировать
thelongrunsmoke
@thelongrunsmoke
Программист
Встроенный рандом никогда тесты NIST не проходит. Для нужд криптографии нужны другие источники энтропии, например, модуль secrets.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы