Лекция 8 (Продолжение)
1. Современное применение криптографии. Цифровые сигнатуры
Одно из применений криптографии с открытыми ключами, кроме уже упоминавшейся защиты сообщений при передаче по линиям связи, - это цифровые сигнатуры. Они позволяют доказать в возможном судебном разбирательстве получение сообщения от конкретного пользователя сети. Эта процедура строже традиционной процедуры подтверждения подлинности, которая просто разрешает субъекту указать получателя его сообщений.
Передача с забыванием позволяет одному субъекту передать сообщение другому субъекту ВС таким способом, что сообщение имеет точно 50%-ную вероятность получения. Эта вероятность не может быть изменена третьим субъектом..
Процедура электронного бросания монеты позволяет двум недружественным субъектам осуществить такое бросание по телефону, чтобы оно было случайным, несмещенным и ни один из субъектов не мог влиять на процесс извне. Розыгрыш считается справедливым, когда, кроме перечисленных выше свойств, ни один из субъектов не в состоянии увидеть результат, если только второй партнер не дает на это разрешения. Этот принцип используется во многих криптографических протоколах. Протокол бросания монеты, не поддающийся раскрытию с помощью ЭВМ и базирующийся на явлениях квантовой физики.
В системах с открытыми ключами за пользователем сохраняется такой существенный секрет, как факторизация собственного мастер -ключа. Если ключ оставляется в офисе, то существует риск потерять его в случае пожара; если копии ключей хранятся в различных местах, то возрастает риск, что один из экземпляров может оказаться в чужих руках.
Схема защиты типа (k,n)-пороговой схемы позволяет распределить ключи среди п пользователей таким образом, что только при одновременном обращении любых k из них обеспечивается доступ к защищенной информации.
Каждый из субъектов ВС имеет доступ к разной защищенной информации, например при факторизации RSA-модулей. Допустим, что они решили обменяться информацией друг с другом. Как можно осуществить обмен секретами и быть уверенным, что вы получаете то, что нужно в обмен на истинный секрет, переданный вами?
Электронная почта с уведомлением - одна из утонченных версий цифровых сигнатур. В этом случае один субъект хочет переслать сообщение другому таким образом, чтобы второй получил сообщение в том и только том случае, когда отправитель получит удостоверяющее подтверждение о доставке сообщения. Протокол реализует почту по принципу "все или ничего", означающему, что получатель ничего не может узнать о содержании сообщения, пока отправитель не получит подтверждения о вручении, и наоборот.
Подписание контракта - еще более совершенный протокол (из него как следствие легко получить предыдущий). Такой протокол позволяет двум субъектам подписать контракт, используя ВС таким образом, что ни один из партнеров не может прервать процедуру подписания и воспользоваться чужой подписью, пока им не будут приняты обязательства по контракту.
Генератор случайных чисел считается корректным в криптографическом плане, если наблюдение фрагментов его выхода не позволяет восстановить пропущенные части или всю последовательность при известном алгоритме, но неизвестном начальном значении. В силу этого сгенерированная последовательность псевдослучайных чисел действительно аналогична случайной последовательности при одноразовом использовании и служит основой для вышеприведенных схем вероятностного шифрования.
Допустим, вы решили передать своему другу некоторую случайную строку битов, но у вас есть подозрение, что сообщение может быть перехвачено. Задав некоторый допустимый уровень потери информации, можно усилить ее защиту путем открытого обсуждения того, как следует поступать с более короткой, но много более секретной строкой битов. Все сказанное остается в силе, даже если ошибки передачи и умышленное вмешательство могут привести к искажениям исходного текста.
Функции в виде случайных полиномов определяют множество эффективно вычислимых функций, которые неотличимы от случайных функций. Они имеют многочисленные применения, в частности для формирования вычислительно защищенных тегов подтверждения подлинности, требующих коротких, распределенных секретных ключей защиты. Различные виды перестановок на основе случайных полиномов обсуждаются в работе.
Чистый канал использует два уровня шифрования. Секретное сообщение восстанавливается из шифрованного с использованием регулярного секретного ключа, но для восстановления исходного текста необходим еще и дополнительный ключ. Это позволяет двум субъектам защитить канал связи от ничего не подозревающего злоумышленника, который полагает, что он может читать передаваемые сообщения.
Хотя для защиты программного обеспечения ни одной практической криптографической схемы не предложено, интересные теоретические идеи можно найти в работах.
В реальной жизни часто возникают ситуации, сводимые к проблеме миллионеров, которая состоит в следующем: два миллионера хотят узнать, кто из них богаче, но таким образом, чтобы ни один не узнал истинного состояния другого, Здесь мы имеем дело со специальным случаем защиты распределенных вычислений, когда два субъекта хотят, вычислив значение некоторой согласованной функции f(а,b), где аргумент а известен только одному субъекту, а аргумент b другому, и ни один из них не владеет никакой информация о степени секретности параметра, известного партнеру (за исключением информации о значении функции f(а, b) и собственной конфиденциальной информации). Одна из возможных реализации такого подхода состоит в том, что два партнера могут согласованно выбрать целое число, о котором они знают, что оно является произведением двух простых чисел, но при этом ни один из них не может осуществить факторизацию этого числа без кооперации с партнером.
Еще одна проблема - это проблема выборов; в некотором смысле она аналогична предыдущей и состоит в следующем. Как могут несколько субъектов осуществить голосование с использованием ВС, вычислить исход голосования и при этом сохранить в тайне выбор каждого из субъектов.
Другая взаимосвязанная проблема - вычисления с шифрованными данными. В этом случае один из субъектов желает узнать значение функции f(х) для некоторой известной функции f и секретных данных х, но у него нет достаточных ресурсов (или знаний), чтобы вычислить эту функцию. Другой участник имеет такие возможности и желает помочь первому. Функция f называется шифрующей, если никаким способом, даже при кооперации, не удается выявить х и даже значения f(х).
Ретроспективный взгляд на современное применение криптографии завершим обсуждением одной неразрешимой проблемы, от которой существенно зависит реализация криптографического протокола. Допустим, что вами только что доказана последняя теорема Ферма. Как вы можете убедить кого-либо еще, что вы владеете таким доказательством, не раскрывая самого доказательства? Это может быть реализовано с помощью интерактивных протоколов с нулевой информацией.
Недавно было установлено, что при условии шифрования любой язык, принадлежащий классу NР, обеспечивает такой протокол. Например, должны ли вы явно указать гамильтонов цикл в заданном графе, если у вас есть возможность убедить субъекта в этом факте, не давая никакого намека, где его следует искать.
Интерактивный протокол теоретически не позволяет выявить информацию о доказательстве, но открывает возможность для передачи ошибочного доказательства, если оказывается возможным выявить криптографические механизмы в течение реального времени функционирования протокола [СНАи87].
2. Техника управления ключами
Процесс генерации ключей должен быть случайным. Хорошую аппроксимацию такого случайного процесса можно получить, используя генератор случайных чисел в комбинации с каким-либо непредсказуемым фактором, например выбором битов от показаний таймера. В качестве такого генератора псевдослучайных последовательностей ключей можно использовать DES-алгоритм, когда результат шифрования служит исходным текстом для последующего шифрования.
2.1 Накопление ключей
Секретные ключи никогда не должны записываться в явном виде на носителе, который может быть считан или скопирован. Для повышения безопасности ключ должен сопровождаться зашифрованным ключом. Такой ключ может быть вновь зашифрован и т.д. Последний ключ в этой иерархии ключей не должен шифроваться, но его следует разместить в защищенной части аппаратуры. Такой ключ будет называться главным, или мастер-ключом.
Каждый компьютер и каждый терминал в ВС должны иметь собственные мастер-ключи, устанавливаемые в соответствии с установленными процедурами предоставления доступа.
2.2 Распределение ключей
Распределение ключей между пользователями ВС реализуется двумя способами:
1. Путем создания одного или нескольких центров распределения ключей. Недостаток такого подхода состоит в том, что в центре распределения ключей известно, какие ключи кому распределены, и это позволяет читать все сообщения, передаваемые по сети. Возможные злоупотребления существенно влияют на защиту сеансов, которые используют ключи, распределяемые этим центром.
2. Прямой обмен сеансовыми ключами между субъектами сети. В этом случае проблема состоит в том, чтобы надежно удостоверить подлинность субъектов.
В обоих случаях должна быть гарантирована подлинность сеанса связи. Это можно обеспечить двумя способами:
1. Механизм запроса-ответа, который состоит в следующем. Если пользователь А желает быть уверенным, что сообщения, которые он получает от субъекта В, не являются ложными, он включает в посылаемое сообщение для В непредсказуемый элемент (запрос). При ответе субъект В должен выполнить некоторую операцию над этим элементом (например, добавить единицу), что, однако, невозможно осуществить заранее, поскольку неизвестно, какое случайное число придет в запросе. После получения результата действий В (ответ) А может быть уверен, что сеанс является подлинным.
2. Механизм отметки времени. Он подразумевает фиксацию времени для каждого сообщения; в этом случае каждый субъект сети может знать, сколь старо пришедшее сообщение, и решит не принимать его, поскольку оно может быть ложным.
В обоих случаях для защиты элемента контроля следует использовать шифрование, чтобы быть уверенным, что ответ послан не злоумышленником и штемпель отметки времени не изменен.
При использовании отметок времени возникает проблема допустимого временного интервала задержки для подтверждения подлинности сеанса. Поэтому задача управления ключами сводится к нахождению протокола распределения ключей, обеспечивающего:
- возможность отказа от центра распределения ключей;
- взаимное подтверждение подлинности участников сеанса;
- подтверждение достоверности сеанса механизмом запроса-ответа;
- использование при обмене ключами минимального числа сообщений.
Цель состоит в разработке метода, в котором после установления подлинности участники сами создают сеансовый ключ без помощи центра распределения ключей, так чтобы распределитель ключей не мог выявить содержания сообщений.