Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from random import randint # Импортируем функцию randint из модуля random
- class BlumMukali: # Определяем класс BlumMukali
- def __init__(self, p, q): # Конструктор класса, принимает два аргумента: p и q
- self.p = p # Сохраняем p как атрибут класса
- self.q = q # Сохраняем q как атрибут класса
- self.state = randint(2, p*q - 1) # Инициализируем состояние генератора случайным числом от 2 до p*q - 1
- def generate(self): # Метод генерации чисел
- for _ in range(150): # Генерируем 150 чисел
- self.state = (self.state**2) % (self.p * self.q) # Обновляем состояние генератора
- num = self.state % 1024 # Получаем 10-битное число
- binary_num = bin(num).replace('0b', '').zfill(10) # Преобразуем число в двоичную строку с 10 битами
- yield binary_num # Возвращаем двоичное число
- p = randint(2**511, 2**512) # Генерируем случайное простое число p
- q = randint(2**511, 2**512) # Генерируем случайное простое число q
- generator = BlumMukali(p, q) # Создаем экземпляр класса BlumMukali
- x = generator.generate() # Получаем генератор чисел
- for binary_num in x: # Для каждого числа в генераторе
- print(binary_num,end='') # Выводим числа (150 чисел по 10 байт)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement