Луковичное шифрование и его применение в протоколах анонимной сети Tor

From CryptoWiki
Jump to: navigation, search

Луковичное шифрование (луковичная маршрутизация) - это способ анонимного обмена информацией с использованием компьютерной сети. В луковичной сети сообщения инкапсулируются в несколько слоев шифрования аналогично слоям лука. Зашифрованные данные передаются через набор сетевых узлов, называемых луковичными маршрутизаторами, каждый из которых “снимает” по одному уровню шифрования, получая информацию о том, какому узлу необходимо дальше послать полученные данные. Сообщение прибыло в пункт своего назначения, когда был расшифрован последний слой шифрования. Отправитель сохраняет свою анонимность, так как промежуточные узлы имеют информацию только о непосредственно предшествующим и последующим узлах.

Contents

Предпосылки

Использование коммутируемой сети связи не должно автоматически влечь за собой раскрытие информации о том, кто общается с кем. Луковичная маршрутизация является гибкой инфраструктурой коммуникаций, которая устойчива как к подслушиванию, так и к анализу трафика. Луковичная маршрутизация достигает этой цели за счет отделения идентификации от маршрутизации. Устанавливаемые соединения всегда анонимны, но коммуникациям быть анонимными не обязательно. Обмен информацией может быть анонимным за счет удаления идентифицирующей информации из потока данных. Луковичная маршрутизация может быть использована широким набором различных интернет приложений без каких-либо модификаций за счет использования прокси-серверов (неинвазивная процедура) или за счет изменения стека сетевых протоколов на конкретной машине, которая будет подключена к сети (умеренно или высоко-инвазивная процедура).

Анализ сетевого трафика может быть использован для установления участников коммуникации в публичной сети. Например, в сетях с коммутацией пакетов у каждого пакета есть заголовок для маршрутизации и полезная нагрузка, содержащая пользовательские данные. Заголовок, который должен быть виден сети (и наблюдающим за сетью злоумышленникам), содержит отправителя и получателя пакета. Даже если бы заголовок был каким-то образом скрыт, пакет все равно можно отследить, пока он перемещается по сети. Шифрование пользовательских данных также неэффективно, так как целью анализа трафика является установление личностей участников обмена информацией, а не (по крайней мере, не напрямую) установление содержания сообщений. Эффективность и доступность публичного интернета являются сильными мотиваторами для компаний использовать интернет вместо внутренних интранетов. Однако такие компании могут хотеть защитить свои интересы. Например, исследователь, использующий интернет, может ожидать, что объекты его исследования останутся известны только ему, или существование сотрудничества между некоторыми компаниями останется конфиденциальным. Частные лица тоже могут нуждаться в защите своей частной жизни. Личности участников обмена электронными сообщениями должны быть известны только самим участникам. Человек, совершающий покупки в интернете может не хотеть, чтобы его история навигации кем-то отслеживалась. И совершенно точно во время траты электронной валюты, имеются ожидания, что источник транзакции не может быть отслежен.

Изначально прототипы луковичной маршрутизации были разработаны на Sun Solaris 2.5.1/2.6. Прототип включал в себя набор прокси-серверов для анонимного веб-браузинга, удаленного подключения и анонимизация самих прокси-серверов, которые удаляют идентифицирующую информацию из потока данных. Мотивацией для разработки луковичной маршрутизации является не само предоставление анонимного способа коммуникации, а разделение идентификации и маршрутизации. Приложения и пользователи могут раскрывать свои личности друг другу, но использование публичной сети не должно автоматически приводить к раскрытию личностей участников коммуникации третьим лицам.

Проблема анализа трафика

Письма, отправленные по почте, обычно помещаются в конверт, который помечается адресами отправителя и получателя. Мы доверяем почтальонам, что они не будут заглядывать в содержимое конверта, так как оно является приватным. Кроме того, мы доверяем почте, что никто не будет отслеживать, кто кому посылает письма, потому что такая информация также является частной.

Два этих типа конфиденциальной информации, содержимое конверта и адреса на конверте, также являются актуальными для коммуникации через интернет. Так же, как и почтовые, электронные сообщения путешествуют в электронных конвертах, и защита конфиденциальности этих сообщений требует защиты содержимого этих конвертов и адресов на них. Несмотря на то, что участникам общения обычно известны личности друг друга, использование публичных сетей не должно влечь за собой раскрытия личностей участников и содержимого их коммуникации третьим лицам. Первая проблема - это анализ трафика, вторая - подслушивание.

Путем затруднения анализа трафика и подслушивания конфиденциальность коммуникаций может быть защищена. Но что насчет анонимности? Могут ли две стороны общаться, если одна из них или обе хотят скрыть свою личность от другой? Если содержимое электронного конверта останется тайным и адреса на конверте также спрятаны, то любая идентифицирующая информация может быть только внутри конверта. Таким образом, для анонимной коммуникации необходимо удалить идентифицирующую информацию из содержимого конверта. Эти цели кажутся недостижимыми: действительно ли можно сохранить содержимое конверта конфиденциальным? Как письмо может достичь адресата, если его адрес спрятан? Могут две стороны общаться без раскрытия своих личностей друг другу? Может ли всё это быть достигнуто без упования на третью сторону, которой придется доверять, что она не будет запоминать адреса или открывать конверты?

Луковичная маршрутизация использует набор хорошо известных сетевых и криптографических методов для защиты как конфиденциальности, так и анонимности связи через интернет от прослушивания и анализа трафика. Луковичное шифрование широко применяется в различных интернет приложениях для обеспечения конфиденциальности и анонимности связи.

Луковичная маршрутизация

Если защитить канал связи от прослушивания и анализа трафика, и убрать идентифицирующую информацию из потока данных, можно добиться конфиденциальной и анонимной связи. Луковичное шифрование обеспечивает соединения сокетов, которые устойчивы как к прослушиванию, так и к анализу трафика. Конфиденциальность данных соединений перенесена ниже уровня приложений и сделана независимой от приложений. Стандартные интернет приложения могут использовать эти анонимные соединения путем использования прокси-серверов. Принцип работы луковичной маршрутизации заключается в следующем: приложение, вместо открытия соединения напрямую к машине получателя, открывает соединения к луковичному прокси-серверу. Этот прокси сервер создает анонимное соединение через набор других луковичных маршрутизаторов к получателю. Каждый луковичный маршрутизатор имеют информацию только о своих соседних маршрутизаторах по пути следования информации. Перед отправлением данных по анонимному соединению первый маршрутизатор добавляет по одному уровню шифрования для каждого маршрутизатора по пути следования. В процессе передачи данных по анонимному соединению каждый маршрутизатор снимает один уровень шифрования, таким образом, данные в итоге прибывают в открытом виде. При передвижении данных в обратную сторону это наслоение шифрования происходит в обратном порядке. Данные, передаваемые по анонимному соединению, кажутся разными для каждого луковичного маршрутизатора и, таким образом, не могут быть отслежены в процессе перемещения, и скомпрометированные маршрутизаторы не смогут помочь злоумышленникам. После разрыва соединения вся информация об этом соединения удаляется на всех луковичных маршрутизаторах.

Пользователи могут также использовать луковичную маршрутизацию более инвазивным способом. Новый уровень внедряется в стек сетевых протоколов TCP/IP, который перенаправляет весь TCP трафик через луковичную маршрутизацию. Этот способ не реализован для Tor, так как он идет в разрез с простотой использования (отсутствие необходимости быть суперюзером для установки и использования Tor) и независимостью от платформы. В первом поколении луковичной маршрутизации это было возможно путем использования перенаправителя NRaD (для Windows 95/NT). Эта программа прозрачно направляла TCP/IP соединения через сеть луковичных маршрутизаторов. Исследование подобных методов, сочетающих в себе простоту использования, совместимость и возможность развертывания, которые являются целями луковичной маршрутизации, еще продолжаются.

Луковичная маршрутизация отличается от других способов сохранения анонимности тремя особенностями: коммуникация происходит в реальном времени и является двунаправленной; анонимные соединения не зависят от приложений; и нет централизованной доверенной стороны. Приложения могут выбрать сами, идентифицировать их пользователей через анонимное соединение или нет. Однако использование публичных коммутируемых сетей не должно автоматически раскрывать участников общения.

Tor

Tor - это распределенная оверлейная сеть, созданная, чтобы анонимизировать приложения, использующие TCP соединения с низкой задержкой, такие как веб-браузер, secure shell, обмен мгновенными сообщениями. Клиенты выбирают путь через сеть и создают так называемую “цепь” (circuit), в которой каждый узел (луковичный маршрутизатор) на пути знает только предыдущий и последующий узел пути, но не другие узлы цепи. Трафик, проходящий по цепи, отправляется в так называемых “ячейках” (cells) фиксированного размера, с которых снимаются уровни шифрования с использованием симметричных ключей на каждом узле, и которые затем отправляются дальше.

Пользователи могут использовать луковичные прокси-сервера, чтобы получить доступ к сети Tor. Луковичные маршрутизаторы поддерживают соединения с использованием TLS между собой, и луковичные прокси-сервера подключаются к сети путем установления TLS соединения с одним или несколькими луковичными маршрутизаторами. Все одноранговые коммуникации осуществляются через эти TLS соединения. Цель данной сети заключается в том, чтобы не дать третьим лицам или участвующим узлам связать отправителя сообщения с получателем.

Пользовательские данные передаются по фиксированным цепям. Цепь - это путь внутри сети Tor, состоящий из двух или более луковичных маршрутизаторов (по умолчанию - три). В начале цепи находится луковичный прокси-сервер, который передает данные по цепи; в сети Tor луковичный прокси-сервер не считается частью цепи. Выходным узлом является луковичный маршрутизатор, ответственный за доставление пользовательских данных предполагаемому получателю (который может находиться за пределами сети). По умолчанию последний узел цепи выполняет роль выходного узла, однако другие узлы также могут выполнять роль выходного узла; такая характеристика носит название “негерметичные трубы” (leaky pipes). Подобные переменные выходные узлы поддерживаются в Tor за счет того, что несколько потоков данных могут проходить через одну цепь. Для упрощения дальнейшего материала в качестве выходного узла будет рассматриваться последний узел цепи.

Создание цепей

Луковичный прокси-сервер отвечает за создание цепей. С этой целью прокси-сервер выбирает последовательность луковичных маршрутизаторов, в которую каждый узел входит только один раз. Прокси-сервер последовательно устанавливает симметричные ключи с каждым из маршрутизаторов, используя протокол расширения цепи (circuit extend protocol): на каждом шаге цепь расширяется на один узел телескопическим способом так, что установления ключа с i+1 узлом в цепи проходит через текущую частичную цепь, в которой i-ый узел временно выступает в роли выходного узла. Установление цепи в сети Tor позволяет создавать двусторонний канал связи между луковичным прокси-сервером и выходным узлом. Как только цепь установлена, луковичный прокси-сервер имеет по одному симметричному ключу с каждым узлом в этой цепи. Более того, каждый луковичный маршрутизатор обменивается с каждым смежным узлом в цепи уникальными идентификаторами, которые будут использоваться только в этой цепи. Затем луковичный прокси-сервер использует установленную цепь для того, чтобы дать указания выходному узлу о том, по какому адресу и порту необходимо установить TCP соединение.

Передача данных

Данные, которые предназначаются для передачи через установленное соединение, инкапсулируются в реляционные ячейки (relay cells), и реляционный протокол (relay protocol) защищает каждую ячейку с помощью контрольной суммы и нескольких уровней шифрования: луковичный прокси-сервер добавляет по одному уровню шифрования (AES в режиме счетчика с длиной ключа 128 бит) для каждого луковичного маршрутизатора в цепи. После получения реляционной ячейки луковичный маршрутизатор находит соответствующий идентификатор цепи, которой принадлежит ячейка и использует соответствующий ключ, чтобы убрать один уровень шифрования. Если ячейка направляется от луковичного прокси-сервера, луковичный маршрутизатор проверяет контрольную сумму получившейся ячейки. Контрольная сумма состоит из двух нулевых байт и четырех байт однонаправленной функции с ключом от передаваемых данных. Если проверка пройдена, значит, эта реляционная ячейка направлена этому луковичному маршрутизатору (каждый узел цепи может быть выходным узлом). В противном случае маршрутизатор находит идентификаторы цепи и следующего узла для передачи данных в цепи, заменяет идентификатор цепи и передает реляционную ячейку следующему маршрутизатору в цепи. Если маршрутизатор в конце цепи получил неопознанную реляционную ячейку, происходит ошибка и цепь уничтожается. Луковичный прокси-сервер схожим образом обрабатывает входящие реляционные ячейки: он итеративно удаляет по одному уровню шифрования для каждого маршрутизатора в цепи, начиная с самого ближайшего и заканчивая самым дальним. Если в какой-то момент контрольная сумма оказывается верной, значит ячейка была отправлена маршрутизатором, чей уровень шифрования только что был удален.

Ячейки

В сети Tor все данные, которыми обмениваются узлы, инкапсулированы в ячейки. В большинстве случаев ячейки имеют фиксированный размер. В версии 4 и выше фиксированный размер ячеек равен 514 байтам (512 байт для версий, ниже 4), и ячейки состоят из заголовка и полезной нагрузки. Заголовок состоит из поля идентификатора (id) цепи (размером 4 байта) и однобайтового поля команды (cmd), которое указывает, что необходимо сделать с полезной нагрузкой ячейки. Идентификаторы цепи привязаны к соответствующим соединениям, то есть, в процессе перемещения ячейки по цепи он будет иметь разные идентификаторы для каждого соединения между маршрутизаторами, через которые она проходит. Переносимые ячейкой данные защищены с помощью луковичного шифрования, при котором каждая ячейка дополнительно зашифрована с использованием TLS в процессе передачи между маршрутизаторами. В зависимости от значения поля команды в заголовке ячейки делятся на контрольные ячейки, которые интерпретируются узлом, которому они приходят, и реляционные ячейки, которые переносят сквозной поток данных. Контрольные ячейки используются для того, чтобы создавать, поддерживать и уничтожать цепочки. Реляционные ячейки имеют дополнительный реляционный заголовок, находящийся перед полезной нагрузкой и состоящий из двухбайтового идентификатора потока, шестибайтной контрольной суммы, двухбайтового поля для длины и однобайтное поле для реляционной команды. Идентификатор потока позволяет передавать несколько потоков данных по одной цепи. Контрольная сумма используется луковичными маршрутизаторами для того, чтобы определить предназначена ли ячейка для этого маршрутизатора. Поле длины показывает длину в байтах полезной нагрузки, которую необходимо ретранслировать. Луковичный прокси сервер обменивается реляционными командами с выходным узлом, чтобы поддерживать TCP соединения. Например, чтобы передать выходному узлу команду об открытии TCP соединения по указанному в теле реляционной ячейки адресу.

Моделирование луковичного шифрования

Представленная модель абстрагирует некоторые аспекты, имеющие большое значение в реальной жизни (например, распределение ключей и анализ трафика), но являющиеся в некоторой степени ортогональными криптографической составляющей проблемы. В рамках модели рассматриваются два типа ролей, соответствующие луковичным прокси-серверам и луковичным маршрутизаторам в Tor. Луковичные маршрутизаторы и прокси-серверы моделируются вершинами в (ориентированном) графе, в котором ребрам соответствуют прямые коммуникации. В данной модели имеется предположение, что дугам соответствуют независимые однонаправленные безопасные каналы, а граф является полным ориентированным, что позволяет любой стороне безопасно (но не анонимно) коммуницировать напрямую с любой другой стороной. Все участники имеют публичные уникальные идентификаторы и могут играть роль прокси-сервера или маршрутизатора. Как и в Tor, луковичные прокси-серверы ответственны за инициализацию цепей и шифрование сообщений. Цепь состоит из луковичного прокси-сервера и пути p по графу луковичных маршрутизаторов. Этот путь не может содержать циклов и его длина обозначается L. Цепь представлена в виде вектора узлов p[1], . . . , p[L], где p[0] обозначает прокси-сервер.

В каждой цепи терминами отправляющий узел, получающий узел и перенаправляющий узел обозначаются соответственно луковичный прокси-сервер, последний узел пути p[L] и промежуточные узлы p[1], . . . , p[L-1] на пути. Прокси-серверы и маршрутизаторы имеют свой вектор состояний, содержащий состояние для каждой цепи, в которую они входят. Прокси-серверы используют своё состояние для зашифрования и знают, по какой цепи будет отправлена зашифрованная ячейка. Маршрутизаторы при получении ячейки сначала определяют, к какой цепи она относится. Соответственно расшифрование разделено на два этапа D1 и D2, где D1 отвечает за определение соответствующей цепи и D2 отвечает за обработку ячейки. Идентификатор отправителя ячейки может быть использован для идентификации цепи, но не обязательно уникально, так как несколько цепей могут проходить по одной дуге. Узел хранит свои индивидуальные состояния расшифрования в двух отдельных векторах состояний τ1 и τ2, соответственно для D1 и D2. Каждый раз при создании новой цепи каждый получающий и перенаправляющий узлы добавляют новую компоненту к своим векторам состояний τ1 и τ2.

Луковичное шифрование

Схема (симметричного) луковичного шифрования OEformula.png - это набор из четырех алгоритмов, для которых определено пространство сообщений MsgSpc.png и пространство ячеек CelSpc.png.

  • Алгоритм создания цепей с состояниями G является абстракцией того, как создаются цепи (в реальности этот процесс является интерактивным). Этот алгоритм принимает на вход путь p, в котором не должно быть петли (нельзя использовать один и тот же маршрутизатор несколько раз), и включает в себя прокси-сервер p[0]. Алгоритм обновляет своё внутреннее состояние % (изначально равное ε) и возвращает изначальное состояние шифрования σ (передаваемое p[0]) и два вектора t1 и t2, состоящие из изначальных компонент состояний расшифрования, каждая компонента векторов соответствует одному маршрутизатору на пути, то есть, T1t2p.png. При получении соответствующих элементов t1 и t2 маршрутизаторы добавляют эти значения к паре своих состояний расшифрования (τ1 , τ2). Таким образом, если Pabcde.png, индивидуальные состояния расшифрования обновляются в следующем порядке τ1b.append(t1[1]), τ2b.append(t2[1]), . . . , τ1e.append(t1[4]), τ2e.append(t2[4]). Схожим образом обновляется вектор состояния расшифрования прокси-сервера: σa.append(σ).
  • Алгоритм E используется прокси-сервером для отправления сообщения по одной из цепей. Имея текущее состояние зашифрования σ[w] для цепи, локально обозначенной w, и сообщение MMsgSp.png, алгоритм обновляет состояние зашифрования и возвращает начальную ячейку CClSp.png вместе с идентификатором d для маршрутизатора, которому будет перенаправлена ячейка.
  • Детерминированные алгоритмы D1 и D2 вместе отвечают за обработку входящей ячейки маршрутизатором. На первом этапе алгоритм D1 устанавливает, какой цепи принадлежит входящая ячейка c, при этом алгоритм также может использовать идентификатор узла s, от которого была получена данная ячейка. Кроме того алгоритм D1 принимает на вход первое состояние расшифрования текущего узла τ1, но не может его изменить. Алгоритм возвращает локальный индекс w, который показывает, с какой цепью была ассоциирована ячейка, и, таким образом, какой компонент второго вектора состояния расшифрования τ2 следует использовать для обработки ячейки алгоритмом D2. Символ ⊥ означает, что для ячейки не была найдена соответствующая цепочка. На втором этапе алгоритм D2 берет в качестве входных параметров компоненту состояния τ2[w] вместе с узлом, от которого была получена ячейка, и саму ячейку. Алгоритм может обновлять компоненту состояния расшифрования (но никакую другую часть состояния) и возвращает выходную строку x и узел назначения d. Значение d указывает на узел, которому будет передана строка x, где XClSp.png. Если d = {}, то маршрутизатор понимает, что сообщение предназначается именно ему, в этом случае XMsgBot.png.

Корректность

Рисунок 1 - Игра TRANSMIT, используемая для определения корректности схемы луковичного шифрования

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

Корректность формулируется через игру (см. Рис. 1), в которой планировщику разрешается создавать цепи, выбирать сообщения, отправляемые узлами, и определять порядок, в котором отдельные маршрутизаторы обрабатывают ячейки в разных цепях. Переупорядочение ячеек, принадлежащих разным цепям, моделирует непредсказуемость задержек в физической сети, а также (ограниченную) свободу маршрутизатора смешивать обработку ячеек для затруднения анализа трафика. Планировщик, однако, не может изменять ячейки.

Конкретно, для каждого канала i поддерживается список mi сообщений, отправляемых через этот канал (используя ENC), и осуществляется проверка на конце маршрутизатора (PASS), поступают ли сообщения в правильном порядке (счетчик ctri указывает следующее сообщение на mi, которое должно быть получено). Более того, для каждой цепи i и каждого из |pi| маршрутизаторов на своем пути (считаются с помощью j), поддерживается очередь Qij для отслеживания ячеек, ожидающих обработки этим маршрутизатором. Таким образом, пересылка ячейки маршрутизатором приводит к её извлечению из очереди для текущего маршрутизатора и цепи и постановке в очередь для последующего маршрутизатора.

Определение 1 (Корректность). Схема луковичного шифрования OE называется корректной, если для всех алгоритмов планирования S (включая вычислительно неограниченные) справедливо следующее:

Transmit.png

где игра TRANSMIT представлена на рисунке 1.

Целостность

Рисунок 2 - Игра PINT, используется для определения целостности открытого текста для схемы луковичного шифрования.

Целостность открытого текста. Целостность открытого текста гарантирует, что даже в присутствии злоумышленника с почти полным знанием всех состояний и полным контролем над сетью честный принимающий узел может быть уверен в том, что полученные им сообщения соответствуют отправляемым сообщениям (при условии, что отправляющий узел не был скомпрометирован). Это отражает неспособность злоумышленника добавлять, изменять, переупорядочивать или воспроизводить сообщения.

Игра PINT (рисунок 2) моделирует целостность открытого текста. Для каждой цепи с честным прокси мы поддерживаем список mi, чтобы проверить, поступают ли сообщения без изменений и в правильном порядке к честному получателю. Оракул PROC (s, v, c) моделирует обработку узла v ячейки c, полученной от s.

Аналогично игре на корректность, счетчик ctrn указывает следующее сообщение на mn, которое должно быть получено. Как и при определении целостности открытого текста для обычных каналов, если честный получатель принимает сообщение, которое не было отправлено (в таком порядке), побеждает противник. Кроме того - и эта концепция является уникальной для сетей маршрутизации - если промежуточный маршрутизатор переадресации полагает, что ячейка содержит действительное сообщение, предназначенное для него, противник побеждает. Эта победа является следствием выбора не допускать «негерметичных труб».

Также стоит обратить внимание, что индексация несуществующего векторного компонента возвращает специальный символ вне набора {0, 1}. То есть для любого вектора m и любого k> 0, если Mt.png, то Mtk.png. В частности, если схема луковичного шифрования допускает «фиктивные» ячейки, которые расшифровываются в пустую строку, злоумышленник, способный подделать такую фиктивную ячейку, считается успешным в игре PINT.

Определение 2. Преимущество противника А в игре на целостность открытого текста против OE определяется:

Def2.png

где игра PINT приведена на рисунке 2.

Конфиденциальность

Рисунок 3 - Игра LOR, используемая для определения неразличимости влево или вправо для схем луковичного шифрования

Конфиденциальность гарантирует, что злоумышленник не получит знаний о содержимом сообщений, отправляемых по цепи, при условии, что и принимающий, и отправляющий узлы не будут скомпрометированы. В противном случае злоумышленник может иметь полное знание всех состояний (кроме%) и полный контроль над сетью. Как обычно для конфиденциальности, можно рассмотреть как пассивный вариант CPA(Chosen Plaintext Attack), так и активный вариант CCA(Chosen Ciphertext Attack). Приведенная игра (рисунок 3) представляет Chosen Cell Attacks (Атаки по выбранным ячейкам).

Списки mi такие же, как и раньше, хотя, поскольку рассматриваем понятие «влево или вправо», они будут содержать либо все «левые», либо все «правые» сообщения. Оракул PROC играет роль оракула расшифрования, что может привести к тривиальным победам, если злоумышленнику будет разрешено узнать результат расшифрования последней ячейки. Пока принимающий маршрутизатор синхронизирован с прокси-сервером, сообщение, которое должно быть выведено, будет подавлено злоумышленником (путем возврата вместо него специального символа "молния"). Как только отклоняется одно сообщение (которое включает в себя символ ошибки ⊥), принимающий узел считается несинхронизированным и впредь его выход больше не будет подавляться. Промежуточные узлы считаются несинхронизированным с самого начала, поэтому их вывод никогда не будет подавлен.

Определение 3. Преимущество противника А в игре на конфиденциальность открытого текста против OE определяется:

Def3.png

где игра LOR показана на рисунке 3.


Глоссарий

Список литературы

Перейти к списку литературы

Вернуться к оглавлению

Стуканов А.А., 2019