Переформулированный вопрос, так как кажется, что я недостаточно конкретен;
Для системы RSA с p = 263, q = 587, открытым ключом e = 683 и закрытым ключом d = 81599. Поэтому n = pq = 154381. Для сообщения «Я СТУДЕНТ» шифрование выполняется следующим образом:
- Преобразование любой буквы (включая пробел) в 3-значный код ASCII, т. Е. 073 032 065 077 032 065 032 083 084 085 068 069 078 084.
- Соедините каждые два смежных кода ASCII, чтобы сформировать блок, т. Е. 073032 065077 032065 032083 084085 068069 078084. (используйте 000, если последняя буква не имеет к чему присоединиться).
Использование алгоритма шифрования c = m e mod n для шифрования каждого блока; c 1 = 73032 683 мод 154381 = 103300 и т. Д.
Предположим, вы являетесь получателем сообщения: 33815872282353670979238213794429016637939017111351. Что такое содержание?
После немного большего размышления я думаю, что, поскольку мне нужно декодировать по частям, то есть декодировать 33815, затем 87228 и т. Д., И т. Д. Я должен просто разделить декодированную часть пополам и проверить, является ли каждая половина в диапазоне ASCII, если нет, вернитесь к оригиналу и разделите его по-другому. Похоже ли это на лучшее решение, чем пытаться что-то взломать с помощью регулярных выражений?
P.S. Декодирование считается домашней работой, я сделал это вручную и знаю, что сообщение расшифровывается как «Я ненавижу криптографию» (кажется, у моего лектора есть чувство юмора), так что вы не помогаете мне делать мою домашнюю работу. Превратить это в программу - это просто что-то вне учебного плана, и я подумал, что это может быть весело / интересно.