На Python написать линейный конгруэнтный генератор,шифратор,дешифратор

Аркадий3 года в сервисе
Данные заказчика будут вам доступны после подачи заявки
05.12.2021

Линейный конгруэнтный генератор

Линейный конгруэнтный генератор задается рекуррентной формулой:

gi = a⋅gi–1 + b (mod m), где gi – i-й член последовательности псевдослучайных чисел; a, b, m и g0 – ключевые параметры. Данная последовательность состоит из целых чисел от 0 до m – 1, и если элементы gi и gj совпадут, то последующие участки последовательности также совпадут: gi+1 = gj+1, gi+2 = gj+2, и т.д. Поэтому последовательность {gi} является периодической, и ее период не превышает m. Для того чтобы период последовательности псевдослучайных чисел, сгенерированной по указанной рекуррентной формуле, был максимальным (равным m), параметры данной формулы должны удовлетворять следующим условиям:

  • b и m —взаимно простые числа;
  • a – 1 делится на любой простой делитель числа m;
a – 1 кратно 4, если m кратно 4.

1. Реализовать ЛКГ в соответствии с вариантом, записанном в формате LCG(m, a, b, g0).

Вариант 3.

2. Ввести открытый текст, зашифровать и дешифровать его методом гаммирования, используя ЛКГ.

Заявки фрилансеров