Криптография, 12 лекция (от 17 октября)
Материал из eSyr's wiki.
Чтобы организовать защищенный канал данных, одной криптографии будет мало. У вас есть абонент А и абонент Б и вы хотите организовать защищенный обмен.
Пример: Алиса шифрует сообщение и отправляет Бобу. Боб ширует сообщение и отправляет Алисе.
Даже если использовать стойкую криптографию, будет ряд недостатков.
Допустим сообщение -- то с какого фланга идут враги. Вариантов немного -- справа, слева, в центр.
Противник С не сможет выудить из стойкой криптографии конкретное значение. Зато он может подменять сообщение на какое-то подслушанное ранее.
Использовать криптографию так примтивно нельзя, надо думать.
Что можно сделать? привязать метку времени к сообщению.
Проблема распространения ключей.
Нам необходимо выработать обий секрет по открытому каналу связи.
В 1974 один из первых таки х протоколов предложил Меркель.
Представьте, что Ане и Борису удалось обменяться каким-то количеством ключей секретно. Когда у ани и Бориса есть ящичек с ключами, что они делают?
Аня берет случайную перестановку ключей и шифруем каждый ключ в этой перестановке на другом ключе.
Для удобства три больших ящика складываются в один большой ящик.
Получение общего секрета алгоритмом диффи-хеллмана.
Каждый раз когда выпользуетесь ссл-тлс, вы пользуетесь алгоритмом Диффи-Хеллмана.
Когда Аня и Борис договариваются о модуле вычислений, то если внимательно посмотреть -- образующим для этого модуля будет число 13.
Аня и Борис выбирают два секретных числа 8 и 10.
Аня вычисляет 2^8 mod 13, 2^10 mod 13 вычисляет борис. И они обмениваются этими числами.
И по алгоритму Диффи-Хеллмана они выработали общий секрет 9.
Семену для нахождения числа 9 надо решить задачу дискретного логорифмирования.
Аня генерирует ключевую пару. Ключ оставляет себе. Замок ножками идет в хранилище и несет в хранилище свой ключик. Хранилище требует с Ани паспорт. И, раз Аня принесла свой замок, мы считаем, что это принадлежит ей и ничего кроме этого ей не принадлежит.
Конверт подписывается. В этом конверте лежит ключ Ани. Ставится сургучная печать. И эти конверты распихиваются в хранилище. Аня стала легальным абонентом в системе.
Что делает борис чтобы послать Ане сообщение. Он ожками приходит в хранилище и спрашивает -- а не могла ли ты мне выдать замок который соответствует абоненту Ане. Хранилище говорит -- да не вопрос.
Теперь что же это в реальной жизни?
Конверт -- сертификат открытого ключа. Вот этот во конверт в криптографических терминах называется сертификат. Сертификат это есть не что иное как структура специального формата, которая содержит открытый ключ. А сургучная печать это электронно цифровая подпись. ЭЦП это проотокл, который обеспечивает несколько вещей.
Она удостоверяет. что именно вы создали некий документ. Обеспечивает целостность документа и аутентификацию того, кто этот документ создал.
Обеспечивает доказуемость авторства сообщения. И еще обеспечивает неотказуемость.
Рассмотрим настоящий сертификат, например от webmail.cmc.msu.ru
версия, алгоритм подписи, издатель.
Когда выпущен, до когда действителен.
Почему же система говрит нам, что мы идем в недоверенную среду? Потому что хранилище, которое выпустило сертификат, не помечено как доверенное.
Если вдруг так случится, что кто-то получит доступ к списку сертификатов, который хранится у вас на компьютере и внедрит информацию о хакерском УЦ, то вы можете не увидеть перенаправление с gmail.com на mgail.com, потому что сертификат этого сайта будет доверенным.
Таким образом использование хттпс и сертификатов не спасает вас окончательно, если у вас на компьютере оказывается вирус с доступом к хранилищу сертификатов.
Что же такое ЭЦП?
Естьнекоторое разночтение с тем что имеется в нашем хаконодательстве. В 2003 году был выпцущен закон о ЭЦП и теперь есть понятие ЭП. ЭП в законе это не протокол, а неотъемлимая часть документа, которая как-то к нему относится. Например отсканированная ваша подпись будет электронной подписью.
Когда говорим о криптографическом протоколе, называем ЭЦП, хотя иногда кажется что это масло масляное.
Она состоит из трех алгоритмов: 1. Алгоритм генерации ключей. Выдает два ключа -- ключ формирования подписи и ключ проверки подписи. 2. Fkujhbnv ajhvbhjdfybz gjlgbcb. На вход сообщение, на выходе подпись. 3. Алгоритм проверки подписи. На вход подаются сообщение, подпись и ключ проверки подписи. ответ да/нет.
Плюс в этом проотоколе должен быть нотариат.
ЭЦП обеспечивает целостность, аутентификацию и неотказуемость от авторства.
Какие есть угрозы?
Самая сильная угроза -- полное вскрытие. Когда вам удалось найти ключ формирования.
Вторая угроза -- вы придумали алгоритм такой что если вы на вход верификатора подадите сообщение, результата работы этого алгоритма и ключ, он всегда будет вызавать да.
Третья угроща -- селективная подделка. Вы не нашли весь алгоритм, но для какого-то сообщения вы решили эту задачу.
Экзистенциальная поделка. Представьте что вы можете по ключу найти хотя бы одну корректную пару подпись сообщение. Экзистенциальная поделка сослужила плохую службу люди забыли про эту поделку и строили протоколы без одной вещи, которая была необходима.
Как нам построить на основе идей Диффи-Хеллмана произвольную ЭЦП.
Если у вас есть односторонняя функция с секретом, то вы можете лекго получить отсюда подпись. У нас был ключ секретный и ключ открытый.
У нас ключи для подписи будут те же самые.
К ключ формирования подписи. Фк ключ проверки подписи.
Подпись под сообщением -- расшифрование сообщения. Проверка подписи -- шифрование сообщения.
Имея любую криптосистему с открытым ключом с определенными свойтсвам можно построить протокол ЭЦП.
В силу чего описанная ЭЦП будет стойкой. Рассмотрим 4 подделки. Чтобы алгоритм был стойкий шифровать и расшифровать надо не само сообщение, а хэш-функцию. Это защищает нас от селективной поделки и экзистенциальной поделки.
Фактически хэш функция это неотъемлимый атрибут ЭЦП и без него она жить не может.
Еще один момент. В обычных криптосистемах нет требования E(D(m)) = m. В криптосистемах с режимом ЭЦП это должно быть выполнено. Из известных вам криптосистем имеет напрямую режим ЭЦП только РСА. Эль-Гамаль напрямую не имеет.