Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Kodirovanie_dlya_Filiala_v_g_Izhevske.doc
Скачиваний:
0
Добавлен:
27.12.2019
Размер:
390.14 Кб
Скачать

Пример 1.

Генерация ключей:

      1. p=3, q=11

      2. n: = pq = 3*11 = 33;

      3. (p-l)(q-l) = 2*10 = 20, e: = 7;

      4. d: = 7-1mod 20 = 3, (пояснение: 7 * 3 mod 20 = 1).

Пусть S1: = 3, S2: = 1, S3: = 2 (S1, S2, S3 < n = 33). Тогда код определяется сле­дующим образом.

1. C1: = 37 mod33 = 2187 mod 33 = 9;

2. C2: = I7 mod 33 = 1 mod 33 = 1;

3. C3: = 27 mod 33 = 128 mod 33 = 29.

При расшифровке имеем:

1. P1: = 93 mod 33 = 729 mod 33 = 3;

2. P2: = I3 mod 33 = 1 mod 33 = 1;

3. P3: = 293 mod 33 = 24389 mod 33 = 2.

Пример 2.

Зашифровать с помощью открытого ключа сообщение S.

Решение. Сообщение S побуквенно, используя таблицу ASCII, представляем как последовательность 0 и 1 - совокупность бинарных записей символов сообщения. Далее разбиваем эту последовательность на слова длины менее log2 n разрядов справа налево. Если длины не хватает, то последнее слово дополняется слева нулями. Получаем последовательность двоичных чисел. Переводим их в десятичную запись. Получим последовательность десятичных чисел S1, S2, S3, … , которую шифруем согласно выше описанной процедуре.

Замечание.

Шифры с открытым ключом сравнительно просты в реализации, очень практичны (по­скольку нет необходимости пересылать по каналам связи закрытый ключ и можно без­опасно хранить его в одном месте) и в то же время обладают высочайшей криптостойкостью. Кажется, что дешифровать сообщение несложно: достаточно разложить открыто опубликованное число п на множители, восстановив числа р и q, и далее можно легко вычислить секретный ключ d. Однако дело заключается в следующем. В настоящее время известны эффективные алгоритмы определения простоты чисел, которые позволяют за несколько минут подобрать пару очень больших простых чисел (по 100 и больше цифр в десятичной записи). В то же время неизвестны эффективные алгоритмы разложения очень больших чисел на множители. Разложение на множители числа в 200 и больше цифр потребовало бы сотен лет работы самого лучшего суперкомпьютера. При практическом применении шифров с открытым ключом используют действительно большие простые числа (не менее 100 цифр в десятичной записи, а обычно значительно больше). В ре­зультате вскрыть этот шифр оказывается невозможно, если не существует эффективных алгоритмов разложения на множители (что очень вероятно, хотя и не доказано строго).

Цифровая подпись

Шифр с открытым ключом позволяет выполнять и многие другие полезные опе­рации, помимо шифрования и посылки сообщений в одну сторону. Прежде все­го, для организации многосторонней секретной связи каждому из участников достаточно сгенерировать свою пару ключей (открытый и закрытый), а затем сообщить всем партнерам свой открытый ключ.

Заметим, что операции зашифровки и расшифровки по существу одинаковы, и различаются только показателем степени, а потому коммутируют:

М = (Me)d mod n = Med mod n = Mde mod n = (Me)d mod n = M.

Это обстоятельство позволяет применять различные приемы, известные как ци­фровая (или электронная) подпись.

Рассмотрим следующую схему взаимодействия корреспондентов X и Y. Отпра­витель X кодирует сообщение S своим закрытым ключом (С = Md mod n) и посылает получателю Y пару <S,C>, то есть подписанное сообщение. Получа­тель Y, получив такое сообщение, кодирует подпись сообщения открытым клю­чом X, то есть вычисляет S'= Ce mod п. Если оказывается, что S= S', то это означает, что (нешифрованное!) сообщение S действительно было отправлено корреспондентом X. Если же S<> S', то сообщение было искажено при передаче пли фальсифицировано.

Замечание.

В подобного рода схемах возможны различные проблемы, которые носят уже не мате­матический, а социальный характер. Например, допустим, что злоумышленник Z имеет техническую возможность контролировать всю входящую корреспонденцию Y незаметно для последнего. Тогда, перехватив сообщение X, в котором сообщался открытый ключ е, злоумышленник Z может подменить открытый ключ X своим собственным открытым ключом. После этого злоумышленник сможет фальсифицировать все сообщения X подпи­сывая их своей цифровой подписью, и, таким образом, действовать от имени X. Другими словами, цифровая подпись удостоверяет, что сообщение S пришло из того же источника, из которого был получен открытый ключ е, но не более того.

Можно подписывать и шифрованные сообщения. Для этого отправитель X сна­чала кодирует своим закрытым ключом сообщение S, получая цифровую под­пись С, а затем кодирует полученную пару <S, С> открытым ключом получате­ля Y. Получив такое сообщение, Y сначала расшифровывает его своим закрытым ключом, а потом убеждается в подлинности полученного сообщения, сравнив его с результатом применения открытого ключа X к подписи С.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]