Advertisement
selebry

dfsfs

Nov 16th, 2023
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.65 KB | None | 0 0
  1. from random import randint # Импортируем функцию randint из модуля random
  2.  
  3. class BlumMukali: # Определяем класс BlumMukali
  4. def __init__(self, p, q): # Конструктор класса, принимает два аргумента: p и q
  5. self.p = p # Сохраняем p как атрибут класса
  6. self.q = q # Сохраняем q как атрибут класса
  7. self.state = randint(2, p*q - 1) # Инициализируем состояние генератора случайным числом от 2 до p*q - 1
  8.  
  9. def generate(self): # Метод генерации чисел
  10. for _ in range(150): # Генерируем 150 чисел
  11. self.state = (self.state**2) % (self.p * self.q) # Обновляем состояние генератора
  12. num = self.state % 1024 # Получаем 10-битное число
  13. binary_num = bin(num).replace('0b', '').zfill(10) # Преобразуем число в двоичную строку с 10 битами
  14. yield binary_num # Возвращаем двоичное число
  15.  
  16. p = randint(2**511, 2**512) # Генерируем случайное простое число p
  17. q = randint(2**511, 2**512) # Генерируем случайное простое число q
  18.  
  19. generator = BlumMukali(p, q) # Создаем экземпляр класса BlumMukali
  20.  
  21. x = generator.generate() # Получаем генератор чисел
  22. for binary_num in x: # Для каждого числа в генераторе
  23. print(binary_num,end='') # Выводим числа (150 чисел по 10 байт)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement