- •Особенности системы Применение Алгоритмы криптосистемы с открытым ключом можно использовать Как самостоятельные средства для защиты передаваемой и хранимой информации
- •Преимущества
- •Недостатки
- •Идея криптосистемы с открытым ключом
- •Криптография с несколькими открытыми ключами
- •Однонаправленная функция
- •Элементарная теория чисел
- •Наибольшее известное простое
- •Великая теорема Ферма -
- •Делимость
- •Определение
- •Обозначения
- •Связанные определения
- •Свойства
- •Теорема Эйлера
- •Основные свойства натуральных чисел
- •Алгоритм Евклида для целых чисел
- •Расширенный алгоритм Евклида и соотношение Безу
- •Связь с цепными дробями
Криптография с несколькими открытыми ключами
В следующем примере показана схема, в которой Алиса шифрует сообщение так, что только Боб может прочитать его, и наоборот, Боб шифрует сообщение так, что только Алиса может расшифровать его.
Пусть есть 3 ключа KA, KB, KC, распределенные так, как показано в таблице.
Лицо |
Ключ |
Алиса |
KA |
Боб |
KB |
Кэрол |
KC |
Дэйв |
KA, KB |
Эллен |
KB, KC |
Франк |
KA, KC |
Тогда Алиса может зашифровать сообщение ключом KA, а Эллен расшифровать ключами KB, KC, Кэрол — зашифровать ключом KC, а Дэйв расшифровать ключами KA, KB. Если Дэйв зашифрует сообщение ключом KA, то сообщение сможет прочитать Эллен, если ключом KB, то его сможет прочитать Франк, если же обоими ключами KA и KB, то сообщение прочитает Кэрол. По аналогии действуют и другие участники. Таким образом, если используется одно подмножество ключей для шифрования, то для расшифрования требуются оставшиеся ключи множества. Такую схему можно использовать для n ключей.
Шифруется ключом |
Расшифровывается ключом |
KB и KC |
KA |
KA и KC |
KB |
KA и KB |
KC |
KC |
KA, KB |
KA |
KB, KC |
KB |
KA, KC |
Теперь можно посылать сообщения группам агентов, не зная заранее состав группы.
Рассмотрим для начала множество, состоящее из трех агентов: Алисы, Боба и Кэрол. Алисе выдаются ключи KA и KB, Бобу —KB и KC, Кэрол — KA и KC. Теперь, если отправляемое сообщение зашифровано ключом KC, то его сможет прочитать только Алиса, последовательно применяя ключи KA и KB. Если нужно отправить сообщение Бобу, сообщение шифруется ключом KA, Кэрол — ключом KB. Если нужно отправить сообщение и Алисе и Кэрол, то для шифрования используются ключи KB и KC.
Преимущество этой схемы заключается в том, что для её реализации нужно только одно сообщение и n ключей (в схеме с n агентами). Если передаются индивидуальные сообщения, то есть используются отдельные ключи для каждого агента (всего n ключей) и каждого сообщения, то для передачи сообщений всем различным подмножествам требуется 2n − 2 ключей.
Недостатком такой схемы является то, что необходимо также широковещательно передавать подмножество агентов (список имён может быть внушительным), которым нужно передать сообщение. Иначе каждому из них придется перебирать все комбинации ключей в поисках подходящей. Также агентам придется хранить немалый объём информации о ключах.[4]
Однонаправленная функция
В
качестве примера однонаправленной
функции
рассмотрим
широко известную функцию дискретного
возведения в степень:
,
где
–
целое число от 1 до
включительно,
а вычисление производится по модулю
,
где
–
очень большое простое число;
–
целое число (
).
Напомним, что простым числом называется целое число, которое не делится ни на какие числа, кроме себя самого и единицы.
Пример
10.1. Для примера возьмем небольшое
простое число
;
тогда для осуществления преобразований
можно выбрать примитивный элемент
,
так как
,
,
,
,
,
.
Функция
вычисляется
сравнительно просто, а обратная к ней
функция
является
вычислительно сложной практически для
всех (
)
при условии, что не только
велико,
но и (
)
имеет большой простой множитель (лучше
всего, если это будет другое простое
число, умноженное на 2). В связи с этим
такую задачу называют задачей нахождения
дискретного логарифма или задачей
дискретного логарифмирования.
Задача
дискретного логарифмирования состоит
в том, что для известных целых
,
,
необходимо
найти целое число
.
Однако алгоритм вычисления дискретного
логарифма за приемлемое время пока не
найден. Поэтому модульная экспонента
считается однонаправленной функцией.
