Криптографический протокол

Криптографический протокол — центральное понятие математической криптографии.

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

Пусть (A,B)(A,B)\, — пара машин Тьюринга, удовлетворяющих следующим требованиям:

  • помимо обычных лент каждой из машин (в зависимости от модели это могут быть входные, выходные, рабочие и случайные ленты), они имеют еще общую коммуникационную ленту, доступную обеим машинам AA\, и BB\, как на чтение, так и на запись;
  • перед началом работы на входных лентах машин AA\, и BB\, записаны входные слова xAx_A\, и xBx_B\, соответственно.
  • на первом шаге активна машина AA\,. Она выполняет некоторые (локальные) вычисления над своим входным словом xAx_A\,, записывает на коммуникационную ленту сообщение m1m_1\, и переходит в специальное состояние, называемое состоянием ожидания;
  • в этот момент активизируется машина BB\,, которая выполняет вычисления над своим входным словом xBx_B\, и полученным сообщением m1m_1\,, записывает на коммуникационную ленту сообщение m2m_2\, и переходит в состояние ожидания, активизируя при этом машину AA\, и т. д.

Если на входе (xA,xB)(x_A, x_B)\, обе машины AA\, и BB\, останавливаются, то пусть yAy_A\, и yBy_B\, — слова, записанные на их выходных лентах соответственно. Говорят, что пара (yA,yB)(y_A,y_B)\, является результатом выполнения протокола (A,B)(A,B)\, на входе (xA,xB)(x_A,x_B)\,. Если все взаимодействие между машинами состоит в посылке сообщения m1m_1\, от AA\, к BB\,, то такой протокол называется неинтерактивным. В противном случае протокол называется интерактивным. Количество раундов протокола (A,B)(A,B)\, — это количество сообщений, посланных машинами AA\, и BB\, друг другу. В частности, неинтерактивный протокол является однораундовым.

Машины AA\, и BB\, могут быть как детерминированными, так и вероятностными.

Задача, которую решает протокол (A,B)(A,B)\,, а именно, вычисление (yA,yB)(y_A, y_B)\, по заданным (xA,xB)(x_A, x_B)\,, является типичной для распределенных вычислений и не имеет, в таком общем виде, никакого криптографического содержания. Протокол становится криптографическим, если он решает одну из трех задач криптографии. Эти задачи состоят в обеспечении:

  • конфиденциальности;
  • целостности;
  • неотслеживаемости.

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

Протоколы бывают следующими:

  • прикладные (решают прикладные задачи)
  • примитивы (используются для построения прикладных протоколов)

ЛитератураПравить