В некоторый момент времени Алиса хочет отправить Бобу зашифрованное сообщение так, чтобы Боб смог расшифровать его не раньше установленного будущего момента времени , причем без дальнейшего участия Алисы.
Протокол осуществляется при помощи Сервиса (Time-Lapse Cryptography Service), состоящего из участников (parties) , ..., . Каждый участник Сервиса может быть предстален автономным компьютером (сервером), безошибочно и секретно выполняющим вычисления, предусмотренные протоколом, надежно хранящим все свои секретные данные, имеющим безопасный способ резервного копирования данных для аварийного восстановления. Все участники Сервиса могут приватно и секретно обмениваться информацией между собой, образуя сеть. Предполагается пороговое значение такое, что самое большее участников могут нарушить протокол, и самое меньшее участников являются надежными. Должно выполняться условие ( ), например, если , то .). Для дальнейшей эффективности, надежности и устойчивости к атакам, используется небольшая сеть из менеджеров, которые действуют как “команда управления” Сервисом. Эта управляющая команда должна создавать расписание открытых и соответствующих закрытых ключей, создаваемых Сервисом; вести внутреннюю доску объявлений для использования участниками Сервиса; вести открытую доску объявлений для пользователей Сервиса. Целостность этих досок объявлений достигается каждым менеджером, ведущим собственные копии этих двух досок объявлений. Участники и пользователи Сервиса будут смотреть на сообщения, размещенные на каждом из копий досок объявлений, и определять правильные значения большинством записей. Каждый участник Сервиса сопровождает каждое сообщение цифровой подписью. Действия всех участников протокола синхронизируются при помощи общедоступных и надежных часов таких, как предоставляемых NIST. Протокол предусматривает использование соглаcованных параметров алгоритма шифрования Эль-Гамаля: простое число , порождающий элемент простого порядка . Эти параметры можно найти, например, в документах RFC 3526 и RFC 5114.
Алиса и Боб являются пользователями (клиентами) Сервиса.
1) Алиса запрашивает или выбирает у Сервиса подходящую ключевую структуру . Ключевая структура состоит из уникального идентификатора , времени публикации , промежутка времени и открытого ключа .
2) Сервис может генерировать ключевые структуры на периодической основе; например, каждый день он может создавать ключи со сроком службы 1 неделю, или каждые 30 минут создавать ключи со сроком службы 2 часа. Такое расписание размещается менеджерами на открытой доске объявлений. Кроме того, Сервис может принимать запросы от пользователей генерировать новые ключи с заданным сроком службы; менеджеры принимают эти запросы и размещают их на открытой доске объявлений. Участники Сервиса создают ключи согласно протокола, подписывают их и опубликовывают подписанные ключевые структуры на открытой доске объявлений.
Генерация ключевых структур происходит следующим образом:
Каждый участник должен сгенерировать случайное значение . Это значение представляет собой претендента от участника на составляющую часть закрытого ключа. Получится, что закрытый ключ будет равен . Затем каждый участник должен вычислить и опубликовать на внутренней доске объявлений. Это значение представляет собой претендента от участника на составляющую часть открытого ключа. Получится, что открытый ключ будет равен .
Каждый участник должен сгенерировать случайный многочлен степени  из (т.е. сгенерировать случайную последовательность значений , , , ..., ). Составляющей частью секретного ключа является . Каждый участник должен вычислить доли секрета ( ) и проверочные значения , , ..., . Затем каждый участник отправляет всем участникам , ![$ j in [1, n]$](http://cryptoprotocols.kz/protocols/TLC/descriptionTLC/img43.png) и публикует на внутренней доске объявлений  . Теперь каждый , может проверить, что правильная доля секрета, сравнивая . (*). Если равенство (*) не выполняется, то участник выражает жалобу против . Если участник получает жалобу против себя, то он опубликовывает значение , удовлетворяющее равенству (*). Каждый участник отмечает дисквалифицированным каждого участника, который получил более жалоб или ответил на жалобу значениями, не удовлетворяющими равенству (*). Каждый участник создает множество всех не дисквалифицированных участников. Каждый участник , , вычисляет , формирует ключевую структуру и публикует на внутренней и открытой досках объявлений.
3) Алиса проверяет соответствие цифровых подписей опубликованным ключевым структурам минимум для участников и их идентичность.
4) Алиса генерирует случайное значение , вычисляет и и отправляет пару Бобу.
5) Боб получает пару и ожидает либо значение от Алисы, либо наступления момента времени .
6) При наступлении момента времени каждый участник должен опубликовать свою составляющую часть закрытого ключа на внутренней доске объявлений. Каждый участник проверяет, что у каждого из опубликованная составляющая часть удовлетворяет уравнению . Каждый участник должен опубликовать . Каждый участник вычисляет сумму и публикует на открытой доске объявлений.
7) Если Алиса отправляет Бобу значение , то Боб расшифровывает сообщение и без закрытого ключа, либо при наступлении момента времени Боб получает от Сервиса и расшифровывает сообщение : .
|