Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Сборная ответов к госэкзаменам.doc
Скачиваний:
137
Добавлен:
02.09.2019
Размер:
7 Mб
Скачать

Вопрос 46.2. Схемы шифрования и цифровой подписи rsa. Схемы шифрования с открытым ключом и цифровой подписи. Основные принципы

Криптосистемы с открытым ключом используются непосредственно для передачи исключительно важных сообщений. Во многом подобные криптосистемам с секретным ключом криптосистемы с открытым ключом состоят из: пространства ключей K, а для каждого k из K, из пространств открытых сообщений MK, пространств шифртекстов и пар функций , таких что для любого открытого текста m из MK. Как и в криптосистемах с секретным ключом, эффективные алгоритмы для вычисления как EK, так и DK, должны легко получаться для каждого ключа k. Будем называть алгоритмы, полученные таким образом, естественными алгоритмами. Важной новой отличительной особенностью является то, что EK должна быть однонаправленной функцией с секретом: необходимо, чтобы было практически невозможно построить никакого эффективного алгоритма для вычисления DK (но только естественного алгоритма), зная описание естественного алгоритма для вычисления EK.

В частности, это означает, что k не должно появляться в явном виде в естественном алгоритме шифрования.

Криптографические системы с открытым ключом используются следующим образом. Каждый пользователь раз и навсегда выбирает некоторый случайный ключ k из K. Он использует этот ключ для получения обоих естественных алгоритмов EK и DK. Затем он делает публично доступным свой алгоритм шифрования EK, возможно посредством использования при этом некоторого справочника, но хранит в тайне свой алгоритм расшифрования DK.

В том случае если другой пользователь захочет послать ему некоторое сообщение, то он найдет в справочнике его открытый алгоритм шифрования и использует его для того чтобы зашифровать свое сообщение. Тогда, используя собственный секретный ключ, только законный получатель сможет расшифровать это сообщение.

В противоположность криптосистемам с секретным ключом, заметим, что если пользователь А, закодировав некоторое сообщение m для пользователя В, сохранил шифртекст С, но потерял открытый текст (или забыл все, что в нем содержалось), то он не будет иметь никаких преимуществ перед нарушителем в раскрытии m из С.

Также в противоположность криптосхемам с секретным ключом, если нарушитель перехватывает шифртекст и знает для кого он был зашифрован, то он может использовать открытый алгоритм шифрования для проверки любого конкретного предположения о том, каким может быть соответствующий открытый текст. Возможность формировать шифртексты из открытых текстовых сообщений по своему выбору является причиной сокращения числа классических уровней атаки, которые обсуждались в связи с криптосистемами с секретным ключом.

Схемы шифрования и подписи rsa

Функция Эйлера:

Открытые сообщения M представляются целыми числами, 1<M<N , где N - большое целое число, равное произведению двух различных больших простых чисел N=P*Q. Алгоритмы шифрования и расшифрования определяются числом N и показателями степени e и d которые связаны соотношением

Шифрование:

Расшифрование

В качестве открытого ключа выступает пара чисел (N, e), а в качестве секретного ключа - число d.

Система электронной подписи RSA получается при "смене мест" ключей e и d .

Подпись сообщения,

проверка подлинности подписанного сообщения [M,S] . Совпадение чисел в левой и правой частях последнего равенства означает, что сообщение M было подписано обладателем секретного ключа d, соответствующего ключу проверки подписи (N, е), т.е. авторизует сообщение.

Для разрешения споров между отправителем и получателем информации, связанных с возможностью искажения ключа проверки подписи (N, E), достоверная копия этого ключа выдается третьей стороне - арбитру и применяется им при возникновении конфликта.

Протокол работы пары абонентов сети общей связи с ОШ алгоритмом RSA выглядит так.

Используя, что сумма примарных колец (основание простое число) равно кольцу произведения оснований, выбираем e такое, что , и находим d, зная p и q.

Абоненты

I

J

Независимо генерируют пары простых чисел

p(i), q(i)

p(j), q(j)

и вычисляют

n(i)=p(i)*q(i), e(i), d(i)

n(j)=p(j)*q(j), e(j), d(j)

Помещают в общедоступный справочник

n(i), e(i)

n(j), e(j)

Сохраняют в секрете

d(i)

d(j)

При обмене сообщениями

M

N

- шифруют и передают

- расшифровывают

При обмене подписанными сообщениями

M

N

- подписывают, шифруют

- передают

- расшифровывают

- проверяют подпись

Предполагая, что известны все параметры этого протокола кроме сохраняемых в секрете чисел d(i), d(j) мы должны оценить сложность их восстановления. Если известно разложение на множители числа N=P*Q, то по открытому ключу (N, e), секретный ключ d вычисляется легко.

Поэтому разложение N=P*Q должно также быть недоступным для потенциального злоумышленника. После вычисления пары e, d знание множителей P, Q не нужно даже законным пользователям системы, т.е. они могут быть "забыты". Сложность их определения по числам N, e и является гарантией стойкости системы RSA.

В оригинальной работе RSA авторы предлагали выбрать простые числа P и Q случайно, по 50 десятичных знаков каждое. Через некоторое время было показано, что этого мало, были случаи вскрытия при n=512 (сейчас n1024).

Правила выбора: n=p*q, , , (p-1) делилось на большое простое число, (p+1) делилось на некоторое другое большое простое число, для q – аналогично. T(RSA<=T(факторизации)).