Сетевое кодирование

УДК 517.9

Э.М. Габидулин, Н.И. Пилипчук, А.И. Колыбельников, А.В. Уривский,

С.М. Владимиров, А.А. Григорьев

Московский физико-технический институт

Сетевое кодирование

Представлен аналитический обзор основных работ по сетевому кодированию. Рассмотрены принципы сетевого кодирования и разработанные к настоящему времени методы представления и передачи информации в сети. Отдельное внимание уделено новому перспективному методу подпространственного случайного сетевого кодирования. Основы этого метода разработаны Кёттером, Кшишангом и Силвой; авторы существенным образом использовали развитую Габидулиным теорию ранговых кодов. Рассмотрены вопросы обеспечения информационной безопасности в сетях. Приведены модели искажений и нарушения конфиденциальности информации. Показано, что известные низкоплотностные коды позволяют решить некоторые важные задачи, возникающие при реализации сетевого кодирования. Определена роль пространственно-временного кодирования в беспроводных сетях с кооперированием.

Ключевые слова: сеть связи, кодирование, декодирование, передача информации, защита информации, криптоаналитик, конечное поле, пространство, подпространство.

I. Введение

Сетевое кодирование основано на относительно простой модификации модели информационного потока в обычной сети связи. С формальной точки зрения сеть связи можно описать как конечный направленный граф, в котором узлы могут быть соединены одним ребром или несколькими ребрами. Ребра соответствуют каналам связи и помечены числами, означающими пропускную способность соответствующего канала. Узел, у которого нет входных рёбер, называется узлом-источником. Узел, у которого нет выходных рёбер, называется узлом-получателем. Остальные узлы называются внутренними узлами. Рассматривается следующая модель. Сеть связи состоит из узлов, соединённых между собой каналами (линиями) связи. Информация передается по линии без искажений в пределах пропускной способности канала. Данные от узла-источника должны быть переданы заранее заданному набору узлов-получателей. Возникает естественный вопрос: можно ли решить эту задачу при заданных ограничениях на каналы связи и если «да», то как это сделать наиболее эффективно?

В существующих компьютерных сетях передача сообщений (пакетов) от источни-

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

Однако сравнительно недавно в работах [1,2] было показано, что методами «сетевого кодирования» можно получить лучшие результаты, чем традиционными методами. Это тема представляет большой интерес для исследователей, о чем свидетельствует быстро нарастающий поток публикаций [3-30].

В частности, в работе [10] популярно показано, что поднять производительность сети можно без радикальных изменений в инфраструктуре. Можно достичь этого за счёт сетевого кодирования, которое особенно эффективно при многоадресной передаче. Здесь же приведена следующая важная теорема.

Теорема. Предположим, что скорость передачи сообщений в сети такова, что лю-

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

II. Принципы сетевого кодирования

В этом разделе объясняются принципы сетевого кодирования и разработанные к настоящему времени методы представления и передачи информации в сети.

Для реализации сетевого кодирования необходимо, чтобы каждый узел сети имел возможность вычислять линейные комбинации входящих пакетов и передавать их дальше. Это позволяет потенциально увеличить пропускную способность и сделать работу сети более устойчивой. Покажем это на примерах, заимствованных из работ [3, 4].

Рис. 1. Сеть «Бабочка-1»

Важным параметром узлов-источников сети является их пропускная способность, то есть максимальное число пакетов, которое может быть передано узлу-получателю за единицу времени. Если пакеты предназначены нескольким узлам-получателям, то временем передачи считается минимальное время, за которое все узлы-получатели получают все пакеты. При заданном протоколе передачи од-

ни получатели могут принять все пакеты быстрее, чем другие.

Рассмотрим конкретный пример.

На рис. 1 приведён направленный граф сети «Бабочка-1», состоящий из узла-источника S, четырёх промежуточных узлов А, В, С, Ю и двух узлов-получателей Яі, Я2. Ребра графа (каналы связи) имеют пропускную способность 1 пакет/кадр. Узлы С и Ю соединены двумя ребрами.

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

Источник Б имеет два пакета Хі и Х2. Задача: доставить эти пакеты получателям за наименьшее число кадров. Проанализируем оптимальный протокол для решения этой задачи.

(в) Кадр 3 (г) Кадр 4

Рис. 2. Протокол для сети «Бабочка-1»

Во время кадра 1 (рис. 2а) источник Б передает пакет Х\ узлу А, а пакет Х2 — узлу В. Сам источник переданные пакеты не сохраняет.

Во время кадра 2 (рис. 2б) узел А передает копии пакета Х1 узлу С и получателю Я1. Узел В передает копии пакета Х2 узлу С и получателю Я2. Узлы А и В не сохраняют копии переданных пакетов.

Во время кадра 3 (рис. 2в) узел С передает пакеты Хх и Х2 узлу Ю по двум линиям. Узел С не сохраняет копии переданных пакетов. В то же время получатель Ях хранит пакет Хх, а получатель Я2 хранит пакет Х2.

Во время кадра 4 (рис. 2г) узел Ю передает пакет Хх получателю Ях, а пакет

Х2 — получателю Я2. По окончании передачи пакеты Хх и Х2 доставлены обоим получателям. Задача решена.

Таким образом, традиционным методом в сети за 4 кадра доставлены 2 пакета двум получателям. С точки зрения каждого получателя скорость передачи равна

0,5 пакет/кадр. С точки зрения источника скорость передачи равна 1 пакет/кадр, так как в общей сложности получатели получили 4 пакета за 4 кадра.

Если в сети удаляется одна или несколько линий связи, то пропускная способность от источника до потребителей, вообще говоря, уменьшается. Рассмотрим для примера сеть «Бабочка-2» (рис. 3а), полученную из сети «Бабочка-1» удалением одной линии связи между узлами С и Ю. Протокол передачи для этой сети приведён на рис. 3.

(д) Кадр 4 (с) Кадр 5

Рис. 3. Протокол для сети «Бабочка-2»

Первые 2 кадра совпадают с соответствующими кадрами сети «Бабочка-1».

Во время кадра 1 (рис. 3б) источник Б передает пакет Хх узлу А, а пакет Х2 — узлу В. Сам источник переданные пакеты не сохраняет.

Во время кадра 2 (рис. 3в) узел А передает копии пакета Х1 узлу С и получателю Я1. Узел В передает копии пакета Х2 узлу С и получателю Я2. Узлы А и В не сохраняют копии переданных пакетов.

В кадре 3 (рис. 3г) узел С передает узлу Ю только один пакет (выбран Х1). Другой пакет Х2 хранится в узле С до следующего кадра. Получатели Ях и Я2 хранят соответственно пакеты Хх и Х2, полученные в кадре 2.

В кадре 4 (рис. 3д) узел С передает узлу Ю пакет Х2, а узел Ю передает получателю Я2 пакет Х1. По окончании этого кадра получатель Я2 уже имеет оба пакета Хх и Х2, однако получатель Ях имеет только пакет Х1.

Только в кадре 5 (рис. 3е) узел Ю передает получателю Ях пакет Х2.

Таким образом, традиционным методом в сети «Бабочка-2» за 5 кадров доставлены 2 пакета двум получателям. С точки зрения каждого получателя скорость передачи равна 0.4 пакет/кадр. С точки зрения источника скорость передачи равна 0,8 пакет/кадр, так как в общей сложности получатели получили 4 пакета за 5 кадров.

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

В сетях с кодированием при одинаковой конфигурации пропускная способность будет больше, чем в сетях без кодирования. Для примера снова рассмотрим сеть «Бабочка-2», но на этот раз будем предполагать, что в узле С можно перед передачей суммировать пакеты по модулю

2. Протокол передачи для этой сети представлен на рис. 4.

(а) Сеть “Бабочка-2" с кодированием

(б) Кадр 1

Х1 хранение Х2 хранение 1*2 1?1 Х,=Х2@{Х,Х]) К2

(г) Кадр 3

(д) Кадр 4

Рис. 4. Протокол для сети «Бабочка-2» с кодированием

Первые два кадра совпадают с соответствующими кадрами сети без кодирования.

Во время кадра 1 (рис. 4б) источник Б передает пакет Х1 узлу А, а пакет Х2 — узлу В. Сам источник переданные пакеты не сохраняет.

Во время кадра 2 (рис. 4в) узел А передает копии пакета Х1 узлу С и получателю Я1 . Узел В передает копии пакета Х2 узлу С и получателю Я2. Узлы А и В не сохраняют копии переданных пакетов.

Однако в кадре 3 (рис. 4г) узел С перед передачей вычисляет пакет Хх  Х2 и именно его передает узлу Ю. Копии этого пакета и пакетов Хх, Х2 после передачи не сохраняются. По окончании кадра 3 узел Ю имеет пакет Хх  Х2 для передачи в следующем кадре, а получатели Ях, Я2 хранят соответственно пакеты Хх и Х2.

В кадре 4 (рис. 4д) узел Ю пересылает обоим получателям Ях, Я2 пакет Хх  Х2. По окончании кадра 4 получатель Я1 имеет пакеты Х1 и Х1  Х2 и вычисляет пакет

Х2 по правилу Х2 = Х1  (Х1  Х2). Аналогично, получатель Я2 имеет пакеты Х2 и Х1  Х2 и вычисляет пакет Х1 по правилу Х1 = Х1  (Х1  Х2).

Таким образом, кодирование в сети «Бабочка-2» дало возможность доставить 2 пакета двум получателям за 4 кадра, а не за 5, как это было в сети без кодирования.

Принцип сетевого кодирования применим и в беспроводных сетях. Пусть, например, источники А и В желают переслать друг другу пакеты Х1 и Х2 соответственно. Мощности их передатчиков недостаточны для прямой связи, поэтому передача происходит через базовую станцию (ретранслятор) Т. Предполагается, что в каждый временной отрезок каждый из узлов может либо принимать, либо передавать сообщение, то есть система является полудуплексной.

Ретранслятор

Рис. 5. Беспроводная сеть без кодирования

Для беспроводной сети без кодирования (рис. 5) протокол передачи выглядит следующим образом. В кадре 1 источник А передает пакет Х^_ ретранслятору Т. Источник В в это время хранит молчание. В кадре 2 ретранслятор переизлучает принятый пакет Х1. Этот сигнал принимают все узлы в зоне действия базовой станции, в том числе и адресат В. Источник А также может его принять, хотя у него и без этого хранится собственная копия пакета

Х1 . В кадре 3 источник В передает свой пакет Х2, который принимается ретранслятором Т. Источник А в это время хранит молчание. В кадре 4 ретранслятор пе-реизлучает принятый пакет Х2. Его могут принять все узлы в зоне действия базовой

станции, в том числе и источник А. Таким образом, в сети без кодирования для обмена сообщениями источникам А и В необходимо 4 кадра.

В проводной сети с кодированием (рис. 6) предполагается, что базовая станция Т может хранить пакеты и образовывать их линейные комбинации. В кадре

1 источник А передает свой пакет Х1 ретранслятору Т . Источник В в это время хранит молчание. В кадре 2 источник В передает свой пакет Х2 ретранслятору Т . Источник А в это время хранит молчание. В кадре 3 базовая станция образует сумму по модулю 2 принятых пакетов и излучает пакет Х\  Х2. Источники А и В принимают этот пакет и вычисляют соответственно Х2 = Х1  (Х1  Х2) на стороне А и

Х1 = Х2  (Х1  Х2) на стороне В. Таким образом, в сети с кодированием для обмена сообщениями источникам А и В необходимо только 3 кадра. Экономия ресурсов состоит в том, что ретранслятору нет необходимости дважды передавать сообщения — сначала Х1, потом Х2. Достаточно образовать сумму Х1  Х2 и ретранслировать в оба пункта А и В одновременно.

Источник

Ретранслятор

Кадр 3 (А '

Источник

Ретранслятор

Рис. 6. Беспроводная сеть с кодированием

Рассмотрим сеть без кодирования, приведённую на рис. 7а. Источник А посылает получателю Ю пакеты Х\ и Х2. Пакет Х\ передается по маршруту АВ ^ ВЮ, а пакет Х2 — по маршруту АС ^ СЮ. Предположим, что имеется третья сторона — криптоаналитик К, который имеет возможность подключиться к одному из каналов и прочитать (подслушать) сообщение. В приведённом варианте он всегда добивается успеха.

(б) Сеть без кодирования

Рис. 7. Перемешивание потоков

В сети с кодированием (рис. 7б) источник А посылает получателю Ю линейные комбинации пакетов Х\ и Х2. По маршруту АВ ^ ВЮ передается пакет а\Х\ + + а2Х2, а по маршруту АС ^ СЮ — пакет в\Х\ + в2Х2. Коэффициенты а\, а2, (3\, в2 известны получателю, так что он находит пакеты Х1 и Х2 из принятых линейных комбинаций. Криптоаналитик К не знает этих коэффициентов, поэтому перехват одной из линейных комбинаций не даёт ему возможности определить каждый из пакетов Х1 и Х2.

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

III. Подпространственное кодирование

В этом разделе приведём аналитический обзор основных работ по подпро-странственному кодированию в сетях связи. Основы метода, названного случайным сетевым кодированием, разработаны

Кёттером, Кшишангом и Силвой в работах [5-8], где авторы существенным образом использовали теорию рангового кодирования Габидулина [31-37].

Здесь же приведём конструкции под-пространственных кодов для сетей Габиду-лина и Боссерта [9, 11], Габидулина и Пи-липчук [12], которые являются продолжением исследований в направлении темы сетевого кодирования.

Предварительно введём основные определения и обозначения. Пусть W^,q — некоторое фиксированное N-мерное векторное пространство над конечным полем Fq, P (WN,q) — множество всех подпространств в N-мерном пространстве WN,q; m-мерное подпространство V состоит из qm векторов длины N над базовым полем Fq. Его можно рассматривать как подпространство, натянутое на строки матрицы M(V) размера nxN ранга m над полем Fq. Здесь должно выполняться соотношение n ^ m. M(V) называется порождающей матрицей m-мерного подпространства V. Размерность подпространства и ранг порождающей матрицы совпадают, то есть dim (V) = rank (M (V)), где использовано обозначение rank (А) — ранг матрицы А. Если n = m, то матрица M(V) называется базисной порождающей матрицей.

В работах [5, 7] используется следующая подпространственная метрика на множестве P (WN,q). Подпространственное расстояние между подпространствами U и

V определено в виде

d (U,V) = dim (U Ы V) — dim (U П V),

где dim (U Ы V) — размерность суммы подпространств U и V, dim (U П V) — размерность пересечения подпространств U и V. Если M(U) и M(V) порождающие матрицы подпространств U и V, то подпростран-ственное расстояние d (U,V) между подпространствами U и V равно удвоенному рангу матрицы, состоящей из двух базисных порождающих матриц, и минус сумма рангов матриц M(U), M(V). Функция расстояния принимает значения {0,1, ..., N}.

Следует отметить, что неявная форма этой метрики может быть получена из серии статей Дельсарта [38-40]. В явной форме эта метрика также имеется в других статьях (например, [41, 42]), но без какого-либо упоминания сетей связи.

Множество всех подпространств в множестве P (WN,q) является объединением подпространств определённой размерности /, I = 0,N, \V(WN,g)\ — мощ-

ность множества P (WN,q). Множество всех /-мерных подпространств N-мерного векторного пространства над полем Fq называется Грассманианом Gi (N,q). Мощность Грассманиана определяется через гауссовские биномиальные коэффициенты. Количество всех подпространств равно сумме мощностей Грассманианов размерности от

0 до N. В теории сетевого кодирования множество P(WN,q) рассматривается как алфавит кода или как сигнальное пространство.

Любое непустое подмножество С С С P(WN,q) называется кодом. Мощность кода обозначается \С\ и равна числу его элементов, в данном случае числу подпространств. Минимальное расстояние C обозначим d (С) = min^yeC:U=v d (U,V). Пусть / (С) = maxyeC dim (V), где dim (V) -

размерность подпространства V. Скорость кода определяется как R =

= l0gq \С\ / l0gq \P (WN,q)\.

Основная проблема теории кодирования для данной метрики — построить коды с заданным подпространственным расстоянием. В работах [5-7] представлены некоторые семейства кодов с подпростран-ственным расстоянием, включая коды с расстоянием 2 (не оптимальные), а также кодовые конструкции, подобные конструкциям кодов Рида-Соломона, и коды с ранговой метрикой. Фактически две последние конструкции по существу совпадают. Все коды, исследованные в этих работах, являются кодами с постоянной размерностью.

В работах Кёттера, Кшишанга и Силвы [5-8] рассмотрена следующая модель работы сети. За один сеанс связи в источник поступает n пакетов Х\, ..., Xn длины N. Источник объединяет их в матрицу X размера n х N, состоящую из элементов конечного поля Fq. На любом узле сети, включая и источник, создаётся линейная комбинация пакетов со случайными коэффициентами. Коэффициенты — элементы поля Fq. Пункт приёма сообщений (получатель) получает nr пакетов У\, ..., Ynr длины N, образует матрицу Y размера nr х N над полем Fq и старается определить начальную матрицу X. Предполагается, что

передаваемая матрица Х и принятая матрица У связаны соотношением, характеризующим канал связи:

У = АХ + BZ.

Здесь А — матрица размера пг хп, задающая все линейные преобразования, произошедшие в сети с передаваемыми пакетами за время передачи. Матрица Z размера в х N характеризует ошибки, её строки — это ошибочные пакеты Z1, ..., Zs, введённые где-либо в сети во время передачи, В — это матрица размеров пг х в, соответствующая всем линейным преобразованиям с ошибочными пакетами Zl, ..., Zs на пути к пункту приёма. Предполагается, что матрицы А, В, Z имеют случайные элементы. Матрица А может быть известна или неизвестна на приемном конце в зависимости от выбранного метода кодирования. Матрицы В, Z неизвестны на приёмной стороне.

Пусть Х — матрица над полем с N столбцами. Обозначим V = (Х) пространство строк матрицы Х. Все матрицы Х с таким же пространством строк считаем эквивалентными. V — подпространство пространства Ш^,д. Следовательно, можно предположить, что подпространство V есть отображение матрицы Х. Множество подпространств Vрассмат-риваем как входной и выходной алфавит канала.

В работе [8] Кёттер, Кшишанг и Силва предложили специальную конструкцию подпространственных кодов, в которой матрицы ранга, не превосходящего п, преобразуются в матрицу фиксированного ранга п путём добавления единичной матрицы. Эта составная матрица названа лифтинговой конструкцией. В лифтин-говой конструкции подпространственный код X представляет собой множество матриц

X = {Х : Х = [ 1п х ]} ,

где 1п — единичная матрица порядка и и х Е С — матрица рангового кода. Множество С представляет собой ранговый код с ранговым расстоянием ё,г, состоящий из прямоугольных матриц размера и х т, где т = N — п.

Предположим, что передана матрица Х = [ 1п х ]. На приёмной стороне полу-

чаем матрицу У в виде

У = АХ + BZ = [А у] ,

где А, у — матрицы размеров (пг х и) и (пг х т) соответственно, состоящие из элементов базового поля.

В работе [8] показано, что с помощью стандартного преобразования строк (метода исключений Гаусса) матрица У может быть преобразована в

У

1п + ыТ

и

0

г

Е

Здесь Ь — матрица размера п х л, Е матрица размера 5хт, где л — п-гапк(А) и 5 — N — гапк(А). Подмножество и С С {1,2, ..., п} определяет элементы единичной матрицы, которые должны быть заменены нулями. Такое представление позволяет свести декодирование подпростран-ственных кодов к декодированию ранговых кодов путём извлечения х £ С из У. Для принятой матрицы У с параметрами (г,Ь,Е) и рангом гапк(Ь) = л, гапк(Е) = 5 надо найти

х = а^ тіп х є С гапк

В работе [8] приведена и доказана следующая теорема.

Теорема. Пусть г, Ь, Е характеризуют принятую и преобразованную матрицу У. Тогда расстояние д,((Х),(У)) между передаваемым подпространством < Х > и принятым подпространством < У > равно

^(Х ),(У)) = 2 гапк

— (Л + 8).

При декодировании найдём в коде С такое кодовое слово х, которое минимизирует ранг матрицы (1). Для этого используем быстрые алгоритмы декодирования ранговых кодов [37]. Этот алгоритм декодирования использует принцип минимума расстояния. Принятое сообщение соответствует переданному, если расстояние меньше половины минимального расстояния кода, то

^тт(С0

есть в,(Х,У) <

Таким образом, про-

блема декодирования такой конструкции подпространственных кодов сведена к применению известных алгоритмов декодирования ранговых кодов Габидулина.

Учитывая важную роль ранговых кодов в случайном сетевом кодировании, приведём здесь основные определения и результаты из теории ранговых кодов Га-бидулина [31-37].

Ранговый код в векторном представлении с ранговым расстоянием й и с числом кодовых векторов V определён как набор V векторов Xj из расширенного поля ОЕ

9 = ..., 9п-1) ,

где координаты 9j Е ОЕ (2п), ] = 0, ..., п — 1, линейно независимы над базовым полем ОЕ (2). Вектор g — это базис расширенного поля ОЕ (2п) над базовым полем ОЕ (2). Каждая следующая строка порождающей матрицы — это фробениусовская степень предыдущей строки. Все известные алгоритмы быстрого декодирования основаны на использовании проверочной матрицы. Как известно, порождающая О и проверочная Н матрицы ортогональны.

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

— Шумовая матрица добавлена к кодовой матрице; на приёмной стороне неизвестно, какие строки или столбцы искажены. На приёмной стороне матрица преоб-

разуется в вектор, который должен обрабатывать декодер.

— Шумовая матрица добавлена к кодовой матрице; на приёмной стороне известно, какие строки могут быть искажены. Принятая матрица преобразуется в вектор. Декодер должен обрабатывать вектор, в котором есть известные элементы. Вектор ошибки представляет стирание строк в шумовой матрице.

— Шумовая матрица добавлена к кодовой матрице; известно, какие столбцы могут быть искажены. Принятая матрица преобразуется в вектор, который представляет стирание столбцов.

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

Лемма 1. Ранговый (п,к,й = п — к + 1)-код исправляет одновременно стирания из

V строк, г столбцов и ошибки ранга т при условии

2т + V + г ^ й — 1.

В работах [34, 35, 37] разработаны быстрые (не экспоненциальной сложности) алгоритмы исправления ошибок и стираний.

Алгебраическое декодирование начинается с вычисления синдромного вектора, который представляет собой произведение проверочной матрицы на принятый вектор. Это произведение даёт систему линейных уравнений. Декодер должен решить эту систему уравнений и найти неизвестные. После этого надо скорректировать ранговые ошибки и ранговые стирания. Доказано [37], что это возможно, если удовлетворяются условия приведённой леммы.

Идея алгоритма декодирования с исправлением ошибок и стираний состоит в следующем. Сначала из системы уравнений исключают неизвестные, характеризующие стирания строк. В работе [37] показано, что это возможно сделать. Проблему сводят к исправлению ранговых ошибок и ранговых стираний столбцов. В свою очередь оказалось, что стирания столбцов тоже могут быть исключены. Проблема сведена к исправлению только ошибок. Существуют стандартные алгоритмы [32, 35], которые позволяют найти ранговую ошибку, если выполняется условие 2т ^ й — 1.

После исправления ошибок последовательно, в два этапа вводят неизвестные, характеризующие стирания столбцов и строк.

В работе [9] Габидулиным и Боссер-том построены подпространственные коды с максимальным расстоянием.

Пусть С — код с максимальным под-пространственным расстоянием й(С) = N. Доказана

Теорема. Если N — нечётное число, то мощность любого кода С с подпростран-ственным расстоянием N равна \С\ = 2. Такой код состоит из двух подпространств С = {иу}, где и и V пересекаются тривиально и сумма размерностей этих подпространств равна N.

Ситуация кардинально отличается, если N — чётное число, N = 2т.

Лемма 2. Если код С с максимальным чётным расстоянием N состоит из \С\ ^ 3 элементов, то все элементы попарно пересекаются тривиально и имеют одинаковую размерность N/2 = т.

Лемма 3. Мощность кода С с максимальным чётным расстоянием N = 2т удовлетворяет условию

\С\ ^ дт + 1.

Теорема. Существует код С с максимальным чётным расстоянием N = 2т и с максимальной мощностью

\С\ = дт +1.

Приведём конструкции компонентных подпространственных кодов, представленные в работе [13].

Запишем N в виде N = т1+т2+...+тк. Предположим, что т1 ^ т2 ^ ... ^ тк. Построим код X как объединение компонентных кодов: X = Х1 иХ2 и ... иХк. Попарное пересечение компонентных кодов должно быть тривиальным. Определим компонентные коды следующим образом:

X! = {Х : Х = [1т! Х1] \ Х1 ЕМг} ,

X2 = {Х : Х = [О^ т Х2] \ Х2 Е М2}

Л^к-1 =

= {Х : Х = [От;^тк-2 1т„-1 Хк-1] \

\ Хк-1 Е Mk-1},

Xk = {Х : Х = [от^ т] } .

Здесь М1 — ранговый код, состоящий из т1 х N — т1) матриц из ¥д с ранговым расстоянием йг1 ^ ш\п{т1 N — т1};

ЛЛ2 — ранговый код, состоящий из т2 х(М—т1 —т2) матриц из ¥д с ранговым расстоянием Сг2 ^ тіп{ті,Ж — т1 — т2};

ЛЛк-\ — ранговый код, состоящий

из тк-1 х N — т1 — ... — тк-1) матриц из с ранговым расстоянием

^(к-і) ^ тіп{тк-і,М — ті — ... — т-}.

Очевидно, Хі П X) = , і = і.

Этот код имеет следующие характеристики:

— мощность

к

і=1

— подпространственное кодовое расстояние

С(Х) = тіп\тіп(ті + т7-), тіп \2СГЛ\.

і=з 1<і<к-1

Сначала рассмотрим подпростран-ственный код длины п, состоящий из двух подпространств. Первое подпространство задано единичной матрицей Х1 = 1п, второе подпространство задано нулевой матрицей Х2 = Оп.

Пусть передана матрица Х1, тогда принятая матрица есть

У = АХ1 + BZ = А + BZ.

Пусть передана матрица Х2, тогда принятая матрица есть

У = АХ2 + BZ = BZ.

Декодер вычисляет ранг гапк(У) принятой матрицы У и расстояние между принятым подпространством (У) и подпространствами (Х1) и (Х2) соответственно:

С1 = С((У ),(Х1)) = 2 гапк

— гапк

и

С2 = С((У ),(Х2)) = 2 гапк

— гапк(У) — гапк(Оп) =

= 2гапк(У) — гапк(У) = гапк(У).

Если й1 < й2, то есть гапк(У) > п/2, то декодер определяет решение в виде Х1 = 1п. Иначе решение имеет вид Х2 = Оп.

Для N = 2т код X с максимальным подпространственным расстоянием

2т можно рассматривать как объединение двух подкодов X = X1 UX2, где

XX = {Х : Х = [1т х] ,х Е С}

— код мощности дт с т х т кодовой матрицей х рангового кода и

X2 = {Х : Х = [От 1т]}

— код мощности 1.

Пусть принятая матрица имеет вид

У = АХ + BZ = [А у] .

Декодирование состоит из двух шагов. На первом шаге декодер старается распознать, порождено ли подпространство (У) матрицей X1 или X2. Это эквивалентно распознаванию, произошло ли подпространство (а4) из (1т) или из (От). Как показано выше, решение основано на вычислении ранга матрицы гапк(А).

— Если гапк(А) < т/2, то подпростран-

ство (У) произошло из X2. Тогда переходим ко второму шагу: рассматриваем матрицу [От 1т] как результат декодирования. ^

— Если гапк(А) ^ т/2, то подпространство (У) произошло из X1. Переходим ко второму шагу: применяем БКК — метод, извлекаем матрицу х ЕС и получаем Х = [1т х] как результат декодирования.

Предположим, что на приёмной стороне имеем матрицу У, где

У = АХ + BZ

и Х принадлежит одному из компонентных кодов, представленных выше. Запишем У в виде

У = [а41 а42 ... 4к-1 у] ,

где А1 — пг х т1 -матрица, А2 —

пг х т2-матрица, ..., Ак-1 — пг х тк-1-мат-рица.

— Декодер должен решить такую проблему: принятое подпространство (У) происходит из подкода X1 или из подкода

X2 и ... и Xk? Декодер решает эквивалентную проблему: подпространство (А^ происходит из подпространства (1т1) или (От1)? Для этого декодер вычисляет ранг матрицы Ах. г1 = гапк(^41).

— Если г1 ^ т1/2, то решение таково: (У) происходит из подкода X1. Применяем БКК-метод, извлекаем х1 Е М1. Матрица Х = [1т1 х1] предъявляется как результат декодирования.

— Если г1 < т1/2, то решение таково: (У) происходит из подкода X2 и ... и Xk. Декодер переходит к следующему шагу.

— Декодер должен решить проблему:

принятое подпространство (У) происходит из подкода X2 или из подкода X3 и ... UXk? Декодер решает эквивалентную проблему: подпространство ^ [А1 А-^) происходит из подпространства ([От. 1т2]) или

из ([От! От2])? Для этого декодер вычисляет ранг матрицы г2 = гапк ([А1 А2]).

1. Если г2 ^ т2/2, то решение таково:

(У) происходит из подкода X2. Применяем БКК-метод, чтобы извлечь х2 Е М2. Матрица Х = [От. 1т2 х2] предъявля-

ется как результат декодирования.

2. Если г2 < т2/2, то решение таково: (У) происходит из подкода X3 и ... и Xk. Декодер переходит к следующему шагу.

3. Алгоритм работает до тех пор, пока окончательное решение не найдено. Число шагов меньше или равно к.

Итак, рассмотренные здесь подпро-странственные коды, построенные Кётте-ром, Кшишангом, Силвой на базе ранговых кодов Габидулина, обещают быть весьма перспективными. Основное их достоинство — обеспечивают увеличение пропускной способности сети при отсутствии зависимости от её конфигурации.

IV. Искажение информации в сети

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

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

Для дальнейшего изложения приведём основные понятия и определения. Сеть передачи данных — совокупность оконечных устройств (терминалов) связи, объединённых каналами передачи данных и коммутирующими устройствами (узлами сети), обеспечивающими обмен сообщениями между всеми оконечными устройствами. Узел сети — устройство, способное принимать, обрабатывать и передавать информацию. Абонент — пользователь оконечных устройств в сети передачи данных. В дальнейшем будем рассматривать сети с тремя основными абонентами. Абонентам присвоены имена Боб, Алиса и Эльза. Где Боб — это источник сообщений для двух других абонентов Алисы и Эльзы. Криптоаналитик — нелегальный абонент сети — может выполнять функции как получателя, так и отправителя. Как правило, он носит имя Кельвин. Сетевое кодирование — новое направление в теории информации, позволяющее достичь максимального потока информации в сети. Оно предполагает, что узлы вместо обычной передачи пакетов могут комбинировать несколько входных пакетов в один или в несколько выходных при помощи различных математических операций.

Источник сообщений (Боб) и получатель (Алиса) общаются по проводной или беспроводной связи. Криптоаналитик Кельвин скрывается где-то в сети. Кельвин ставит себе целью нарушить обмен информацией между Алисой и Бобом или минимизировать его. Он может наблюдать за передачей данных и включать в неё свои пакеты. Когда он навязывает свои пакеты, то предполагает их выдать за часть информационного потока от Алисы к Бобу. Кельвин абсолютно защищен. Он не ограничен в вычислительных ресурсах. Он знает схемы кодирования и декодирования Алисы и Боба. Располагаясь внутри сети, он знает особенности реализации сети. На этом предположении основываются работы [43-46] по созданию систем защиты информации. Эти системы строятся на базе сетевого кодирования и способны обнаружить не только факт искажения или заме-

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

Рассмотрим модель уязвимостей, то есть описание всех свойств информационной системы, которые могут привести к нарушению конфиденциальности, целостности и доступности. При этом под нарушением конфиденциальности подразумевается раскрытие Кельвином информации, которую Боб передает Алисе и Эльзе. Если Кельвин вносит помеху в канал передачи данных и, таким образом, изменяет передаваемые сообщения — это нарушение целостности информации. В случае, когда помеха подобрана Кельвином так, что не позволяет однозначно раскодировать переданное сообщение, — это нарушение доступности информации. Применительно к рассматриваемой информационной системе модель угроз выглядит нижеследующим образом. Существует распределенная сеть процессоров из п (в нашем случае — это интеллектуальные узлы связи), которые могут приобретать р1, р2, ..., рп состояний. Процессоры связаны друг с другом посредством телекоммуникационной сети. Процессоры обмениваются сообщениями так, что отправитель знает получателя сообщения. При этом возможны случаи сбоя процессоров. Различают следующие виды сбоев: разрушение процессора (разрушение узла), то есть случай, когда узел больше не может выполнять свои функции, другие узлы не могут получать и передавать через него сообщения; ошибки передачи — это вариант частичного разрушения узла, при котором узел

не принимает и не передает некоторые из сообщений; вариант, когда узел нарушает свою работу своевольно под воздействием византийского криптоаналитика (ВК).

Для модели внутреннего нарушителя важным является так называемое генеральное соглашение о внутреннем (византийском) криптоаналитике [47]. Оно сформулировано следующим образом. Каждый узел р* получает входной вектор V* (размера не меньше 2). Каждый правильный узел р* должен принять решение о формировании выходного вектора, исходя из следующих соображений: конечность, то есть алгоритм выбора не должен быть бесконечен; валидность, то есть проверка правильности — если значение входного вектора всех узлов V, то это значит, что все корректные узлы передали этот вектор V; согласованность, то есть все корректные узлы могут определить некоторое заданное значение; несогласованность — два узла (один корректный, другой разрушенный) определяют разные значения; синхронное окончание цикла работы — все корректные узлы определяют принятый вектор одновременно.

Временная модель ВК определена для синхронных распределённых систем в работах [47-49]. Предполагается, что процессоры выполняют за один такт один цикл протокола. Каждый цикл содержит фазу посылки сообщения, каждый узел может послать разные сообщения узлу, с которым имеет соединение. В текущем цикле происходит прием сообщения. В предположении бесконечных вычислительных ресурсов вычисления на этапе перехода осуществляются быстрее, чем на этапе коммуникаций с различными узлами при разных уровнях важности сообщений.

Модель ВК как для проводных, так и для беспроводных сетей предложена в работе [4]. Внутренний нарушитель выступает в роли узла сети и вносит шум только в тот канал, который ему доступен. Кроме того, он пытается получить доступ к информации, которую передают через него. В работе [46] введены ограничения на данную модель и на модель угроз. Предполагается, что ВК может задерживать передачу пакетов и прослушивать их. Здесь сеть представлена в виде графа и с несколькими ВК. Если имеется к ВК, то необходимо иметь более 2к+1 соединений узлов графа.

Имеется модель «Всезнающий криптоаналитик». В этом случае предполагается, что все каналы связи доступны для прослушивания.

Рассмотрим модель нарушителя Кельвина для сети «бабочка». Пусть роль нарушителя играет один из внешних узлов сети. В сети это выглядит так, как показано на рис. 8.

Рис. 8. Модель сети «бабочка» с внутренним нарушителем

Предполагаем, что криптоаналитик Кельвин вносит в канал следующие помехи: аддитивную — є и мультипли-

кативную 7. Боб передает два сообщения а1Х1 + f31Z и а2Х + f32Z. Алиса получает два сообщения а1Х1 + f31Z и ^1(а1Х1 + вlZ) + 71(а2Х + в2Z) + Є1. В свою очередь, Эльза получает два сообщения а2Х + f32Z и ^2(&1Х1 + [3^) + 72 (&2Х + в2Z) + Є2.

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

В работах [4, 46] описано несколько моделей внешних нарушителей. Внешний нарушитель зашумляет каналы передачи информации и пытается дешифровать информацию. Такая модель принята для беспроводных сетей. Модель сети «бабочка» с внешним нарушителем показана на рис. 9.

Рис. 9. Модель сети «бабочка» с внешним нарушителем

В работе [50] приведена модель внешнего нарушителя для трёх радиоканалов (рис. 10). Особенность этой модели состоит в том, что Кельвин имеет доступ ко всем каналам сети. Разделение этой модели на несколько подчинённых моделей предложено в работах [4, 46]. Здесь используется предположение, что в беспроводных сетях можно наложить различные ограничения на модель, например, наличие хотя бы одного канала, к которому у криптоаналитика нет доступа.

. агХ1 + 0

- - X . ^ а ,Л'., I /’./ Л - -

Алиса ( 1

, ' аъхъ +

Кельвин Яр "

Рис. 10. Модель сети «бабочка» с внешним нарушителем для радиоканалов

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

V. Защита информации в сети

Сетевое кодирование очень уязвимо по отношению к действиям внутреннего нарушителя (византийского криптоаналитика (ВК)), который может искажать любые

обрабатываемые им данные, а также фабриковать новые ложные данные.

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

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

Суть подходов, представленных в работах [51, 22], состоит в том, что для обнаружения искажений надо внести определённую избыточность в передаваемые данные. В схеме [51] избыточность вносится в каждый пакет с помощью специальных кодов. В схеме [52] организуется передача дополнительных пакетов.

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

зи, которые могут быть скомпрометированы злоумышленником. Введение избыточности ведёт к повышению нагрузки на линии передачи, а также в большинстве случаев к увеличению сложности обработки.

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

При наличии т* > т линейно независимых принятых пакетов узлу придёт-т

ся провести т попыток восстановления и проверки подписи и тем самым, возможно, обнаружить искажённые пакеты. Однако в этом случае наблюдается быстрый рост сложности обработки.

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

Если конечный получатель может выяснить, что данные искажены, то их придётся передавать вновь, что ведёт к росту объёмов передаваемых по сети данных для передачи фиксированного объёма полезных данных. Это можно расценивать как падение пропускной способности. Если падение из-за распространения искажений окажется больше прироста, то теряется смысл применения сетевого кодирования. Поэтому критически важным ока-

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

В работе [53] предлагается передавать подписанный отправителем пакет, ортогональный (в смысле линейной алгебры) всем исходным пакетам.

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

Метод, предложенный в работе [53]. позволяет использовать традиционную ЭЦП в условиях сетевого кодирования. Вместе с тем имеются криптографические методы, созданные специально с учётом такого кодирования — гомоморфные криптографические преобразования [54].

Пусть 01 — группа с операцией ф, и 02 — группа с операцией . Гомоморфизм (гомоморфное преобразование) Н :

01 ^ 02 есть такое преобразование, что Уа,Ь Е 01 : Н(а ф Ь) = Н(а)  Н(Ь). Гомоморфизмами являются традиционно используемые в криптографии дискретные степенная функция (ИБА-преобразование) и показательная функция (преобразование Диффи-Хеллмана).

Рассмотрим модель применения гомоморфизма для создания ЭЦП. Пусть Бгдп(Бк,х) — функция подписи сообщения х, Бк — закрытый ключ. Схема подписи называется гомоморфной [54], если для любых Х1, 01, х2, 02, таких, что

01 = Бгдп(Бк,х1) и а2 = Бгдп(Бк,х2), выполняется Бгдп(х\,х\ ф х2) = 01  02. Таким образом, для гомоморфной ЭЦП результат групповой операции над набо-

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

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

В работе [55], а также в основанной на ней работе [56] предполагается наличие аутентичного канала для передачи хэш-значений исходных векторов от отправителя всем остальным узлам. Фактически это означает, что передаваемые хэш-значения должны быть подписаны с помощью традиционной схемы ЭЦП. Сложность вычислений при использовании схемы [55] оказывается весьма высокой. В работе [56] для снижения сложности предлагается вариант с вероятностной пакетной проверкой. Явным недостатком конструкции является большой размер исходных хэш-значений и открытого ключа отправителя: один из этих параметров по порядку величины равен квадратному корню из битового размера всего файла. Особенность метода в том, что для вычисления хэш-значений отправителю необходимо иметь весь передаваемый файл, то есть не поддерживается потоковая передача данных.

В работе [59] представлена гомоморфная ЭЦП на основе спариваний Вейля [60] с искомым свойством: подписи под пакетом, являющимся линейно комбинацией подписанных отправителем пакетов, можно вычислить без знания закрытого ключа вычисления подписи. Схема [61] также реализует гомоморфную схему подписи, базирующуюся на ИБА-преобразовании. Недо-

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

В работе [62] предложена, по-видимому, самая эффективная на сегодняшний день схема гомоморфной ЭЦП. В схеме используются спаривания Вейля. Закрытый и открытый ключи схемы многократного использования: на одном ключе можно подписывать множество файлов без угрозы компрометации ключа. Размер открытого ключа не зависит от размера файла, пакета или количества пакетов. Подпись компактна по объёму: всего один элемент конечного поля для одного пакета. Объем подписи для всего файла будет в т раз больше. В этой же работе [62] доказана нижняя граница на битовый размер криптографически стойкой подписи файла для сетевого кодирования: он прямо пропорционален размерности файла как линейного подпространства пакетов, которыми этот файл представляется. Рассматриваемая схема удовлетворяет этой границе. В той же работе авторы построили вариант негомоморфной подписи на основе спариваний Вейля, когда подпись формируется для всего файла целиком (для всего подпространства), а не для каждого исходного пакета по отдельности.

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

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

VI. Низкоплотностные коды в сети

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

Использование кодов с малой плотностью проверок на чётность (Low Density Parity Check Codes, LDPCкоды) позволяет решить некоторые задачи, возникающие при реализации сетевого кодирования.

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

При использовании LDPC-кодов для кодирования сообщений можно предложить способы декодирования, ориентированные на сетевое кодирование.

Построение стратегии передачи сообщений с помощью LDPC-кодов представлено в работе [63]. Здесь предлагается вариант выработки совместной стратегии передачи, названной авторами «согласованное разнесение». Рассмотрена сенсорная модель с множеством источников. Источники выступают также в качестве промежуточных узлов для других источников. Каждый из источников передаёт единственному приёмнику свою часть информации, а также может выделить некоторое время на передачу информации от других узлов. Информация передаётся по широковещательным каналам. Однако если между двумя узлами сети передаёт-

ся информация, то предполагается, что она передаётся по квазистатическому каналу с релеевским затуханием. В большинстве работ по сетевому кодированию, которые рассматривают бесшумные каналы с ограниченной пропускной способностью, предлагается способ построения взаимодействия, который авторы назвали «адаптивное взаимодействие с сетевым кодированием». Подчеркивается, что данное взаимодействие является не только адаптивным, но и распределённым, то есть не потребуется единого центра управления сетью. Ключевой идеей является объединение представления сети на графе (сетевой топологии) и кода на графе, то есть LDPC-кодов и подобных им. На основе графа предполагается построение сетевых кодов, особенно эффективных для беспроводных сетей с потерями. Для решения этой проблемы авторы работы [63] предлагают построить LDPC-код, используя граф топологии сети как прообраз проверочного двудольного графа. При этом сами узлы сети формируют отдельные строки проверочной матрицы (отдельные элементы графа кода), тем самым не нуждаясь в центральном управлении.

Рис. 11. Пример топологии сети

Рассмотрим сеть, представленную на рис. 11, состоящую из 6 узлов, 5 из которых — а, Ь, с, е, f — являются как источниками, так и передатчиками (показаны на рис.), а 6-й узел — й — является приёмником (на рис. не показан). Указанные на рис. каналы предполагаются ортогональ-

ными по времени, или по частоте, или по коду. Это значит, что передача по одному из каналов не будет влиять на передачу по другим каналам.

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

(?) <£> © <а) ©

Рис. 12. Преобразование графа топологии сети в двудольный граф

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

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

Теперь, рассматривая третий столбец как часть множества битовых узлов, можно построить матрицу LDPC-кода специального вида [ Р I ] размера 10 х 5:

( 11111 \

1 1 1 1 1 1 111 1

V1 1 1 /

Хорошей характеристикой LDPC-кода является отсутствие в графе циклов длины 4, так как они влияют на возможность декодирования сообщений. Для того чтобы избежать циклов длины 4, отдельные узлы, основываясь на информации от соседних источников, могут отбросить определённые связи. Например, узел а может отказаться от принятия от узла символа е. В свою очередь, узел е может отказаться от приёма информации от узла с. Тогда получится граф кода, свободный от циклов длины 4. Коду будет соответствовать матрица прежней размерности 10 х 5, но с меньшим количеством единиц в левой части:

( 1111 \

1 1 1

1 1 1

1 1 1

V1 1 1 /

Таким образом, каждый из узлов сети построил свою локальную стратегию передачи сообщений. Во-первых, он будет отправлять всем доступным узлам свою информацию. Во-вторых, он будет складывать по модулю два информацию, пришедшую от некоторого количества узлов, и передавать её далее. Для отделения своей информации от чужой в работе [63] авторы предлагают использовать известный механизм битового поля — добавлять в сообщения дополнительную последовательность

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

Л

Построенную матрицу кода авторы назвали матрицей малой плотности (1о^ density generator-matrix, LDGM). Она отличается от классической LDPC-матрицы наличием [Р,/]-структуры.

О Без взаииадейсивия 4— Повторение

Повторение

н---ИХЗМнсод с 0=7

*----ИХВМ-кщ с 0=В

в----Ш6М-кодсО=Є

и---ИХЗМнсвд с й=10

ИХ5М-КОД с 0=12

ВТ

10" П-

10

я

11-111 1 ^ І її 1 І І І І : І і І і і І І І І : І І ; І і І І, і І І і ! 1 ї І І І і 1 І 1 1 > *» їїїії І її І І * І І ї І І І І І І ї : І І ї і

л V і • : ::: ::::::::::

. Ль ; • -.

1 ! ; ! Ї! уТЦ і\, і м ;»і і і і і ; і »і; і і і і.  |  | ! і • 11 с ; і ! ! і \ \ V ... ... ...... . . . . . . 1 1 І . 1 1 ї ї !<Л ; 1 ; | 1 | | 1 і 1 1 | 1 : : ІГ <к.: ::

* лл V :::::::: ::::::::::: о X *

! : 1 : | ! : ! : ! : І ї : V І І : ї : : : І ; : І ї ! І : І І : І : ! І : : І ! І ї : ї І : 5 : І І І : : і 1 * : : : і : 1 :1 1 і : : 1 І :

о

20

25

30

10 15

Сигнал/шум

Рис. 13. Результаты моделирования производительности сенсорной сети без и с использованием ЬВСЫ-кодов

ложенного подхода, когда проверочная матрица кода имеет структуру двух матриц, каждая из которых образована из единичной матрицы путём некоторых перестановок строк и столбцов. Использование предложенной схемы даёт значительный выигрыш, кроме случая слишком малого отношения сигнал/шум. Однако даже и в этом случае предложенная схема лишь незначительно отличается по своим характеристикам от схемы без взаимодействия.

Теперь рассмотрим вопрос об использовании LDPC-кодов для передачи данных в сетевом кодировании. В настоящий момент LDPC-коды являются наиболее многообещающими в смысле достижения границы Шеннона для различных каналов передачи данных. В работе [65] показано, что использование LDPC-кодов для сетевого кодирования дало хорошие результаты, которые можно улучшить, если модифицировать алгоритм передачи и декодирования сообщений.

Рис. 14. Модель сети с сетевым кодированием

На рис. 13 представлены результаты численного эксперимента. Адаптивное повторение является частным случаем пред-

В работе [64] рассмотрена простейшая

модель сети рис. 14.

«бабочка», показанная на

Пусть сообщения а и Ь являются результатом кодирования некоторых исходных сообщений ао и Ь0 на узле-источнике 5'. Декодирование происходит на узлах-получателях У и Z.

Показано, что на узлах-получателях У и Z сообщения а0 и Ь0 имеют различные значения вероятности успешного декодирования. На узле У более высока вероятность успешного декодирования сообщения а0, а на узле Z больше вероятность правильного декодирования сообщения Ь0. Это связано с тем, что в последовательной

Со ,1

схеме декодирования ошибка декодирования сообщения, например, а0 на узле У, будет распространяться на второй этап декодирования сообщения Ь0 из а ф Ь и а.

Авторы работы [64] предложили способ декодирования, который они назвали «совместное декодирование». В этом способе на каждом из узлов-получателей каждый из декодеров обменивается между собой информацией о вероятности правильного декодирования каждого из битов исходного сообщения. Этот способ показан на рис. 15.

С&д

С

Рис. 15. Передача информации о декодировании от декодера сообщения а к декодеру сообщения Ь в рамках приёмника У

Рис. 16. Передача двух сообщений а и Ь двумя частями

Векторы Уа и Уь соответствуют кодовому биту а в сообщении а и кодовому биту Ь в сообщении Ь соответственно. На итерации, показанной на рис. 15, логарифм вероятности правильного декодирования ЬЬК передаётся от декодера сообщения а к де-

кодеру сообщения Ь. На основании Ь(аі) и Ь(ог) по правилу гиперболического тангенса [66] вычисляют Ь(Ьг). Это значение используется как логарифм правильного декодирования для сообщения Ь. После этого

обмен информацией повторяется в обратном направлении.

Использование данного метода декодирования позволяет получить одинаковые значения вероятности декодирования для сообщений ао и Ь0. Это достигается в случае одинаковых вероятностей ошибок передачи по обоим каналам — Б ^ Т ^ У и Б ^ и ^ Ш ^ X ^ У. Авторы [64] предложили способ обойти это ограничение, разбив передачу одного сообщения на несколько частей, передавая различные части по различным каналам. На рис. 16 показана передача двух сообщений а и Ь двумя частями.

Имеется также модифицированная схема совместного декодирования с разделением кодового слова, показанная на рис. 17.

»1 а2

/ \

Ьі

/ / \ \ аі Ьі Ь2 »2

Рис. 17. Совместное декодирование в схеме с разделением кодового слова

Показано, что использование LDPC-кодов позволяет улучшить характеристики процедуры декодирования.

VII. Пространственновременные коды в сети

Одно из направлений исследований в области сетевого кодирования связано с использованием пространственно-времен-

ных кодов (ПВК) в беспроводных сетях с кооперированным поведением абонентов.

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

Исследование пропускной способности моделей этого класса [67] проводится типовыми методами теории информации, сводясь к определению областей пропускной способности каналов с множественными входами/выходами.

Для беспроводных сетей характерно также наличие релеевских замираний. Пропускная способность релеевских каналов исследовалась главным образом для двух предельных случаев. В модели с быстрыми (эргодическими) замираниями предполагается, что коэффициент передачи канала принимает случайное значение для каждого из символов передаваемого блока [68]. В этих моделях пропускная способность канала оказывается вполне определённой величиной, а подавление замираний достигается за счёт рассеяния сигнала во времени.

В моделях с медленными (неэргодиче-скими) замираниями коэффициент передачи канала также случаен, но остаётся постоянным на всей длине кодового блока. В этом случае рассматривается ряд субвариантов, отличающихся предположениями о наличии оценок текущего состояния канала на передающей/принимающей сторонах. В наиболее распространенной модели с наличием информации о канале только на приеме пропускная способность оказывается случайной величиной [69]. При этом наблюдается явление отключения канала, возникающее когда скорость передачи превышает текущее значение случайной пропускной способности С. Для таких моделей в качестве основной характеристики качества вводится понятие веро-

ятности отключения Р (Я > С) и исследуется её зависимость от скорости. В неэрго-дических каналах подавление замираний за счёт рассеяния во времени невозможно. В силу этого на передний план выступают методы подавления за счёт пространственного рассеяния. Так возникают модели каналов со множественными передающими/приемными антеннами, в контексте которых и возникают методы ПВК [70, 71].

В сетях с кооперированием абонентов пространственно временное кодирование возникает естественным образом как один из возможных протоколов взаимодействия узлов.

Известные аналитические результаты показывают, что протоколы кооперирования с ПВК дают радикальный выигрыш в эффективности пространственного рассеяния. Для иллюстрации приведём некоторые результаты из [72].

Рис. 18. Модель кооперированной сети

Рассмотрим сеть со множеством М эквивалентных передающих узлов и единственным приёмником й, которая показана на рис. 18. Сеть функционирует в два этапа. На первом каждый из т источников

з ^ {з}, |{з}| = т, имеющих сообщения для получателя й, передает его. Переданные сообщения принимаются всеми остальными узлами М — {з}. На рис. 18 для простоты показан один источник. На втором этапе О(т) узлов из М — ^}, успешно принявших переданные сообщения, ретранслируют их получателю. При этом сообщения либо передаются как таковые (прямая ретрансляция), либо преобразуются в кодовое слово ПВК.

Модель предполагает наличие определённых соглашений относительно разделе-

ния ресурсов радиоканала между передатчиками. В [72] считается, что каждому из m параллельных передатчиков выделяется один из ортогональных частотных субканалов. Прямая ретрансляция организуется в режиме разделения времени. Каждому из D (m) ретранслирующих узлов выделяется отдельный временной слот. В варианте с ПВК все ретранслирующие узлы ведут передачу параллельно в едином временном слоте.

В [72] исследуются границы для вероятности отключения канала как функции отношения сигнал/шум SNR и скорости передачи Rnorm, нормированной на пропускную способность C. Асимптотическая по SNR ^ ж форма этих границ принимает вид

Рг

и оказывается выраженной через параметр эффективности пространственного рассеяния A (Rnorm), зависящий от нормированной скорости.

В [72] показано, что

Arep (Rn) = m (1 - mRn) для модели с прямой ретрансляцией и

(1 — 2Rn) ^ Astc (Rn) ^

m1

m

2Rn

для модели с пространственно-временным кодированием.

Приведённые границы наряду с аналогичной границей для сети без кооперирования узлов представлены на рис. 19.

При Яп 0 максимально возмож-

ное значение т показателя А достигается при любом алгоритме взаимодействия узлов. Однако в сети с прямой ретрансляцией достигаемый показатель рассеяния быстро уменьшается с ростом скорости. Схема с ПВК продолжает давать выигрыш в рассеянии вплоть до скоростей, приближающихся к 1/2. Это демонстрирует крайне высокую эффективность применения ПВК в кооперированных сетях для подавления замираний.

Рис. 19. Зависимость показателя рассеяния от нормированной скорости передачи

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

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

В литературе имеются примеры реализации распределённых ПВК-конструкций для сетей частного вида с одним источником, одним получателем и т ретрансляторами на базе комплексных и вещественных ортогональных схем [74]. Особенность этих кодов заключается в выполнении свойства ортогональности для любой пары строк кодовой матрицы. Соответственно выбрасывание строк, связанное с неактивностью антенн, не нарушает свойства ортогональности строк и не ухудшает свойства рассеяния кода.

VIII. Заключение

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

Определены и представлены принципы сетевого кодирования. Сеть связи можно описать как конечный направленный граф, в котором узлы могут быть соединены с более чем одним ребром. Начиная с 2000 года рядом авторов, отмеченных в списке цитируемых источников, предложено использовать сетевое кодирование для

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

Описаны методы сетевого кодирования с помощью подпространственных кодов Кёттера-Кшишанг-Силвы, которые построены на основе ранговых кодов Га-бидулина и в которых применяется обобщённый алгоритм декодирования ранговых кодов. Представлены новые подпро-странственные компонентные коды с максимальным расстоянием Габидулина-Бос-серта. Представлены новые подпростран-ственные многокомпонентные коды, основанные на ранговых кодах, и получены их характеристики.

Рассмотрены особенности обеспечения безопасности передаваемых данных в сетях при применении сетевого кодирования. Показано, что наиболее критичной процедурой является контроль на промежуточных узлах сети подлинности передаваемых данных. Представлена эффективная схема гомоморфной подписи, для которой имеется доказательство её стойкости.

Проведен аналитический обзор публикаций по теме «Нарушение связи в сети». Показаны типичные модели криптоаналитиков и методы защиты информации от угроз, которые вызывают «нарушители».

Показано, что можно эффективно использовать известные низкоплотностные коды Элайса в сетевом кодировании. Отмечены недостатки существующих моделей.

Приведен аналитический обзор опубликованных материалов по теме «Пространственно-временные коды в беспроводных сетях с кооперацией узлов». Показано, что задачи конструктивного пространственно-

временного кодирования для сетей отличаются значительно большей сложностью от классической задачи кодирования для каналов со многими передающими/приемными антеннами.

Показаны перспективы использования рассмотренных методов передачи информации в сетях связи и отмечены темы, интересные для дальнейших исследований.

Литература

1. Yeung R.W., Zhang Z. Distributed source coding for satellite communications // IEEE Trans. Inform. Theory. — 1999. — V. IT-45. — P. 1111-1120.

2. Ahlswede R., Cai N., Li S.-Y.R., Yeung R. W. Network information flow // IEEE Trans. Inform. Theory. — 2000. — V. IT-46, N. 6. — P. 1204-1216.

3. Yeung R.W., Li S.-Y.R., Cai N, Zhang Z. Network Coding Theory, Foundation and Trendsr // Communications and Information Theory. — 2005. — V. 2, N. 4. — P. 241-381.

4. Fragouli C., Soljanin E. Network Coding Fundamentels, Foundations and Trendsr Networking / / Networking. 2007. — V. 2, N. 1. — P. 1-134.

5. Koetter R., Kschischang F.R. Coding for errors and erasures in random network coding // IEEE International Symposium on Information Theory. Proc. ISIT-07. —

2007. — P. 791-795.

6. Silva D., Kschischang F.R. Using rank-metric codes for error correction in random network coding // IEEE International Symposium on Information Theory. Proc. ISIT-07. — 2007.

7. Koetter R., Kschischang F.R. Coding for errors and erasures in random network coding // IEEE Transactions on Information Theory. — 2008. — V. IT54, N. 8. — P. 3579-3591.

8. Silva D., Kschischang F.R., Koetter R. A Rank-Metric Approach to Error Control in Random Network Coding // IEEE Transactions on Information Theory. —

2008. — V. IT-54, N. 9. — P. 3951-3967.

9. Gabidulin E.M., Bossert M.

Codes for Network Coding // IEEE International Symposium on Information Theory. Proc. ISIT-08. — 2008. —

P. 867-870.

10. Бараш Л. Сетевое кодирование // Компьютерное обозрение. — 2009. — N. 5.

11. Gabidulin E.M., Bossert M. A family of algebraic codes for network coding // IEEE International Symposium on Information Theory. Proc. ISIT-09. — 2009.

12. Gabidulin E.M., Pilipchuk N.I. Rank codes in random network coding // International Symposium on Coding Theory and Applications. Proc. ISCTA-09. — 2009.

13. Габидулин Э.М., Боссерт М. Алгебраические коды для сетевого кодирования // Проблемы передачи информации. — 2009. — Т. 45, вып 4. — С. 3-18.

14. Sanders P., Egner S., Tolhuizen L.

Polynomial Time Algorithms for Network Information Flow // 15th ACM Symposium on Parallelism in Algorithms and Architectures. Proc. SPAA-03-2003. —

P. 286-294.

15. Agarwal A., Charikar1 M. On the Advantage of Network Coding for Improving Network Throughput // IEEE Information Theory Workshop. Proc. ISW-04. — 2004.

16. Kramer G., Savari S.A. Cut sets and information flow in networks of two-way channels // IEEE International Symposium on Information Theory. Proc. ISIT-04. — 2004. — P. 33.

17. Ho T., Koetter R., Medard M., Karger D.R., Effros M. The benefits of coding 30 over routing in a randomized setting // IEEE International Symposium on Information Theory. Proc. ISIT-03. — 2003.

18. Fragouli C., Soljanin E.

Decentralized network coding

// IEEE Information Theory Workshop. Proc. ITW-04. — 2004.

19. Yeung R.W., Cai N. Secure Network Coding // International Symposium on Information Theory. Proc. ISIT02. — 2002.

20. Bhattad K., Narayanan K.R. Weakly Secure Network Coding // First Workshop on Network Coding, Theory and Applications. Proc. WNCA. — 2005.

21. Ho T., Leong B., Koetter R., Medard M., Effros M., Karger D. Byzantine Modification Detection in Multicast Networks using Randomized Network Coding // IEEE International Symposium on Information Theory. Proc. ISIT-04. —

2004.

22. Jaggi S., Langberg M., Katti S., Ho T., Katabi D., Medard M. Resilient network coding in the presence of Byzantine

adversaries // IEEE Infocom. — 2007. — P. 616-624.

23. Wu Y, Chou P.A, Kung S.-Y. Minimum-energy multicast in mobile ad hoc networks using networks coding // IEEE Transactions on Communications. — 2005. -V. 53, N. 11. — P. 1906-1918.

24. Fragouli C., Widmer J., Boudec J. Y.L. A network coding approach to energy efficient broadcasting: From theory to practice // IEEE Infocom. — 2006.

25. Yeung R.W., Cai N. Network error correction. I. Basic concepts and upper bounds // Communication and Information Systems. — 2006. — V. 6. — P. 19-35.

26. Cai N., Yeung R.W. Network error correction. II. Lower bounds // Communication and Information Systems. —

2006. — V. 6. — P. 37-54.

27. Zhang Z. Network error correction coding in packetized networks // IEEE Information Theory Workshop. — 2006.

28. Yang S., Yeung R.W. Characterizations of network error correction/detection and erasure correction // Network Coding Workshop. — 2007.

29. Yang S., Ngai C.K., Yeung R.W. Construction of linear network codes that achieve a refined Singleton bound // IEEE International Symposium on Information Theory. Proc. ISIT-07. — 2007.

30. Ho T., Medard M., Koetter R. An information-theoretic view of network management // IEEE Transactions on Information Theory. — 2005. — V. 51, N. 4. — P. 1295-1312.

31. Габидулин Э.М. Оптимальные коды, исправляющие ошибки решетчатой конфигурации // Труды YI Международного симпозиума по теории информации. — 1984.

32. Габидулин Э.М. Теория кодов с максимальным ранговым расстоянием // Проблемы передачи информации. — 1985. — Т. 21, вып. 1. — С. 3-14.

33. Габидулин Э.М., Афанасьев В.Б. Кодирование в радиоэлектронике. — М.: Радио и связь, 1986.

34. Gabidulin E.M., Paramonov A.V., Tretjakov O.V. Rank errors and rank erasures correction // Fourth Int. Colloquium on Coding Theory. Proc. ICCT-91. — 1991. — P. 11-19.

35. Gabidulin E.M. A Fast Matrix Decoding Algorithm For RankError-

Correcting Codes // Algebraic Coding. Proc. AS-92. — 1992. — P. 126-31 132, (Lect. Notes in Comp. Sci. No. 573. — Berlin: Springer-Verlag).

36. Gabidulin E.M., Pilipchuk N.I. Symmetric matrices and codes correcting rank errors beyond bound // Discrete Applied Mathematic. 2— 2006. — V. 154. — P. 305-312.

37. Gabidulin E.M, Pilipchuk N.I. Error and erasure correcting algorithms for rank codes // Designs, Codes and Cryptography. — 2008. — V. 49, N. 1. — P. 105-122.

38. Delsarte P. Association schemes and t-designs in regular semilattices // J. Combinatorial Theory. — 1976. — Ser. A

20, N. 2. — P. 243.

39. Delsarte P. Properties and applications of the recurrence F(i + 1; k + 1; n +1) = qk + 1F(i; k +1; n) + +... + qkF(i; k; n) // SIAM J. Appl. Math. — 1976. — N. 2. — P. 262-270.

40. Delsarte P. Hahn polynomials, discrete harmonics, and ^-designs // SIAM J. Appl. Math. — 1978. — V. 34, N. 1. — P. 157-166.

41. Ceccherini P. V. A q-analogous of the characterization of hypercubes as graphs // J. of Geometry. — 1984. — V. 22. — P. 57-74.

42. Барг А., Ногин Д. Спектральный подход к линейному программированию границ кодов // Проблемы передачи информации. — 2006. — V. 42. — P. 12-25.

43. Ho T., Leong B., Koetter R., Medard M., Effros M., David R. Karger Byzantine Modification Detection in Multicast Networks with Random Network Coding // Proc. of the IEEE Symp. on Information Theory. — 2004. — P. 144-165.

44. Malki D., Reiter M. A high-Throughput Secure Reliable Multicast Protocol // Journal of Computer Security. — 1997. — P. 113-127.

45. Jaggi S., Langberg M., Katti S., Ho T., Katabi D., Medard M. Resilient Network Coding in the Presence of Byzantine Adversaries // INFOCOM. — 2007. — P. 616-624.

46. Dolev D., Dwork C., Waarts O., Yung M. Perfectly secure message transmission // IEEE. — 1990.

47. Pease M.C., Shostak R.E., Lamport L. Byzantine agreement // IEEE. — 1980.

48. Pease M.C., Shostak R.E.,

Lamport L. The Byzantine General Problem // ACM Trans. Program. Lang. Syst. -1982. — V. 4(3). — P. 382-401.

49. Pease M.C., Shostak R.E.,

Lamport L. Researching Agreement in

Presence Faults // J. ACM-1980. —

V. 27(2). — P. 228-234.

50. Fragouli C., Soljanin E. Network

coding applications // Networking. —

2007. — V. 2, N. 2. — P. 134-269.

51. Ho T., Leong B., Koetter R.,

Medard M., Effros M., Karger D.R.

Byzantine Modification Detection in

Multicast Networks with Random Network Coding Information Theory // IEEE International Symposium on Information Theory. Proc. ISIT-04. — 2004. —

P. 144-165.

52. Jaggi S., Langberg M., Katti S., Ho T., Katabi D., Medard M. Resilient Network Coding in the Presence of Byzantine Adversaries // IEEE Transactions on Information Theory. — 2008. — V. 54. — P. 2596-2603.

53. Zhao F., Kalker T., Medard M., Han K. Signatures for content distribution with network coding / / Proc. IEEE ISIT’2007. — 2007.

54. Johnson R., Molnar D., Song D., Wagner D. Homomorphic signature schemes // Topics in Cryptology 32 CT-RSA, LNCS 2271. — 2002. — P. 244262.

55. Krohn M., Freedman M., Mazieres D. On the fly verification of rateless erasure codes for efficient content distribution // Proc. IEEE SSP’2004. — 2004. — P. 226-240.

56. Gkantsidis C., Rodriguez P. Network coding for large scale content distribution // Proc. IEEE INF0C0M’2005. — 2005. — P. 22352245.

5Т. Gkantsidis C., Rodriguez P. Cooperative security for network coding file distribution // Proc. IEEE INF0C0M’2006. — 2006.

58. Acedanski S., Deb S., Medard M., Koetter R. How good is random linear coding based distributed network storage? // Proc. 1st Workshop on Network Coding Theory and Applications (Netcod’05).

2005.

59. Charles D., Jain K., Lauter K. Signatures for network coding // Proc. 40th Annual Conference on Information Sciences and Systems (CISS ’06). — 2006.

60. Болотов А.А, Гашков С.Б., Фролов А.Б. Элементарное ввдение в эллиптическую криптографию: Протоколы криптографии на эллиптических кривых. — М.: КомКнига, 2006.

61. Yu Z., Wei Y., Ramkumar B., Guan Y. An efficient signature-based scheme for securing network coding against pollution attacks // Proc. INF0C0M’08. — 2008.

62. Boneh D., Freeman D., Katz J., Waters B. Signing a Linear Subspace: Signatures for Network Coding // Proc. Public Key Cryptography PKC

2009. — 2009. — P. 68-87.

63. Bao X., Li J. Matching Code-on-Graph wtth Network-on-Graph: Adaptive Network Coding for Wireless Relay Networks // IEEE Transactions on Wireless Communications. — 2008. — V. 7, N. 2. — P. 574-583.

64. Kang J., Zhou B., Ding Z.,

Lin S. LDPC coding schemes for error control in a multicast network // IEEE International Symposium on Information Theory. Proc. ISIT-08. — 2008. —

P. 822-826.

65. Hausl C., Schreckenbach F., Oikonomidis I. Iterative network and channel decoding on a Tanner Graph // Proc. of the 43rd Annual Allerton Conference on Communications, Control, and Computing. — 2005.

66. Hagenaer J., Offer E., Papke L. Iterative decoding of binary block and convolutional codes // IEEE

Trans. Inform. Theory. — 1996. — V. 42, N. 2. — P. 429-445.

67. Cover T.M., El Gamal A.A. Capacity theorems for the relay channel // IEEE Trans. Inform. Theory. — 1979. — V. 25(5), N. 9. — P. 572-584.

68. Gastpar M., Vetterli M. On the capacity of wireless networks: The relay case // Proc. IEEE INFOCOM. — 2002.

69. Ozarow L.H., Shamai S.,

Wyner A.D. Information theoretic

considerations for cellular mobile radio // IEEE Trans. Veh. Technol. — 1994. — V. 43(5). — P. 359-378.

70. Gastpar M., Vetterli M. On the capacity of wireless networks: The relay case // Proc. IEEE INFOCOM. — 2002.

71. Laneman J.N., Tse D.N.,

Wornell G. W. Cooperative diversity in wireless networks: Effcient protocols

and outage behavior // IEEE Trans. Inform. Theory. — 2003.

72. Sendonaris A., Erkip E., Aazhang B. User cooperation diversity // IEEE Transaction on Communications. — 2003. — V. 51, N. 11. — P. 1927-1948.

73. Jing Y., Hassibi B. Distributed space-time coding in wireless relay networks // IEEE Transactions on Wireless Communications. — 2006. — V. 5, N. 12. — P. 3524-3536.

74. Jing Y.Jafarkhani H. Using Orthogonal and Quasi-Orthogonal Designs in Wireless Relay Networks // IEEE Transactions on Inf. Theory. — 2007.

Поступила в редакцию 18.06.2009.