Подготовка текста к шифрованию
Открытый текст, подлежащий шифрованию, представляется в виде упорядоченного набора чисел по модулю N. Это еще не процесс шифрования, а только подготовка к нему. Пример 2. Для простоты предположим, что текст сообщения содержит слова, записанные только заглавными буквами. Первый шаг состоит в замене каждой буквы сообщения числом. Пусть наша таблица замен имеет вид:
Пробел между словами будем заменять числом 99. Например, пусть открытый текст – это девиз «ПОЗНАЙ СЕБЯ». Тогда его цифровое представление имеет вид: 2524172310199927151141. Пусть в нашем примере p = 149, q = 157, тогда N = 23393. Поэтому цифровое представление открытого текста нужно разбить на блоки, меньшие, чем 23393. Одно из таких разбиений выглядит следующим образом: 2524 – 1723 – 10199 – 9271 – 511 – 41. Конечно, выбор блоков неоднозначен, но и не совсем произволен. Например, во избежание двусмысленностей, на стадии расшифровки не следует выделять блоки, начинающиеся с нуля. При расшифровке сообщения получаем последовательность блоков, затем их соединяем вместе и получаем число. После этого числа заменяются буквами в соответствии с таблицей, приведенной выше. Обратим внимание на то, что в этом примере каждую букву кодируем двузначным числом. Это сделано для предотвращения неоднозначности. Если бы мы пронумеровали буквы не по порядку, начиная с 1, т. е. А соответствует 1, Б соответствует 2 и т. д., то было бы непонятно, что обозначает блок 12: пару букв АБ или букву Л, двенадцатую букву алфавита. Конечно, для кодирования можно использовать любые однозначные соответствия между буквами и числами, например ASCII-кодировку, что чаще всего так и делается. Продолжим пример: - выбирается p = 149, q = 157, - вычисляется φ (N) = 23088. - выбрается число e, взаимно простое с φ (N). Наименьшее простое число, не делящее φ (N), равно5. Примем e = 5. Зашифруем первый блок сообщения: вычисляем 25245 mod 23393 = 22752; 17235 mod 23393 = 6198. 101995 mod 23393 = 14204, 92715 mod 23393 = 23191, 5115 mod 23393 = 10723, 415 mod 23393 = 14065. Теперь шифрованный текст имеет вид В нашем примере N = 23393, e = 5. Применив алгоритм Эвклида к числам φ (N) =23088 и e =5, найдем d = e -1mod 23088 = 13853. Значит для расшифровки блоков шифртекста мы должны возвести этот блок в степень 13583 по модулю 23393. В примере первый блок шифртекста – число 22752, тогда получим 2275213853 mod 23393 = 2524. Разбиение числа на блоки можно произвести различными способами. При этом промежуточные результаты зависят от способа разбиения, однако конечный результат – не зависит от этого способа.
|