close

Вход

Забыли?

вход по аккаунту

?

Prohorova

код для вставкиСкачать
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное бюджетное образовательное
учреждение высшего профессионального образования
САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ
ВОПРОСЫ ПЕРЕДАЧИ
И ЗАЩИТЫ ИНФОРМАЦИИ
Сборник статей
Под редакцией доктора технических наук,
профессора Е.А. Крука
Санкт-Петербург
2011
УДК 004.9
ББК 32.81
В74
Рецензенты:
Заведующий кафедрой распределенных вычислений
и компьютерных сетей Санкт-Петербургского государственного политехнического
университета, доктор технических наук, профессор Ю.Г. Карпов;
директор лаборатории передачи дискретной информации
Санкт-Петербургского государственного университета телекоммуникаций
им. Профессора М.А. Бонч-Бруевича, кандидат технических наук, доцент М.Я. Лесман
В74 Вопросы передачи и защиты информации: сборник статей /
под ред. Е. А. Крука,– СПб.: ГУАП, 2011. – 332 с.: ил.
ISBN 978-5-8088-0666-5
Предлагаемый сборник статей посвящен вопросам создания безопасных
информационных технологий. Само понятие «безопасные технологии»
рассматривается здесь в самом широком смысле: технологии обеспечения
надежной передачи и хранения информации, защиты информации от
несанкционированного доступа, построение эффективных сетевых
протоколов.
Темы статей фокусируются, в основном, на двух направлениях
исследования: методов повышенной достоверности передачи информации и
систем защиты информации на основе открытых (публичных) ключей.
Большинство статей объединяет использование идей и методов теории
помехоустойчивого кодирования.
Сборник будет полезен для специалистов и студентов, интересующихся
практикой использования кодов, исправляющих ошибки.
ISBN 978-5-8088-0666-5
© Санкт-Петербургский государственный
университет аэрокосмического
приборостроения (ГУАП), 2011
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Предисловие
Настоящий сборник представляет собой труды кафедры
Безопасности информационных систем (в 2011 году кафедра Безопасности информационных систем разделилась на кафедру Комплексной защиты информации и кафедру Технологий защиты информации) Санкт-Петербургского государственного университета
аэрокосмического приборостроения в области передачи, обработки, хранения и защиты информации. Это второй такой сборник,
первый вышел в 2006 году и отражал подход к решению задач
информатики с помощью аппарата теории помехоустойчивого кодирования. Этот подход остался центральным и для настоящего
сборника. Даже в тех его статьях, где формально не используются коды, исправляющие ошибки, явно ощутимо влияние кодовых методов. В предисловии к первому сборнику мы достаточно
полно обосновывали целесообразность такого подхода, и исследования последних лет безусловно подтверждают его (подхода)
полезность.
Тематика сборника широка. В нем представлены как результаты по традиционным вопросам передачи информации, так и вопросы, связанные с использованием кодов в сетях передачи данных. Рассматриваются защищенные и квантовые вычисления.
Представляется важным, что при этом, наряду с вычислительной
сложностью предлагаемых решений, исследуется и их энергоэффективность.
Значительным числом статей представлена в сборнике кодовая криптография, чей путь от сугубо академической теории к ее
практическому использованию в протоколах защиты информации
становится характерным направлением современной криптографии.
Результаты первого сборника трудов кафедры вызвали определенный интерес не только у научных работников, но послужили
отправной точкой для ряда прикладных работ, которые кафедра
-------------------------------------------------------
3
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
вела и ведет по заказам отечественных и зарубежных промышленных предприятий. Думаю, что и материалы нынешнего сборника
окажутся полезными широкому кругу специалистов.
Надеюсь также, что третий сборник трудов кафедры появится
раньше, чем через пять лет, которые прошли между выходом в
свет первого и второго сборника.
Доктор технических наук профессор Е.А. Крук
-------------------------------------------------------
4
-------------------------------------------------------
Надежные методы передачи
дискретной информации
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Исследование циклов подкласса
квазициклических LDPC-кодов
М.О. Алексеев
А.В. Козлов
аспирант
вед. программист ИКБВСС
Санкт-Петербургский государственный
университет аэрокосмического приборостроения
I. Введение
В настоящее время используются несколько основных принципов построения низкоплотностных кодов. Первый основан на
использовании псевдослучайного генератора и дальнейшей оптимизации. Полученные таким образом коды называют случайными. На данный момент разработан достаточно большой аппарат
методов анализа и оптимизации случайных кодов. Такой принцип позволяет строить коды с более высокими корректирующими свойствами, однако случайный характер построения таких кодов исключает возможность оптимизации алгоритмов хранения,
кодирования и декодирования. Второй принцип основан на различных комбинаторных конструкциях, поэтому полученные таким образом коды называют структурированными. Структурированные коды обладают более предсказуемыми характеристиками и возможностью оптимизации работы с ними. Третий принцип
объединяет использование комбинаторных конструкций и псевдослучайного генератора. Такое комбинированное построение кодов
будет использовано в данной работе.
LDPC-коды описываются проверочной матрицей, содержащей
в основном нули и относительно малое количество единиц. Регулярным называется низкоплотностный код, проверочная матрица
которого содержит ровно i единиц в строках и j – в столбцах. В
противном случае, код называется нерегулярным. В общем слу-------------------------------------------------------
7
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Рис. 1. Проверочная матрица регулярного (10, 5) кода
Рис. 2. Граф Таннера для приведенной выше проверочной матрицы
чае количество единиц в матрице имеет порядок O(n), то есть
растет линейно с увеличением длины кодового блока (количества
столбцов проверочной матрицы).
На Рис. 1 приведен пример проверочной матрицы (10, 5) кода.
В приведенной матрице количество единиц в каждом столбце
матрицы, как и в каждой строке, одинаково. Это говорит о том,
что данный код – регулярный. На Рис. 2 приведен граф Таннера (граф инцидентности проверочной матрицы) для этой матрицы [3].
Как видно из рисунка, каждая вершина, соответствующая проверке на четность, имеет кратность четыре. Это говорит о том,
что в каждой из пяти проверок на четность используются четыре
символа кодового слова. Каждый символ кодового слова используется в двух проверках, что определяется кратностью соответствующих вершин графа. Как следует из c̄ · H = 0̄, где c̄ – кодовое
слово, сумма по модулю два всех символов, соединенных с любой
из проверок, должна равняться нулю.
-------------------------------------------------------
8
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Рис. 3. Проверочная матрица регулярного (10, 5) кода с выделенным циклом
длины четыре
Для декодирования LDPC кодов обычно используется разновидность итеративного декодирования, называемая алгоритмом
распространения надежности (belief propagation, BP), работающим с графом кода [4]. Также возможно применение различных
модификаций данного алгоритма, характеризуемых меньшей
сложностью реализации [5]. В основе работы данных методов лежит итеративный обмен мягкими решениями между битовыми
и проверочными узлами графа кода. В случае, если на графе
отсутствуют циклы, то применение такого способа декодирования позволяет получить оптимальное решение. Наличие циклов
небольшой длины в проверочной матрице низкоплотностного кода сказывается в процессе декодирования, так как вычисляемые
на каждой итерации вероятности становятся зависимыми между
собой, что заметно увеличивает вероятность ошибки. Поэтому желательно проектировать коды таким образом, чтобы в их графе
отсутствовали короткие циклы. При выполнения данного требования удается получить близкие к оптимальным результаты.
Под циклом длины четыре понимается образование в проверочной матрице прямоугольника, в углах которого расположены
единицы. На Рис. 3 приведен пример проверочной матрицы (10, 5)
кода с циклом длины четыре.
Циклы большей длины (шесть, восемь и т.д.) можно определить, если построить граф, вершины которого расположены в единицах, а ребра параллельны сторонам матрицы. Количество ребер
в таком графе соответствует длине цикла. Пример цикла длины
шесть приведен на Рис. 4.
-------------------------------------------------------
9
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Рис. 4. Проверочная матрица регулярного (10, 5) кода с выделенным циклом
длины шесть
Рис. 5. Проверочная матрица квазициклического (10, 5) кода
II. Анализ квазициклических низкоплотностных кодов
Рассмотрим следующий принцип построения проверочной матрицы кода. Пусть есть некоторая базовая матрица, количество
строк которой равно h, а количество столбцов – l. Совершим циклический сдвиг строк базовой матрицы вниз на единицу и полученную матрицу припишем справа к базовой. Далее совершим
циклический сдвиг строк базовой матрицы на два, полученную
матрицу припишем справа к объединению базовой и сдвинутой
на единицу матриц. Сдвиг базовой матрицы, как и добавление
полученной матрицы к результату предыдущего шага, повторяется h − 1 раз, в результате чего получаем матрицу, количество
строк которой равно h, а количество столбцов – j · l. Полученная
таким образом матрица является проверочной для квазициклического низкоплотностного кода [2]. На Рис. 5 приведен пример
проверочной матрицы, построенной с помощью описанного выше
алгоритма.
-------------------------------------------------------
10
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Рис. 6. Изменение расстояния между единицами в столбцах проверочной матрицы при циклическом сдвиге строк
В данной работе будут рассмотрены коды, построенные с помощью описанного выше алгоритма, так как в статье [2] описан
достаточно простой в реализации способ их декодирования. В связи с этим необходимо разработать процедуру построения кодов с
хорошими параметрами для этого подкласса квазициклических
кодов.
Исследуемый принцип построения проверочной матрицы позволяет построить код с хорошими параметрами, что будет показано дальше. Также будет показано, что при таком способе построения достаточно просто избежать наличия циклов небольшой
длины.
При построении квазициклического кода необходимо иметь
только базовую матрицу, которая полностью определяет проверочную матрицу кода. Поэтому следует изучить зависимость корректирующих способностей кода от особенностей конструкции базовой матрицы. Пусть в матрице, количество строк в которой равно h, в одном столбце в строках k и j расположены единицы,
причем k < j. Тогда расстоянием между этими единицами назовем величину d = j − k. Анализ проверочной матрицы показывает, что большую роль в образовании циклов играют именно эти
расстояния. Причем необходимо учитывать циклические сдвиги
строк, которые приводят к изменению положения единиц и, соответственно, изменению расстояний между ними. Пример такой
ситуации приведен на Рис. 6.
Поэтому между каждыми двумя единицами в столбце надо
считать два расстояния, которые можно достаточно просто вы-------------------------------------------------------
11
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
числить следующим образом: d1 = (k − j) mod h и d2 = (j −
k) mod h.
Обоснуем образование циклов через расстояния между единицами в столбцах проверочной матрицы.
Лемма 1: Пусть есть базовая матрица, количество строк которой равно h, а количество столбцов – w. Среди расстояний этой
матрицы есть как минимум два одинаковых и равных δ. Обозначим позиции первой пары единиц как (i, k) и (i + δ, k), а второй –
как (j, p) и (j + δ, p). Тогда в проверочной матрице, построенной
по базовой, будут присутствовать как минимум два цикла длины
четыре, образованные с помощью этих единиц.
Доказательство: Очевидно, что при исследуемом принципе
построения проверочной матрицы каждая единица базовой матрицы при циклических сдвигах окажется во всех строках проверочной матрицы. Тогда легко определить количество циклических сдвигов N1 , которое приведет к тому, что единица на позиции
(i, k) окажется в j-й строке:
N1 = (j − i) mod h.
(1)
Очевидно, что таким образом в матрице образовывается прямоугольник, единицы которого расположены на позициях (j, p),
(j + δ, p), (j, N1 · w + p) и (j + δ, N1 · w + p).
Аналогично получаем количество циклических сдвигов N2 базовой матрицы, которое приведет к тому, что единица на позиции
(j, p) окажется в i-й строке:
N2 = (i − j) mod h.
(2)
Единицы полученного прямоугольника расположены на позициях (i, k), (i + δ, k), (i, N2 · w + k) и (i + δ, N2 · w + k).
Таким образом получаем, что одинаковые расстояния между
единицами приводят к появлению в проверочной матрице кода
прямоугольных конструкций с единицами в вершинах, что, как
-------------------------------------------------------
12
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Рис. 7. Образование циклов длины четыре при наличии одинаковых расстояний между единицами
уже было сказано ранее, является признаком наличия циклов длины четыре.
Пример образования циклов длины четыре при циклическом
сдвиге базовой матрицы приведен на Рис. 7.
Как было показано выше, при наличии двух одинаковых расстояний в матрице квазициклического кода образуются два цикла, в которых задействованы единицы самой базовой матрицы.
Однако, это не все циклы длины четыре, образованные этими единицами, так как циклы могут возникать внутри смещенных матриц, то есть без участия базовой. Приведем оценку количества
циклов длины четыре в проверочной матрице. Подсчитаем количество циклов с участием базовой матрицы, то есть как минимум
две единицы, образующие цикл, должны быть расположены в базовой матрице. Пусть A – спектр расстояний от верхних единиц
до нижних в столбцах базовой матрицы, B – спектр расстояний
от нижних единиц до верхних, а h – количество строк базовой
матрицы. Через Ci обозначим величину спектра C на позиции i.
Тогда количество циклов длины четыре с участием базовой матрицы вычисляется по следующей формуле:
N=
h−1
∑
Ai · (Ai + Bi − 1).
(3)
i=1
Значение, полученное с помощью приведенной выше формулы, можно использовать как критерий сравнения матриц на нали-------------------------------------------------------
13
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
чие циклов длины четыре, т.к. оно пропорционально количеству
циклов длины четыре в проверочной матрице.
Таким образом получаем, что при построении базовой матрицы необходимо исключить возможность повторения расстояний
между единицами в столбцах матрицы. Выполнение этого условия гарантирует отсутствие циклов длины четыре. Особенность
этой конструкции и исключение циклов длины четыре позволяет
при заданных параметрах строить коды с высокими корректирующими способностями.
Лемма 2: Пусть есть базовая матрица, количество строк которой равно h, а количество столбцов – w. Среди расстояний этой
матрицы есть как минимум три расстояния, обозначенные через
σ, δ и ψ, удовлетворяющие следующему условию: σ + δ = ψ. Обозначим позиции первой пары соответствующих единиц как (i, n)
и (i + σ, n), второй пары – как (j, m) и (j + δ, m), третьей пары
– как (k, p) и (k + ψ, p). Тогда в проверочной матрице есть как
минимум один цикл длины шесть.
Доказательство: Как уже отмечалось ранее, из-за циклических сдвигов строк базовой матрицы на единицу вниз получаем,
что каждая единица базовой матрицы окажется во всех строках
проверочной матрицы. Тогда выразим через N1 количество сдвигов, через которое единица на позиции (i, n) окажется в строке k:
N1 = (k − i) mod h.
(4)
Таким образом, после N1 циклических сдвигов единица, расположенная на позиции (i, n), окажется на позиции (k, N1 · w + n).
Следовательно, единица на позиции (i + σ, n) из того же столбца
базовой матрицы окажется на позиции (k + σ, N1 · w + n).
Аналогичным образом выразим через N2 количество сдвигов
базовой матрицы, после которого единица на позиции (j + δ, m)
окажется в строке k + ψ:
N2 = (k + ψ − j − δ) mod h.
-------------------------------------------------------
14
(5)
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Таким образом, после N2 сдвигов базовой матрицы на позиции
(k + ψ, N2 · w + m) окажется единица. Соответственно, на позиции
(k + ψ − δ, N2 · w + m) окажется единица из j-й строки базовой
матрицы. Исходя из того, что σ + δ = ψ, упрощаем это выражение
и получаем, что позиция единицы – (k + σ, N2 · w + m).
Получаем, что в коде присутствует цикл длины шесть, так
как в проверочной матрице образовалась конструкция, вершинами которой являются шесть единиц на позициях (k, p), (k + ψ, p),
(k, N1 ·w+n), (k+σ, N1 ·w+n), (k+σ, N2 ·w+m) и (k+ψ, N2 ·w+m).
Последовательность позиций единиц в проверочной матрице при
построении по такому принципу замыкается ровно через шесть
шагов. Это и является признаком образования в коде цикла длины шесть.
Следовательно, для уменьшения количества циклов длины
шесть необходимо избегать ситуации, когда одно расстояние между единицами в столбце базовой матрицы можно представить как
сумму двух других. Однако полностью исключить наличие циклов длины шесть при исследуемом методе построения проверочной матрицы в случае, если в столбцах матрицы более двух единиц, невозможно, так как если есть как минимум три единицы
в столбце, то расстояние между крайними единицами есть сумма расстояний между крайними единицами и средней. Поэтому
возможным представляется удаление только части таких циклов.
Алгоритм 1 представляет собой один из возможных алгоритмов удаления циклов длины четыре для матрицы регулярного
низкоплотностного кода.
Этот алгоритм позволяет строить базовые матрицы подкласса
квазициклических кодов, проверочные матрицы которых не содержат циклов длины четыре. Каждая строка проверочной матрицы будет содержать только одну единицу, что обеспечивает низкую плотность проверок на четность. Пусть h – количество строк
проверочной матрицы, l – количество столбцов, а c – требуемое
количество проверок в каждом столбце матрицы. Тогда для гарантии возможности построения матрицы с помощью приведен-------------------------------------------------------
15
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Алгоритм 1 Построение проверочной матрицы без циклов длины 4
h – количество проверочных символов в кодовом слове
w – длина кодового слова
availableDistances := 1 : h − 1
availableRows := 1 : h
if (кол-во доступных расстояний < w∗(кол-во проверок в столбце)∗(кол-во
проверок в столбце−1)) then
МАТРИЦА H НЕ МОЖЕТ БЫТЬ ПОСТРОЕНА
end if
for каждого столбца H do
outerSuccessF lag := 0
repeat
f irstCheckP osition := rand(availableRows)
записываем ’1’ на позицию f irstCheckP osition
удаляем значение f irstCheckP osition из availableRows
for оставшихся проверок в столбце do
innerSuccessF lag := 0
repeat
checkP osition := rand(availableRows)
записываем ’1’ на позицию checkP osition
считаем расстояния между всеми единицами в текущем столбце
if все эти расстояния находятся в списке availableDistances then
удаляем значение checkP osition из availableRows
innerSuccessF lag := 1
end if
проверяем ограничение на максимальное количество итераций
until (innerSuccessF lag == 1)
end for
if (innerSuccessF lag == 1) then
outerSuccessF lag := 1
удаляем все посчитанные расстояния из availableDistances
else
возвращаем номера строк, использованных в этой итерации, обратно в availableRows
end if
проверяем ограничение на максимальное количество итераций
until (outerSuccessF lag == 1)
if (outerSuccessF lag == 1) then
H(:, текущий столбец) := результат итерации
else
ОШИБКА ПОСТРОЕНИЯ
end if
end for
возвращаем H или сообщение об ошибке
-------------------------------------------------------
16
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
ного выше алгоритма должно выполняться следующее неравенство: c · (c − 1) · l ≤ h − 1.
Возможны различные варианты удаления циклов длины шесть,
эффективность которых напрямую влияет на размеры матрицы,
которую можно построить. Один из вариантов можно получить
модификацией Алгоритма 1 удаления циклов длины четыре. Для
этого после успешной расстановки единиц в очередном столбце
базовой матрицы из спектра допустимых расстояний (изначально
он содержит единицы на позициях всех допустимых расстояний)
исключаем не только сами полученные расстояния, но также и
все возможные суммы и разности пар этих расстояний.
Однако стоит заметить, что подобное исключение расстояний
значительно ограничивает размеры базовой матрицы, которая может быть построена. В случае, если у нас уже расставлены три
единицы в столбце матрицы, то мы получаем шесть расстояний
между единицами, пятнадцать сумм этих расстояний и пятнадцать разностей (их значения могут частично совпадать). Таким
образом, из спектра допустимых расстояний необходимо исключить до тридцати шести расстояний только после трех расставленных проверок. Поэтому базовая матрица при таком методе построения должна иметь небольшую ширину при достаточно большой высоте, так как количество допустимых расстояний, при условии что они не будут повторяться, на единицу меньше высоты
матрицы, а количество вычеркиваемых расстояний резко увеличивается с ростом ширины матрицы.
III. Численные результаты
В качестве сравнения было проведено компьютерное моделирование декодирования LDPC-кодов. Исследовались декодирующие способности трех регулярных квазициклических (1440, 1344)
кодов:
• «H proposed» – предлагаемый код, в столбцах базовой матрицы которого отсутствуют одинаковые расстояния между
единицами;
-------------------------------------------------------
17
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Рис. 8. Вероятность ошибки рассмотренных кодов
• «H paper» – код, описанный в работе [2]. Сравнение полученных результатов с этим кодом обусловлено тем, что он
построен по тому же алгоритму и, соответственно, может
быть декодирован с помощью предлагаемого в статье упрощенного метода декодирования;
• «H random» – код, базовая матрица которого была построена
с помощью псевдослучайного генератора.
Результаты моделирования приведены на Рис. 8.
Как видно из графика, предлагаемый код, построенный с помощью описанного выше алгоритма удаления циклов длины четыре, дает энергетический выигрыш в 0.1 дБ по сравнению с кодом из статьи [2] и около 0.25 дБ по сравнению со случайным
низкоплотностным кодом.
Также было проведено сравнение (576, 504) кода, описанного
в предложении к стандарту 802.15.3с [5], с кодом без циклов длины четыре, проверочная матрица которого построена с помощью
описанного выше алгоритма. На Рис. 9 приведены вероятности
ошибки на бит для следующих кодов:
-------------------------------------------------------
18
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Рис. 9. Вероятность ошибки рассмотренных кодов
• «H proposed» – предлагаемый код, в столбцах базовой матрицы которого отсутствуют одинаковые расстояния между
единицами;
• «H tensorcom» – код, описанный в предложении к стандарту
802.15.3с [5]. Для этого кода также существует достаточно
простой в реализации метод декодирования, что дает основания для сравнения полученных результатов;
• «H random» – код, базовая матрица которого была построена
с помощью псевдослучайного генератора.
График показывает, что корректирующие свойства оптимизированного кода из предложения к стандарту 802.15.3с [5] очень
близки к свойствам кода, построенного согласно предлагаемым
методам.
IV. Заключение
В данной статье было дано краткое описание подкласса низкоплотностных кодов с проверкой на четность и способ их по-------------------------------------------------------
19
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
строения. Предлагаемая конструкция обладает достоинствами с
точки зрения аппаратной реализации. Проведенный анализ проверочных матриц таких кодов выявил некоторые конструктивные
особенности, которые, способствуя образованию циклов в кодах,
ухудшают их декодирующие свойства. Были предложены способы генерации проверочных матриц, позволяющие избегать наличия циклов длины четыре и уменьшать количество циклов длины
шесть. С помощью компьютерного моделирования проведен сравнительный анализ вероятности ошибочного декодирования известных кодов, для которых разработаны упрощенные алгоритмы декодирования, с кодами, построенными по предлагаемым алгоритмам. По сравнению с кодом, принятым в стандарте 802.15.3с, энергетический выигрыш от использования предлагаемого квазициклического кода составил 0.1 дБ. При сравнении кода с исследуемой конструкцией с кодом, реализованном в стандарте 802.15.3с,
получили, что корректирующие способности рассматриваемых кодов очень близки.
Литература
[1] R. G. Gallager, “Low-density parity-check codes”, IRE Trans. Inform. Theory,
1962.
[2] H. Yamagishi, M. Noda, “High Throughput Hardware Architecture
for (1440,1344) Low-Density Parity-Check Code Utilizing Quasi-Cyclic
Structure”, 5th International Symposium on Turbo Codes and Related Topics,
2008.
[3] S. Myung, K. Yang, D. S. Park, “A Combining Method of Structured LDPC
Codes from Affine Permutation Matrices”, ISIT, 2006.
[4] Todd K. Moon, “Error correcting coding: mathematical methods and
algorithms”, Utah State University, 2005.
[5] I. Lakkis, “TensorCom Physical Layer Proposal Dual-Mode Single Carrier /
OFDM”, doc.: IEEE 802.15-0760-01-003c, 2007.
-------------------------------------------------------
20
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Уточнение нижней достижимой границы
минимального расстояния двоичных кодов
Гоппы в беспроводной сети связи
С.В. Беззатеев
Д.О. Иванов
к.т.н. доцент
студент
Санкт-Петербургский государственный
университет аэрокосмического приборостроения
I. Определение кодов Гоппы
Двоичный код Гоппы [1] длины n определяется двумя объектами: многочленом G(x) с коэффициентами из поля GF (2m ), называемым многочленом Гоппы и подмножеством L, называемым
множеством нумераторов позиций: L = {α1 , . . . , αn }, αi ∈ GF (2m )
и G(αi ) ̸= 0 для всех αi ∈ L.
Код Гоппы состоит из всех векторов c = (c1 , . . . , cn ), ci ∈
GF (2), для которых выполняется:
n
∑
i=1
ci
≡ 0 mod G(x).
x − αi
Код Гоппы (L, G(x)) является линейным и имеет следующие
параметры:
n = |L|, k ≥ n − m · t, d ≥ dG = t + 1,
где t = deg G(x).
Определение 1: ([2]) Сепарабельные коды — это коды Гоппы,
многочлен G(x) которых не имеет кратных корней.
-------------------------------------------------------
21
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Число таких многочленов степени t над полем GF (2m ) определяется следующим образом:
Sp2m (t) = 2mt − 2m(t−1) .
Определение 2: ([2]) Сепарабельный код называется неприводимым, если многочлен G(x) неприводим над минимальным полем, содержащим L.
Число неприводимых многочленов степени t над полем GF (2m )
определяется следующим образом [3]:
∑
µ(τ ) · 2mt/τ
Ir2m (t) =
где функция Мебиуса

1,



(−1)r ,
µ(τ ) =



0,
τ |t
t
,
если τ = 1;
если τ − произведение r
различных простых чисел;
в остальных случаях.
В случае, когда G(x) — сепарабельный многочлен, оценка минимального расстояния может быть улучшена:
d ≥ dG = 2 · t + 1.
II. Уточнение нижней границы минимального
расстояния для кодов Гоппы
Рассмотрим множество сепарабельных кодов Гоппы SΓt (L, G),
задаваемых различными сепарабельными многочленами G(x),
deg G(x) = t и множеством нумераторов позиций L ⊆ GF (2m ).
Под нижней достижимой границей минимального расстояния
dSΓ(L,t) множества кодов SΓt (L, G) будем понимать максимальное
целое, такое, что гарантированно существует хотя бы один код
-------------------------------------------------------
22
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Гоппы из множества SΓt (L, G), минимальное расстояние dC которого удовлетворяет неравенству: dC ≥ dSΓt (L,G) . Очевидно, что
dSΓt (L,G) ≥ dG = 2t + 1.
Идея построения уточненной оценки для dSΓt (L,G) состоит в
том, чтобы посчитать число различных многочленов Гоппы выбранной степени t и сопоставить его с числом различных векторов
c, wt(c) ≤ d′ . Будем увеличивать значение d′ пока выполняется
неравенство:
d′
∑
Cni · bi ≤ CSΓt (L,G) ,
i=d
где bi — некоторый коэффициент, соответствующий числу различных кодов, которым может принадлежать вектор c веса i,
CSΓt (L,G) — число различных кодов Гоппы из множества SΓt (L, G).
Замечание 1: Здесь под различными кодами будем понимать
коды, множество кодовых слов веса до d′ у которых различно.
A. Неприводимые коды Гоппы
Эта оценка нижней достижимой границы минимального расстояния использовалась В.Д. Гоппой в [1] при доказательстве того
факта, что коды Гоппы лежат на границе Варшамова-Гилберта.
Число неприводимых многочленов степени t над полем GF (2m ) [3]:
∑
µ(τ ) · 2mt/τ
Ir2m (t) =
τ |t
t
.
Для неприводимых двоичных кодов Гоппы легко показать [1],
что если вес кодового слова wt(c) < 4 · t + 1, то это кодовое
слово может принадлежать лишь одному коду Гоппы. В случае
6 · t ≥ wt(c) ≥ 2 · t + 1, кодовое слово c может принадлежать двум
различным кодам, определяемым многочленами G1 (x), G2 (x), если 8 · t ≥ wt(c) ≥ 6 · t + 1, кодовое слово c может принадлежать
трем различным кодам и так далее. Таким
образом, в общем слу⌊ i−1 ⌋ ⌊ d′ ⌋
чае значение коэффициента bi = 2t ≤ 2t .
-------------------------------------------------------
23
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
В худшем случае в спектре кода Гоппы имеется лишь одно
слово минимального веса i.
Тогда справедливо следующее неравенство [1]:
⌊
′
d
∑
Cni
i=2t+1
⌋
i−1
·
≤ Ir2m (t),
2t
с помощью которого можно уточнить оценку минимального расстояния для неприводимого двоичного кода Гоппы с множеством
L ⊆ GF (2m ) и G(x), deg G(x) = t.
Мы обобщим здесь этот способ уточнения нижней границы
минимального расстояния для неприводимых кодов Гоппы с многочленом степени t на случай приводимых сепарабельных кодов
Гоппы.
B. Сепарабельные коды Гоппы
Используя описанный выше метод уточнения границы минимального расстояния для неприводимых кодов Гоппы, рассмотрим сепарабельные коды. Будем считать, что сепарабельный многочлен Гоппы имеет l корней в GF (2m ):
′
d
∑
bi · Cni < Sp(t, l),
(1)
i=2t+1
где Sp(t, l) — число сепарабельных многочленов степени t, имеющих l корней из GF (2m ).
1) Многочлен Гоппы не имеет корней в GF (2m ), то есть
l = 0:
Лемма 1: Многочлен f (x) степени u, сепарабельный над полем GF (2m ) и не имеющий корней в GF (2m ), может делиться
⌊t⌋
максимум на C⌊ u2 ⌋ различных сепарабельных многочленов G(x)
2
степени t с коэффициентами из GF (2m ) и не имеющих корней в
этом поле.
-------------------------------------------------------
24
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Доказательство: Сепарабельный многочлен Гоппы G(x) степени t с коэффициентами из GF (2m ) и не имеющий корней в
этом поле, в качестве минимального сомножителя c коэффициентами из GF (2m ) может иметь неприводимый многочлен степени,
не меньшей 2. Таким образом, G(x) может иметь максимум ⌊ 2t ⌋
сомножителей.
Соответственно, многочлен f (x) также представляется произведением неприводимых многочленов, сумма степеней которых
не превышает t. Очевидно, что максимальное число различных
неприводимых сомножителей степени не меньшей 2 в многочлене
f (x) степени u равно u2 . Таким образом, максимальное число различных многочленов G(x), удовлетворяющих условию леммы и
являющихся делителями многочлена f (x), определяется величи⌊t⌋
ной C⌊ u2 ⌋ .
2
Следствие 1: Из доказанной леммы очевидным образом получаем верхнюю границу для значения коэффициента
⌊t⌋
2
.
bi ≤ C⌊ i−1
⌋
4
Замечание 2: В частном случае, когда G(x) — неприводимый
многочлен, то есть минимальный сомножитель G(x) имеет степень t, bi начнет отличаться от 1, начиная с i = 4t.
2) Многочлен Гоппы имеет корни в GF (2m ), то есть l ≥ 1:
Опираясь на лемму из предыдущего пункта, легко вычислить
коэффициент bi : bi ≤ C⌊t i−1 ⌋ .
2
C. Таблицы
Применив неравенство:
′
d
∑
Cni · bi ≤ CΓt (L,G) ,
i=d
-------------------------------------------------------
25
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
мы получим уточненную нижнюю достижимую границу минимального расстояния для двоичных сепарабельных кодов Гоппы.
То есть получили:
d ≥ d′ = dG + ∆ = 2t + 1 + ∆.
В ячейках Табл. I–VI указаны ∆ = max(∆sp , ∆ir ), где ∆sp —
улучшение границы минимального расстояния, получаемое на сепарабельных многочленах, а ∆ir — на неприводимых многочленах.
В большинстве случаев при небольшом значении ∆, ∆sp > ∆ir .
Это объясняется тем, что сепарабельных кодов Гоппы существенно больше, чем неприводимых при выбранных параметрах n, t. В
случаях, когда значение ∆ велико, получаем ∆sp < ∆ir . Это объясняется грубостью имеющейся к настоящему моменту верхней
оценки поправочного коэффициента bi .
В скобках указаны оценки, полученные в статье [4] полным
перебором неприводимых многочленов.
Во второй строке в ячейках таблиц указано отношение (в процентах) количества различных кодов Гоппы с минимальным расстоянием, определяемым новой оценкой, к общему числу кодов
Гоппы с указанными параметрами t и n.
Рассматривая процентные соотношения, следует учитывать
следующее:
• Если для некоторого значения t степени многочлена Гоппы
имеется несколько значений n длины кода, для которых значение улучшенной оценки минимального расстояния совпадает, то очевидно, доля кодов с такой оценкой будет возрастать с уменьшением длины кода (так как при уменьшении
длины кода уменьшается левая часть неравенства (1)).
• Пусть для некоторой степени многочлена Гоппы t для кодов
с длинами n1 и n2 (n2 < n1 ) имеются оценки для минимального расстояния d1 и d2 (d2 > d1 ). Тогда очевидно, что
доля кодов, имеющих оценку минимального расстояния d1
на длине n2 , не меньше доли таких кодов на длине n1 .
-------------------------------------------------------
26
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Таблица I
Сепарабельные двоичные коды Гоппы с L ⊆ GF (26 )
64
+0
0
9
+0
0
10
+4
36.3
11 +9(+4)
4.9
t/n
8
63
+0
0
+2
53.4
+3
90.5
+12
6.3
62
+0
0
+3
17.7
+4
32.4
-
61
+0
0
+3
47.1
+5
1.3
-
60
+0
0
+3
64.7
-
59
+0
0
+3
76.4
-
58
+2
28.7
+3
84.2
-
57
+2
49.6
+3
89.6
-
56 55
+2
64.6 +4 +4
17.2 48.1
-
Таблица II
Сепарабельные двоичные коды Гоппы с L ⊆ GF (27 )
t/n
14
15
16
17
128
+2
59.8
+4(+2)
57.9
+5(+4)
59.4
+9(+5)
45.5
127
+3
33.6
+3
95.0
+6
25.2
+10
24.5
126
+3
59.3
+3
97.0
+6
46.7
+11
1.5
-------------------------------------------------------
125
+3
70.8
+4
27.3
+7
9.4
+11
35.1
27
124
+3
78.1
+4
47.3
+7
36.5
+12
21.5
123
+3
83.4
+4
61.4
+8
0.2
+13
10.4
122
+3
87.4
+5
0.07
+8
31.2
+14
3.6
121
+3
90.5
+5
27.7
+9
0.06
+15
2.4
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Таблица III
Сепарабельные двоичные коды Гоппы с L ⊆ GF (27 )
t/n
13
14
15
16
120
+3
6.6
+3
92.8
+5
47.8
+9
32.4
119
+3
28.2
+3
94.6
+6
0.2
+10
9.1
118
+3
44.9
+3
95.9
+6
29.0
+10
39.7
117
+3
57.9
+4
1.9
+6
49.7
+11
25.1
116
+3
67.9
+4
27.9
+7
17.3
+12
12.6
115
+3
75.6
+4
47.1
+7
42.5
+13
4.2
114
+4
61.4
+8
13.1
+14
1.5
113
+8
40.7
+15
4.9
Таблица IV
Сепарабельные двоичные коды Гоппы с L ⊆ GF (28 )
t/n
20
21
22
23
256
+0
0
+3
40.1
+4
76.2
+5
92.7
255
+2
56.7
+3
75.2
+3
97.9
+5
50.1
254
+2
70.9
+3
83.5
+3
98.6
+5
59.8
-------------------------------------------------------
253
+2
77.1
+3
87.2
+4
11.2
+5
67.6
28
252
+2
81.1
+3
89.6
+4
28.8
+5
74.1
251
+3
5.5
+3
91.4
+4
42.2
+6
16.9
250
+3
21.3
+3
92.9
+4
53.1
+6
33.7
249
+3
34.4
+3
94.2
+4
61.9
+6
47.1
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Таблица V
Сепарабельные двоичные коды Гоппы с L ⊆ GF (28 )
t/n
19
20
21
22
23
248
+2
11.2
+3
45.5
+3
95.2
+4
69.1
+6
57.8
247
+2
25.1
+3
54.7
+3
96.0
+4
74.9
+6
66.5
246
+2
36.9
+3
62.3
+3
96.7
+4
79.7
+6
73.4
245
+2
46.9
+3
68.7
+3
97.3
+5
16.7
+7
20.4
244
+2
55.4
+3
78.5
+3
97.8
+5
32.9
+7
37.1
243
+2
62.5
+3
82.2
+3
98.2
+5
46.1
+7
50.4
242
+2
68.5
+3
82.2
+3
98.5
+5
56.7
+7
60.9
241
+2
73.6
+3
85.3
+4
3.6
+5
65.2
+7
69.3
Таблица VI
Сепарабельные двоичные коды Гоппы с L ⊆ GF (28 )
t/n
19
20
21
22
23
240
+2
77.8
+3
87.8
+4
21.6
+5
72.1
+8
13.6
239
+2
81.5
+3
89.9
+4
36.3
+6
11.4
+8
32.6
238
+3
7.4
+3
91.7
+4
48.3
+6
29.4
+8
47.4
-------------------------------------------------------
237
+3
22.9
+3
93.2
+4
58.0
+6
43.9
+8
59.0
29
236
+3
94.4
+4
66.0
+6
55.4
+8
68.1
235
+4
72.5
+6
64.6
+9
15.7
234
+6
71.9
+9
34.9
233
+9
49.8
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Таблица VII
Сепарабельные двоичные коды Гоппы с
L ⊆ GF (2m ), 10 ≤ m ≤ 13
n
1024
t
50
d
101
1632
2048
2960
6624
33
27
56
115
67
55
113
231
∆
+9
51.3
0
0
0
+11
96.1
Табл. VII составлена по кодам, взятым из [5], где проводят
успешную атаку на (1024, 524, 50)-код. В качестве защиты предлагается воспользоваться кодами (1632, 1269, 67), (2048, 1751, 55),
(2960, 2288, 113), (6624, 5129, 231). Из приведенной таблицы видно, что на последний код атака с поиском слова минимального
веса 2t + 1 = 231 с вероятностью, близкой единице, окажется бессмысленной.
III. Заключение
В настоящей работе получены неравенства, с помощью которых можно уточнить нижнюю достижимую границу для минимального расстояния двоичных сепарабельных кодов Гоппы с
конкретными параметрами n, k. Очевидной проблемой, требующей решения, является уточнение значений коэффициентов bi ,
что позволило бы улучшить полученные здесь оценки достижимого минимального расстояния двоичных кодов Гоппы.
Литература
[1] Гоппа В.Д., Новый класс линейных корректирующих кодов, Проблемы
передачи информации, 1970, Т.6, сентябрь, №. 3, с. 24-30.
-------------------------------------------------------
30
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
[2] Гоппа В.Д., Рациональное представление кодов и (L, g)-коды, Проблемы
передачи информации, 1971, с. 41–49.
[3] Мак-Вильямс Ф.Дж., Слоэн Н.Дж., Тероия кодов, исправляющих ошибки,
М: Связь, 1979.
[4] D.W.K.Chirwa, The number of Dimensions of Certain Categories of Goppa
Codes, Mzuzu University, Malawi, 2006.
[5] D.J.Bernstein, T.Lange, C.Peters, Attacking and defending the McEliece
cryptosystem, Cryptology ePrint Archive, 2008.
-------------------------------------------------------
31
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Количественное оценивание визуальных
искажений, возникающих при
кодировании с использованием
дискретного косинусного преобразования
А.И. Веселов
М.Р. Гильмутдинов
аспирант
к.т.н. доцент
Санкт-Петербургский государственный
университет аэрокосмического приборостроения
I. Введение
Алгоритмы сжатия видеоданных с потерями, использующие
разновидности дискретного косинусного преобразования (ДКП)
[1], являются самыми распространенными на сегодняшний день.
ДКП также используется в сжатии видеоданных. Кодирование
ключевых кадров использует алгоритмы, аналогичные кодированию неподвижных изображений. Широко распространненные
стандарты серий MPEG-x [2] и ITU-T H.26x [3] кодируют спектральные коэффициенты, полученные с использованием двумерных преобразований размерностей 8 × 8 и 4 × 4. В сжатии с потерями процедура квантования спектральных коэффициентов приводит к специфическим искажениям, которые визуально наблюдаются в востановленных (т.е. полученных с выхода декодера)
изображениях. С целью уменьшения этих искажений и улучшения визуального качества используются дополнительные методы обработки, которые применяются после декодирования. Обычно эти методы называют постфильтрами. Для корректного применения постфильтров необходимо знание параметров кодирования, в частности, шага квантования или аналогичного парамет-------------------------------------------------------
32
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
ра, влияющего на потери при кодировании. Для оценки качества
восстановленного изображения можно использовать сравнение с
оригиналом, подаваемым на вход кодера. Для построения такого
рода оценок чаще всего используют пиковое отношение сигналшум (PSNR — Peak Signal to Noise Ratio) или величину структурной похожести (SSIM — Structural SIMilarity [4]). Данная статья посвящена методу оценивания искажений по восстановленному изображению, не требующему никакой дополнительной информации, кроме размерности применяемого ДКП (как правило,
размерность ДКП известна, если известен стандарт сжатия).
Работа организована следующим образом. Второй раздел посвящен рассмотрению на качественном уровне природы искажений, возникающих в процессе кодирования с потерями, основанного на ДКП. В третьем разделе вводится в рассмотрение статистическая характеристика, с помощью которой анализируются
искажения, вызванные квантованием коэффициентов двумерного
ДКП. В отличие от PSNR, введенная характеристика позволяет
более детально рассмотреть влияние ошибки квантования на коэффициенты в пространственной области (после обратного ДКП)
внутри обрабатываемого блока. В четвертом разделе приведено
описание предлагаемого алгоритма оценки искажений на границах блоков, образованных коэффициентами ДКП. В последнем
разделе приведен сравнительный анализ оценки, вычисляемой по
предложенному методу, с оценками PSNR и SSIM.
II. Обзор методов оценивания визуальных искажений
Представленная на Рис. 1 упрощенная схема кодера и декодера, использующего ДКП, подразумевает наличие процедуры квантования спектральных коэффициентов. На Рис. 1 модули квантования и деквантования (нахождения аппроксимирующих значений) отмечены символами Q и Q−1 .
Квантование является необратимой операцией:
)
(
u
′
,
(1)
u = QP · round
QP
-------------------------------------------------------
33
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Рис. 1. Типовая схема кодека с потерями
где u — исходные данные, QP — шаг квантования, round(·) — операция округления до ближайшего целого, u′ — восстановленные
данные.
Визуальный эффект от искажений, вносимых квантованием,
принято называть артефактом. Артефакты будем разделять на
следующие типы [5]:
1. Блоковые артефакты (Рис. 2). Обусловлены квантованием
старших низкочастотных коэффициентов ДКП.
2. Артефакты типа «ringing» (Рис. 3). Обусловлены квантованием низкочастотных коэффициентов ДКП.
3. Артефакты типа «mosquito» (Рис. 4). Обусловлены квантованием высокочастотных коэффициентов ДКП.
Объективная оценка артефактов (т.е. оценка с использованием
некоторого алгоритма, не требующего вовлечения группы экспертов) в изображении может решаться с помощью многих методов,
которые условно можно разделить на три группы:
-------------------------------------------------------
34
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Рис. 2. Блоковый эффект квантования коэффициентов ДКП
Рис. 3. Артефакты типа «ringing»
-------------------------------------------------------
35
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Рис. 4. Артефакты типа «mosquito»
• Методы, сопоставляющие оригинальное изображение на входе кодера и восстановленное изображение с выхода декодера.
• Методы, использующие выход декодера и дополнительную
информацию о параметрах кодирования.
• Методы, использующие только восстановленные данные с
выхода декодера.
В качестве критериев оценки качества наиболее распространены методы первой группы. К ней относятся такие оценки, как
PSNR (Peak Signal to Noise Ratio) и SSIM (Structural SIMilarity),
которые вычисляются по следующим формулам:
H · W · 2552
,
PSNR = 10 · lg ∑H−1 ∑W −1
′ 2
i=0
j=0 (xi,j − xi,j )
SSIM =
(2 · µx µy + C1 )(2 · σxy + C2 )
,
(µ2x + µ2y + C1 )(σx2 + σy2 + C2 )
(2)
(3)
где xi,j — значения пикселей из оригинального кадра в строке i
и столбце j, x′i,j — значения пикселей из восстановленного кадра,
W — ширина кадра, H — высота кадра, µx , µy — средние значения интенсивностей оригинального и восстановленного кадров
-------------------------------------------------------
36
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
соответственно, σx2 , σy2 — дисперсии интенсивностей оригинального и восстановленного кадров соответственно, C1 , C2 — ненулевые
константы для избежания деления на 0.
Как видно из формул (2) и (3), для вычисления значений
PSNR и SSIM, помимо восстановленного кадра, используются также оригинальные данные, подаваемые на вход кодера.
Примерами методов второй группы являются процедуры детектирования, используемые при постфильтрации восстановленных данных для стандартов MPEG и ITU-T [6]. Эти алгоритмы
для принятия решения о наличии искажений (как правило, блоковых артефактов) используют значения внутренних параметров
кодека, например, параметры квантования.
Предложенная в данной статье эвристическая процедура относится к третьей группе. Для обоснования предлагаемой процедуры в следующем разделе будет введена вспомогательная статистическая характеристика искажений, учитывающая среднеквадратическую ошибку, приходящуюся на отдельный пиксель внутри
блока с размерами N × N .
III. Анализ статистики искажений внутри блока
Введем в расмотрение «матричную» оценку искажений, которая строится на основе пикселей исходного изображения X, подаваемого на вход кодера, и восстановленного изображения X ′ ,
получаемого на выходе декодера, по следующему алгоритму.
1. Строится разностный кадр D, пиксели которого вычисляются по формуле:
d(i, j) = xi,j − x′i,j , i = 0, . . . , H − 1; j = 0, . . . , W − 1.
2. Кадр D разбивается на неперекрывающиеся блоки, размер
которых соответствует размеру N × N двумерного ДКП, используемого в кодеке. Здесь и далее будем полагать, что размеры изображения по ширине и высоте кратны N (Рис. 5).
-------------------------------------------------------
37
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Рис. 5. Разбиение изображения на непересекающиеся блоки
3. Пиксели из D перегруппировываются в соответствии с их
позицией внутри непересекающихся блоков. Таким образом,
формируется N × N множеств пикселей. Каждому множеству припишем двумерный индекс (m, n), совпадающий с
местоположением входящих в него пикселей внутри блока
N × N . Формально правило перегруппировки можно записать так:
d(i, j) ∈ Dm,n : m = i mod N, n = j mod N,
где i, j — индексы пикселя в изображении по ширине и высоте.
4. Для каждого множества (m, n) по входящим в него пикселям
считается второй начальный момент:
v(m, n) =
N2
WH
∑
d(i, j)2 ,
d(i,j)∈Dm,n
2
N
где нормировочный коэффициент W
H определяется числом
непересекающихся блоков N × N в изображении размером
W × H. В итоге получаем матрицу следующего вида:
v0,0
.
.
.
v
0,N
−1
.
...
...
V = ...
vN −1,0 . . . vN −1,N −1 -------------------------------------------------------
38
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Получившуюся матрицу V будем называть матрицей внутриблоковых искажений. Очевидно, что данная матрица напрямую
связана с PSNR. На ее основе формулу (1) можно переписать следующим образом:
PSNR = 10 · lg
N
2552
∑
N −1 ∑N −1
2
n=0
m=0 v(m, n)
.
(4)
На Рис. 6 представлено графическое представление матриц искажений для нескольких известных изображений и кадров видеопоследовательностей, полученных для ДКП размером 8 × 8.
Как видно из графиков, наибольшие искажения характерны
для углов и границ блоков. При этом, чем больше потери (шаг
квантования), тем больше разница между краями и центром матрицы, где искажения, как правило, незначительны. Этому факту
имеется следующее объяснение. Одним из свойств, из-за которого ДКП применяют для сжатия фотореалистичных изображений,
является концентрация энергии в области низкочастотных коэффициентов. В результате этого именно квантование низкочастотных коэффициентов приводит к максимальным искажениям во
временной области после обратного преобразования.
Для одномерного случая графическая интерпретация искажений при квантовании низкочастотных коэффициентов ДКП представлена на Рис. 7. Здесь на Рис. 7, А) и Б) представлены сигналы в пространственной области длины 15. Спектр ДКП для обоих
сигналов будет содержать единственный ненулевой элемент. Для
сигнала на Рис. 7, А) это второй, а Рис. 7, Б) — третий коэффициент, истинные значения которых и ошибка равномерного квантования при различных шагах представлены в Табл. I.
На Рис. 7, В) и Г) представлены значения в пространственной области, восстановленные по квантованным коэффициентам
с помощью обратного ДКП. Значения ошибок (разностей между
исходным и восстановленым сигналом) представлены на Рис. 7,
Д) и Е) для сигналов на Рис. 7, А) и Б) соответственно.
-------------------------------------------------------
39
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
А)
Б)
В)
Г)
Д)
Е)
Рис. 6. Графическое представление матрицы искажений. А) Claire, QP=5
(MPEG4); Б) Claire, QP=25 (MPEG4); В) Lena, качество 80 (JPEG); Г) Lena,
качество 20 (JPEG); Д) Peppers, качество 80 (JPEG); Е) Peppers, качество 20
(JPEG);
-------------------------------------------------------
40
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
А)
Б)
В)
Г)
Д)
Е)
Рис. 7. Квантование второго и третьего коэффициентов одномерного ДКП
длины 15 (все сигналы во временной области): А) Б) — исходные сигналы;
В) Г) сигналы после квантования коэффициентов ДКП с шагом QP; Д) Е) —
разность между исходным и квантованным сигналами
-------------------------------------------------------
41
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Таблица I
Ошибка квантования для второго и третьего
коэффициентов ДКП в зависимости от параметров
квантователя
QP
AC2, значение
AC2, ошибка
AC3, значение
AC3, ошибка
нет
14.23
0
−36.15
0
1
14
0.23
−36
−0.15
3
15
−0.77
−36
−0.15
11
11
3.23
−33
−3.15
Рис. 8. Постоянное значение разности между пикселями на границе соседних
блоков при сильном квантовании
-------------------------------------------------------
42
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
IV. Метод, основанный на анализе пикселей,
находящихся на краях блоков
Для фотореалистичных изображений локализация энергии блока после ДКП происходит в области низкочастотных коэффициентов, расположенных в левом верхнем углу блока. Поэтому после
квантования с большим шагом, как правило, ненулевыми остаются только постоянная составляющая и коэффициенты, которые
находятся справа и ниже. Это будет приводить к тому, что после обратного преобразования значения пикселей на краях блока
будут одинаковыми. В случае, когда данная ситуация характерна для двух смежных блоков, на всей границе между ними виден
четкий перепад, который является одним из визуальных проявлений блокового эффекта, изображенного на Рис. 2. Это также
означает, что разница между граничными пикселями, принадлежащими этим блокам, будет равна постоянной величине (Рис. 8).
При этом, чем больше шаг квантования, тем больше таких блоков
в восстановленном изображении.
В процессе детектирования такого рода ситуаций необходимо учитывать возможные локальные особенности изображений на
границах блоков и отличать их от ошибок квантования. Введение верхнего и нижнего порогов при анализе разностей пикселей
на границе блоков позволит избежать ложного детектирования в
двух случаях:
• для гладких (монотонных, слабо меняющихся) областей;
• для текстурных областей с резким перепадом (четко видимой границей).
Рассмотрим следующий алгоритм детектирования блоковых
искажений.
Инициализация. Обнуляются значения счетчиков d и B. В первом будет содержаться число границ блоков, в которых зафиксировано наличие блокового артефакта. Во втором хранится общее
число рассмотренных границ. Следующие шаги алгоритма выполняются для вертикальной и горизонтальной границ между каждой парой блоков размера N × N .
-------------------------------------------------------
43
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
А)
Б)
Рис. 9. Нумерация пикселей в соседних блоках A и B. А) — для горизонтальных соседних блоков Б) — для вертикальных соседних блоков
1. Вдоль границы соседних блоков A и B, как показано на
Рис. 9, считаются разности между значениями смежных пикселей, принадлежащих разным блокам:
′B
diffA,B
= x′A
i,N −1 − xi,0 ,
i
i = 0, . . . , N − 1
— для горизонтального прохода,
′B
diffA,B
= x′A
N −1,i − x0,i ,
i
i = 0, . . . , N − 1
— для вертикального прохода.
2. Наращивается значение счетчика общего числа границ:
B = B + 1.
3. Если для пары блоков A, B выполняется условие
diffA,B
= C A,B = const,
i
i = 0, . . . , N − 1,
т.е. все разности равны между собой, то выполняется шаг 4,
иначе рассмотрение данной границы завершается.
-------------------------------------------------------
44
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
4. Для вынесения окончательного решения C A,B сравнивается
с двумя пороговыми значениями TLo и TU p для избежания
ложных детектирований на гладких и текстурных областях.
Если выполняется условие
TLo < C A,B < TU p ,
то проверямая граница между парой блоков помечается, как
содержащая артефакт, и увеличивается значение счетчика:
d = d + 1.
Завершение. По окончании обхода всех границ вычисляется
значение оценки, определяющей общую долю границ, на которых
не проявляется блоковый эффект:
(
)
d
(N )
Bd (TLo , TU p ) = 100 · 1 −
.
B
Значения N , TLo и TU p являются параметрами алгоритма. N
принимает значения 4 или 8, что совпадает с размерами ДКП,
используемыми в стандарте сжатия изображений JPEG и видео
H.264. Значения TLo и TU p подбирались опытным путем. Значения оценки в зависимости от этих параметров представлены на
Рис. 10.
Помимо числового значения, результаты вышеизложенной процедуры детектирования можно отобразить визуально, выделив
границы, на которых присутствует перепад, обусловленный блоковым эффектом. На Рис. 11 границы с обнаруженными артефактами отмечены черным цветом.
В заключение сопоставим предложенную оценку с PSNR и
SSIM для типовых тестовых изображений (Рис. 12). На графиках предлагаемая оценка имеет название Blockiness. Следует отметить сильное различие при малых значениях QP для изображения Baboon (Рис. 12, Б)). Значение предложенной оценки убывает медленнее, чем остальные. Это объясняется преобладанием
высокочастотных компонент в блоках изображения, искажения
-------------------------------------------------------
45
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Рис. 10. Значения оценки в зависимости от порогов TLo и TU p
в которых не детектируются с помощью предложенной оценки.
Для остальных изображений результаты, полученные с помощью
предложенного метода, коррелируют с известными объективными
критериями PSNR и SSIM.
V. Заключение
В данной работе представлен эвристический метод оценки визуaльных искажений, вносимых при кодировании с потерями изображений с использованием ДКП. Основные искажения, появляющиеся после восстановления изображения, связаны с ошибкой
квантования спектральных коэффициентов. Предложенный метод имеет ряд достоинств по сравнению с существующими алгоритмами и оценками детектирования искажений.
1. Для вычисления оценки не требуется сторонней информации о параметрах кодирования (нет взаимодействия с декодером).
2. Нет необходимости использовать исходный кадр.
-------------------------------------------------------
46
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
А)
Б)
В)
Г)
Рис. 11. Обнаруженные артефакты для различных параметров квантователя кодера Xvid: A) Восстановленное изображение, параметр квантователя,
QP=5; Б) Восстановленное изображение, параметр квантователя, QP=25; В)
Границы с артефактами, QP=5; Г) Границы с артефактами, QP=25
-------------------------------------------------------
47
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
А)
Б)
В)
Г)
Рис. 12. Сравнение с PSNR и SSIM: A) Airplane; Б) Baboon; В) Lena; Г)
Peppers;
-------------------------------------------------------
48
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
3. Простота реализации (возможно использование в реальном
времени в качестве механизма оценки искажений в восстановленном изображений перед постобработкой).
4. Характер изменения значений оценки при различных шагах
квантования схож с результатами, полученными для известных критериев PSNR и SSIM.
Следует отметить, что предложенный алгоритм нельзя использовать в качестве детектора блочности, т.к. он определяет только
один специфический тип блоковых артефактов. Однако в целом
предлагаемый метод может использоваться для объективной количественной оценки методов кодирования с потерями с использованием ДКП.
Литература
[1] S. A. Khayam, “The discrete cosine transform (dct): Theory and application,”
WAVES-TR-ECE802.602, 2005.
[2] “Mpeg-4, iso/iec 14496, coding of audio-visual objects,” 2004.
[3] “H.264/mpeg-4 part 10 avc iso/iec 14496-10, coding of audio-visual objects part 10. advanced video coding,” 2003.
[4] Z. Wang, A. Bovik, H. Sheikh, and E. Simoncelli, “Image quality assessment:
From error visibility to structural similarity,” IEEE Transactions on Image
Processing, vol. 13, pp. 600–612, 2004.
[5] A. Veselov, I. Grohotkov, and M. Gilmutdinov, “Methods of artifacts reduction
in dct-based mobile video coding,” 6th FRUCT conference, 2009.
[6] S. D. Kim, J. Yi, H. M. Kim, and J. B. Ra, “A deblocking filter with two
separate modes in block-based video coding,” IEEE TRANSACTIONS ON
CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY, vol. 9, pp. 156–
160, 1999.
-------------------------------------------------------
49
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Квантовый алгоритм декодирования
линейных кодов
И.Н. Грохотков
аспирант
Санкт-Петербургский государственный
университет аэрокосмического приборостроения
I. Введение
Задача декодирования по максимуму правдоподобия является
одной из центральных в теории кодирования. Берлекэмп, МакЭлис и Тилборг доказали, что для линейных кодов общего вида
эта задача является NP-полной [1]. В более поздних работах [2, 3]
было показано, что задача остается NP-полной, даже если разрешены неограниченные предварительные вычисления. Такой же
результат был получен и для некоторых конкретных классов кодов, например, для кодов Рида-Соломона [4].
Известны сложные задачи, для решения которых существуют эффективные алгоритмы в квантовой модели вычислений [5].
Наиболее известным примером является задача факторизации целых чисел, наилучшие классические алгоритмы решения которой
имеют сверхполиномиальную сложность. Для этой задачи Шором
был предложен квантовый алгоритм, имеющий полиномиальную
сложность [6].
Другим известным квантовым алгоритмом является алгоритм
Гровера [7]. Он позволяет производить поиск среди N элементов
эффективнее, чем это√ возможно на классическом компьютере —
за время порядка O( N ). В данной работе на основе алгоритма
Гровера строится квантовый алгоритм декодирования линейных
кодов по максимуму правдоподобия.
-------------------------------------------------------
50
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
II. Алгоритм Гровера
Для начала определим задачу, решаемую алгоритмом Гровера. Пусть имеется множество S из N элементов и задана функция
f : S → {0, 1}.
Задача поиска: найти те элементы {sk }M
k=1 , для которых
f (sk ) = 1.
Лучшим детерминированным классическим алгоритмом решения этой задачи является перебор всех N элементов, который потребует O(N ) операций.
Квантовый алгоритм поиска, предложенный Гровером [7], работает с суперпозицией состояний квантового регистра, соответствующих возможным решениям задачи поиска. При этом, как
правило, возможные решения отождествляются с состояниями
в вычислительном базисе. Квантовый алгоритм поиска отделяет множество решений задачи от множества не-решений задачи,
обращаясь к специальному оператору — оракулу.
Квантовый оракул — унитарный оператор Of , изменяющий
фазу у решений задачи поиска:
Of
|x⟩ −−→ (−1)f (x) |x⟩.
(1)
Будем считать, что число возможных решений N = 2k , и что
для работы оракула требуется r дополнительных кубитов. Тогда
итерация алгоритма Гровера может быть представлена оператором G:
((
(
)
)
)
G = H ⊗k 2|0⟩⟨0| − I ⊗k H ⊗k ⊗ I ⊗r Of .
(2)
Алгоритм поиска состоит в выполнении T итераций, заданных
оператором G, на суперпозиции всех возможных решений задачи поиска. Обычно подобная суперпозиция создается при помощи
операторов Адамара, действующих на регистр в состоянии |0⟩. С
учетом этого, алгоритм Гровера записывается в следующем виде:
(
)
GT H ⊗k ⊗ I ⊗r |0⟩⊗k |0⟩⊗r .
(3)
-------------------------------------------------------
51
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
|0i
H
:
=<;
|0i
H
:
=<;
|0i
|0i
:
=<;
H
G
G
···
|0i
G





a













b








|0i
|0i
Рис. 1. Алгоритм Гровера. a — основной регистр (k кубитов), b — вспомогательный регистр для работы оракула (r кубитов)
Схема, иллюстрирующая алгоритм Гровера, представлена на
Рис. 1.
Число итераций T квантового поиска зависит от M (числа
решений) и N (числа элементов в множестве S). При условии, что
M ≤ N/2, число итераций можно оценить следующим образом [8]:
⌈ √ ⌉
π N
.
(4)
T ≤
4 M
III. Квантовый алгоритм декодирования линейных
кодов
A. Формулировка задачи в терминах квантовых вычислений
Декодирование путем перебора всех слов кода на классическом
компьютере позволяет найти решение за O(2k ), где k — длина
информационного слова. Алгоритм
Гровера позволяет найти ре√
шение задачи поиска за O( N ) итераций, следовательно, можно
ожидать, что декодирование линейного кода на квантовом ком-------------------------------------------------------
52
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
пьютере будет иметь сложность O(2k/2 ), если сложность вычисления оператора Of не окажется экспоненциальной по k.
Пусть G — линейный (n, k, d) код над F2 , G — матрица кода.
Предположим, что в переданном слове c ∈ G произошла ошибка
x, и принято слово y = x + c. Функция fy , помечающая верное решение ci ∈ G задачи декодирования слова y в радиусе r, выглядит
следующим образом:
{
1, w(y + ci ) ≤ r
fy (ci ) =
,
(5)
0, w(y + ci ) > r
где w(x) обозначает вес слова x.
Для решения задачи декодирования на квантовом компьютере
необходимо
а) подготовить начальное состояние и б) выполнить
√
k
O( 2 ) итераций Гровера. В следующем разделе будет рассмотрена процедура подготовки начального состояния.
Итерации Гровера выполняются при помощи оракула (1), являющегося квантовой версией функции (5). Оракул является композицией операторов, осуществляющих
1. нахождение разности кодового слова ck , находящегося в регистре, и принятого слова y (по модулю 2),
2. вычисление веса w(ck − y),
3. сравнение веса со значением r.
Построению данных операторов посвящены разделы C – E. В разделе F из этих операторов строится обратимая схема оракула.
B. Подготовка начального состояния
Начальным состоянием для алгоритма Гровера является суперпозиция всего множества решений. В случае задачи декодирования множество решений — это слова ci кода G. Для того, чтобы
получить суперпозицию всех слов кода, можно применить оператор кодирования UG : |j⟩|0⟩⊗n−k → |Gj⟩ к равномерной суперпозиции всех информационных слов. Суперпозиция всех информационных слов, в свою очередь, может быть получена при помощи
-------------------------------------------------------
53
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ



|0i




H
k  |0i
n−k
H




 |0i


 |0i
H
UG

 |0i
Рис. 2. Схема подготовки суперпозиции слов кода
оператора Адамара, примененного к каждому кубиту:
∑
1 ∑
1
√
|ck ⟩ = √
|Gj⟩ =
2k ck ∈G
2k j∈{0,1}k
∑
1
UG |j⟩ = UG (H|0⟩)⊗k |0⟩⊗n−k .
=√
k
2 j∈{0,1}k
(6)
Схема, реализующая подготовку начального состояния, показана на Рис. 2.
Отметим, что если матрица кода G приведена к каноническому виду, оператор UG может быть построен при помощи O(nk)
операторов CNOT без использования дополнительных кубитов.
C. Вычитание принятого слова
Сложение по модулю 2 двух n-битовых слов выполняется с
помощью n управляемых инверторов (элементов CNOT). Биты
входного слова {yn yn−1 . . . y0 } управляют элементами CNOT, действующими на кубиты основного регистра (Рис. 3).
D. Вычисление веса кодового слова
Вычисление веса слова длины n может быть реализовано
как n управляемых операций сложения с единицей (по моду-------------------------------------------------------
54
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
√1
2k
P
|ci i
X










X




X
y0
√1
2k




P
|ci − yi
•
y1
•
yn−1
•
Рис. 3. Схема вычитания принятого слова y из слов кода G, образующих
суперпозицию
лю 2m ), примененных к вспомогательному регистру длины m =
⌊log2 n⌋ + 1, изначально находящемся в состоянии |0⟩⊗m . Известна
эффективная реализация схемы сложения (имеется в виду сложение по модулю 2m ) при помощи квантового преобразования Фурье и фазовых сдвигов [9]. Схема основана на том, что Фурьепреобразования от состояний |k⟩ и |k + 1⟩ различаются только
сдвигом фазы для каждого кубита:
2 −1
1 ∑ 2πikj/2m
√
e
|j⟩,
2m j=0
m
F |k⟩ =
2 −1
1 ∑ 2πi(k+1)j/2m
√
e
|j⟩ =
2m j=0
m
F |k + 1⟩ =
2 −1
1 ∑ 2πij/2m 2πikj/2m
√
e
|j⟩,
e
2m j=0
m
=
(7)
b+1 :
то есть преобразованием U
b+1 : |j⟩ → e2πij/2m |j⟩.
U
(8)
Обозначим биты двоичного представления числа j как
{jm−1 . . . j0 }. Тогда фазовый множитель можно разложить в
-------------------------------------------------------
55
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
|j0 i
|j1 i
|jm−1 i
|qi
|j0 i
F
b+1
U
F†
≡
R0
|j1 i
R1
F
|jm−1 i
•
F†
Rm−1
•
|qi
•
•
Рис. 4. Схема условного прибавления единицы
следующее произведение:
b+1 |j⟩ = e2πij/2m |j⟩
U
m−1 +...+j 21 +j )/2m
1
0
= e2πi(jm−1 2
= e2πijm−1
/21
|j⟩ =
m−2
|jm−1 ⟩ ⊗ . . . ⊗ e2πij1 /2
|j1 ⟩ ⊗ e2πij0 /2
m−1
|j0 ⟩.
(9)
b+1 представляется в виде произведения m
Как видно, оператор U
операторов, действующих на отдельные кубиты. Каждый из опеm−l−1
раторов умножения l-го кубита на фазу e2πijl /2
в матричном
виде записывается как
( 2πi/2m−l−1
)
e
0
Rl =
.
(10)
0
1
b+1 , оператор прибавления единицы U+1
Используя разложение U
можно выразить в следующем виде:
(m−1 )
∏
Rl F,
(11)
U+1 = F †
l=0
где F — оператор квантового преобразования Фурье.
На Рис. 4 представлена схема условного прибавления единицы,
b+1 .
в которой кубит |q⟩ является управляющим для оператора U
На основе этой схемы можно составить схему вычисления веса
кодового слова. Для этого достаточно применить схему условного
прибавления единицы n раз к регистру, первоначально находящемуся в состоянии |0⟩. Следует отметить, что все промежуточные
-------------------------------------------------------
56
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
|0i
|0i
|0i
|q0 i
|q1 i
|0i
F
b+1
U
F†
F
b+1
U
F†
F
b+1
U
|0i
F†
|0i
≡
•
•
b+1
U
b+1
U
b+1
U
F†
•
|q1 i
•
|qn−1 i
|q0 i
F
|qn−1 i
•
•
Рис. 5. Схема вычисления веса. В регистр |j⟩ = |0⟩ заносится вес состояния |q⟩
операторы квантового преобразования Фурье при этом сократятся (Рис. 5).
E. Сравнение веса с константой
Известны схемы сравнения квантового регистра с константой [10], имеющие (для регистра размера m) сложность порядка
O(m). Эти схемы основаны на побитовом сравнении и требуют наличия дополнительного регистра длины m. В данной работе предлагается схема, имеющая сложность O(m2 ) и требующая наличия
одного дополнительного кубита, в который заносится результат
сравнения.
Пусть слово u имеет длину n, тогда его вес w(u) представляется не более, чем m = ⌊log2 n⌋ + 1 битами. Дополнительно примем,
что r < n. Тогда сравнение w(u) с r можно выполнить, сравнив
w(u) − r mod 2n с n:
w(u) ≥ r ⇔ w(u) − r mod 2n < n,
w(u) < r ⇔ w(u) − r mod 2n ≥ n.
Сравнение с n легко реализовать, сравнивая старший бит w(u) −
r mod 2n с единицей. При этом вычитание реализуется с помощью
преобразования Фурье аналогично описанной выше схеме сложения:
b−r F |k⟩,
|k − r⟩ = U−r |k⟩ = F † U
(12)
m
−2πijr/2
b−r : |j⟩ → e
U
|j⟩.
(13)
Помимо n-кубитового регистра u, схема использует ⌊log2 n⌋ + 1
кубитов для вычисления веса и 1 кубит для результата сравнения.
-------------------------------------------------------
57
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
y0
•
y1
•
yn−1
√1
2k
P
|ci i
•
•
X





•
X




•
X
|0i
|0i
F
|0i
b+1
U
b+1
U
b+1
U
F†
U−d
|0i
Рис. 6. Схема вычитания, вычисления веса и сравнения веса с константой
F. Построение обратимой схемы оракула
Применение описанных выше схем позволяет вычислить функцию fy (5) для каждого слова ci из суперпозиции. Полная схема вычисления fy показана
на Рис. 6. В результате работы
1 ∑
√
этой схемы состояние
|ci ⟩|0⟩⊗m |0⟩ переходит в состояние
2k
∑
√1
|ci − y⟩|w(ci − y)⟩|fy (ci )⟩.
2k
Так как для работы алгоритма Гровера данная схема должна
выполняться многократно, вспомогательные кубиты к концу итерации должны быть возвращены в исходное нулевое состояние.
Так как состояние вспомогательных кубитов |w(ci − y)⟩|fy (ci )⟩ запутано с состоянием основного регистра |ci − y⟩, выбрасывание и
повторная подготовка вспомогательного регистра приведет к разрушению состояния основного регистра. Вместо этого, вспомогательные кубиты могут быть возвращены в исходное состояние при
помощи обратных преобразований (Рис. 7.) При этом сложность
схемы оракула возрастает в два раза.
IV. Оценка сложности алгоритма
Сложность алгоритма, выраженная в числе элементарных
одно- и двух-кубитовых операций, необходимых для реализации
-------------------------------------------------------
58
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
y0
•
•
y1
•
yn−1
√1
2k
P
|ci i









|0i
•
•
•
X
Z
X
X





X
X




X
fy (ci )
P
(−1)fy (ci ) |ci i
|0i
fy (ci )†
|0i
|0i
|0i
|0i
|0i
√1
2k
•
|0i
Рис. 7. Схема обратимого оракула для сравнения веса с константой
квантового оракула Of , складывается из следующих частей:
1. O(log2 n) — преобразование Фурье;
2. O(n log n) — условные операции Rk ;
b−d .
3. O(log n) — операция U
При больших n сложность будет вести себя как O(n log n).
Сложность всего алгоритма в целом равна O(T n log n), где T —
число итераций Гровера. При наличии одного решения среди 2k
слов кода, число итераций равно O(2k/2 ), следовательно, сложность всех итераций составляет O(n log n2k/2 ).
Отметим, что построенный алгоритм выполняет декодирование в радиусе r. Декодирование по максимуму правдоподобия
можно осуществить, несколько раз применив описанный алгоритм
со все увеличивающимся радиусом, начиная с d. Сложность такого алгоритма растет линейно с ростом максимального радиуса
декодирования и составляет O(n log2 n2k/2 ).
V. Заключение
Рассмотренный алгоритм декодирования имеет асимптотическую сложность O(2k/2 ) и может быть применен для произвольных линейных кодов над F2 . Так как в его основе лежит алгоритм Гровера, который является оптимальным квантовым алго-------------------------------------------------------
59
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
ритмом поиска, то и алгоритм декодирования является оптимальным (среди алгоритмов, основанных на обращении к оракулу).
По всей видимости, для задачи декодирования произвольных линейных кодов не удастся построить экспоненциально более быстрый квантовый алгоритм. Это связано с тем, что экспоненциально быстрые квантовые алгоритмы, подобные алгоритму
факторизации Шора, решают задачи вида «множество S обладает
свойством x; найдите x», то есть задачи характеризации. Однако
остается открытым вопрос, существуют ли специальные классы
кодов, допускающие построение экспоненциально быстрых квантовых алгоритмов декодирования.
Литература
[1] E.R. Berlekamp, R.J. McEllice, H.C.A. van Tilborg, On the inherent
intractability of certain coding problems, IEEE Trans. Inform. Theory,
24:384 – 386, 1978.
[2] J. Bruck and M. Naor, The hardness of decoding linear codes with
preprocessingб IEEE Trans. Inform. Theory, 36:381 – 385, 1990.
[3] O. Regev, Improved inapproximability of lattice and coding problems with
preprocessing, Proc. IEEE Conf. Computational Complexity (CCC), pages
363 – 370, 2003.
[4] V. Guruswami, A. Vardy, Maximum-likelihood decoding of Reed-Solomon
codes is NP-hard, Proceedings of the sixteenth annual ACM-SIAM
symposium on Discrete algorithms, pages 470 – 478, 2005.
[5] M. Nielsen, I. Chuang, Quantum Computation and Quantum Information,
Cambridge University Press, 2004.
[6] P.W. Shor, Algorithms for quantum computation: discrete logarithm
and factoring, Proceedings of 35th Annual Symposium on Foundations of
Computer Science, 1994.
[7] L.K. Grover, A fast quantum mechanical algorithm for database search,
Proceedings of the twenty-eighth annual ACM symposium on Theory of
computing, STOC ’96, pages 212–219, 1996.
[8] L.K. Grover, Quantum mechanics helps in searching for a needle in a
haystack, Phys. Rev. Lett., 79(2):325 – 328, 1997.
[9] V. Vedral, A. Barenco, A. Ekert, Quantum networks for elementary
arithmetic operations, Phys. Rev. A, 54(1):147–153, 1996.
[10] D.S. Oliveira, R.V. Ramos, Quantum bit string comparator: circuits and
applications, Quantum Computers and Computing, 7(1):17 – 26, 2007.
-------------------------------------------------------
60
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Модулярные системы,
системы полиномов от нескольких
переменных и их применение для описания
сверточных кодов
В.А. Давыдов
Директор Управления по работе с проблемными активами
Северо-Западного Банка Сбербанка РФ
I. Введение
Во втором томе [1] рассматриваются линейные модулярные системы как частный случай детерминированных систем с конечным числом состояний. Для таких модулярных систем функции
перехода и выхода являются линейными функциями. Требование линейности для функций f и g является достаточно жестким ограничением и не позволяет описывать с помощью линейных
модулярных систем детерминированную систему произвольного
вида.
В первой части данной работы предложен класс нелинейных
модулярных систем. Вводится алгебраическое описание таких систем в виде систем полиномов от нескольких переменных над полем GF (Q). Для нелинейных модулярных систем доказывается
формула полной реакции аналогично тому, как это сделано в [1]
для формулы полной реакции линейных модулярных систем.
Во второй части работы предложен метод построения нелинейных сверточных кодов с заданным свободным расстоянием и
их описание в виде нелинейных модулярных систем.
Для дальнейших рассуждений потребуется ввести ряд определений. Во втором томе [1] дается следующее
-------------------------------------------------------
61
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Определение 1: Полная детерминированная система N(S, U,
Y, f, g) с конечным числом состояний определяется следующими
элементами:
1. конечным непустым множеством S = {σ1 , σ2 , . . . , σr }, называемым множеством состояний системы N,
2. конечным непустым множеством U = {α1 , α2 , . . . , αh }, называемым входным алфавитом системы N,
3. конечным непустым множеством Y = {β1 , β2 , . . . , βs }, называемым выходным алфавитом системы N,
4. функцией перехода f , которая отображает множество всех
упорядоченных пар (σi , αj ) в множество S,
5. функцией выхода g, которая отображает множество всех
упорядоченных пар (σi , αj ) в множество Y.
Текущее состояние детерминированной системы на шаге с номером i и вариант входного воздействия на данном шаге будем
обозначать σi ∈ S и αi ∈ U соответственно. Результирующее состояние системы после отработки шага с номером i будем обозначать σi+1 ∈ S. Соответственно, выход детерминированной системы после отработки шага с номером i обозначим βi+1 ∈ Y.
Определение 2: Пусть задано поле GF (Q) и для мощностей
множеств U = {α1 , α2 , . . . , αh }, Y = {β1 , β2 , . . . , βs } и S = {σ1 ,
σ2 , . . . , σr } выполняются тождества |S| = Qn , |Y| = Qm , |U| = Qk .
Полную детерминированную систему N(S, U, Y, f, g) с указанными параметрами будем обозначать N(n, k, m, f, g, Q) и называть
нелинейной модулярной системой или просто модулярной системой.
Для модулярной системы состояние σi ∈ S является вектором
σi = (σi1 , σi2 , . . . , σin ) длины n, символ входного алфавита αi ∈ U
— вектором αi = (αi1 , αi2 , . . . , αik ) длины k, а символ выходного
алфавита βi+1 ∈ Y — вектором βi+1 = (βi+1,1 , βi+1,2 , . . . , βi+1,m )
длины m. Все перечисленные вектора состоят из элементов поля
GF (Q).
-------------------------------------------------------
62
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
II. Алгебраическое описание нелинейных модулярных
систем
Будем обозначать через Fr (xz ) = (f1 (x1 , x2 , . . . , xz ), f2 (x1 , x2 ,
. . ., xz ), . . . , fr (x1 , x2 , . . . , xz )) систему r полиномов от z переменных с коэффициентами из поля GF (Q). Произвольная модулярная система N(n, k, m, f, g, Q) в общем виде описывается системой
полиномов Fn+m (x1 , x2 , . . . , xn , xn+1 , . . . , xn+k ) над полем GF (Q).
Первые n аргументов Fn+m (x1 , x2 , . . . , xn , xn+1 , . . . , xn+k ) над
полем GF (Q) соответствуют вектору состояния σi = (σi1 , σi2 , . . .,
σin ), а последующие k аргументов — вектору входа αi = (αi1 , αi2 ,
. . ., αik ). Результатом применения Fn+m (x1 , x2 , . . . , xn , xn+1 , . . .,
xn+k ) к указанным векторам является вектор нового состояния
σi+1 = (σi+1,1 , σi+1,2 , . . . , σi+1,n ) и вектора выхода βi+1 = (βi+1,1 ,
βi+1,2 , . . . , βi+1,m ). Таким образом, (σi+1,1 , σi+1,2 , . . . , σi+1,n , βi+1,1 ,
. . ., βi+1,m ) = Nn+m (σi1 , σi2 , . . . , σin , αi1 , αi2 , . . . , αik ).
Обозначим через |N(n, k, m, f, g, Q)| число различных вариантов модулярной системы N(n, k, m, f, g, Q). На шаге с номером i
существует Qn+m вариантов выбора единственной пары векторов
(σi+1 , βi+1 ) для каждой пары векторов (σi , αi ) из Qn+k вариантов
выбора такой пары. Следовательно, существует |N(n, k, m, f, g, Q)|
Qn+k
= (Qn+m )
различных вариантов выбора модулярной системы
N(n, k, m, f, g, Q).
Множество произвольных систем полиномов Fn+m (xn+k ) из
n+m полиномов от n+k переменных над полем GF (Q) степени по
каждой переменной, не большей Q−1, обозначим R(n+m, n+k, Q).
Обозначим через |R(n + m, n + k, Q)| мощность множества R(n +
m, n + k, Q). Каждый полином fi (x1 , x2 , . . . , xn+k ) ∈ Fn+m (xn+k ),
1 ≤ i ≤ n + m, имеющий степень не более Q − 1 по каждой из n + k
переменных x1 , x2 , . . . , xn+k , состоит из Qn+k слагаемых, каждое
из которых может быть выбрано Q способами. Следовательно,
n+k
число различных полиномов равно QQ . Число различных полиномов в системе полиномов Fn+m (xn+k ) равно n + m. Следовательно, число различных систем полиномов Fn+m (xn+k ) равно
-------------------------------------------------------
63
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
(
Qn+k
|R(n + m, n + k, Q)| = Q
)n+m
= |N(n, k, m, f, g, Q)|.
Из приведенного равенства следует
Лемма 1: Каждой системе полиномов Fn+m (xn+k ) соответствует своя модулярная система N(n, k, m, f, g, Q), и каждой модулярной системе N(n, k, m, f, g, Q) соответствует своя система полиномов Fn+m (xn+k ). Данная система однозначно описывается системой полиномов Fn+m (xn+k ).
Известны различные способы описания модулярных систем.
Наиболее распространенными являются описания в виде таблицы и в виде графа. Лемма 1 позволяет использовать алгебраический метод описания модулярных систем в виде систем полиномов
от нескольких переменных. При этом изучение свойств модулярной системы фактически сводится к изучению соответствующей
системы полиномов от нескольких переменных. Введем две операции с системами полиномов, которые позволят в дальнейшем
использовать аппарат систем полиномов для изучения модулярных систем.
Определение 3: Результатом сложения системы полиномов
Ym (xk ) и системы полиномов Gm (xk ) является система полиномов Rm (xk ), удовлетворяющая следующему соотношению:
Ym (xk ) + Gm (xk ) = Rm (xk ) =
= (r1 (x1 , x2 , . . . , xk ), r2 (x1 , x2 , . . . , xk ), . . . ,
. . . , rm (x1 , x2 , . . . , xk )) =
= (y1 (x1 , x2 , . . . , xk ) + g1 (x1 , x2 , . . . , xk ), . . .
. . . , ym (x1 , x2 , . . . , xk ) + gm (x1 , x2 , . . . , xk )).
Определение 4: Результатом символического умножения системы полиномов Yk (xl ) на систему полиномов Gm (xk ) является система полиномов Rm (xl ), удовлетворяющая следующему соотношению:
-------------------------------------------------------
64
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Rm (xl ) = Gm (Yk (xl )) =
= (r1 (x1 , x2 , . . . , xl ), r2 (x1 , x2 , . . . , xl ), . . . , rm (x1 , x2 , . . . , xl )) =
= (g1 (y1 (x1 , x2 , . . . , xl ), y2 (x1 , x2 , . . . , xl ), . . .
Q
. . . , yk (x1 , x2 , . . . , xl )) mod (xQ
1 − x1 , . . . , xl − xl ),
g2 (y1 (x1 , x2 , . . . , xl ), y2 (x1 , x2 , . . . , xl ), . . .
Q
. . . , yk (x1 , x2 , . . . , xl )) mod (xQ
1 − x1 , . . . , xl − xl ),
gm (y1 (x1 , x2 , . . . , xl ), y2 (x1 , x2 , . . . , xl ), . . .
Q
. . . , yk (x1 , x2 , . . . , xl )) mod (xQ
1 − x1 , . . . , xl − xl )).
Для общего случая систем полиномов от нескольких переменных изучение свойств модулярных систем достаточно сложно, однако для систем полиномов с определенными ограничениями могут быть получены интересные результаты.
III. Частные случаи нелинейных модулярных систем
Систему Fn+m (xn+k ) можно представить в виде конкатенации
двух систем Fn+m (xn+k ) = Fn (x1 , . . . , xn , xn+1 , . . . , xn+k )| Gm (x1 ,
. . ., xn , xn+1 , . . . , xn+k ). Система полиномов Fn (x1 , . . . , xn , xn+1 ,
. . ., xn+k ) соответствует функции перехода f , а система полиномов
Gm (x1 , . . . , xn , xn+1 , . . . , xn+k ) — функции выхода g.
Пусть множество переменных x1 , x2 , . . . , xn не зависит от множества переменных xn+1 , xn+2 , . . . , xn+k . Тогда система полиномов Fn+m (xn+k ) может быть записана в виде
Fn (x1 , . . . , xn , xn+1 , . . . , xn+k )|Gm (x1 , . . . , xn , xn+1 , . . . , xn+k ) =
= An (x1 , . . . , xn ) + Bn (xn+1 , . . . , xn+k )|Cm (x1 , . . . , xn )+
+ Dm (xn+1 , . . . , xn+k ).
Система полиномов An (x1 , . . . , xn ) определяет влияние предыдущего вектора состояний σi = (σi1 , σi2 , . . . , σin ) на новый вектор состояний σi+1 = (σi+1,1 , σi+1,2 , . . . , σi+1,n ). Система полиномов Bn (xn+1 , . . . , xn+k ) определяет влияние входного вектора αi =
(αi1 , αi2 , . . . , αik ) на вектор состояний σi+1 = (σi+1,1 , σi+1,2 , . . .,
-------------------------------------------------------
65
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
σi+1,n ). Система полиномов Cm (x1 , . . . , xn ) определяет влияние
предыдущего вектора состояний σi = (σi1 , σi2 , . . ., σin ) на вектор выхода βi+1 = (βi+1,1 , βi+1,2 , . . . , βi+1,m ), и система полиномов
Dm (xn+1 , . . ., xn+k ) определяет влияние входного вектора αi =
(αi1 , αi2 , . . . , αik ) на выходной вектор βi+1 = (βi+1,1 , βi+1,2 , . . .,
βi+1,m ).
Определение 5: Систему полиномов Fn+m (xn+k ), представимую в виде An (x1 , . . . , xn ) + Bn (xn+1 , . . . , xn+k )|Cm (x1 , . . . , xn )+
Dm (xn+1 , . . . , xn+k ) будем называть системой полиномов с n и k
независимыми блоками переменных.
Пусть после обработки системой Fn+m (xn+k ) на шаге с номером i входного вектора αi = (αi1 , αi2 , . . . , αik ) и вектора состояний
σi = (σi1 , σi2 , . . . , σin ) получены новый вектор состояний σi+1 =
(σi+1,1 , σi+1,2 , . . . , σi+1,n ) и вектор выхода βi+1 = (βi+1,1 , βi+1,2 , . . .,
βi+1,m ).
Пусть задана система полиномов с n и k независимыми блоками переменных Fn+m (xn+k ) = An (x1 , . . . , xn )+Bn (xn+1 , . . . , xn+k )|
Cm (x1 , . . . , xn ) + Dm (xn+1 , . . . , xn+k ).
Рассмотрим запись реакции системы Fn+m (xn+k ) на языке систем полиномов от нескольких переменных последовательно на
шаге с номером 0, 1, 2 при заданном исходном состоянии σ0 =
(σ0,1 , σ0,2 , . . . , σ0,n ) и векторах входа α0 = (α0,1 , α0,2 , . . . , α0,k ), α1 =
(α1,1 , α1,2 , . . . , α1,k ), α2 =(α2,1 , α2,2 , . . ., α2,k ), . . ..
На нулевом шаге получаем
σ1 = (σ1,1 , σ1,2 , . . . , σ1,n ) = An (σ0 ) + Bn (α0 ),
β1 = (β1,1 , β1,2 , . . . , β1,m ) = Cm (σ0 ) + Dm (α0 ).
На первом шаге получаем
σ2 = (σ2,1 , σ2,2 , . . . , σ2,n ) = An (σ1 ) + Bn (α1 ) =
= An (An (σ0 ) + Bn (α0 )) + Bn (α1 ),
β2 = (β2,1 , β2,2 , . . . , β2,m ) = Cm (σ1 ) + Dm (α1 ) =
= Cm (An (σ0 ) + Bn (α0 )) + Dm (α1 ).
-------------------------------------------------------
66
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
На втором шаге получаем
σ3 = (σ3,1 , σ3,2 , . . . , σ3,n ) = An (σ2 ) + Bn (α2 ) =
= An (An (An (σ0 ) + Bn (α0 )) + Bn (α1 )) + Bn (α2 ),
β3 = (β3,1 , β3,2 , . . . , β3,m ) = Cm (σ2 ) + Dm (α2 ) =
= Cm (An (An (σ0 ) + Bn (α0 )) + Bn (α1 )) + Dm (α2 ).
На третьем шаге получаем
σ4 = (σ4,1 , σ4,2 , . . . , σ4,n ) = An (σ3 ) + Bn (α3 ) =
= An (An (An (An (σ0 ) + Bn (α0 ))+
+ Bn (α1 )) + Bn (α2 )) + Bn (α3 ),
β4 = (β4,1 , β4,2 , . . . , β4,m ) = Cm (σ3 ) + Dm (α3 ) =
= Cm (An (An (An (σ0 ) + Bn (α0 ))+
+ Bn (α1 )) + Bn (α2 )) + Dm (α3 ).
Введем обозначения:
An (An (An (An (xn )))) = 4 An (xn ),
An (An (An (xn ))) = 3 An (xn ),
An (An (xn )) = 2 An (xn ),
An (xn ) = 1 An (xn ).
Обозначим In (xn ) = (x1 , x2 , . . . , xn ) = 0 An (xn ).
Из выписанных состояний реакции системы на шагах с номерами 1, 2, 3 и с учетом введенных обозначений доказана следующая
Теорема 1: (формула полной реакции) Пусть задана система
полиномов с n и k независимыми блоками переменных
Fn+m (xn+k ) = An (x1 , . . . , xn ) + Bn (xn+1 , . . . , xn+k )|
Cm (x1 , . . . , xn ) + Dm (xn+1 , . . . , xn+k ),
-------------------------------------------------------
67
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
и выполняются условия
{
An (x1 + y1 , . . . , xn + yn ) = An (x1 , . . . , xn ) + An (y1 , . . . , yn ),
Cm (x1 + y1 , . . . , xk + yk ) = Cm (x1 , . . . , xk ) + Cm (y1 , . . . , yk ).
Тогда справедливы тождества
i
n
σi = A (σ0 ) +
i−1
∑
i−j−1
An (Bn (αj )), i = 1, 2, . . . ,
j=0
m i−1
βi = C (
n
A (σ0 )) +
i−1
∑
Hm
i−1−j (αj ), i = 1, 2, . . . ,
j=0
где
k
Hm
s (x )
{
Dn (xk ),
если s = 0,
=
Cm (s−1 An (Bn (xk ))), если s ≥ 1.
Следствие 1: В случае, если условие Cm (x1 +y1 , . . . , xk +yk ) =
не выполняется, справедливы тождества
Cm (x1 , . . . , xk )+Cm (y1 , . . . , yk )
σi = i An (σ0 ) +

i−1
∑
i−j−1
An (Bn (αj )), i = 1, 2, . . . ,
j=0
βi = Cm i−1 An (σ0 ) +
i−2
∑

i−j−2
An (Bn (αj )) + Dn (αi−1 ),
j=0
i = 1, 2, . . . .
Приведем ряд комментариев к полученным утверждениям. В
случае, когда системы полиномов состоят из полиномов с независимыми переменными только первой степени, из утверждения
Теоремы 1 получаем формулу полной реакции для линейных модулярных систем, приведенную в [1].
Теорема 1 обобщает данную формулу, причем системы Bn (xn+1 ,
. . ., xn+k ) и Dm (xn+1 , . . ., xn+k ), входящие в систему полиномов с n и k независимыми блоками переменных Fn+m (xn+k ) =
-------------------------------------------------------
68
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
An (x1 , . . . , xn ) + Bn (xn+1 , . . ., xn+k )|Cm (x1 , . . . , xn ) + Dm (xn+1 ,
. . ., xn+k ), имеют произвольный вид. Системы An (x1 , . . . , xn ) и
Cm (x1 , . . . , xn ) для выполнения условий Теоремы 1 должны обладать свойством линейности. Частным случаем таких систем является, например, множество линеаризованных систем полиномов с
независимыми переменными. В случае произвольного вида системы полиномов Cm (x1 , . . . , xn ) форма полной реакции описывается
Следствием 1.
IV. Описание сверточного кода в виде модулярной
системы
В [2] рассматривается описание сверточных кодов с помощью
конечных автоматов. Рассмотрим представление сверточного кода над полем GF (Q) с помощью системы полиномов от нескольких переменных. Пусть k — число информационных символов,
поступающих за один такт на вход кодера, n — число символов
на выходе кодера, соответствующих k поступившим символам за
один такт. Будем описывать код со скоростью R = nk < 1, где k и
n — натуральные числа. Памятью кода будем называть величину
l = mk, где m — некоторое натуральное число. Тогда система полиномов Gn (xl ) = (g1 (x1 , x2 , . . . , xl ), g2 (x1 , x2 , . . . , xl ), . . . , gn (x1 , x2 ,
. . ., xl )) с коэффициентами над полем GF (Q) описывает сверточный код (n, k, m).
На вход кода (n, k, m) последовательно на каждом такте с
номером 1 ≤ i < ∞ поступают вектора u1 = (u11 , u12 , . . . , u1k ),
u2 = (u21 , u22 , . . . , u2k ), . . . , ui = (ui1 , ui2 , . . . , uik ), . . . с элементами
из поля GF (Q). Соответственно, на выходе получаем последовательность векторов v1 = (v11 , v12 , . . ., v1n ), v2 = (v21 , v22 , . . . , v2n ),
. . ., vi = (vi1 , vi2 , . . . , vin ), . . . с элементами из поля GF (Q).
Пусть заданы две различные входные последовательности векторов U = {u1 = (u11 , u12 , . . . , u1k ), u2 = (u21 , u22 , . . . , u2k ), . . .,
u2m−1 = (u2m−1,1 , u2m−1,2 , . . . , u2m−1,k )} и Ψ = {y1 = (y11 , y12 ,
. . ., y1k ), y2 = (y21 , y22 , . . . , y2k ), . . ., y2m−1 = (y2m−1,1 , y2m−1,2 , . . .,
y2m−1,k )}.
-------------------------------------------------------
69
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Последовательности U соответствует выходная последовательность V = {v1 = (v11 , v12 , . . . , v1n ), v2 = (v21 , v22 , . . . , v2n ), . . . , vm =
(vm1 , vm2 , . . . , vmn )}. Последовательности Ψ соответствует выходная последовательность Z = {z1 = (z11 , z12 , . . . , z1n ), z2 = (z21 , z22 ,
. . ., z2n ), . . . , zm = (zm1 , zm2 , . . . , zmn )}.
Длиной кодового ограничения называется величина f = mn.
Минимальным свободным расстоянием Хэмминга dmin нелинейного сверточного кода (n, k, m) называется величина, вычисляемая
по формуле
dmin =
m
∑
d(vi , zi ) =
i=1
m ∑
n
∑
d(vij , zij ).
i=1 j=1
Пусть заданная система полиномов Gn (xl ) = (g1 (x1 , x2 , . . . , xl ),
g2 (x1 , x2 , . . . , xl ), . . . , gn (x1 , x2 , . . . , xl )) содержит m блоков независимых переменных {x1 , x2 , . . ., xk }, {xk+1 , xk+2 , . . ., x2k }, . . .,
{x(m−1)k+1 , x(m−1)k+2 , . . ., xmk }, по k переменных в каждом блоке.
В этом случае система Gn (xl ) может быть записана в виде суммы
m систем:
Gn (xl ) = Gn1 (xk1 ) + Gn2 (xk2 ) + . . . + Gnm (xkm ),
где xk1 = (x1 , x2 , . . . , xk ), xk2 = (xk+1 , xk+2 , . . . , x2k ), . . ., xkm =
(x(m−1)k+1 , x(m−1)k+2 , . . . , xmk ).
Пусть задана входная последовательность U = {u0 = (u0,1 ,
u0,2 , . . ., u0,k ), u1 = (u1,1 , u1,2 , . . . , u1,k ), . . . , um−1 = (um−1,1 , um−1,2 ,
. . ., um−1,k )}. Тогда кодовое слово v = (v1 , v2 , . . . , vn ) сверточного
кода, получаемое на шаге с номером m − 1 при подаче на вход
последовательности U , удовлетворяет условию
v = (v1 , v2 , . . . , vn ) = Gn1 (um−1 ) + Gn2 (um−2 ) + . . . + Gnm (u0 ). (1)
Рассмотрим теперь описание этого же сверточного кода с помощью модулярной системы. Такая модулярная система описывается системой полиномов от l = mk переменных, состоящей из
(m − 1)k + n уравнений. Обозначим такую систему полиномов
-------------------------------------------------------
70
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
F(m−1)k+n (xl ). Из свойства независимости m блоков переменных
{x1 , x2 , . . . , xk }, {xk+1 , xk+2 , . . . , x2k }, . . ., {x(m−1)k+1 , x(m−1)k+2 , . . .,
xmk } следует, что два блока переменных {x1 , x2 , . . . , x(m−1)k } и
{x(m−1)k+1 , x(m−1)k+2 , . . . , x(m−1)k+n } также независимы. Тогда систему F(m−1)k+n (xl ) можно представить в виде
F(m−1)k+n (xkm ) =
= A(m−1)k (x1 , . . . , x(m−1)k ) + B(m−1)k (x(m−1)k+1 , . . . , xkm )|
Cn (x1 , . . . , x(m−1)k ) + Dn (x(m−1)k+1 , . . . , xkm ).
Предположим, что последовательность U = {u0 = (u0,1 , u0,2 ,
. . ., u0,k ), u1 = (u1,1 , u1,2 , . . . , u1,k ), . . . , um−1 = (um−1,1 , um−1,2 , . . .,
um−1,k )} является входной последовательностью для модулярной
системы и задано исходное состояние σ0 . На нулевом шаге на вход
системы поступает вектор u0 , на первом шаге — u1 . Соответственно, на шаге с номером m − 1 на вход поступает вектор um−1 .
Пусть выполняются условия
 (m−1)k
A
(x1 + y1 , . . . , x(m−1)k + y(m−1)k ) =



= A(m−1)k (x1 , . . . , x(m−1)k ) + A(m−1)k (y1 , . . . , y(m−1)k ),
n

C (x1 + y1 , . . . , x(m−1)k + y(m−1)k ) =


= Cn (x1 , . . . , x(m−1)k ) + Cn (y1 , . . . , y(m−1)k ).
Тогда из Теоремы 1 получаем, что на шаге с номером m − 1
имеют место равенства
v = (v1 , v2 , . . . , vn ) = Cn (m−1 A(m−1)k (σ0 )) +
m−1
∑
Hnm−1−j uj , (2)
j=0
где
{
Dn (xki+1 ),
если i = 0,
Hni (xki+1 ) =
n
i−1
(m−1)k
(m−1)k
k
C ( A
(B
(xi+1 ))), если i ≥ 1.
(3)
Пусть исходное состояние σ0 выбрано таким образом, что
Cn (m−1 A(m−1)k (σ0 )) = (0, 0, . . . , 0). Следовательно, из (2) и (3)
-------------------------------------------------------
71
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
получаем
v = (v1 , v2 , . . . , vn ) =
m−1
∑
Hnm−1−j (uj ) =
j=0
n
n 0
= D (um−1 ) + C ( A(m−1)k (B(m−1)k (um−2 )))+
+ Cn (1 A(m−1)k (B(m−1)k (um−3 ))) + . . .
. . . + Cn (m−2 A(m−1)k (B(m−1)k (u0 ))).
(4)
Сравнивая (4) и (1), получаем
 n k
G1 (x1 ) = Dn (xk1 ),


 n k
G2 (x2 ) = Cn (0 A(m−1)k (B(m−1)k (xk2 ))) = Cn (B(m−1)k (xk2 )),
...


 n k
Gm (xm ) = Cn (m−2 A(m−1)k (B(m−1)k (xkm ))).
(5)
Таким образом, условие (5) устанавливает взаимосвязь между
заданием сверточного кода в виде системы полиномов Gn (xkm ) =
Gn1 (xk1 ) + Gn2 (xk2 ) + . . . + Gnm (xkm ) и модулярной системой, описываемой системой полиномов F(m−1)k+n (xkm ).
Рассмотрим теперь общий случай. Пусть заданная система полиномов Gn (xl ) = (g1 (x1 , x2 , . . . , xl ), g2 (x1 , x2 , . . . , xl ), . . ., gn (x1 ,
x2 , . . ., xl )) содержит 2 блока независимых переменных {x1 , x2 ,
. . ., x(m−1)k }, . . ., {x(m−1)k+1 , x(m−1)k+2 , . . . , xmk }. В первом блоке
содержится k(m − 1) переменных, а во втором блоке k переменных. В этом случае система Gn (xl ) может быть записана в виде
суммы двух систем
Gn (xl ) = Gn1 (xk1 , xk2 , . . . , xkm−1 ) + Gn2 (xkm ),
где
xk1 = (x1 , x2 , . . . , xk ),
xk2 = (xk+1 , xk+2 , . . . , x2k ),
...,
xkm
= (x(m−1)k+1 , x(m−1)k+2 , . . . , xmk ).
-------------------------------------------------------
72
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Для входной последовательности U = {u0 = (u0,1 , u0,2 , . . .,
u0,k ), u1 = (u1,1 , u1,2 , . . ., u1,k ), . . ., um−1 = (um−1,1 , um−1,2 , . . .,
um−1,k )} кодовое слово v = (v1 , v2 , . . . , vn ) сверточного кода, получаемое на шаге с номером m − 1, при подаче на вход последовательности U удовлетворяет условию
v = (v1 , v2 , . . . , vn ) = Gn1 (u0 , u1 , . . . , um−2 ) + . . . + Gn2 (um−1 ). (6)
Рассмотрим формулу полной реакции модулярной системы для
случая, когда условие Cn (x1 + y1 , . . . , x(m−1)k + y(m−1)k ) = Cn (x1 ,
. . ., x(m−1)k ) + Cn (y1 , . . . , y(m−1)k ) не выполняется. Тогда из Следствия 1 получаем, что на шаге с номером m − 1 имеет место равенство
v = (v1 , v2 , . . . , vn ) =

= Cn m−1 An (σ0 ) +
m−2
∑

m−j−2
An (Bn (uj )) + Dn (um−1 ). (7)
j=0
Пусть исходное состояние σ0 выбрано таким образом, что
0 ) = (0, 0, . . . , 0).
Сравнивая (6) и (7), получаем
 n k
n k

 G2 (xm ) = D (xm ),
(
)
m−2
∑
(8)
n k
k
k
n
m−j−2 An (Bn (xk )) .

j+1
 G1 (x1 , x2 , . . . , xm−1 ) = C
m−1 An (σ
j=0
Таким образом, условие (8) устанавливает взаимосвязь между
заданием сверточного кода в виде системы полиномов Gn (xl ) =
Gn1 (xk1 , xk2 , . . . , xkm−1 ) + Gn2 (xkm ) и модулярной системой, описываемой системой полиномов F(m−1)k+n (xkm ) = A(m−1)k (x1 , . . .,
x(m−1)k ) + B(m−1)k (x(m−1)k+1 , . . ., xkm ) | Cn (x1 , . . ., x(m−1)k ) +
Dn (x(m−1)k+1 , . . ., xkm ).
Единственными ограничениями для формулы (8) является выполнение условия независимости двух блоков переменных {x1 , x2 ,
. . ., x(m−1)k } и {x(m−1)k+1 , x(m−1)k+2 , . . . , x(m−1)k+n } и условие линейности для подсистемы полиномов A(m−1)k (x1 +y1 , . . . , x(m−1)k +
y(m−1)k ) = A(m−1)k (x1 , . . ., x(m−1)k ) + A(m−1)k (y1 , . . . , y(m−1)k ).
-------------------------------------------------------
73
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
V. Построение модулярной системы, описывающей
сверточный код с заданными свойствами
Рассмотрим систему полиномов F(m−1)k+n (xkm ) = A(m−1)k (x1 ,
. . ., x(m−1)k ) + B(m−1)k (x(m−1)k+1 , . . . , xkm ) | Cn (x1 , . . . , x(m−1)k ) +
Dn (x(m−1)k+1 , . . . , xkm ), задающую сверточный код (n, k, m) над
полем GF (Q). Пусть система полиномов Dn (x(m−1)k+1 , . . ., xkm )
описывает линейный блоковый код над полем GF (Q) с параметрами (n, k, d, Q). Пусть выполняется равенство A(m−1)k (x1 , . . .,
x(m−1)k ) = (xk+1 , xk+2 , . . . , x(m−1)k−1 , x(m−1)k , 0, . . . , 0). Таким образом, система полиномов A(m−1)k (x1 , . . ., x(m−1)k ) фактически
осуществляет сдвиг всех аргументов на k позиций влево и добавляет на k позиций справа k нулей.
Пусть система полиномов B(m−1)k (x(m−1)k+1 , . . . , xkm ) имеет
вид B(m−1)k (x(m−1)k+1 , . . ., xkm ) = (0, 0, . . ., 0, 0, x(m−1)k+1 , . . .,
xkm ). Таким образом, данная система полиномов ставит переменные x(m−1)k+1 , . . . , xkm на последние k позиций из k(m − 1), а первые k(m − 2) позиций заполняет нулями.
Опишем теперь способ задания системы полиномов Cn (x1 , . . .,
x(m−1)k ). Код (n, k, d, Q) исправляет все ошибки веса не более
t = (d−1)
2 . Выберем некоторое значение 0 ≤ δ < t. Обозначим
через ℑ(t − δ, 2δ + 1) множество векторов ошибок, исправляемых
кодом (n, k, d, Q), веса не более t − δ, расстояние между которыми не менее 2δ + 1. Из введенного обозначения следует, что все
множество исправляемых кодом (n, k, d, Q) ошибок обозначается
ℑ(t, 1).
Для мощности множества ℑ(t, 1) справедливо равенство
( )
t
∑
i n
|ℑ(t, 1)| =
(Q − 1)
.
i
i=1
Пусть выполняется неравенство
Q(m−1)k ≤ |ℑ(t − δ, 2δ + 1)|.
Тогда можно поставить в соответствие каждой входной последовательности U = {u0 = (u0,1 , u0,2 , . . . , u0,k ), u1 = (u1,1 , u1,2 , . . .,
-------------------------------------------------------
74
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
u1,k ), . . ., um−2 = (um−2,1 , um−2,2 , . . . , um−2,k )} свой уникальный
вектор ошибок e ∈ ℑ(t − δ, 2δ + 1) длины n. Будем считать, что система полиномов Cn (x1 , . . . , x(m−1)k ) задает именно такое соответствие. Для входной последовательности U ∈ GF k(m−1) (Q) будем
обозначать ее образ C n,k(m−1) (U ) = e = (e1 , e2 , . . . , en ) ∈ GF n (Q).
Соответственно, компоненты вектора e = (e1 , e2 , . . . , en ) обознаn,k(m−1)
чим следующим образом: ei = Ci
(U ), 1 ≤ i ≤ n. Для
построения системы Cn (x1 , . . . , x(m−1)k ) воспользуемся формулой
Лагранжа для систем полиномов от нескольких переменных, приведенной в работе [3]:
Cn (x(m−1)k ) =(c1 (x1 , . . . , x(m−1)k ), c2 (x1 , . . . , x(m−1)k ), . . . ,
(
=
. . . , cn (x1 , . . . , x(m−1)k )) =
Qk
∑
∏
(m−1)k
n,k(m−1)
C1
(ut,1 , . . . , ut,(m−1)k )
(1 − (xl − utl )Q−1 ),
t=1
l=1
Qk
∑
(m−1)k
n,k(m−1)
C2
(ut,1 , . . . , ut,(m−1)k )
t=1
...,
∏
(1 − (xl − utl )Q−1 ), . . . ,
l=1
Qk
∑
∏
(m−1)k
Cnn,k(m−1) (ut,1 , . . . , ut,(m−1)k )
t=1
)
(1 − (xl − utl )Q−1 ) .
l=1
С учетом принятых ограничений получаем, что на шаге с номером i при подаче на вход F(m−1)k+n (xkm ) векторов (ui−km+1 ,
. . ., ui−2 , ui−1 , ui ) очередное кодовое слово кода Dn (ui ) с параметрами (n, k, d, Q) складывается с вектором ошибок e ∈ ℑ(t −
δ, 2δ + 1), где e = Cn (ui−km+1 , . . . , ui−2 , ui−1 ). В результате получаем n очередных символов сверточного кода vi+1 = Dn ui +
Cn (ui−km+1 , . . . , ui−2 , ui−1 ).
С учетом задания систем полиномов
 (m−1)k
(x1 , . . . , x(m−1)k ) =
 A
= (xk+1 , xk+2 , . . . , x(m−1)k−1 , x(m−1)k , 0, . . . , 0),
 (m−1)k
B
(x(m−1)k+1 , . . . , xkm ) = (0, 0, . . . , 0, 0, x(m−1)k+1 , . . . , xkm ),
-------------------------------------------------------
75
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
и применяя результаты Следствия 1, получаем, что имеет место
тождество
m−2
∑
m−j−2
A(m−1)k (B(m−1)k (xkj+1 )) = (xk1 , xk2 , . . . , xkm−1 ).
j=0
Таким образом, для описанного построения сверточного кода получаем взаимосвязь между заданием сверточного кода в виде системы полиномов Gn (xl ) = Gn1 (xk1 , . . . , xkm−1 )+Gn2 (xkm ) и модулярной системой, описываемой системой полиномов F(m−1)k+n (xkm ) =
A(m−1)k (x1 , . . . , x(m−1)k ) + B(m−1)k (x(m−1)k+1 , . . . , xkm )|Cn (x1 , . . .,
x(m−1)k ) + Dn (x(m−1)k+1 , . . . , xkm ):
 n k
n k

 G2 (xm ) = D (xm ),
(
)


m−2
∑ m−j−2 n n k
n
k
k
k
n
G1 (x1 , x2 , . . . , xm−1 ) = C
A (B (xj+1 )) =

j=0



= Cn (xk1 , xk2 , . . . , xkm−1 ).
Лемма 2: Расстояние между двумя различными n символами сверточного кода vi+1 = Dn (ui ) + Cn (ui−m+1 , . . . , ui−2 , ui−1 )
и zi+1 = Dn (yi ) + Cn (yi−m+1 , . . . , yi−2 , yi−1 ) удовлетворяет неравенству
d(vi+1 , zi+1 ) ≥ 2δ + 1.
Доказательство: Рассмотрим три различных случая. Первый
случай — когда выполняется равенство ui = yi . При этом Dn (ui ) =
Dn (yi ), следовательно, d(vi+1 , zi+1 ) = d(Cn (ui−m+1 , . . . , ui−2 , ui−1 ),
Cn (yi−m+1 , . . . , yi−2 , yi−1 )). Из определения множества ℑ(t−δ, 2δ+
1) следует, что если d((ui−m+1 , . . . , ui−2 , ui−1 ), (yi−m+1 , . . ., yi−2 ,
yi−1 )) > 0, то выполняется неравенство d(vi+1 , zi+1 ) ≥ 2δ + 1.
Второй случай — когда выполняется неравенство ui ̸= yi . При
этом из свойства линейности кода (n, k, d, Q) следует (Dn (ui ) −
Dn (yi )) ∈ (n, k, d, Q). Следовательно, d(Dn (ui ) − Dn (yi )) ≥ 2t + 1.
Суммарный вес двух различных добавляемых векторов ошибок
Cn (ui−m+1 , . . . , ui−2 , ui−1 ) и Cn (yi−m+1 , . . . , yi−2 , yi−1 ) удовлетворяет неравенству d(Cn (ui−m+1 , . . . , ui−2 , ui−1 ) + Cn (yi−m+1 , . . .,
-------------------------------------------------------
76
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
yi−2 , yi−1 )) ≤ 2(t − δ). Таким образом, для расстояния между
векторами vi+1 и zi+1 выполняется неравенство d(vi+1 , zi+1 ) ≥
2t + 1 − 2(t − δ) = 2δ + 1.
Третий случай — когда выполняется неравенство ui ̸= yi и
имеет место равенство d((ui−m+1 , . . . , ui−2 , ui−1 ), (yi−m+1 , . . ., yi−2 ,
yi−1 )) = 0. Тогда расстояние между векторами vi+1 и zi+1 совпадает с расстоянием между векторами кода Dn (ui ) и Dn (yi ). Из
свойства расстояния кода получаем d(Dn (ui ) − Dn (yi )) ≥ 2t + 1 >
2δ + 1.
Сделаем два замечания касательно полученной конструкции.
Во-первых, полученный в результате сверточный код является
нелинейным. Поэтому для доказательства его минимального расстояния в Лемме 2 пришлось рассматривать не минимальный вес
кодового слова, а расстояние между двумя ближайшими кодовыми словами.
Во-вторых, описание нелинейного сверточного кода возможно
только в виде нелинейной системы полиномов
Gn (xl ) = Gn1 (xk1 , xk2 , . . . , xkm−1 ) + Gn2 (xkm )
= Cn (xk1 , xk2 , . . . , xkm−1 ) + Dn (xkm )
и невозможно в виде классического представления линейных сверточных кодов — порождающей матрицы.
VI. Примеры построения сверточного кода на базе
кода Рида-Соломона и кода Рида-Маллера
Для получения параметров предложенной конструкции сверточных кодов необходимо оценить мощность множества ℑ(t−δ, 2δ+
1) для конкретного кода. Рассмотрим два различных примера построения.
Пусть задано поле GF (Q) и код Рида-Соломона с параметрами
(n = Q − 1, k, d = Q − k, Q), где Q = 2p . Выберем пару значений δ
и m таким образом, чтобы выполнялось неравенство
(
)
∑t−δ
i Q−1
i=1 (Q − 1)
i
≥ Qk(m−1) .
Q2δ
-------------------------------------------------------
77
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Таблица I
Примеры построенных кодов на базе кодов
Рида-Соломона
n
7
15
15
15
15
31
31
31
31
31
31
31
31
31
63
63
63
63
k
1
1
2
3
5
1
2
3
4
5
7
8
9
11
1
2
3
4
dmin
9
35
15
14
6
121
55
44
33
27
22
18
14
10
441
210
152
115
δ
1
2
2
3
1
5
5
5
5
4
5
4
3
2
10
10
9
11
m
3
7
3
2
2
11
5
4
3
3
2
2
2
2
21
10
8
5
n
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
k
4
5
6
7
8
9
11
12
13
15
16
17
19
20
21
22
23
25
dmin
115
95
76
69
63
57
50
46
42
38
34
30
26
22
18
14
10
6
δ
11
9
9
11
10
9
12
11
10
9
8
7
6
5
4
3
2
1
m
5
5
4
3
3
3
2
2
2
2
2
2
2
2
2
2
2
2
Рассмотрим проверочную матрицу H кода Рида-Соломона с
параметрами (n = Q−1, n−2δ, 2δ +1, Q). Данная матрица состоит
из Q − 1 столбцов и 2δ строк. Умножение произвольного вектора e длины n над полем GF (Q) отображает вектор e в синдром
s = eHT . Данное отображение разбивает все множество векторов
ошибок ℑ(t−δ, 1), исправляемых кодом (n = Q−1, k, d = Q−k, Q),
на различные Q2δ непересекающиеся подмножества, каждое из которых является нелинейным кодом с расстоянием 2δ + 1.
Таким образом, найдется хотя бы одно такое подмножество
ℑ(t − δ, 2δ + 1) ⊂ ℑ(t − δ, 1), для мощности которого выполняется
условие
(
)
∑t−δ
i Q−1
i=1 (Q − 1)
k(m−1)
i
≤ |ℑ(t − δ, 2δ + 1)|.
Q
≤
Q2δ
Следовательно, получен нелинейный сверточный код над полем
GF (Q) с параметрами (n = Q − 1, k, m) и минимальным свобод-------------------------------------------------------
78
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Таблица II
Примеры построенных кодов на базе кодов
Рида-Маллера
r
1
1
1
1
1
1
1
1
2
2
2
2
2
2
3
3
3
p
4
5
6
7
8
9
10
11
6
7
8
9
10
11
9
10
11
n
15
31
63
127
255
511
1023
2047
63
127
255
511
1023
2047
511
1023
2047
k
5
6
7
8
9
10
11
12
22
29
37
46
56
67
130
176
232
dmin
6
14
36
105
319
990
3185
10579
6
18
46
117
325
927
14
66
162
δ
1
3
4
7
14
22
45
74
1
4
11
19
32
51
3
16
40
m
2
2
4
7
11
22
35
71
2
2
2
3
5
9
2
2
2
ным расстоянием dmin = m(2δ + 1). Примеры построенных кодов
приведены в Табл. I.
∑ ()
Рассмотрим теперь код Рида-Маллера (n = 2p , k = ri=0 pi ,
d = 2p−r , Q = 2) порядка r = 1, 2, 3 для некоторого натурального
значения p > r.
Перейдем
коду с параметрами (n = 2p − 1,
∑r (p) к укороченному
p−r
− 1, Q = 2) и построим проверочную
k =
i=0 i , d = 2
матрицу H двоичного БЧХ-кода с параметрами (n = 2p − 1, k =
n − pδ, d = 2δ + 1, Q = 2). Выберем пару значений δ и m таким
образом, чтобы выполнялось неравенство
∑t−δ (2p −1)
i=1
i
≥ 2k(m−1) .
2pδ
Умножение произвольного двоичного вектора e длины n отображает вектор e в синдром s = eHT . Данное отображение разбивает все множество векторов ошибок ℑ(t − δ, 1), исправляемых
∑ ()
укороченным кодом Рида-Маллера (n = 2p − 1, k = ri=0 pi , d =
-------------------------------------------------------
79
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
2p−r − 1, Q = 2), на различные 2pδ непересекающиеся подмножества, каждое из которых является нелинейным кодом с расстоянием 2δ + 1.
Таким образом, найдется хотя бы одно такое подмножество
ℑ(t − δ, 2δ + 1) ⊂ ℑ(t − δ, 1), для мощности которого выполняется
условие
∑t−δ (2p −1)
k(m−1)
2
≤ i=1 pδ i
≤ |ℑ(t − δ, 2δ + 1)|.
2
Следовательно, получен нелинейный сверточный
) над по∑r (pкод
лем GF (2) с параметрами (n = 2p − 1, k =
i=0 i , m) и минимальным свободным расстоянием dmin = m(2δ + 1). Примеры
построенных кодов приведены в Табл. II.
Литература
[1] Р. Лидл, Г. Нидеррайтер, Конечные поля: в 2-х т., М.: Мир, 1998, 822 с.
[2] Дж. Кларк, мл., Дж. Кейн, Кодирование с исправлением ошибок в системах цифровой связи, Радио и Связь, 1987, 391 с.
[3] V. Davydov, Modifications of HFE Public Key System. Proceedings, The ХII
International Symposium on Problems on Redundancy in Information and
Control Systems, p. 172–179.
-------------------------------------------------------
80
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
О построении арифметических операций
для защиты вычислений с плавающей
точкой
В.О. Минченков
А.А. Овчинников
аспирант
к.т.н. доцент
Санкт-Петербургский государственный
университет аэрокосмического приборостроения
I. Введение
За последние десятилетия устойчивой тендецией является постоянный рост вычислительных возможностей одновременно с
уменьшением размеров вычислительных элементов и усложнением производимых операций. Все это приводит к тому, что несмотря на совершенствование технологий производства, в процессе вычислений остается некоторая вероятность возникновения ошибок.
Вместе с тем, существуют области, в которых эта вероятность
существенно превышает требования к уровню «безошибочности»,
и необходимо применение специальных дополнительных средств,
если не понижающих вероятность появления ошибки до необходимых значений, то хотя бы увеличивающих вероятность ее обнаружения в случае возникновения сбоя. Дополнительным негативным фактором является то, что зачастую в тех областях, где
требования к надежности вычислений особенно критичны, вычислительные устройства работают в неблагоприятных условиях —
температурных, радиационных, электромагнитных и т.п.
В рамках классической теории помехоустойчивого кодирования известны классы специальных арифметических кодов, предназначенных для обнаружения и исправления такого рода вычис-------------------------------------------------------
81
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
лительных ошибок. Однако эти коды предназначены в основном
для исправления ошибок сложения/вычитания и ориентированы
на целочисленные операции.
В данной статье рассмотрены некоторые подходы к обнаружению разнообразных ошибок, возникающих в процессе вычислений. В разделе II рассматривается защита операций над целыми числами. Раздел III рассматривает проблематику защиты
операций с плавающей точкой. Приводится набор из 4 базовых
защищенных операций с плавающей точкой, на основе которого
приводится пример реализации защищенного вычисления тригонометрической функции. Раздел IV завершает статью.
II. Защита целочисленных вычислений
A. Типы ошибок
Арифметические коды, рассматриваемые в классической теории кодирования, предназначены в основном для защиты операции целочисленного сложения/вычитания. Очевидно, этого недостаточно для подавляющего большинства современных приложений. В этом разделе мы рассмотрим некоторые классификации
ошибок, возникающих в процессе вычислений.
В соответствии со стандартом Международной Электротехнической Комиссии IEC 61508 «Functional Safety of Electrical/Electronic/Programmable Electronic Safety Related Systems» [4] (в России
принят соответствующий стандарт ГОСТ Р МЭК 61508 «Функциональная безопасность систем электрических, электронных, программируемых электронных, связанных с безопасностью»), ошибки по своей природе могут быть подразделены на постоянные (систематические) и случайные.
Систематические ошибки возникают вследствие ошибок, допущенных при создании/проектировании, таким образом, они детерминистически связаны с определенным событием и могут быть
устранены только с помощью модификации конструкции, схемы,
производственного процесса (в т.ч. вычислительного) и т.п.
-------------------------------------------------------
82
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Распространенным примером систематической ошибки является т.н. «залипание», когда любой бит, записанный в ячейку памяти или регистр, будет всегда считываться как постоянное значение (либо 0, либо 1). Если считанное значение отличается от
записанного, то происходит ошибка «инвертирования одиночного бита» (bit-flip). Причиной такой ошибки часто является одиночный сбой (SEU, single event upset). Модификация одиночного
бита в программном коде может привести к изменению поведения программы (как к изменению используемых значений, так и
к изменению порядка выполнения) и привести к некорректным
результатам.
Другим видом ошибок являются случайные ошибки, возникающие в произвольный момент времени. Причинами таких ошибок
могут быть, к примеру, старение оборудования, внешний электромагнитный импульс. В результате таких ошибок, в частности, также могут происходить непредсказуемые инвертирования бит.
Одним из наиболее простых и прямолинейных способов обнаружения ошибок является повторение вычислений некоторое число раз (дублирование), например, повторный запуск одной и той
же программы с одинаковым входом и сравнивание результатов
на выходе. Без учета затрат, такой подход может быть эффективен против случайных ошибок, однако зачастую бессилен против
ошибок систематических, так как одна и та же ситуация, приводящая к сбою, будет повторяться при каждом запуске программы
и приводить к одинаковым (неверным) результатам. Для борьбы
с такими ошибками при повторных запусках необходимо вносить
в вычисления некоторые изменения.
С точки зрения пользователя (программиста) на программном
уровне возникающие ошибки могут приводить к различным эффектам, например: ошибке операции, ошибке оператора, ошибке
операнда, ошибке «актуальности», ошибке порядка выполнения.
При ошибке операции аргументы оператора и сам оператор
корректны, однако результат операции ошибочен (например, при
сложении — вследствие сбоя внутри сумматора). Ошибка оператора означает замену предполагаемого оператора (функции) дру-------------------------------------------------------
83
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
гим, некорректным оператором (например, выполнение умножения вместо сложения).
Ошибка операнда происходит при выполнении правильного оператора над ошибочными операндами (например, вследствие ошибки адресации или инвертирования бит в памяти).
К ошибке «актуальности» (своевременности) приводит ситуация, при которой значение в ячейке памяти должно было быть
модифицировано, но по каким-то причинам (например, сбое в адресации) в ячейке памяти осталось старое значение, которое и
считывается при следующем обращении к ячейке. Фактически это
приводит к ошибке операнда, однако специфика данного случая
состоит в том, что если для защиты хранящихся значений используется некоторый код, то «старое» значение, записанное в ячейке
памяти, также является правильным кодовым словом, и ошибка в
значении не будет обнаружена. Таким образом, для защиты от таких ошибок необходимо обеспечивать не только защиту значений,
но и их своевременности.
Наконец, ошибки порядка выполнения приводят к непредсказуемым переходам в порядке инструкций программы. В некотором смысле эту ошибку можно рассматривать как частный случай
ошибки оператора. Обычно такого типа ошибки обнаруживаются специализированным аппаратным обеспечением (т.н. «сторожевым таймером» [9, 23–25, 30]), или вставкой в текст программы
специальных «подписей», чьи значения могут быть вычислены заранее для предполагаемого (корректного) порядка выполнения, и
используются для сверки с реальными значениями после завершения программы (или в специальные моменты времени в течение
выполнения) [11, 17, 27, 29, 33].
B. Классический подход: арифметические коды
Из теории помехоустойчивого кодирования известны два наиболее общих класса арифметических кодов: AN -коды и остаточные (вычетные) коды. В общем случае кодирование в AN -коде
заключается в умножении значения N из множества целых чисел
{0, 1, . . . , B−1} на (целое) число A, значение которого определяет-------------------------------------------------------
84
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
ся как параметр кода. Все операции осуществляются над закодированными AN -величинами, а обнаружение ошибки производится с помощью проверки делимости результата на A. Извлечение
результата осуществляется делением кодового слова на A.
Для каждого числа X специальным образом определяется его
арифметический вес w(X), и минимальное расстояние dmin AN кода равно минимальному арифметическому весу wmin среди всех
B − 1 ненулевых кодовых слов, т.е. dmin = wmin = min {w(AN )}
0<N <B
[7, 32]. Если произошла ошибка, и в результате вычислений получено значение AN + E, то AN -код с минимальным расстоянием
dmin > 2t + s может исправлять ошибки веса w(E) ≤ t или обнаруживать ошибки веса w(E) ≤ t + s.
Эти коды достаточно хорошо изучались, существуют известные различные классы AN -кодов, например, циклические AN коды, совершенные AN -коды, итеративные, систематические и
т.д. [1, 2]. Для них известны способы построения (выбора параметра A), кодирования и декодирования, предложены оценки минимального расстояния.
Однако, AN -коды прежде всего предназначались для защиты
операций сложения/вычитания, и не могут быть впрямую применены для более сложных операций, таких, как умножение и тем
более деление, и др.
Другим классов арифметических кодов являются остаточные
коды [1, 8]. Это систематические коды, в которых кодовое слово содержит само исходное значение N , а также множество из n
остатков от деления N на специальным образом выбранные модули mi :
N ↔ (N, C1 , C2 , C3 , . . . , Cn ), где Ci = N mod mi .
Все арифметические операции осуществляются над значением N
и остатками независимо. Для полученного результата вычисляются остатки по модулям mi и сравниваются со значениями контрольных остатков, полученными в ходе выполнения. Заметим,
что такой код сохраняет свою структуру относительно операции
умножения.
-------------------------------------------------------
85
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
C. Защита порядка выполнения: «подпись»
В 1980-х годах компанией Siemens Transportation Systems была разработана система SACEM (Système d’Aide à la Conduite, à
l’Exploitation et à la Maintenance) для парижского метрополитена,
включавшая в себя защищенный кодовый процессор (VCP, Vital
Coded Processor) [14], ориентированный на исправление ошибок,
рассмотренных в разделе II.A.
Для защиты использовался смежный класс арифметического кода [7, 32], представляющий из себя комбинацию AN -кода и
некоторой дополнительной информации. Перед выполнением программы каждая переменная кодировалась таким образом, что кодовое слово включало в себя:
• арифметический код для обнаружения ошибок операции;
• сигнатуру («подпись») для обнаружения ошибок оператора;
• временную метку.
Более точно, значение (целочисленное) xf каждой переменной
x трансформируется в значение xc :
xc = A ∗ xf + Bx + d,
(1)
где A — константа, определяемая выбором арифметического кода,
Bx — подпись переменной x, d содержит количество записей в
данную ячейку памяти (временная метка).
Использование арифметического кода подразумевает, что результат любой операции должен быть также кодовым словом, таким образом, ошибка в процессе вычисления с большой вероятностью будет обнаружена (если считать, что ошибка вычисления
приводит к случайному, равномерно распределенному числу, то
вероятность необнаружения ошибки составляет 1/A).
Использование «подписи» фактически задает смежный класс
AN -кода, т.е. сдвиг кодовых слов с помощью операции сложения,
при этом конкретная величина сдвига для каждой переменной в
данный момент времени определяется теми операциями, с помощью которых вычисляется текущее значение этой переменной.
-------------------------------------------------------
86
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Важным требованием к использованию таких «подписей» является возможность их предварительного вычисления, таким образом, до фактического запуска программы известны значения
«подписей» всех переменных на выходе программы в случае ее
корректного выполнения. Таким образом, если происходит сбой в
порядке выполнения программы или замещение одних операций
другими, «подписи» переменных разрушаются, что может быть
обнаружено сравнением с заранее вычисленными проверочными
значениями. Более точно, если корректная (заранее вычисленная)
подпись для переменной x равна Bx′ , то проверочным соотношением для выходного значения xc переменной x является выполнение
(xc − Bx′ − d) mod A = 0, а само значение переменной может быть
получено как xf = (xc − Bx′ − d)/A. Предполагается, что значение
временной метки d также может быть вычислено заранее. Фактически, использование метки d представляет собой способ получения из «статической» подписи Bx «динамической подписи»
(Bx + d) с теми же свойствами, что и Bx , но дополнительно позволяющей обнаруживать ошибки «своевременности» значений.
С помощью описанного метода кодирования в [14, 28, 34] было
описано множество защищенных операций, включающее в себя:
•
•
•
•
•
•
сложение;
вычитание;
умножение;
деление (частично защищенное);
условные ветвления;
логические операции.
Существенной сложностью в реализации описанного подхода
является построение защищенной операции деления, так как описанная в (1) структура кодового слова не сохраняется при делении, и в существующих подходах предлагается частичное перекодирование во время выполнения программы, что потенциально
увеличивает вероятность необнаружения ошибки.
Надо отметить, что для защиты порядка выполнения часто
также используются подходы, подразумевающие наличие предвы-------------------------------------------------------
87
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
численных значений для предполагаемого хода выполнения программы, и сверку реально получающихся значений с контрольными. Однако обычно такие контрольные вычисления производятся
параллельно на специальном защищенном оборудовании [9,23–25,
30] или же, при программной реализации, в независимых ячейках памяти [11, 17, 27, 29, 33]. Особенностью описанного в данном
разделе подхода является то, что предвычисленное значение содержится в самой закодированной переменной.
D. Использование контрольных сумм
Одним из альтернативных к описанному в разделе II.C способу защиты является использование т.н. контрольных сумм. Идея
данного подхода состоит в следующем. Для кодирования используется систематическое представление, т.е. кодовое слово xc раздельно содержит в себе исходное (некодированное) значение xf и
избыточные проверочные символы, называемые контрольной суммой, xc = [xf ; check(xf )].
Контрольная сумма составляется таким образом, чтобы при
совершении операции с помощью некоторой процедуры проверки можно было бы проконтролировать соответствие контрольной
суммы результата (некодированному) значению результата.
Фактически одним из вариантов такого подхода являются вычетные коды, описанные в разделе II.B. Способы защиты целочисленных операций, основанные на этих кодах, рассматривались,
например, в [16, 18].
Другим вариантом является использование т.н. кодов Бергера [10], в которых контрольная сумма для некоторой двоичной
последовательности представляет собой просто количество нулей
(единиц) в данной последовательности. Способы построения контрольных сумм и реализации защищенных операций (в т.ч. операции деления) описаны в [21].
Особенностью рассмотренных схем является то, что при вычислении контрольных сумм для защищенных операций требуется знание значений внутренних регистров сумматоров, умножителей и т.п., т.е. необходим доступ к схемной реализации вы-------------------------------------------------------
88
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Рис. 1. Представление числа с плавающей точкой
числителя. В случае, когда защита осуществляется программно,
это приводит к необходимости программной эмуляции внутренней
структуры вычислительных элементов, что влечет за собой очень
большие дополнительные затраты.
III. Защита вычислений с плавающей точкой
A. Вычисления с плавающей точкой
Одним из наиболее распространенных способов реализации
вычислений с вещественными числами является использование
представления с плавающей точкой в соответствии со стандартом
IEEE 754-1985 «Standard for floating-point arithmetic» [5] (также
известном как IEC 60559:1989 «Binary Floating-Point Arithmetic
for Microprocessor Systems» [3], и пересмотренном в 2008 как IEEE
754-2008 «Standard for floating-point arithmetic» [6]).
В соответствии со стандартом, число с плавающей точкой может быть представлено с помощью 32 (одинарная точность) или
64 (двойная точность) бит. Число представляется тремя отдельными частями: знаковым битом, экспонентой и мантиссой, см.
Рис. 1.
Более точно, число f в формате с плавающей точкой представляется произведением
f = (−1)S × M × 2E ,
(2)
где S — знаковый бит (0 или 1), M — мантисса, E — экспонента.
-------------------------------------------------------
89
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Мантисса является вещественным числом в нормализованном виде, т.е. 1 ≤ M < 2, и так как старший бит мантиссы всегда равен
1, этот бит не хранится в поле мантиссы. Экспонента хранится
в смещенном виде, это означает, что ее действительное значение
увеличивается на величину сдвига, равного 127 для одинарной
точности и 1023 для двойной. Это позволяет хранить как положительные, так и отрицательные значения экспоненты без использования знакового разряда. Таким образом, к примеру, значение
127 поля экспоненты соответствует «реальному» значению 0, значение 120 соответствует −7, а 130 соответствует +3.
С учетом этого, число f из (2) представляется как
f = (−1)S × (1 + M/223 ) × 2E−127
для одинарной точности, и
f = (−1)S × (1 + M/252 ) × 2E−1023
для двойной.
Кроме того, в стандарте IEEE 754 присутствуют специальные
представления для денормализованных чисел, ±0, ±∞ и NaN. В
дальнейшем мы не будем рассматривать эти частные случаи.
Опишем базовые операции над таким образом представленными числами. Фактически арифметика с числами с плавающей
точкой сводится к целочисленным операциям со знаком, мантиссой и экспонентой [15, 22].
Операции сложения и вычитания с плавающей точкой практически совпадают. Пусть требуется сложить/вычесть два числа
с плавающей точкой f1 = (M1 , E1 ) и f2 = (M2 , E2 ) с мантиссами
M1 и M2 и экспонентами E1 и E2 соответственно (для простоты
будем считать числа положительными). Операция сложения/вычитания состоит из трех шагов: выравнивания, сложения/вычитания, и нормализации, и может быть описана следующим образом:
(Mres , Eres ) = f1 ± f2
{
Mres =
Eres = max{E1 , E2 }
normalize(M1 ± M2 · 2−|E1 −E2 | ), if E1 > E2
normalize(M1 · 2−|E1 −E2 | ± M2 ), if E1 6 E2
-------------------------------------------------------
90
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Пусть E1 ≥ E2 . Тогда (предполагаемой) экспонентой результата будет являться Eres = E1 . Для вычисления мантиссы результата мантиссы операндов должны быть выравнены, то есть приведены к одинаковому значению экспоненты. Это означает, что мантисса числа с меньшим порядком (экспонентой), например M2 ,
должна быть побитово сдвинута вправо на E1 − E2 позиций. При
этом во время вычислений следует учитывать, что реальное значение мантиссы предполагает наличие еще одного старшего бита,
равного 1. После выравнивания мантиссы складываются/вычитаются, и затем результат должен подвергнуться нормализации.
В случае сложения, необходимость нормализации диктуется
возможным «переполнением» при сложении: если обе мантиссы
являются числами в интервале [1, 2), то результат может оказаться большим 2. В этом случае экспонента результата Eres увеличивается на 1, старший бит мантиссы (который всегда равен 1)
отбрасывается, и следующие 23 (52) бита (в зависимости от точности) записываются в Mres .
В случае вычитания может оказаться так, что после вычитания выравненных мантисс некоторая (иногда достаточно большая) часть старших бит результата оказывается равной 0. Эти
нулевые биты должны быть отброшены, а экспонента уменьшена
на соответствующее число, после чего, как и в случае сложения,
старший бит, равный 1, отбрасывается, и следующие 23 (52) бит
записываются в Mres .
Рассмотрим операцию умножения. Экспонентой результата будет Eres = E1 + E2 − bias (где bias — величина сдвига смещенной
экспоненты), а мантиссой Mres = M1 × M2 . Если размерность исходной мантиссы n, то размерность результата 2n, таким образом,
n бит низшего порядка будут отброшены (или округлены).
Умножение можно выразить следующим образом:
(Mres , Eres ) = f1 × f2
Eres = E1 + E2 − bias + ∆
Mres = normalize(M1 × M2 )
Получившаяся мантисса может оказаться не нормализован-------------------------------------------------------
91
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
ной, поэтому может потребоваться постнормализация на ∆ позиций, однако в отличие от сложения и вычитания, эта нормализация приведет не более чем к 1 сдвигу мантиссы.
Наконец, при операции деления экспонентой результата будет
Eres = E1 − E2 + bias, а мантиссой Mres = M1 /M2 . Деление мантисс производится целочисленно, пока все биты результирующей
мантиссы не будут заполнены.
Деление можно представить как:
(Mres , Eres ) = f1 /f2
Eres = E1 − E2 + bias + ∆
Mres = normalize(M1 /M2 )
Как и в случае умножения, может потребоваться нормализация на ∆ позиций, что затронет не более 1 бита мантиссы.
B. Защита с использованием многократных вычислений
В разделе II.C был описан способ кодирования целочисленных
переменных, предложенный в [14] и позднее рассматривавшийся
в [12, 13, 28, 34, 35]. Напомним, что каждому значению x было поставлено в соответствие значение xc :
xc = A ∗ x + Bx + d.
(3)
Однако очевидно, что в случае с вещественными числами такой подход не даст результата, так как не определено само понятие делимости вещественного числа на целое (а именно это использовалось для обнаружения ошибок в целочисленном случае).
Более того, даже само по себе значение xc после кодирования часто может не оказаться «кодовым словом» в результате округлений при выполнении операций с плавающей точкой. Таким образом, для определения корректности результата необходима некая
дополнительная «сторонняя информация».
В [26] предлагается метод защиты, использующий выполнение
двух копий одной и той же программы. Чтобы обнаруживать не
только случайные ошибки, но и систематические (см. раздел II.A),
-------------------------------------------------------
92
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Рис. 2. Дублирование и модификация программы
вторая копия программы должна отличаться от первой, но выполнять эквивалентный с точки зрения входа и выхода алгоритм.
В [26] в качестве способа построения модификации предлагается использовать фактически арифметический код, т.е. умножать
в модифицированной версии программы все значения на некоторую константу k. В конце выполнения обеих программ проверяется совпадение их выходов, с точностью до кратности k.
В работе [26] основное внимание уделялось при этом защите
целочисленных операций, однако тот же подход можно расширить
для использования чисел с плавающей точкой. Идея этого подхода
изображена на Рис. 2. Такой подход обеспечивает защиту от ошибок операции, операнда и др., если ошибки затрагивают только
одну версию выполняемой программы. Если же ошибка произошла в обеих частях — то замена, к примеру, операции сложения
на операцию вычитания в одном и том же месте в обеих частях
программы приведет к необнаружимой ошибке.
Для предотвращения этого события и может быть использован подход из раздела II.C с применением дополнительной аддитивной «подписи», встраиваемой в значение каждой переменной.
Так как операции с плавающей точкой выполняются с некоторой точностью, выходы двух различных программ могут не совпасть побитово, и следовательно, проверка корректности должна
выполняться в некотором интервале. Размер этого интервала зависит от выполняемых операций, значений переменных, порядка
-------------------------------------------------------
93
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
выполнения операций и т.д. Это означает, что с одной стороны,
ошибки, не оказавшие значительного влияния на результат, могут быть приняты за ошибки округления и не обнаружены, а с
другой стороны — слишком «узкий» интервал будет приводить
к ложным обнаружениям, когда ошибки погрешности будут рассматриваться как сбой.
Выбор интервала зависит от конкретного приложения, и дополнительным параметром для настройки может быть частота
проверок внутри программы: выполнение может быть разделено на блоки или модули, после завершения каждого из которых
производится проверка, величины перекодируются и программа
продолжает выполнение. Более частые проверки повышают точность и уменьшают задержку между моментом сбоя и моментом
его обнаружения (что важно в некоторых приложениях), однако
приводят к увеличению общих затрат на обеспечение защиты и
времени выполнения программы.
При таком подходе вероятность необнаружения ошибки — это
вероятность того, что обе программы попали под воздействие ошибок, которые на выходе этих программ дали (неверный) результат,
совпадающий в пределах выбранного интервала проверки. Если
предполагать, что ошибка приводит к тому, что результирующая
переменная содержит случайное, равномерно распределенное значение, и ошибка детектируется в том случае, когда два сравниваемых значения отличаются лишь в нескольких младших разрядах
мантиссы, то можно примерно оценить вероятность недетектирования ошибки снизу как ∼ 2−30 для одинарной точности и ∼ 2−60
для двойной.
Однако на самом деле, вследствие ошибок округления, прежде всего — операции нормализации при выполнении вычитания,
а также вследствие того, что при выполнении модифицированной
программы действия производятся над числами других порядков,
с другой абсолютной величиной погрешности, может потребоваться выбирать намного больший интервал для сравнения, и оценки, приведенные выше, окажутся очень грубой нижней оценкой.
Кроме того, при подсчете вероятности ошибки недетектирования
-------------------------------------------------------
94
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
необходимо иметь математическую модель ошибок и вероятностное описание их влияния на работу программы. Однако на сегодняшний день такие модели, охватывающие широкий класс программ и ошибочных ситуаций, отсутствуют, и расчет вероятностей или хотя бы их оценок можно производить (если это вообще оказывается возможным) лишь эмпирически для конкретных
приложений.
C. Защищенные арифметические операции
В данном разделе мы опишем основные защищенные кодированные операции, опираясь на способ кодирования, предложенный в разделе III.B. Для простоты мы не будем рассматривать
слагаемое d в (3), ограничившись рассмотрением «статической»
подписи Bx .
Кодирование операций основывается на аналогичном защищенном кодировании для целых чисел, описанном в [14, 28, 34]. В
нашем случае предполагается, что исходная программа оперирует
числами с плавающей точкой в исходном, некодированном варианте, и кодирование производится для получения второй, модифицированной программы, выполняющей эквивалентные вычисления над кодированными переменными. После завершения работы обеих программ (или их модулей) производится декодирование
и сравнение некодированного и декодированного результатов для
обнаружения ошибок.
Для представления чисел с плавающей точкой (двойной точности) будем использовать структуру Num_c, изображенную на
Рис. 3. Поле val содержит исходное (некодированное) значение,
h представляет собой подпись, codedVal содержит кодированное
значение, полученное как A ∗ val + h для некоторой (статической)
константы A. Функция getVal() возвращает декодированное значение.
Для всех входных значений переменных соответствующие подписи должны быть выбраны таким образом, чтобы их использование не увеличивало погрешность вычислений. Фактически это
означает, что подпись должна иметь тот же порядок, что и ис-------------------------------------------------------
95
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
struct Num_c{
double codedVal ;
double v a l ;
double h ;
double g e t V a l ( ) {
return ( ( codedVal−h ) /A ) ;
}
};
Рис. 3. Представление кодированного значения с плавающей точкой
пользуемые числа, в противном случае при прибавлении подписи
вследствие выравнивания и нормализации (см. раздел III.A) либо исходное кодируемое значение, либо значение подписи будут
слишком искажены, что приведет к высокой вероятности ложного детектирования ошибки.
Для рассматриваемого метода кодирования защита сложения
(вычитания) особенно эффективна, так как эти операции напрямую сохраняют структуру кодового слова. Действительно, если
мы рассмотрим числа
xc = A ∗ x + B x
(4)
и
yc = A ∗ y + By ,
то сумма кодированных значений xc + yc даст
zc = xc + yc = A ∗ (x + y) + (Bx + By ) = A ∗ (x + y) + Bz ,
где A ∗ (x + y) соответствует правильному результату сложения,
умноженному на A, а Bz = Bx +By — подпись для операции сложения. Соответствующая функция, реализующая данную операцию,
приведена на Рис. 4.
Таким образом, сложность защищенного сложения составляет 1 сложение с плавающей точкой (сложение подписей можно
не учитывать, так как в реальном приложении оно может быть
вычислено заранее). Однако при общей оценке затрат на защиту
необходимо еще учитывать операции, выполняемые в исходной
-------------------------------------------------------
96
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Num_c add (Num_c x , Num_c y ) {
Num_c r e s ;
r e s . codedVal = x . codedVal + y . codedVal ;
res .h = x .h + y .h;
return r e s ;
};
Рис. 4. Защищенное сложение с плавающей точкой
(некодированной) версии программы. Тогда сложность защиты
сложения составит 1 сложение с плавающей точкой кодированных
переменных и 1 сложение с плавающей точкой исходных переменных.
Защита вычитания производится полностью аналогичным образом.
Защита умножения не может быть выполнена так же легко,
так как произведение двух кодированных переменных дает
xc ∗ yc = (A ∗ x + Bx ) ∗ (A ∗ y + By ) =
= A2 ∗ x ∗ y + A ∗ x ∗ By + A ∗ y ∗ Bx + Bx ∗ By ,
(5)
что не является ожидаемым результатом, который должен иметь
вид
zc = A ∗ (x ∗ y) + Bx ∗ By .
(6)
Для получения корректного результата вида (6), можно вычислить выражение (5) и затем выполнить дополнительные операции
для приведения результата к (6). Такой подход описан, к примеру,
в [34] для случая защиты целых чисел. Коррекция произведения
xc ∗ yc может быть выполнена как
(
(
xc − Bx
∗ By +
zc = xc ∗ yc − A ∗
A
)
)
(7)
y c − By
+
∗ Bx + (A − 1) ∗ Bx ∗ By /A.
A
Легко проверить, что zc в (7) соответствует zc в (6).
-------------------------------------------------------
97
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Num_c mul (Num_c x , Num_c y ) {
Num_c tmp ;
tmp . codedVal = ( x . codedVal ∗y . codedVal–
x . codedVal ∗y . h−y . codedVal ∗x . h+
(A+1)∗( x . h∗y . h ) ) /A;
tmp . h = x . h∗y . h ;
return tmp ;
};
Рис. 5. Защищенное умножение с плавающей точкой (Вариант 1)
Эта процедура (без учета выполнения некодированной «ветки» вычислений) требует 3 делений, 4 умножений и 5 сложений/вычитаний (заметим, что (A − 1) ∗ (x.h ∗ y.h) является константой,
которая может быть предвычислена), однако выражение (7) может быть оптимизировано как
zc = (xc ∗ yc − xc ∗ By − yc ∗ Bx + (A + 1) ∗ Bx ∗ By )/A,
что потребует 1 деления, 3 умножений и 3 сложений/вычитаний.
Соответствующая функция представлена на Рис. 5.
Можно организовать и другой способ защиты умножения, если
принять во внимание наличие второй (исходной) версии выполняемой программы. Вычисление выражения (6) для xc и yc может
быть выполнено как
zc = (xc − Bx ) ∗ (yc − By )/A + Bx ∗ By .
(8)
В этом случае не выполняется умножение xc ∗ yc , а вместо этого сначала из кодированных значений вычитаются их подписи,
производится умножение A ∗ x и A ∗ y, и затем добавляется «правильная» подпись, соответствующая операции умножения.
В случае целочисленных вычислений (использующих только
кодированную версию программы) существует вероятность, что
в момент умножения значений без подписи произойдет ошибка
оператора — например, замена умножения на сложение или вычитание, тогда (некорректный) результат (A ∗ x ± A ∗ y)/A будет
словом AN -кода, так как будет кратен A, и ошибка не будет обнаружена.
-------------------------------------------------------
98
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Num_c mul2 (Num_c x , Num_c y ) {
Num_c tmp ;
tmp . codedVal = ( x . codedVal−x . h ) ∗ ( y . codedVal−y . h ) /A+
x . h∗y . h ;
tmp . h = x . h∗y . h ;
return tmp ;
};
Рис. 6. Защищенное умножение с плавающей точкой (Вариант 2)
Однако в случае дублирования программы эта ошибка может
быть обнаружена, используя вторую ветку вычислений. Даже если во второй программе также произойдет ошибка, одиночная
ошибка при вычислении x ∗ y приведет к совпадению с одиночной
ошибкой при вычислении (xc − Bx ) ∗ (yc − By )/A с вероятностью,
совпадающей с общей вероятностью необнаружения ошибки, обсуждавшейся в разделе III.B.
Соответствующая версия защищенного умножения приведена
на Рис. 6. Затраты составляют 1 деление, 1 умножение и 3 сложения/вычитания (без учета выполнения некодированной программы), т.е. с точки зрения количества операций этот вариант предпочтителен изображенному на Рис. 5.
Операция деления является одной из наиболее сложных операций для защиты, так как при осуществлении деления трудно сохранить структуру аддитивной подписи кодированного представления (4).
Но для рассматриваемой организации защиты при наличии
второй (некодированной) ветки вычислений возможно организовать деление следующим образом. Как и для защищенного умножения, можно рассмотреть две версии защищенного деления: использующую деление кодированных величин и доопределение результата, и использующую деление без учета подписей с их последующим добавлением.
Ожидаемый результат деления должен иметь вид
zc = A ∗ (xc /yc ) + Bx /By ,
-------------------------------------------------------
99
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Num_c d i v (Num_c x , Num_c y ) {
Num_c tmp ;
tmp . codedVal = (A∗x . codedVal ) / ( y . codedVal−y . h ) −
(A∗x . h ) / ( y . codedVal−y . h ) + x . h/y . h ;
tmp . h = x . h/y . h ;
return tmp ;
};
Рис. 7. Защищенное деление с плавающей точкой (Вариант 1)
Num_c d i v (Num_c x , Num_c y ) {
Num_c tmp ;
tmp . codedVal = A∗ ( x . codedVal−x . h ) / ( y . codedVal−y . h)+
x . h/y . h ;
tmp . h = x . h/y . h ;
return tmp ;
};
Рис. 8. Защищенное деление с плавающей точкой (Вариант 2)
и первый вариант деления может быть описан как
zc =
A ∗ Bx
Bx
A ∗ xc
−
+
,
y c − By
yc − By
By
где A ∗ Bx и Bx /By — константы. Здесь подпись вычитается из
yc , однако xc остается полностью закодированным. Эта операция
требует 2 делений, 1 умножения и 3 сложений/вычитаний (yc −By
можно вычислить только однажды) и приведена на Рис. 7.
Вторая версия деления организована аналогично (8):
zc = A ∗ (xc − Bx )/(yc − By ) + Bx /By .
Как и в случае умножения, возможные ошибки оператора обнаруживаются присутствием второй программы, в которой ошибка
оператора не может дать результат, совпадающий с ошибочным
результатом первой программы, а другие типы ошибок имеют вероятность необнаружения, не превышающую общую границу вероятности, обсуждавшуюся ранее.
-------------------------------------------------------
100
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Таблица I
Сложность защищенных операций
Сложение
Вычитание
Умножение (Вар. 1)
Умножение (Вар. 2)
Деление (Вар. 1)
Деление (Вар. 2)
+/−
2
2
3
3
3
3
∗
–
–
4
2
1
1
/
–
–
1
1
3
2
Соответствующая функция показана на Рис. 8, ее сложность
составляет 1 деление, 1 умножение и 3 сложения/вычитания (без
учета вычислений в некодированной версии программы).
Сложность выполнения защищенных операций в терминах количества базовых (реализуемых на процессоре) операций с плавающей точкой с учетом наличия некодированной программы приведена в Табл. I.
D. Численный пример
Приведем численный пример для нескольких последовательных защищенных операций, описанных в разделе III.C.
Рассмотрим вычисление следующего выражения (для чисел
двойной точности):
z = (x ∗ y + x)/y
для x = 10.532 и y = 5.258.
Предположим, что для кодирования выбраны параметры: A =
150, Bx = 12, By = 4.
Тогда предвычисленной подписью для z будет
Bz = (Bx ∗ By + Bx )/By = (12 ∗ 4 + 12)/4 = 15.
Кодированным значением x будет x = A∗x+Bx = 150∗10.532+
12 = 1591.8, кодированным значением y будет y = A ∗ y + By =
150∗5.258+4 = 792.70000000000005. Шаги вычислений приведены
в Табл. II.
-------------------------------------------------------
101
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Таблица II
Пример вычисления трех последовательных
кодированных операций
Выражение
Некодир. вычисл.
Кодир. вычисл.
x
10.532
1591.8
y
5.258
792.70000000000005
z =x∗y
55.377256000000003
8354.5884000000005
z =z+x
65.909255999999999
9946.3883999999998
z = z/y
12.535042982122480
1895.2564473183718
Декодирование
12.535042982122480
12.535042982122478
≈ 2−49
ϵ
Для обнаружения ошибок определим параметр ϵ как разность
значений выходов двух программ (значение имеет оценка порядка
этой разности). Для данного примера разность между двумя результатами оценивается как 2−49 , что сравнимо с порядком ошибки округления.
Теперь предположим, что произошла ошибка инвертирования
бита в мантиссе закодированной переменной x, и вместо исходного
значения 1591.8 в ней оказалось записано неверное значение, равное 1591.800244140625. Соответствующие вычисления приведены
в Табл. III. Теперь разность ϵ между корректным некодированным и ошибочным кодированным результатами оценивается как
2−19 , что намного превышает порядок ошибки округления.
E. Использование контрольных сумм
Как и для целых чисел, для чисел с плавающей точкой можно использовать подход, основанный на вычислении контрольных
сумм, аналогично описанному в разделе II.D. При данном подходе
требуется описать контрольные суммы для бит знака, мантиссы
и экспоненты числа с плавающей точкой, и отслеживать эти контрольные суммы при выполнении операций с плавающей точкой,
-------------------------------------------------------
102
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Таблица III
Пример вычисления трех последовательных
кодированных операций при наличии ошибки
Выражение
Некодир. вычисл.
Кодир. вычисл.
x
10.532
1591.800244140625
y
5.258
792.70000000000005
z =x∗y
55.377256000000003
8354.5896836914053
z =z+x
65.909255999999999
9946.3899278320296
z = z/y
12.535042982122480
1895.2567378912188
Декодирование
12.535042982122480
12.535044919274792
≈ 2−19
ϵ
принимая во внимание, что фактически операции над мантиссой
и экспонентой являются целочисленными (и учитывая процедуры
выравнивая, нормализации и округления).
Несомненным преимуществом данного подхода является то,
что контрольная сумма числа с плавающей точкой будет в точности соответствовать полученному результату, без влияния погрешностей вычислений. Однако, для реализации данного подхода, как и в случае с целыми числами, необходим низкоуровневый доступ к вычислительным элементам, что при реализаци на
программном уровне может привести к высоким вычислительным
затратам.
Построение таких защищенных схем на основе кодов Бергера
и остаточных кодов рассматривалось, например, в [19, 20, 31].
F. Защита тригонометрических операций
С помощью защищенных операций, описанных в разделе III.C,
можно строить и другие защищенные функции, например, тригонометрические. В данном разделе мы приведем примеры таких
защищенных вычислений для функции sin(), реализуемой с помощью ряда Тейлора или таблиц.
-------------------------------------------------------
103
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Num_c CodTaylor (Num_c X) {
Num_c Fx ;
Num_c X2 = mul (X,X ) ;
Num_c x3 = mul (X, X2 ) ;
Num_c x5 = mul ( x3 , X2 ) ;
Num_c x7 = mul ( x5 , X2 ) ;
Num_c x9 = mul ( x7 , X2 ) ;
Fx = add ( sub ( add ( sub (X, d i v ( x3 , codValue ( 6 ) ) ) ,
d i v ( x5 , codValue ( 1 2 0 ) ) ) ,
d i v ( x7 , codValue ( 5 0 4 0 ) ) ) ,
d i v ( x9 , codValue ( 3 6 2 8 8 0 ) ) ) ;
return Fx ;
};
Рис. 9. Защищенное вычисление синуса с использованием ряда Тейлора из 5
слагаемых
Как известно, функция sin() может быть аппроксимирована с
помощью ряда Тейлора как
sin(x) = x −
x2n+1
x3 x5
+
− . . . + (−1)n
+ ...,
3!
5!
(2n + 1)!
и для реализации этой функции, таким образом, достаточно иметь
набор защищенных операций, включающий в себя сложение, вычитание, умножение и деление.
Один из примеров такой защиты приведен на Рис. 9 для случая 5 слагаемых в серии, где функции add(), sub(), mul() и div()
соответствуют защищенным сложению, вычитанию, умножению
и делению, а функция codValue() обеспечивает кодирование константного аргумента.
Для повышения эффективности вычислений можно заметить,
что защищенное умножение кодированной переменной xc на константу c вместо вычислений в соответствии с (7) или (8) может
быть реализовано как
zc = xc ∗ c = A ∗ (xc ∗ c) + Bx ∗ c,
где подписью результата является Bx ∗c, и эта подпись может быть
предвычислена, так как c является константой. Такое защищенное
-------------------------------------------------------
104
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Таблица IV
Пример вычисления синуса с помощью ряда Тейлора
Taylor(x)
x
sin(x)
0
0.000000000000000 0.000000000000000
10
20
30
∆1
CodTaylor(x)
∆2
0
0.000000000000000
0
0.173648177666930
0
0.342020143325903
0
0.500000000020280
0
0.173648177666930 0.173648177666930 2
0.342020143325669 0.342020143325903 2
0.500000000000000 0.500000000020280 2
−53
−42
−36
−31
40
0.642787609686539 0.642787610166051 2
0.642787610166051
0
50
0.766044443118978 0.766044448691449 2−28 0.766044448691449
0
60
70
80
90
0.866025403784439 0.866025445099781 2
0.939692620785908 0.939692845395365 2
0.984807753012208 0.984808725925660 2
1.000000000000000 1.000003542584286 2
−25
−23
−20
−19
0.866025445099781
0
0.939692845395365
0
0.984808725925660
0
1.000003542584286
0
умножение требует только одного умножения и намного проще
защищенного умножения в общем случае. Деление на константу
может быть упрощено аналогичным образом.
В качестве примера рассмотрим вычисление синуса для аргументов от 0 до 90 градусов с шагом в 10 градусов. Соответствующие значения приведены в Табл. IV, где x — аргумент, sin(x)
— значение функции синуса, Taylor(x) — результат вычисления
ряда Тейлора для 5 слагаемых, ∆1 = sin(x) − Taylor(x) — разность между sin(x) и Taylor(x), CodTaylor(x) — результат вычисления ряда Тейлора с использованием защищенных операций, и
∆2 = Taylor(x) − CodTaylor(x) — разность между кодированным
и некодированным результатами вычислений. Можно видеть, что
∆2 во всех случаях оказалась равной 0.
В Табл. V приведены результаты вычислений при наличии
ошибки инвертирования бита в мантиссе аргумента. Столбец ∆2
показывает разность между правильными некодированными вычислениями и ошибочным результатом после декодирования. Как
видно из таблицы, порядок ∆2 намного превышает аналогичное
значение безошибочного сценария (которое в данном случае равно
-------------------------------------------------------
105
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Таблица V
Пример вычисления синуса с помощью ряда Тейлора
при наличии ошибки
Taylor(x)
x
sin(x)
∆1
0
0.000000000000000 0.000000000000000
0
−53
CodTaylor(x)
∆2
-0.000001627604167 2−20
10
0.173648177666930 0.173648177666930 2
0.173622531572817
2−16
20
0.342020143325669 0.342020143325903 2−42 0.342069085185987
2−15
30
0.500000000000000 0.500000000020280 2−36 0.499909786328164
2−14
40
0.642787609686539 0.642787610166051 2−31 0.642867402975506
2−14
50
0.766044443118978 0.766044448691449 2−28 0.765910517968234
2−13
60
0.866025403784439 0.866025445099781 2−25 0.866129593062128
2−14
−23
70
0.939692620785908 0.939692845395365 2
0.939764079619681
2−14
80
0.984807753012208 0.984808725925660 2−20 0.984772526258507
2−15
90
1.000000000000000 1.000003542584286 2−19 1.000003515732701
2−26
0 для всех рассматриваемых значений).
Можно заметить, что с ростом аргумента x относительно 0
точность аппроксимации снижается. Это связано со свойствами
ряда Тейлора — однако при использовании других способов аппроксимации тригонометрических (или других) функций защиту
вычислений с помощью набора «базовых» арифметических операций можно выполнять аналогично.
Другим способом вычисления тригонометрических функций
является использование таблиц для набора фиксированных значений. Для вычисления значений, не вошедших в таблицу, можно
использовать разные способы интерполяции, в простейшем случае
— линейную интерполяцию.
Соответствующая функция представлена на Рис. 10. Здесь
предполагается, что таблица tabl[] содержит значения функции
синуса для аргументов от 0 до 90 градусов с шагом 0.15, что дает
607 элементов таблицы, а M_PI — константа, равная π.
В качестве примера снова рассмотрим вычисление синуса для
аргументов от 0 до 90 градусов с шагом в 10 градусов. Соответ-------------------------------------------------------
106
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Num_c CodTables (Num_c a r g ) {
Num_c pro , h=codValue ( 0 . 1 5 ) , j=codValue ( 0 . 0 ) ;
i n t i = a r g . g e t V a l ( ) / ( h . g e t V a l ( ) ∗M_PI/ 1 8 0 . ) ;
Num_c conPi = codValue (M_PI ) ;
Num_c con180 = codValue ( 1 8 0 . ) ;
Num_c a i = d i v ( mul ( mul ( codValue ( i ) , h ) , conPi ) , con180 ) ;
Num_c a i 2 = d i v ( mul ( mul ( codValue ( i +1) ,h ) , conPi ) ,
con180 ) ;
pro = add ( t a b l [ i ] , d i v ( mul ( sub ( t a b l [ i +1] , t a b l [ i ] ) ,
sub ( arg , a i ) ) , sub ( a i 2 , a i ) ) ) ;
return pro ;
};
Рис. 10. Защищенное вычисление синуса с использованием таблицы
ствующие значения приведены в Табл. VI, где x — аргумент, sin(x)
— значение функции синуса, table(x) — результат вычисления синуса с использованием таблицы, ∆1 = sin(x) − table(x) — разность
между sin(x) и table(x), CodTables(x) — результат защищенного
вычисления синуса, и ∆2 = table(x) − CodTables(x) — разность
между кодированным и некодированным результатами вычисления с использованием таблиц. Как можно видеть, ∆2 равна 0 или
сравнима с порядком вычислительной погрешности (для чисел
с плавающей точкой двойной точности рассматриваемых порядков), т.е. менее 2−50 .
Табл. VII содержит результаты вычислений с ошибкой инвертирования бита в мантиссе аргумента. Столбец ∆2 показывает
разность между правильными некодированными вычислениями
и ошибочным результатом после декодирования. Как видно из
таблицы, порядок ∆2 намного превышает аналогичное значение
безошибочного сценария (которое равно 0 или не превышает −50).
Таким образом, ошибка может быть обнаружена.
IV. Заключение
В данной статье рассмотрены некоторые подходы к обеспечению защиты целочисленных операций и операций с плавающей
точкой. Основное внимание уделено способу кодирования с моди-------------------------------------------------------
107
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Таблица VI
Пример вычисления синуса с помощью таблиц
table(x)
x
sin(x)
0
0.000000000000000 0.000000000000000
10
20
∆1
CodTables(x)
∆2
0
0.000000000000000
0
0.173648045644465
0
0.342019882654320
0
0.499999999999998
0
0.173648177666930 0.173648045644465 2
0.342020143325669 0.342019882654320 2
−23
−22
−50
30
0.500000000000000 0.499999999999998 2
40
0.642787609686539 0.642787120345569 2−21 0.642787120345569
50
60
70
0.766044443118978 0.766043859600489 2
0.866025403784439 0.866025403784435 2
0.939692620785908 0.939691905244955 2
80
0.984807753012208 0.984807002999892 2
90
1.000000000000000 1.000000000000000
−21
−49
−21
−21
0
0
0.766043859600488 2
0.866025403784435
−53
0
0.939691905244955
0
0.984807002999893 2
−52
0.999999999999999 2−50
Таблица VII
Пример вычисления синуса с помощью таблиц при
наличии ошибки
x
sin(x)
table(x)
∆1
CodTables(x)
∆2
-0.000001627602308 2−20
0
0.000000000000000 0.000000000000000 0
10
0.173648177666930 0.173648177666930 2−53 0.173622397645863 2−16
20
0.342020143325669 0.342020143325903 2−42 0.341970948121581 2−15
30
0.500000000000000 0.500000000020280 2−36 0.500090142699625 2−14
40
0.642787609686539 0.642787610166051 2−31 0.642866945826855 2−14
50
0.766044443118978 0.766044448691449 2−28 0.766177703999466 2−13
60
0.866025403784439 0.866025445099781 2−25 0.865921001065102 2−14
70
0.939692620785908 0.939692845395365 2−23 0.939620565655118 2−14
80
0.984807753012208 0.984808725925660 2−20 0.984843090168275 2−15
90
1.000000000000000 1.000003542584286 2−19 0.999999727292463 2−26
-------------------------------------------------------
108
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
фицированным дублированием вычислений с применением арифметического кода и аддитивной предвычислимой «подписи». Приведены примеры использования защищенных операций для вычисления тригонометрических функций. Особенностью рассмотренного метода является расширение множества обнаруживаемых
ошибок по сравнению с классической постановкой задачи арифметического кодирования.
Рассмотренные методы еще требуют большого количества исследований для ответа на многие вопросы — о выборе параметров
кодирования и сравнивания результатов, оценке погрешностей и
их влиянии на достоверность обнаружения ошибок, построении
моделей ошибок и расчета вероятностей их обнаружения. Кроме
того, могут быть рассмотрены и альтернативные подходы — например, использование контрольных сумм. В целом на сегодняшний день построение отказоустойчивых вычислительных систем
остается весьма актуальной и все еще далекой от своего решения
задачей.
Литература
[1] Ю.Г. Дадаев, Теория арифметических кодов, М.: Радио и связь, 1981.
[2] И.М. Бояринов, Помехоустойчивое кодирование числовой информации,
М.: Наука, 1983.
[3] IEC 60559:1989, Binary Floating-Point Arithmetic for Microprocessor
Systems.
[4] IEC 61508, Functional safety of electrical, electronic, programmable
electronic safety-related systems.
[5] IEEE 754-1985, IEEE Standard for Binary Floating-Point Arithmetic.
[6] IEEE 754-2008, IEEE Standard for Binary Floating-Point Arithmetic.
[7] У. Питерсон, Э. Уэлдон, Коды, исправляющие ошибки, М.: Мир, 1976.
[8] Г.А. Кабатянский, Обобщенные остаточные коды, М.: Вопросы кибернетики, 28:91–109, 1976.
[9] S. Bagchi, B. Srinivasan, K. Whisnant, Z. Kalbarczyk, R. Iyer, Hierarchical
Error Detection in a Software Implemented Fault Tolerance (SIFT)
Environment, IEEE Transactions on Knowledge and Data Engineering,
2000.
[10] J. Berger, A note on an error detection code for asymmetric channels,
Inform. Contr., 4, Mar. 1961.
-------------------------------------------------------
109
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
[11] E. Borin, C. Wang, Y. Wu, G. Araujo, Software-based transparent and
comprehensive control-flow error detection, CGO’06: Proceedings of the
International Symposium on Code Generation and Optimization, 2006.
[12] D. Dolle, Vital software: Formal method and coded processor, Proceedings
of ERTS’2006, 2006.
[13] C. Fetzer, U. Schiffel, M. Süßkraut, AN-Encoding Compiler: Building SafetyCritical Systems with Commodity Hardware, SAFECOMP, 2009.
[14] P. Forin, Vital coded microprocessor principles and application for various
transit systems, IFA-GCC, pages 79–84, Sep 1989.
[15] K. Hwang, Computer Arithmetic: Principles, Architecture and Design, John
Wiley and Sons, New York, 1979.
[16] S. Kolupaev, Self-testing residue trees, TR-49, Digital Systems Lab., August
1978.
[17] X. Li, J. Gaudiot, A compiler-assisted on-chip assigned-signature control
flow checking, Proc. Asia-Pacific Comp. Systems Arch. Conf., 2004.
[18] R. Lim, Concurrent error-detection codes for arithmetic processor, NASA
Technical Paper 1528, August 1979.
[19] J. Lo, Reliable Floating-Point Arithmetic Algorithms for Berger Encoded
Operands, IEEE Transactions on Computers, 43(4), Apr. 1994.
[20] J. Lo, Reliable Floating-Point Arithmetic Algorithms for Error-Coded
Operands, IEEE Transactions on Computers, 43(4), Apr. 1994.
[21] J. Lo, S. Thanawastien, T. Rao, Concurrent error detection in arithmetic
and logical operations using Berger codes, Proceedings of 9th Symposium on
computer arithmetic, Sept. 1989.
[22] M. Lu, Arithmetic and logic in computer systems, Wiley, 2004.
[23] A. Mahmood, E. McCluskey, Watchdog processor: error coverage and
overhead, Proc. 15th Ann. Int’l Symp. Fault-Tolerant Computing
(FTCS’15), June 1985.
[24] T. Michel, R. Leveugl, G. Saucier, A new approach to control flow checking
without program modification, 21st International Symposium on FaultTolerant Computing, 1991.
[25] M. Namjoo, CERBERUS-16: An Architecture for a General Purpose
Watchdog Processor, Proc. Symposium on Fault-Tolerant Computing, 1983.
[26] N. Oh, S. Mitra, E. McCluskey, ED4 I: Error Detection by Diverse Data and
Duplicated Instructions, IEEE Transactions on computers, 51(2), Feb. 2002.
[27] N. Oh, P. Shirvani, E. McCluskey, Control flow checking by software
signatures, IEEE Transactions on Reliability, 51(2), Mar. 2002.
[28] P. Ozello, The coded microprocessor certification, SAFECOMP’92, IFAC
Symposium, Zurich, Switzerland, 28-30 October 1992.
[29] G. Reis, J. Chang, N. Vachharajani, R. Rangan, D. August, SWIFT:
Software Implemented Fault Tolerance, In Proceedings of the 3rd
International Symposium on Code Generation and Optimization, 2005.
[30] N. Saxena, E. McCluskey, Control-flow checking using watchdog assists
-------------------------------------------------------
110
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
[31]
[32]
[33]
[34]
[35]
and extended-precision checksums, IEEE Transactions on Computers, 39(4),
Apr. 1990.
R. Sedmak, H. Liebergot, Fault tolerance of a general purpose computer
implemented by very large scale integration, IEEE Transactions on
Computers, 25(6), June 1980.
T. Касами, Н. Токура, Ё. Ивадари, Я. Инагаки, Теория кодирования, М.:
Мир, 1978.
R. Vemu, J. Abraham, CEDA: Control-flow Error Detection through
Assertions, Proc. of 12-th IEEE International On-Line Testing Symposium
(IOLTS’06), 2006.
U. Wappler, C. Fetzer, Hardware failure virtualization via software encoded
processing, 5th IEEE International Conference on Industrial Informatics,
2007.
U. Wappler, M. Müller, Software protection mechanisms for dependable
systems, Design, Automation and Test in Europe Conference and Exhibition,
2008.
-------------------------------------------------------
111
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Апостериорно-вероятностное
декодирование блоковых кодов
с использованием редуцированных решеток
А.С. Политов
А.Н. Трофимов
бакалавр
к.т.н. доцент
Санкт-Петербургский государственный
университет аэрокосмического приборостроения
I. Введение
В работе [1] предложены конструкция и алгоритм декодирования кода-произведения, построенного на основе двух блоковых кодов. Представленный алгоритм декодирования заключается в последовательном выполнении однотипных шагов, целью которых
является получение апостериорных вероятностей (АПВ) символов
кодового слова. На каждом следующем шаге используется результат предыдущего шага. При выполнении такой многошаговой итеративной процедуры достигается надежность передачи, близкая к
той, которая реализуется при декодировании кода-произведения
по максимуму правдоподобия (МП). Сложность декодирования
при этом оказывается значительно меньшей, чем при декодировании по МП. Важной составной частью алгоритма итеративного декодирования является процедура вычисления АПВ кодовых
символов на каждой итерации. В настоящей работе рассматривается задача вычисления этих величин.
Традиционный подход для вычисления АПВ состоит в выполнении процедуры, известной как BCJR алгоритм [2]. Этот и другие подходы рассматриваются, в частности, в работе [1].
-------------------------------------------------------
112
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
В работе [3] рассмотрен простой оптимальный однопросмотровый алгоритм (в оригинале one-sweep) декодирования линейных блоковых кодов с «мягким входом/выходом». Для многих кодов его вычислительная сложность оказывается меньше, чем для
BCJR алгоритма. Алгоритм BCJR требует проходов по решетке в
прямом и обратном направлении с хранением 2KS вещественных
чисел, где K – число информационных бит, и S – число состояний
на одном уровне решетки. Для линейного (N, K) блокового кода
S ≤ min[2K , 2N −K ]. В свою очередь, однопросмотровый алгоритм
требует выполнения одного прохода по решетке и хранения не более 2N −K накопленных метрик.
В работе [4] предложен способ, позволяющий сократить требуемый объем памяти для однопросмотрового алгоритма без потери
оптимальности за счет построения новых, более простых решеток.
При этом происходит увеличение количества требуемых арифметических операций, но, как будет показано, это в некоторых случаях является оправданным.
Настоящая работа организована следующим образом. В разделе II дано описание решетки блокового кода, в разделе III кратко
изложен однопросмотровый алгоритм декодирования, на основе
которого в разделе IV строится подход к оптимальному АПВ декодированию с использованием редуцированных решеток. Раздел
V содержит некоторые примеры и их обсуждение.
II. Решетка двоичного линейного блокового кода
Рассмотрим описание решетки двоичного линейного блокового
кода, как представлено в работе [5]. Пусть C – двоичный линейный блоковый (N, K) код с порождающей матрицей G и проверочной матрицей H = [h1 , h2 , . . . , hN ], где hn – столбец матрицы
H, n = 1, 2, . . ., N . Решетка кода T = (V, E, A) представляет собой
совокупность множества вершин V , множества ребер E и двоичного алфавита A = {0, 1}. Каждое ребро решетки e = (v, v ′ , a),
где v, v ′ ∈ V , a ∈ {0, 1}, и e соединяет вершину v с вершиной v ′
с меткой (кодовым символом) a. Множество вершин V и множе-------------------------------------------------------
113
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
∪
ство ребер E можно разбить таким образом, что V = N
n=0 Vn ,
∪N
Vi ∩ Vj = ∅, i ̸= j, E = n=0 En , Ei ∩ Ej = ∅, i ̸= j, и каждое ребро, принадлежащее En , соединяет вершину из Vn−1 с вершиной
из Vn , и что существует по крайней мере один путь из V0 в VN ,
проходящий через это ребро.
Существует несколько способов построения такой решетки.
Наиболее известна BCJR решетка [2]. Она строится путем сопоставления вершин из множеств Vn частичным синдромам,
Vn = {c1 h1 + c2 h2 + . . . + cn hn : c = (c1 , c2 , . . . , cN ) ∈ C}
для 1 ≤ n ≤ N − 1, и V0 = Vn = {0}. Ребро e = (v, v ′ , cn ) ∈ En из
вершины v ∈ Vn−1 в вершину v ′ ∈ Vn существует, если и только
если существует кодовое слово c = (c1 , c2 , . . . , cN ) ∈ C такое, что
c1 h1 + c2 h2 + . . . + cn−1 hn−1 = v,
c1 h1 + c2 h2 + . . . + cn hn = v ′ .
Пусть r = {r1 , . . . , rN } – выход канала без памяти, и p(·|·) –
условные переходные вероятности (или условная функция плотности вероятности). При декодировании с «мягким входом/выходом» (или АПВ декодировании) каждому ребру решетки приписывается значение p(rn |a) Pr[cn = a], где Pr[cn = a] – априорное
распределение кодовых символов. Можно определить метрику узла mn (v ′ ), n = 1, 2, . . ., N как
∑
mn (v ′ ) =
mn−1 (v)p(rn |a) Pr[cn = a],
(v,v ′ ,a)∈En
(1)
m0 (0) = 1.
В частности, метрика конечной вершины равна
mN (0) =
∑
N
∏
p(rn |a) Pr[cn = a].
(c1 ,...,cN )∈C n=1
-------------------------------------------------------
114
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
III. Однопросмотровый алгоритм декодирования
Рассмотрим систематический двоичный блоковый линейный
код C. Пусть {n1 , n2 , . . . , nK } – множество индексов информационных символов в кодовом слове. В работе [3] показано, что решетка кода для однопросмотрового алгоритма строится следующим
образом:
Vn = {c1 h1 + c2 h2 + . . . + cn hn :
c = (c1 , c2 , . . . , cN ) ∈
∪
(C + en )},
n∈{0,n1 ,n2 ,...,nK }
где en – вектор длины N с единицей на позиции n и нулем на
остальных местах, e0 – вектор с нулем на всех позициях. Следует
отметить, что в этом случае на последнем уровне решетки имеется несколько вершин, т.е. |VN | > 1. Пусть m(h) – метрика для
вершины, соответствующей значению h на последней позиции N ,
вычисляемая по формуле (1). Тогда, как показано в работе [3],
отношение правдоподобия для кодового символа cn может быть
вычислено как
Pr[cn = 0|r]
=
Pr[cn = 1|r]
p(rn |0) Pr[cn =0]
m(hn )
p(rn |1) Pr[cn =1] − m(0)
m(hn )
p(rn |1) Pr[cn =1]
m(0) − p(rn |0) Pr[cn =0]
,
n ∈ {n1 , n2 , . . . , nK }. (2)
Из равенства (2) следует, что основной задачей является вычисление величин m(hn ) или им пропорциональных величин. Поэтому вычислительная сложность алгоритма определяется сложностью вычисления этих величин. Она может быть выражена как
двухкомпонентный вектор N = (Nm , Nop ), где Nm – число элементов памяти, требуемой для хранения накопленных метрик,
Nm = maxn |Vn |, а Nop = N0 + N1 + N+ – число арифметических операций, N0 – число умножений на p(rn |0) Pr[cn = 0], N1
– число умножений на p(rn |1) Pr[cn = 1], и N+ – число сложений
для вычисления метрик m(hn ).
Если заменить умножение на величину p(rn |0) Pr[cn = 0] умножением на единицу, а умножение на p(rn |1) Pr[cn = 1] умножением на значение отношения p(rn |1) Pr[cn = 1]/p(rn |0) Pr[cn =
-------------------------------------------------------
115
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
0], то общее число арифметических операций будет составлять
Nop = N1 + N+ . В этом случае действительное значение метрик
m(0), m(h1 ), . . . , m(hN ) будет другим, но отношение m(hn )/m(0),
используемое в выражении (2), останется неизменным.
Схема вычисления метрик m(0), m(h1 ), . . . , m(hN ) показана на
Рис. 1. В начале работы метрики получают начальные значения:
m0 (0) = 1, а все остальные значения полагаются равными нулю.
Работа декодера состоит в прохождении решетки и обновлении накопленных метрик по формуле (1). Рассмотрим один шаг работы
алгоритма. На n-м шаге (1 ≤ n ≤ N ) из канала на вход декодера
поступает величина p(rn |1) Pr[cn = 1]/p(rn |0) Pr[cn = 0]. Заметим,
что, например, в случае использования противоположных сигналов в гауссовском канале zn = p(rn |1) Pr[cn = 1]/p(rn |0) Pr[cn =
0] = exp(αrn ) Pr[cn = 1/ Pr[cn = 0], где α – константа, зависящая от отношения сигнал/шум. Метрики mn−1 (0), mn−1 (h1 ),
. . ., mn−1 (hN ) обновляются по формуле (1) на метрики mn (0),
mn (h1 ), . . ., mn (hN ). На практике вместо величины zn используется значение log zn , которое вычисляется просто как log zn =
αrn + log(Pr[cn = 1]/ Pr[cn = 0]). Вычисление метрик в этом случае выполняется с учетом этого логарифмического представления. Для хранения текущих метрик используется |Vn | ячеек памяти. В общем случае |Vn | ≤ 2N −K . Затем такая процедура повторяется. Результатом работы алгоритма будут метрики m(0), m(hn1 ),
. . ., m(hnK ), которые используются в формуле (2) для вычисления
отношений правдоподобий.
IV. Уменьшение требуемой памяти
Обновление метрик по формуле (1) происходит многократно при прохождении решетки, поэтому для реализации алгоритма требуется быстродействующая память. В работе [4] предложен способ сокращения требуемой памяти путем использования
нескольких решеток с меньшим числом состояний. Этот подход
состоит в последовательном применении однопросмотрового алгоритма для вновь построенных решеток.
-------------------------------------------------------
116
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Рис. 1. Схема вычисления метрик
Рис. 2. Схема вычисления метрик с уменьшенным объемом памяти
-------------------------------------------------------
117
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Рассмотрим L линейных блоковых кодов с порождающими
матрицами
[
]
G
Gl =
,
Bl
где G – порождающая матрица исходного кода C, Bl – Kl × N
матрица, выбираемая таким образом, что rank(Gl ) = K + Kl , l =
1, . . . , L, Gl – порождающая матрица кода Cl . Пусть Ul – линейное
пространство, натянутое на строки матрицы Bl , тогда Cl = C ∪Ul .
Пусть Hl = [hl1 , hl2 , . . . , hlN ] – проверочная (N − K − Kl ) × N
матрица кода Cl . Тогда метрику ml (hln ) для этого кода можно
выразить через метрики исходного кода как
∑
ml (hln ) =
m((u + en )HT ).
(3)
u∈Ul
Теперь можно рассмотреть величины m(·) как неизвестные,
а ml (·) – как известные и построить требуемое количество уравнений (3). Затем можно решить полученную систему линейных
уравнений. Таким образом, можно найти выражения для вычисления метрик узлов исходного кода через метрики узлов новых
кодов. Решетка нового кода требует в 2Kl раз меньше памяти для
хранения метрик. Этим достигается уменьшение объема требуемой «быстрой» памяти.
Схема вычисления метрик с уменьшенным объемом «быстрой» памяти показана на Рис. 2. Она состоит в последовательном
применении однопросмотрового алгоритма для решеток новых кодов. После каждого прохождения решетки вычисленные метрики
новых кодов сохраняются в «медленную» память с N ячейками.
Затем, когда все новые метрики будут сосчитаны, они поступают на вход комбинационной схемы, выходом которой являются
искомые метрики исходного кода.
Следует отметить, что значения выходов канала хранятся вне
рассматриваемой схемы, так как однопросмотровый алгоритм используется в качестве алгоритма декодирования с «мягким» выходом в итеративном декодировании. Поэтому значения выходов
-------------------------------------------------------
118
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Рис. 3. Решетка (7,4) кода Хэмминга
канала должны быть сохранены для обеспечения такого декодирования.
Пример 1: Рассмотрим систематический (7,4) код Хэмминга с
порождающей и проверочной матрицами




1 0 0 0 0 1 1
0 1 1 1 1 0 0
 0 1 0 0 1 0 1 

 1 0 1 1 0 1 0 .
G=
 0 0 1 0 1 1 0 H =
1 1 0 1 0 0 1
0 0 0 1 1 1 1
Решетка кода для декодирования информационных символов
однопросмотровым алгоритмом показана на Рис. 3. Вычислительная сложность по памяти и операциям определяется парой (Nm ,
Nop ) = (8, 56).
-------------------------------------------------------
119
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Для уменьшения требуемой памяти в два раза рассмотрим L =
3 новых кода с порождающими матрицами
( )
( )
( )
G
G
G
G1 =
, G2 =
, G3 =
,
b1
b2
b3
где
b1 = [1 0 0 0 1 0 1], b2 = [1 0 0 1 0 0 1], b3 = [0 0 0 1 1 0 0].
Можно убедиться, что
(
)
(
)
1100110
1011010
H1 =
, H2 =
,
1101001
1010101
(
H3 =
)
0111100
.
0110011
По равенству (3) можно составить следующую систему уравнений:
∑
m1 (0) =
m(vHT ) = m(0) + m(6),
v∈V1
m1 (1) =
∑
m((v + e4 )HT ) = m(1) + m(7),
v∈V1
m1 (2) =
∑
m((v + e5 )HT ) = m(2) + m(4),
v∈V1
m1 (3) =
∑
m((v + e1 )HT ) = m(3) + m(5),
v∈V1
m2 (0) =
∑
m(vHT ) = m(0) + m(5),
v∈V2
m2 (1) =
∑
m((v + e5 )HT ) = m(1) + m(4),
v∈V2
m3 (0) =
∑
m(vHT ) = m(0) + m(3),
v∈V3
m3 (1) =
∑
m((v + e6 )HT ) = m(1) + m(2).
v∈V3
-------------------------------------------------------
120
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Рис. 4. Решетки новых кодов
Это не все уравнения, которые можно составить, но они образуют линейно независимую систему уравнений. Решив ее, получаем
m(0) = (−m1 (3) + m2 (0) + m3 (0))/2,
m(1) = (−m1 (2) + m2 (1) + m3 (1))/2,
m(2) = (m1 (2) − m2 (1) + m3 (1))/2,
m(3) = (m1 (3) + m2 (0) + m3 (0))/2,
m(4) = (m1 (2) + m2 (2) − m3 (1))/2,
m(5) = (m1 (3) + m2 (0) − m3 (0))/2,
m(6) = m1 (0) + (m1 (3) + m2 (0) − m3 (0))/2,
m(7) = m1 (1) + (m1 (2) − m2 (1) − m3 (1))/2.
Для нахождения «мягких» выходов для информационных символов достаточно вычислить только метрики m(0), m(3), m(5),
m(6), m(7). Решетки новых кодов изображены на Рис. 4.
-------------------------------------------------------
121
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Суммарная вычислительная сложность для трех решеток по
памяти и операциям (Nm , Nop ) = (4, 80). Уменьшение памяти составило два раза при увеличении количества операций в 80/56 =
1.4286 раза по сравнению с первоначальным алгоритмом.
Возьмем в качестве критерия степени улучшения отношение
′ N′
P = Nop
mem /Nop Nmem , где Nmem , Nop – первоначальное количе′
′ – после преобразований.
ство ячеек памяти и операций, Nmem
, Nop
При P < 1 можно говорить об уменьшении сложности и оправданности преобразований. Для Примера 1 значение P = 0.7143,
что соответствует выигрышу в 29%.
V. Некоторые результаты
Предложенный подход был применен к построению алгоритмов декодирования некоторых известных кодов. Для кодов Хэмминга (31,26) и (63,57) и кодов Рида-Маллера (32,26) и (64,57)
были найдены примеры АПВ декодирования с использованием
редуцированных решеток и проанализированы их некоторые характеристики.
Алгоритм поиска новых кодов показан на Рис. 5. В нем поиск матрицы Bl может быть осуществлен случайным подбором.
При этом, вычисляя синдром xl = Bl HT и сравнивая xl с ранее
вычисленными, можно обеспечить выполнение требуемых условий для новых кодов, рассматривая только те Bl , для которых xl
уникален. Следует отметить, что синдром xl , состоящий из всех
нулей, соответствует матрице Bl , строки которой являются кодовыми словами кода C. Такую матрицу Bl также не следует рассматривать.
На Рис. 6 показана зависимость отношения количества операций после преобразования к первоначальному количеству операций от значения Kl для нескольких кодов. Из представленного графика можно сделать вывод, что количество операций при
увеличении значения Kl растет до некоторого значения, а затем
наблюдается прекращение роста и уменьшение количества операций. Это можно объяснить следующим обстоятельством. Исход-------------------------------------------------------
122
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Входные данные: G, H, Kl
Результат: проверочные матрицы Hl для кодов Cl , l = 1, . . ., L матрицы A линейной системы (3) и выражение исходных метрик через новые
L=0; A=[]; r=N+1;
while r > 0
Найти Bl ;
if (x = Bl HT не уникален) continue; end
Вычислить Al по найденной Bl ;
A=[A;Al ];
Избавиться от линейных зависимостей в A;
Сохранить требуемые метрики в ml ;
r=N+1-rank(A);
L=L+1;
end
Выдать m = A−1 ml ;
Рис. 5. Алгоритм поиска новых кодов
′
Рис. 6. Зависимость отношения Nop
/Nop от значения Kl для различных кодов
-------------------------------------------------------
123
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Рис. 7. Зависимость величины P от значения Kl для различных кодов
ная решетка кода заменяется несколькими другими с меньшим
числом состояний. При небольших значениях Kl размеры новых
решеток недостаточно малы, чтобы проигрыш в операциях был
небольшим. Затем с увеличением Kl новые решетки имеют достаточно малое число состояний, чтобы суммарная вычислительная
сложность не росла. Исходная решетка как бы разбивается на
множество мелких решеток, тем самым не увеличивается количество требуемых операций.
На Рис. 7 представлена зависимость величины P от значения
Kl для тех же самых кодов. Видно, что значение P всегда меньше
единицы, при этом оно стремится к нулю с ростом Kl . Поэтому
выигрыш в соотношении операции/память тем выше, чем больше
значение Kl .
Алгоритмы АПВ декодирования, рассмотренные в настоящей
работе, позволяют вычислять апостериорные вероятности передаваемых символов кодового слова. Для однопросмотрового алгоритма показан способ, позволяющий сократить требуемые емкостные затраты. Анализ применения такого подхода для некоторых
известных кодов показал его оправданность. Выигрыш в уменьшении объема памяти в несколько раз превосходит проигрыш в
-------------------------------------------------------
124
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
количестве требуемых операций для реализации такого подхода.
Литература
[1] J. Hagenauer, E. Offer, and L. Papke, ”Iterative decoding of binary block
and convolutional codes”, IEEE Trans. Inform. Theory, vol. 42, pp. 429 –
445, Mar. 1996.
[2] L. R. Bahl, J. Cooke, F. Jelinek, and J. Raviv, ”Optimal decoding of linear
codes for minimizing symbol error rate”, IEEE Trans. Inform. Theory, vol.
IT-20, pp. 284 – 287, Mar. 1974.
[3] T. Johansson, and K. Zigangirov, ”A Simple One-Sweep Algorithm for
Optimal APP Symbol Decoding of Linear Block Codes”, IEEE Trans.
Inform. Theory, vol. 44, no. 7, pp. 3124 – 3129, Nov 1998.
[4] T. Johansson, and A. Trofimov, ”One-Sweep APP decoding algorithm for
binary block codes with reduced trellis memory”, The Workshop ”Coding
Theory Days in St.Petersburg”: Proccedings / St.Petersburg State University
on Aerospace Instrumentation, 2008, pp. 88–93.
[5] A. Vardy, ”Trellis Structure of codes”, in Handbook on Coding Theory. Edited
by V.S. Pless and W.C. Huffman. Elsevier Science B.V., vol.2, pp. 1989–
2118.
-------------------------------------------------------
125
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Сравнительный анализ методов линейной
частотной эквализации
Е.В. Пустовалов
аспирант
Санкт-Петербургский государственный
университет аэрокосмического приборостроения
I. Введение
Эквалайзер является ключевой частью приемника в современной цифровой системе связи. Задача эквалайзера – борьба
с нежелательной межсимвольной интерференцией, возникающей
при
прохождении сигнала по каналу связи. За последние годы были
разработаны различные алгоритмы работы эквалайзера: эквалайзеры во временной и в частотной области, линейные эквалайзеры
и эквалайзеры с обратной связью [1]. В данной статье рассматриваются алгоритмы линейной частотной эквализации. В основе
данных алгоритмов лежит идея использования быстрого преобразования Фурье для выполнения свертки последовательностей [2].
В статье рассматриваются два подхода к построению систем связи
на основе частотного эквалайзера: системы с защитным интервалом между блоками данных (системы с циклическим префиксом
и системы с нулевым постфиксом) и системы без защитных интервалов между блоками. Проводится сравнение указанных систем по сложности обработки и скорости передачи. Кроме того,
рассматриваются и анализируются критерии построения коэффициентов эквалайзера, такие, как критерий пикового искажения и
критерий минимума среднеквадратичной ошибки, применимые к
обоим типам линейной частотной эквализации.
-------------------------------------------------------
126
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
m
x
кодер
канал
m̂
декодер
z
эквалайзер
y
Рис. 1. Модель системы в общем виде
II. Постановка задачи эквализации
Будем рассматривать следующую модель системы (Рис. 1).
Биты исходного сообщения m поступают на вход кодера, который
вносит избыточность и сопоставляет полученным битам символы
из конечного алфавита S = {sk }, где sk является действительным или комплексным числом. Таким образом, на выходе кодера образуется последовательность x (далее «исходный сигнал»),
элементы которой принадлежат алфавиту S. Для удобства изложения будем считать, что длина исходного сигнала ограничена
и равна Ñ . В реальных системах связи сигнал далее проходит
через цифро-аналоговое преобразование, подвергается высокочастотной модуляции, передается по радиоканалу, а на приемной
стороне подвергается обратному преобразованию в дискретный
вид. Эти операции можно свести к прохождению исходного сигнала x через линейный дискретный фильтр с характеристикой h
(далее отклик «канала»), на выходе которого к сигналу добавляется аддитивный белый гауссовский шум. Таким образом, получаем следующую модель канала [1]:
yk =
L
∑
hi xk−i + nk , ∀ 0 ≤ k < Ñ + L,
(1)
i=0
где yk – элементы последовательности y на выходе канала; L –
длина характеристики фильтра; xj = 0, при j < 0 ∨ j ≥ Ñ ; nk
– случайные величины, распределенные по гауссовскому закону с
нулевым математическим ожиданием и дисперсией σ 2 (АБГШ).
-------------------------------------------------------
127
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Используя операцию линейной дискретной свертки, обозначенную как (∗), выражение (1) можно упрощенно записать:
y = x ∗ h + n.
(2)
Канал (1) вносит межсимвольную интерференцию (МСИ), т.к.
каждый переданный символ исходного сигнала x искажает L последующих символов.
На приемной стороне сигнал y поступает на вход эквалайзера, задача которого состоит в том, чтобы по возможности компенсировать МСИ, вносимую каналом связи. Выход эквалайзера
поступает на вход декодера, который за счет внесенной кодером
избыточности пытается исправить ошибки, возникшие после прохождения исходного сигнала через канал и эквалайзер. Далее мы
опустим алгоритмы работы кодера и декодера и сконцентрируем
свое внимание на построении эквалайзеров.
Прежде чем приступить к рассмотрению алгоритмов работы
эквалайзера, следуя работе [2], дадим определение циклической
свертки. Дополним последовательности x и h нулями до длины
Ñ + L. Получим вектора (далее под словом «вектор» будем подразумевать дискретную последовательность конечной длины) x̃ и
h̃ длины Ñ + L такие, что
{
xi , 0 ≤ i < Ñ ,
x
ei =
(3)
0, Ñ ≤ i < Ñ + L,
{
hi , 0 ≤ i < L,
e
hi =
(4)
0, L ≤ i < Ñ + L.
Определение 1: Циклической сверткой последовательностей x̃
и h̃ длины Ñ + L называется последовательность v длины Ñ + L,
элементы которой равны
vk =
Ñ ∑
+L−1
h̃i x̃(k−i) mod Ñ +L , k = 0, . . . , Ñ + L − 1.
(5)
i=0
-------------------------------------------------------
128
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Далее будем обозначать циклическую свертку v = x̃~ h̃. Непосредственно из определения циклической свертки следует справедливость следующего уравнения:
y = x ∗ h + n = x̃ ~ h̃ + n.
(6)
Теперь, используя понятие циклической свертки, можно ввести постановку задачи эквализации.
Утверждение 1: Для того, чтобы устранить МСИ, вносимую
каналом, последовательность y необходимо циклически свернуть
с последовательностью w длины Ñ + L:
z = y ~ w,
(7)
такой, что
h̃ ~ w = δ,
где δ – вектор длины Ñ + L, элементы которого равны
{
1, k = 0,
δk ,
0, k ̸= 0.
Доказательство: Воспользовавшись формулой (6), а также
свойствами ассоциативности и дистрибутивности операции циклической свертки, получим
z̃ = y~w = (x̃~h̃+n)~w = x̃~h̃~w+n~w = x̃~δ+n~w = x̃+ñ,
(8)
где ñ = n ~ w – АБГШ, прошедший через фильтр эквалайзера.
Каждый символ последовательности z зависит не более, чем
от одного символа исходной последовательности. Следовательно,
последовательность z не содержит МСИ, что и требовалось доказать.
Эквалайзер, выполняющий уравнение (7), можно реализовать
в виде линейного фильтра длины Ñ + L, через который пропускается последовательность y (Рис. 2), причем изначально в ячейки
-------------------------------------------------------
129
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
yn
T
T
w0
w1
+
T
wN-1
+
. . .
zn
Рис. 2. Линейный эквалайзер во временной области
фильтра должна быть записана сама последовательность y. Для
удобства сложность эквалайзера будем оценивать в расчете на
один символ исходной последовательности x. Полагая Ñ >> L,
получим, что сложность эквалайзера на Рис. 2 равна O(Ñ ). Реализация эквалайзера путем последовательной обработки каждого
отсчета входной последовательности y, показанная на Рис. 2, называется реализацией эквалайзера во временной области. Стоит
отметить, что на практике для обеспечения приемлемой скорости
передачи данных длина исходной последовательности Ñ может
составлять десятки тысяч отсчетов. Поэтому фильтр, длина которого равна длине всей последовательности y (Ñ + L), является
практически нереализуемым. Для построения практически реализуемого эквалайзера длину фильтра M выбирают много меньше
Ñ , исходя из максимально возможной длины отклика канала и
допустимого уровня МСИ на выходе эквалайзера.
Рассмотрим альтернативный подход к построению эквалайзера. Введем обозначения: X = F(x̃), Y = F(y), H = F(h̃), где F(·)
– дискретное преобразование Фурье. Согласно свойству дискретного преобразования Фурье [2]
F(x̃ ~ h̃) = F(x̃) · F (h̃),
(9)
где операция (·) обозначает поэлементное перемножение векторов.
Тогда, выполнив преобразование Фурье от левой и правой частей выражения (6), получим
Y = X · H + F(n).
-------------------------------------------------------
130
(10)
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Введем вектор W длины Ñ + L, элементы которого равны
Wk =
1
, ∀0 ≤ k < Ñ + L.
Hk
Тогда, домножив правую и левую части уравнения (10) на W,
получим
Y · W = X + F(n) · W.
(11)
Обозначим
Z=Y·W
и
z = F −1 (Z),
где F −1 (·) – обратное дискретное преобразование Фурье.
Тогда
z = F −1 (Z) = x̃ + n ~ w,
(12)
F −1 (W).
где w =
Нетрудно видеть, что получившийся результат эквивалентен
(8). Заметим, что выполнение прямого и обратного дискретного преобразования Фурье можно выполнить с помощью алгоритма, имеющего сложность O(N log N ), где N – размер входного
блока данных (алгоритм быстрого преобразования Фурье). Тогда
уравнения (10)–(12) дают следующий алгоритм эквализации [3]
(Рис. 3).
1. На вход алгоритма поступает вектор y длины Ñ +L и вектор
W той же длины.
2. С помощью алгоритма быстрого преобразования Фурье вычислить
Y = F(y).
3. Получить вектор Z путем поэлементного перемножения векторов Y и W:
Z = Y · W.
4. С помощью алгоритма быстрого обратного преобразования
Фурье вычислить
z = F −1 (Z).
-------------------------------------------------------
131
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
y
FFT
W
IFFT
z
Рис. 3. Обобщенный алгоритм частотной эквализации
x (1)
x (2)
x (i)
x (1)
000
x (2)
000
x (i)
000
канал
y(1)
y(2)
y(i)
частотный
эквалайзер
частотный
эквалайзер
частотный
эквалайзер
z(1)
z(2)
z(i)
Рис. 4. Схема передачи с нулевым постфиксом
-------------------------------------------------------
132
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Реализация эквалайзера путем обработки блока y в частотной
области, показанная на Рис. 3, называется реализацией эквалайзера в частотной области . Сложность вышеописанного алгоритма в расчете на один символ исходной последовательности равна
O(log Ñ ) при условии Ñ >> L. Тем не менее, на практике преобразование Фурье размера, равного размеру всех принимаемых
данных Ñ + L, является нереализуемым. Поэтому алгоритм частотной эквализации выполняют над блоками намного меньшей
длины N << Ñ . При этом существуют два подхода к построению систем связи на основе частотного эквалайзера: системы с
защитным интервалом между блоками и системы без защитного
интервала между блоками. Подробнее о построении таких систем
написано в разделах III и V соответственно.
III. Частотная эквализация в системах с защитным
интервалом
Рассмотрим следующую схему передачи (Рис. 4). Разобьем исходную последовательность x на блоки длины N << Ñ , где Ñ –
длина исходной последовательности. Обозначим i-й блок как x(i) .
После каждого блока x(i) добавим последовательность из B ≥ L
нулей, где L – длина отклика канала (1), в котором работает система. Получим новый блок xZP,(i) такой, что
{
(i)
ZP,(i)
xk , 0 ≤ k < N,
xk
=
(13)
0,
N ≤ k < N + B.
Из блоков xZP,(i) составим новую последовательность xZP , которая и будет передаваться по каналу. Поскольку при прохождении по каналу блоки исходного сигнала x отделены друг от друга
защитной последовательностью из B ≥ L нулей, то каждый блок
x(i) проходит через канал независимо от других и, таким образом,
может быть обработан с помощью типового алгоритма частотной
эквализации. Описанную выше схему будем называть схемой передачи с нулевым постфиксом [4, 5]. Для такой системы может
-------------------------------------------------------
133
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
быть предложен следующий алгоритм обработки принятого сигнала.
1. Полученный на выходе канала дискретный сигнал yZP разобьем на блоки длины N + B так, что первый символ блока
сигнала (e
yZP,(i) ) соответствует первому символу блока последовательности (xZP,(i) ):

k
L−1
∑
∑ ZP,(i−1)

ZP,(i)

xk−j hj +
xN +k−j hj + nk ,



j=0

j=k+1



0 ≤ k < L − 1,

ZP,(i)
yek
=
(14)


L−1
∑ ZP,(i)



xk−j hj + nk ,



j=0


L − 1 ≤ k < N + B.
e ZP,(i) применяется типовой алгоритм ча2. К каждому блоку y
стотной эквализации, на выходе которого получаются блоки
данных e
zZP,(i) длиной N + B.
3. В блоке e
zZP,(i) отбрасываются последние B отсчетов и из
полученных блоков zZP,(i) формируется окончательная последовательность z.
Поскольку при обработке каждого блока данных используется
быстрое преобразование
) N + B, то сложность эк( N +BФурье размера
вализации равна O N log(N + B) . Однако путем несложных
действий можно сократить размер используемого преобразования
Фурье до N , получив следующий алгоритм.
1. Сигнал yZP на выходе канала разбивается на блоки длины
N + B аналогично вышеописанному алгоритму.
e ZP,(i) длины N + B формируются
2. Из полученных блоков y
новые блоки длины N так, что
{
ZP,(i)
ZP,(i)
yek
+ yeN +k , 0 ≤ k < L − 1,
ZP,(i)
yk
=
(15)
ZP,(i)
yek
,
L − 1 ≤ k < N.
-------------------------------------------------------
134
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
x (1)
x (2)
x (i)
ЦП
x (1)
ЦП
x(2)
ЦП
x (i)
канал
y(1)
y(2)
y(i)
частотный
эквалайзер
частотный
эквалайзер
частотный
эквалайзер
z(1)
z(2)
z(i)
Рис. 5. Схема передачи с циклическим префиксом
Подставив (14) в (15), нетрудно заметить, что
yZP,(i) = x(i) ~ h + n′ ,
где n′ – вектор шума, прошедший через процедуру сложения
(15).
3. К каждому блоку yZP,(i) применяется типовой алгоритм частотной эквализации, на выходе которого получаются блоки
данных zZP,(i) длиной N . Из полученных блоков формируется окончательная последовательность z.
Таким образом, окончательная сложность эквализации систем
с нулевым постфиксом равна O(log N ). При этом наличие нулевого постфикса уменьшает скорость передачи исходного сигнала x
в NN+L раз, т.е.
N
Rzp =
R,
N +B
где R – скорость передачи исходного сигнала x, Rzp – скорость
передачи сигнала с нулевым постфиксом размера B.
Рассмотрим альтернативную схему передачи, называемую передачей с циклическим префиксом [4, 5] (Рис. 5). Разобьем исходную последовательность символов x на блоки длины N . Обозначим i-й блок как x(i) . Перед каждым блоком x(i) вставим последовательность из B последних символов из того же самого блока.
Получим новый блок xCP,(i) длины N + B, символы которого равны
{
(i)
xN −B+k , 0 ≤ k < B,
CP,(i)
xk
=
(16)
(i)
xk−B ,
B ≤ k < N + B.
-------------------------------------------------------
135
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Из блоков xCP,(i) составим новую последовательность xCP , которая и будет передаваться по каналу. Для приемной стороны
может быть предложен следующий алгоритм обработки принимаемого сигнала.
1. Полученный на выходе канала дискретный сигнал yCP разобьем на блоки длины N + B так, что первый символ блока
сигнала (e
yCP,(i) ) соответствует первому символу блока последовательности (xCP,(i) ):

k
L−1
∑
∑ CP,(i−1)

CP,(i)

xk−j hj +
xN +k−j hj + nk ,



j=0

j=k+1



0 ≤ k < L − 1,

CP,(i)
yek
=
(17)


L−1
∑ CP,(i)



xk−j hj + nk ,



j=0


L − 1 ≤ k < N + B.
2. В каждом блоке yeCP,(i) отбросим первые B значений. Таким
образом, получим блок yCP,(i) длины N . Поскольку вектор
xCP,(i) содержал в себе цикличность, то
yCP,(i) = x(i) ~ h + n.
3. К блоку yCP,(i) применим типовой алгоритм частотной эквализации.
4. Из полученных на выходе алгоритма блоков zCP,(i) формируется окончательная последовательность z.
В схеме эквализации сигналов с циклическим префиксом используется быстрое преобразование Фурье размера N . Таким образом, сложность эквализации и скорость передачи данных эквивалентны соответствующим значениям для системы с нулевым
постфиксом.
Стоит отметить, что для обработки сигнала с нулевым постфиксом эквалайзер должен быть идеально синхронизирован с передатчиком, чтобы выполнять преобразование Фурье в нужных
-------------------------------------------------------
136
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
отсчетах. В то же время, если в системе с циклическим префиксом длину защитного интервала взять больше, чем длина отклика
канала (B = L + S, где S > 0), то в такой системе возможна временная рассинхронизация приемника и передатчика на величину
S. Поэтому на практике при построении систем с защитным интервалом между блоками в основном используется циклический
префикс.
IV. Коэффициенты эквалайзера
В общем случае коэффициенты эквалайзера необходимо подбирать так, чтобы минимизировать вероятность ошибки на выходе декодера, используемого в системе. Однако, поскольку анализ,
включающий в себя декодер, является слишком трудоемким, на
практике коэффициенты эквалайзера подбирают, исходя из некоторых предположений об оптимальной структуре сигнала после
эквализации. Рассмотрим два наиболее популярных критерия вычисления коэффициентов эквалайзера.
В разделе II было показано, что для того, чтобы исключить
МСИ, коэффициенты частотного эквалайзера W необходимо вычислять как
Hk∗
1
=
,
(18)
Wk =
Hk
|Hk |2
где H – частотная передаточная функция канала (спектр отклика
канала).
Критерий минимизации МСИ на выходе эквалайзера называется критерием пикового искажения (в англоязычной литературе используется термин zero-forcing ) [1]. При отсутствии в канале шума данный критерий является оптимальным, т.к. позволяет
полностью компенсировать искажения, а именно межсимвольную
интерференцию, вносимую каналом. Однако при наличии в канале шума эквалайзер, коэффициенты которого вычислены согласно критерию пикового эквалайзера, не обязательно является оптимальным с точки зрения величины ошибки на выходе декодера.
Для пояснения данного утверждения рассмотрим выход эквалай-------------------------------------------------------
137
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
зера в частотной области:
Zk = Yk · Wk = (Xk · Hk + Nk )
1
1
= Xk + N k
,
Hk
Hk
(19)
где N = F(n) – АБГШ в частотной области.
Видно, что критерий zero-forcing позволяет полностью исключить искажения, вносимые частотной передаточной функцией канала, что соответствует межсимвольной интерференции во временной области. В то же время для каналов, частотные передаточные функции которых имеют глубокие провалы в спектре, т.е.
значения Hk , близкие к нулю, эквалайзер, построенный по критерию zero-forcing, будет пытаться компенсировать эти нули путем выставления коэффициентам эквалайзера бесконечно больших значений. В итоге вместо восстановления сигнала на этих
частотах будет бесконечно усиливаться шум, что, в свою очередь,
приведет к неработоспособности приемника. Таким образом, эквалайзер, работающий по критерию zero-forcing, является нестабильным при низком отношении сигнал-шум.
Альтернативным критерием построения коэффициентов эквалайзера является критерий минимума среднеквадратичной ошибки (Minimum Mean Square Error, MMSE) [1].
Определение 2: Коэффициенты эквалайзера, оптимальные по
критерию MMSE, минимизируют следующую функцию:
[
]
f (Wk ) = E |Zk − Xk |2 ,
(20)
которая называется средней квадратичной ошибкой (MSE).
Теорема 1: Коэффициенты частотного эквалайзера, оптимальные с точки зрения критерия MMSE, равны
Wk =
Hk∗
|Hk |2 +
σ2
Ex
,
(21)
где σ 2 – дисперсия АБГШ; Ex = E[|x|2 ] – средняя энергия на
символ исходного сигнала.
-------------------------------------------------------
138
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Для
[ Доказательство:
]
E |Zk − Xk |2 найдем
нахождения
минимума
[
]
∇Wk E |Zk − Xk |2 = 0,
функции
(22)
где ∇Wk f (Wk ) – градиент функции f (Wk ) по комплексному аргу(re)
менту Wk = Wk
(im)
+ jWk
, равный по определению
∇Wk f (Wk ) ,
∂f (Wk )
(re)
∂Wk
+j
∂f (Wk )
(im)
.
(23)
∂Wk
Решение уравнения (22) приводит к следующему результату:
Wk =
Hk∗
|Hk |2 +
E[|Nk |2 ]
E[|Xk |2 ]
.
(24)
Полагая сигнал и шум «белыми», т.е. равномерно распределенными во всем диапазоне частот, окончательно получим
Wk =
Hk∗
|Hk |2 +
σ2
Ex
.
(25)
Сравнивая (21) с (18), можно заметить, что для значений Hk ,
2
близких к нулю, |Hk |2 << Eσ x , и следовательно, коэффициенты
Wk тоже будут близки к нулю. Таким образом, на тех частотах,
которые не пропускает канал, MMSE эквалайзер не пропускает
ни сигнал, ни шум, в отличие от zero-forcing эквалайзера, который
на таких частотах усиливает шум. С другой стороны, на частотах
2
с высоким отношением сигнал-шум, для которых |Hk |2 >> Eσ x ,
коэффициент Wk близок к коэффициенту zero-forcing.
Проведем анализ сигнала на выходе MMSE эквалайзера. Рассмотрим выход MMSE эквалайзера в частотной области:
Zk = Yk · Wk = (Xk · Hk + Nk ) · Wk = Xk · Hk · Wk + Nk · Wk . (26)
-------------------------------------------------------
139
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Введем вектор B длины N , элементы которого равны
Bk , H k W k =
|Hk |2
|Hk |2 +
σ2
Ex
(27)
.
Тогда, с учетом введенного обозначения, получим
Zk = Xk · Bk + Nk · Wk .
(28)
Применив к Z обратное преобразование Фурье и воспользовавшись свойством циклической свертки, получим
z = x ~ b + n ~ w,
(29)
где b = F −1 (B) и w = F −1 (W).
Элементы вектора z можно записать в виде
zk = b0 xk +
N
−1
∑
bi x(k−i)mod
i=1
{z
|
N
+
N
−1
∑
wi n(k−i)mod
i=0
}
|
{z
N
(30)
.
}
шум
МСИ
Видно, что на выходе MMSE эквалайзера присутствует шум,
прошедший через фильтр эквалайзера, и остаточная МСИ. Величина остаточной МСИ определяется частотной-передаточной
функцией канала, на основе которой строятся коэффициенты эквалайзера. Чем больше в спектре отклика канала частот с низким
отношением сигнал-шум, тем больше отклонение спектра выходного сигнала от исходного, и следовательно, больше остаточная
интерференция во временной области.
Кроме того, стоит отметить, что оценка сигнала на выходе
MMSE-эквалайзера является смещенной. Действительно,
E[zk ] = b0 xk +
N
−1
∑
[
bi E x(k−i)mod
]
N
+
i=1
N
−1
∑
i=0
[
wi E n(k−i)mod
{z
|
]
N
}
.
=0
Полагая, что исходный сигнал x имеет распределение с нулевым средним, получаем
E[zk ] = b0 xk .
-------------------------------------------------------
140
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
ЦП
x (i)
x (i)
канал
yCP
частот
эквал
y’
частот
эквал
B
z CP
W
x (i)
канал
z’
x (i-1)
Рис. 6. Схема сравнения систем с циклическим префиксом и без циклического
префикса
Коэффициент b0 равен постоянной составляющей обратного
преобразования Фурье от вектора B:
N −1
N −1
1 ∑
1 ∑
|Hi |2
b0 =
Bi =
< 1.
σ2
2
N
N
i=0
i=0 |Hi | + Ex
(31)
Несмещенную оценку на выходе эквалайзера можно получить,
умножив выход эквалайзера z на величину b10 .
Проводя итоговое сравнение zero-forcing и MMSE эквалайзеров, можно сделать вывод, что при большом отношении сигналшум в канале связи эквалайзер, работающий по критерию пикового искажения, практически эквивалентен MMSE эквалайзеру. С
другой стороны, при низком отношении сигнал-шум MMSE эквалайзер более предпочтителен, чем zero-forcing, т.к. позволяет достичь оптимального соотношения уровня остаточной МСИ и отношения сигнал-шум на выходе эквалайзера. Кроме того, в отличие
от zero-forcing эквалайзера, MMSE эквалайзер выдает смещенную
оценку. Коэффициенты смещения MMSE эквалайзера необходимо
учитывать при декодировании сигнала после эквализации.
V. Частотная эквализация в системах без защитного
интервала
В данном разделе будет рассматриваться случай, когда алгоритм частотной эквализации, оперирующий блоками длины N ,
-------------------------------------------------------
141
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
применяется к сигналам, в которых отсутствует защитный интервал между блоками. Для начала рассмотрим следующий гипотетический эксперимент (Рис. 6). Возьмем два соседних блока x(i−1)
и x(i) длины N исходной последовательности x. Сформируем два
новых блока xcp и x′ (далее в рассуждениях, если это не приводит
к противоречию, будем опускать индекс i, считая, что рассматриваемые последовательности относятся к i-му блоку) длины N + B
так, что первый блок является дополнением блока x(i) циклическим префиксом:
{
(i)
xN −B+k , 0 ≤ k < B,
xcp
=
(32)
(i)
k
xk−B ,
B ≤ k < N + B,
а второй блок является дополнением последних B символов из
x(i−1) к блоку x(i) :
{
(i−1)
xN −B+k , 0 ≤ k < B,
(33)
x′k =
(i)
xk−B ,
B ≤ k < N + B.
Полученные вектора xcp и x′ пропустим через один и тот же
канал. В последовательностях на выходе канала удалим первые
B символов и оставим последующие N символов. Таким образом,
получим два вектора ycp и y′ длины N . Рассмотрим полученные
вектора. Поскольку вектор ycp является результатом прохождения через канал последовательности с циклическим префиксом,
то
ycp = x(i) ~ h + n.
(34)
В свою очередь, символы вектора y′ равны

k
L−1
∑
∑ (i−1)

(i)


x
h
+
xN +k−j hj + nk , 0 ≤ k < L − 1,
j

k−j

 j=0
j=k+1
yk′ =


L−1
∑ (i)



xk−j hj + nk ,
L − 1 ≤ k < N.

(35)
j=0
-------------------------------------------------------
142
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Запишем (35) в следующем виде:
 k
L−1
∑ (i)
∑ (i)


x
h
+
xN +k−j hj +

j
k−j


j=0
j=k+1



L−1

∑ (i−1)
∑ (i)
 + L−1
x
h
−
xN +k−j hj + nk , 0 ≤ k < L − 1
j
′
N
+k−j
yk =
j=k+1
j=k+1





 L−1

∑ (i)


xk−j hj + nk ,
L − 1 ≤ k < N.

j=0
(36)
Введем в обозначения вектор ∆ длины N такой, что
 L−1
∑ (i)
 ∑ x(i−1) h − L−1
xN +k−j hj , 0 ≤ k < L − 1,
j
N
+k−j
∆k =
j=k+1
j=k+1

0,
L − 1 ≤ k < N.
(37)
Подставив (37) в (36), получим

k
L−1
∑
∑ (i)

(i)


xk−j hj +
xN +k−j hj + ∆k + nk , 0 ≤ k < L − 1,


 j=0
j=k+1
yk′ =


L−1
∑ (i)



xk−j hj + ∆k + nk ,
L − 1 ≤ k < N.

j=0
(38)
Нетрудо видеть, что
y′ = x(i) ~ h + ∆ + n.
(39)
К последовательностям ycp и y′ применим типовой алгоритм
частотной эквализации. Получим последовательности zcp и z′ такие, что
zcp = x(i) ~ b + n ~ w
(40)
и
z′ = x(i) ~ b + ∆ ~ w + n ~ w,
(41)
где b = h ~ w.
-------------------------------------------------------
143
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Сравнивая (41) с (40), видно, что для сигналов без циклического префикса на выходе эквалайзера появляется дополнительная
интерференционная составляющая e = ∆~w. Рассмотрим вектор
e более подробно.
Вектор ∆ представляет собой разность между блоком y′ сигнала без циклического префикса и блоком ycp сигнала с циклическим префиксом. Вектор ∆(i) содержит только первые L ненулевых отсчетов, где L – длина отклика канала (Рис. 7). В процессе эквализации принятого блока y′ вектор ∆ проходит через
циклическую свертку с вектором коэффициентов эквалайзера w.
В общем виде вектор w представляет собой вектор длины N , где
коэффициенты с индексами 0, . . . , N2 задают влияние предшествующих входных символов на текущий (каузальная часть фильтра), а коэффициенты с индексами N2 + 1, . . . , N , в силу циклической свертки, задают влияние последующих символов (антикаузальная часть фильтра). Для удобства представления запишем вектор w симметрично относительно нуля, где индексы − N2 ,
. . ., −1 соответствуют индексам N2 + 1, . . . , N исходного вектора (Рис. 8). Далее будем полагать, что размер каузальной части фильтра ограничен величиной K1 , а размер анти-каузальной
части ограничен величиной K2 (Рис. 8). Таким образом, общая
длина фильтра равна K1 + K2 отсчетов. В результате циклической свертки с вектором w ошибки, вызванные отсутствием циклического префикса, затронут L + K1 первых символов блока и
K2 последних (Рис. 9). Обозначим K1′ = L + K1 . Оставшиеся
N − (K1′ + K2 ) символов в середине блока равны соответствующим символам на выходе эквалайзера для сигнала с циклическим
префиксом (выражение (34)).
Таким образом, проведенный анализ показывает, что если длина вектора коэффициентов эквалайзера ограничена во временной
области величиной K1 + K2 , то применив к полученному на выходе канала блоку типовой алгоритм частотной эквализации и удалив K1′ + K2 символов на краях блока, оставшиеся символы будут
эквивалентны тем, которые получаются при выполнении частотной эквализации над блоком с циклическим префиксом. Данные
-------------------------------------------------------
144
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
N
0
L
Рис. 7. Разность сигналов с циклическим перфиксом и без циклического префикса на выходе канала
−
0
N
2
K2
N
2
K1
Рис. 8. Коэффициенты эквалайзера во временной области
0
N
L+K1
K2
Рис. 9. Распространение ошибок на выходе эквалайзера, вызванное отсутствием циклического префикса
-------------------------------------------------------
145
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
y i-1
yi
y i+1
N
K2
L+K 1
Рис. 10. Обработка с перекрытиями при эквализации сигналов без циклического префикса
рассуждения приводят к следующему алгоритму работы системы
передачи в целом.
Исходная последовательность x передается по каналу без изменения. На выходе канала образуется последовательность y, которая обрабатывается поблочно. Поскольку размер входных данных N при обработке текущего блока больше, чем размер выходных N − (K1′ + K2 ), то для извлечения всей исходной последовательности x из y необходимо выполнять обработку с перекрытиями [3] (Рис. 10). Алгоритм работы эквалайзера в этом случае
работает следующим образом.
1. В принятой из канала последовательности выделить блок
данных длины N . Получим блок y(i) .
2. К блоку y(i) применить алгоритм частотной эквализации.
Получить на выходе блок z(i) .
3. В блоке z(i) отбросить первые K1′ и последние K2 символов.
Оставшиеся N − (K1′ + K2 ) символов записать в буфер.
4. Сместить позицию выборки данных в последовательности y
на N − (K1′ + K2 ) символов и взять новый блок y(i+1) длины
N . При этом первые K1′ + K2 символов нового блока y(i+1)
равны последним символам предыдущего блока y(i) .
5. Выполнять шаги 2-3 до тех пор, пока не будет обработана
вся последовательность y.
Поскольку передаваемая по каналу последовательность x не
содержит избыточных символов в виде циклических префиксов,
-------------------------------------------------------
146
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
+B
то общая скорость передачи в NN
раз больше, чем для систем с
защитным интервалом длины B. В то же время, за счет обработки
с перекрытиями сложность обработки увеличивается в N −KN′ −K2
1
раз и равна O( N −KN′ −K2 log N ).
1
Отметим также, что в приведенном выше анализе предполагалось, что длина фильтра во временной области ограничена величиной K1 + K2 . Коэффициенты эквалайзера, рассчитанные в
частотной области для реального канала, во временной области
могут распространиться на весь блок, в зависимости от вида отклика канала. В этом случае полностью исключить МСИ, вызванную отсутствием циклического префикса, не удастся. В реальных
системах величины K1′ и K2 выбирают, исходя из максимально допустимой сложности эквалайзера, максимально возможной длины канала и корректирующей способности используемого помехоустойчивого кода. Управляя величинами K1′ и K2 , можно осуществлять разменное соотношение сложности обработки на уровень остаточной МСИ на краях выходного блока.
VI. Заключение
Проводя итоговое сравнение систем с частотной эквализацией,
можно сделать вывод, что несмотря на то, что системы с защитным интервалом между блоками вносят в данные избыточность,
тем самым уменьшая скорость передачи, такие системы позволяют осуществить весьма эффективную и простую процедуру эквализации. Наибольшее распространение такой подход получил в
системах связи на основе частотного ортогонального мультиплексирования (ortogonal frequency division multiplexing, OFDM). При
этом на практике в качестве защитного интервала между блоками в основном используется циклический префикс, благодаря
возможности неидеальной синхронизации приемника и передатчика, указанной в разделе III. В то же время, системы без защитных интервалов между блоками, хотя и не уменьшают скорость
передачи данных, требуют более сложной процедуры эквализации и не всегда гарантируют то же качество, что и системы с
-------------------------------------------------------
147
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
циклическим префиксом (см. рассуждения в разделе V). Тем не
менее, в системах с одной несущей и отсутствием защитных интервалов, изначально проектируемых под использование эквалайзеров во временной области, эквалайзер, работающий в частотной
области, является привлекательной альтернативой, т.к. обладает
меньшей сложностью по сравнению с эквалайзером, работающим
во временной области [6]. Как правило, для таких систем линейный эквалайзер является частью более сложного частотного турбо эквалайзера [7].
Литература
[1] Д. Прокис, Цифровая связь. Пер. с англ. М.: Радио и связь, 2000.
[2] Л.М. Гольденберг, Б.Д. Матюшкин, М.Н. Поляков, Цифровая обработка
сигналов: Справочник, М.: Радио и связь, 1985.
[3] B. Farhang-Boroujeny, Adaptive filters: theory and applications, N.Y.: John
Wiley & Sons, 1998.
[4] B. Muquet, Z. Wang, G. Giannakis, M. de Courville, P. Duhamel, “Cyclic
prefixing or zero padding for wireless multicarrier transmissions?,” IEEE
Transactions on Communications, vol. 50, pp. 2136 – 2148, Dec 2002.
[5] M. Muck, M. D. Courville, M. Debbah, P. Duhamel, “A pseudo random postfix
OFDM modulator and inherent channel estimation techniques,” IEEE Global
Telecommunications Conference , 2003. GLOBECOM ’03, vol. 4, pp. 2380 –
2384, 2003.
[6] Q. Huang, X. Deng, B. Long, “Research of single carrier frequencydomain equalization algorithm for ATSC digital TV receiver,” The 2nd
IEEE International Conference on Information Management and Engineering
(ICIME), pp. 452 – 454, April 2010.
[7] H. Liu, P. Schniter, H. Fu, R. A. Casas, “Frequency domain turbo equalization
for vestigial sideband modulation with punctured trellis coding,” Signal
Processing Advances in Wireless Communications, 2006. SPAWC ’06. IEEE
7th Workshop on.
-------------------------------------------------------
148
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
О полубыстрых алгоритмах вычисления
дискретного преобразования Фурье над
конечным полем
С.В. Федоренко
д.т.н. профессор
Санкт-Петербургский государственный
университет аэрокосмического приборостроения
I. Введение
Под полубыстрым алгоритмом понимают алгоритм, значительно уменьшающий число умножений по сравнению с прямым методом вычисления, но не уменьшающий число сложений. Полубыстрый алгоритм вычисления n-точечного дискретного преобразования Фурье (ДПФ) над конечным полем GF (q) требует порядка
n log n умножений и n2 сложений в этом поле [4].
n-точечное ДПФ над конечным полем GF (2m ) определяется
как
F = W f,


 

0
0
α
α
α0
···
α0
F0
f0
 F1  
α0
α1
α2
···
αn−1 
  f1 

 


2
2
2
2 
1
2
n−1
 F2  =  (α0 )
 f2  ,
(α
)
(α
)
·
·
·
(α
)





 ···  
···
···
···
···
 ···
 ··· 
n−1
n−1
n−1
n−1
Fn−1
fn−1
(α0 )
(α1 )
(α2 )
· · · (αn−1 )
где f — исходный вектор, F — результирующий вектор, W = (αij ),
i, j ∈ [0, n − 1] — матрица Вандермонда, элемент α ∈ GF (2m )
порядка ord(α) = n | (2m − 1) — ядро ДПФ.
-------------------------------------------------------
149
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Рассмотрим некоторые алгоритмы вычисления ДПФ над конечным полем [1–9]. Алгоритмы иллюстрируются примерами преобразования малой длины.
Пример 1: Поле GF (23 ) задается элементом α — корнем примитивного многочлена x3 + x + 1. Циклотомические классы по модулю 7 над GF (2) есть: (0), (1, 2, 4), (3, 6, 5), а сопряженные отно0
1
2
4
3
6
5 ). Элементы
сительно
( 0 1 2GF
) (2) элементы: (α ), (α , α , α ), (α , α , α
3
(α1 , α2 , α4 ) образуют стандартный базис над3 GF (2 ), а элементы
β , β , β — нормальный базис над GF (2 ), где β = α3 . Другой нормальный
над
GF (23 ) является циклическим сдвигом
( базис
)
предыдущего: γ 1 , γ 2 , γ 4 , где γ = α6 .
Рассмотрим ДПФ длины n = 7 над полем GF (23 ). За ядро ДПФ возьмем примитивный
элемент α. Преобразованием Фу∑6
i
рье многочлена f (x) = i=0 fi x является набор компонент Fi =
f (αi ), i ∈ [0, 6].
Итак,
   0
 
F0
α α0 α 0 α 0 α 0 α 0 α 0
f0
F1  α0 α1 α2 α3 α4 α5 α6  f1 
   0
 
F2  α α2 α4 α6 α1 α3 α5  f2 
   0
 
F3  = α α3 α6 α2 α5 α1 α4  f3  .
  
 
F4  α0 α4 α1 α5 α2 α6 α3  f4 
  
 
F5  α0 α5 α3 α1 α6 α4 α2  f5 
F6
α 0 α6 α 5 α 4 α 3 α 2 α 1
f6
II. Алгоритм Герцеля (1958).
Модификация Блейхута для конечных полей (1983)
Алгоритм Герцеля выполняется в два шага. На первом шаге выполняется деление с остатком многочлена f (x) на каждый
минимальный многочлен Mj (x):
{
f (x) = Mj (x)qj (x) + rj (x), deg rj (x) < deg Mj (x)
,
j ∈ [0, l − 1]
-------------------------------------------------------
150
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
где l — число циклотомических классов по модулю n над GF (2).
На втором шаге выполняется вычисление значений найденных
остатков rj (x) во всех элементах конечного поля:
{
Fi = f (αi ) = rj (αi )
,
i ∈ [0, n − 1]
причем αi — корень минимального многочлена Mj (x).
Пример 2:
Шаг 1.
f (x) = (x + 1)q0 (x) + r0 (x), r0 (x) = r00 ,
f (x) = (x3 + x + 1)q1 (x) + r1 (x), r1 (x) = r21 x2 + r11 x + r01 ,
f (x) = (x3 + x2 + 1)q2 (x) + r2 (x), r2 (x) = r22 x2 + r12 x + r02 ,
где
r00 = f0 + f1 + f2 + f3 + f4 + f5 + f6 ,
r01 = f0 + f3 + f5 + f6 ,
r11 = f1 + f3 + f4 + f5 ,
r21 = f2 + f4 + f5 + f6 ,
r02 = f0 + f3 + f4 + f5 ,
r12 = f1 + f4 + f5 + f6 ,
r22 = f2 + f3 + f4 + f6 .
Шаг 2.
F0 = f (α0 ) = r00 ,
F1 = f (α1 ) = r1 (α1 ) = r21 α2 + r11 α1 + r01 ,
F2 = f (α2 ) = r1 (α2 ) = r21 α4 + r11 α2 + r01 ,
F4 = f (α4 ) = r1 (α4 ) = r21 α1 + r11 α4 + r01 ,
F3 = f (α3 ) = r2 (α3 ) = r22 α6 + r12 α3 + r02 ,
F6 = f (α6 ) = r2 (α6 ) = r22 α5 + r12 α6 + r02 ,
F5 = f (α5 ) = r2 (α5 ) = r22 α3 + r12 α5 + r02 ,
-------------------------------------------------------
151
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
 
1
F1
F2  = 1
1
F4
  
1
F3
F6  = 1
1
F5

или
 
r01
α1 α2
2
4


r11  ,
α α
4
1
r21
α α



r02
α3 α6
α6 α5  r12  .
r22
α5 α3
Итак,


 
F0

F1  
  
F2  
  
F4  = 
  
F3  
  
F6  



F5





×





α0
1
1
0
0
1
0
0
1
0
1
0
0
1
0
α0
α1
α2
α0
α2
α4
α0
α4
α1
1
0
0
1
0
0
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
α0
α3
α0
α6
α0
α5
1
1
0
1
0
1
1







×


6
α 

α5 

α3
 
f0
 f1 
 
 f2 
 
 f3  .
 
 f4 
 
 f5 
f6
III. Алгоритм Блейхута (2008)
Основная идея алгоритма Блейхута состоит в декомпозиции
исходного вектора f на сумму из l векторов, каждый из которых
содержит компоненты fi с индексами, соответствующими некоторому циклотомическому классу по модулю n над GF (2), и нули
на остальных позициях.
-------------------------------------------------------
152
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Пример 3: Имеем
   0
α α0
F0
F1  α0 α1
   0
F2  α α2
   0
F3  = α α3
  
F4  α0 α4
  
F5  α0 α5
F6
α0 α6
α0
α2
α4
α6
α1
α3
α5
α0
α3
α6
α2
α5
α1
α4
α0
α4
α1
α5
α2
α6
α3
α0
α5
α3
α1
α6
α4
α2

α0
α6 

α5 

α4 
×
α3 

α2 
α1
     
f0
0
0
 0  f1   0 
     
 0  f2   0 
     
     
×
 0  +  0  + f3  =
 0  f4   0 
     
 0   0  f5 
0
0
 

1
1
1
0
 

1

  ( ) 0


=
1 f0 + 1
1
0
 

1
1
1
1

1
0

0

+
1
1

1
0
0
1
0
0
1
1
1
f6
0
1
0
1
1
1
0

0
0
 0
1
 α3

1
 α

1 α 6
0
1
-------------------------------------------------------

0
0
 0
1
 α1

0
 α

1 α 2
1
1
α0
α6
α5
153
α0
α2
α4
 
α0
f1
α4  f2  +
α1
f4
 
α0
f3
α5  f6  .
α3
f5
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
IV. Алгоритм Федоренко-Трифонова (2002)
∑
i
Многочлен вида L(x) = i li x2 , li ∈ GF (2m ), называется линеаризованным многочленом. Любой многочлен может быть разложен на сумму линеаризованных многочленов и свободный член.
Алгоритм состоит в разбиении исходного многочлена на сумму линеаризованных многочленов и вычислении их значений в наборе
базисных точек. Компоненты преобразования Фурье вычисляются как линейные комбинации этих значений с коэффициентами из
простого поля.
Пример 4: Многочлен f (x) =
лен в виде:
∑6
i
i=0 fi x
может быть представ-
f (x) = L0 (x0 ) + L1 (x1 ) + L2 (x3 ),
L0 (y) = f0 ,
L1 (y) = f1 y + f2 y 2 + f4 y 4 ,
L2 (y) = f3 y + f6 y 2 + f5 y 4 .
Имеем
f (α0 ) = L0 (α0 ) + L1 (α0 ) + L2 (α0 ),
f (α1 ) = L0 (α0 ) + L1 (α1 ) + L2 (α3 ) =
= L0 (1) + L1 (α) + L2 (1) + L2 (α),
2
f (α ) = L0 (α0 ) + L1 (α2 ) + L2 (α6 ) =
= L0 (1) + L1 (α2 ) + L2 (1) + L2 (α2 ),
f (α3 ) = L0 (α0 ) + L1 (α3 ) + L2 (α2 ) =
= L0 (1) + L1 (1) + L1 (α) + L2 (α2 ),
f (α4 ) = L0 (α0 ) + L1 (α4 ) + L2 (α5 ) =
= L0 (1) + L1 (α) + L1 (α2 ) + L2 (1) + L2 (α) + L2 (α2 ),
f (α5 ) = L0 (α0 ) + L1 (α5 ) + L2 (α1 ) =
= L0 (1) + L1 (1) + L1 (α) + L1 (α2 ) + L2 (α),
-------------------------------------------------------
154
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
f (α6 ) = L0 (α0 ) + L1 (α6 ) + L2 (α4 ) =
= L0 (1) + L1 (1) + L1 (α2 ) + L2 (α) + L2 (α2 ).
Используя Fi = f (αi ), эти выражения могут быть записаны в
матричной форме:
  

1 1 0 0 1 0 0
F0
F1   1 0 1 0 1 1 0 
  

F2   1 0 0 1 1 0 1 
  

F3  =  1 1 1 0 0 0 1  ×
  

F4   1 0 1 1 1 1 1 
  

F5   1 1 1 1 0 1 0 
F6
1 1 0 1 0 1 1








×







α0
α0
α0
α0
α1
α2
α4
α2
α4
α1
α0
α0
α1
α2
α2
α4
 f 
0

 f 
  1
 
 f2 
 
 f4  .
 
 f3 
α0  
 f6 
4
α 
 f5
1
α
(1)
V. Алгоритм Трифонова-Федоренко (2003)
Циркулянтной матрицей или циркулянтом называется матрица, любая строка которой получается из предыдущей строки путем циклического сдвига на одну позицию влево (вправо). Если
элементами циркулянта являются матрицы, то циркулянт называется блоковым циркулянтом. Циркулянт, первая строка которого представляет собой нормальный базис, называется базовым
циркулянтом.
С помощью замены стандартного базиса на нормальный базис
блоки в блочно-диагональной матрице (1) преобразовываются в
базовые циркулянты.
-------------------------------------------------------
155
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Пример 5: Пусть
(
) (
)
β 1 , β 2 , β 4 = α3 , α6 , α5
является нормальным базисом для GF (23 ). Учитывая

 0
 
 1
1 1 1
β β2 β4
α α0 α0
α1 α2 α4  =  0 1 1  β 2 β 4 β 1  ,
α2 α4 α1
1 0 1
β4 β1 β2
из (1) получаем
  
F0
F1  
  
F2  
  
F3  = 
  
F4  
  
F5  
F6
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
0
0
1
0
1
1
1
1
0
0
1
0
1
1
0
1
0
0
1
1
0
1
0
0
1
1
1
0
0
1
1
1
0





×













×






1
β1
β2
β4
β2
β4
β1
β4
β1
β2
β1
β2
β4
β2
β4
β1
β4
β1
β2
 f 
0

 f 
  1
 
 f2 
 
 f4  .
 
 f3 
 
 f6

 f5
VI. Алгоритм Федоренко – 1 (2006)
Алгоритм основан на разложении матрицы эквивалентного преобразования в произведение двоичной блочно-циркулянтной и диагональной блочно-циркулянтной матриц. Эквивалентное ДПФ
-------------------------------------------------------
156
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Fe = We fe имеет следующую структуру:



 C1 0 . . . 0
A11 · · · A1l  0 C . . . 0 
2



Fe = We fe = Ae De fe = · · · · · · · · ·  
 fe ,
. . . . . . . . . . . .
Al1 · · · All
0
0 . . . Cl
(2)
где fe — перестановка исходного вектора f , Fe — перестановка результирующего вектора F , We — матрица эквивалентного преобразования, Ae — двоичная матрица, состоящая из двоичных циркулянтов Aij , De — блочно-диагональная матрица, состоящая из
базовых циркулянтов Ci , l — число циклотомических классов по
модулю n над GF (2).
Пример 6: Из

  
F0

F1  
  
F2  
  
F4  = 
  
F3  
  
F6  



F5
учитывая

α3
α 6
α5
 1
α
α 2
α4
 2
α
α 4
α1

α0
α0
α0
α0
α0
α0
α0
α0
α1
α2
α4
α3
α6
α5
α0
α2
α4
α1
α6
α5
α3
α0
α4
α1
α2
α5
α3
α6
α0
α3
α6
α5
α2
α4
α1
α0
α6
α5
α3
α4
α1
α2
α0
α5
α3
α6
α1
α2
α4
  1
α6 α5
β
5
3


α α = β2
α3 α6
β4


α2 α4
0
4
1


α α = 1
1
α1 α2


α4 α1
1
α 1 α 2  = 1
0
α2 α4
-------------------------------------------------------

β2 β4
β4 β1 ,
β1 β2
 1
1 1
β


0 1
β2
1 0
β4
 1
0 1
β
1 0 β 2
1 1
β4
157














 
f0
f1 
 
f2 
 
f4 ,
 
f3 
 
f6 
f5

β2 β4
β4 β1 ,
β1 β2

β2 β4
β4 β1 ,
β1 β2
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
получаем эквивалентное ДПФ, отличающееся порядком компонент в результирующем и исходном векторах:
  
F0
F1  
  
F2  
  
F4  = 
  
F3  
  
F6  
F5
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
0
1
0
1
0
1
1
1
0
0
0
1
1
1
0
0
1
1
0
1
0
1
0
0
1
1
1
0
0
1
1
0
1





×












×







1
β1
β2
β4
β2
β4
β1
β4
β1
β2
β1
β2
β4
β2
β4
β1
β4
β1
β2
 f 
0

 f 
  1
 
 f2 
 
 f4  .
 
 f3 
 
 f6

 f5
VII. Алгоритм Федоренко – 2 (2006)
За счет специального упорядочения индексов компонент в результирующем и исходном векторах двоичная блочно-циркулянтная матрица Ae из формулы (2) будет состоять из двоичных циркулянтов и блоковых циркулянтов, что позволит использовать
блоковые циклические свертки на втором шаге алгоритма вычисления ДПФ.
(
) (
)
Пример 7: Пусть γ 1 , γ 2 , γ 4 = α6 , α5 , α3 является нормальным базисом для GF (23 ). Учитывая
  1

 6
γ γ2 γ4
α α5 α3
α5 α3 α6  = γ 2 γ 4 γ 1  ,
α3 α6 α5
γ4 γ1 γ2
-------------------------------------------------------
158
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
 
 1
 1

1 1 0
α α2 α4
γ γ2 γ4
α2 α4 α1  = 0 1 1 γ 2 γ 4 γ 1  ,
α4 α1 α2
1 0 1
γ4 γ1 γ2
имеем

  
F0

F1  
  
F2  
  
F4  = 
  
F6  
  
F5  



F3





=





α0
α0
α0
α0
α0
α0
α0
α1
α2
α4
α6
α5
α0
α2
α4
α1
α5
α3
α0
α4
α1
α2
α3
α6
α0
α6
α5
α3
α1
α2
α0
α5
α3
α6
α2
α4
 f 
0

α3   
 f1 
α6 
f2 




=
5
f
4
α 



 f6 
4
α  
 f5 
α1 
 f3
α0
α3
α6
α5
α4
α1
α2
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
0
0
1
0
1
0
1
1
0
0
1
1
1
0
0
1
0
1
1
0
1
0
1
1
0
1
0
0
1
0
1
1
α0





×













×






1
γ1
γ2
γ4
γ2
γ4
γ1
γ4
γ1
γ2
-------------------------------------------------------
159
γ1
γ2
γ4
γ2
γ4
γ1
γ4
γ1
γ2
 f 
0

 f 
  1
 
 f2 
 
 f4  .
 
 f6 
 
 f5

 f3
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
VIII. Сложность вычисления ДПФ
Алгоритмы вычисления ДПФ [5–7] длины n = 2m − 1 над
GF (2m ) выполняются в два шага:
1. Вычисление l m-точечных циклических сверток.
2. Умножение двоичной матрицы Ae на вектор De fe из GF (2m ).
Сложность первого шага имеет порядок n log n умножений и
сложений над элементами поля GF (2m ). Сложность второго шага
не превышает Nadd < 2n2 / log n сложений над элементами поля
GF (2m ) [10].
IX. Заключение
Материалы статьи были частично представлены на XII международном симпозиуме по проблемам избыточности в информационных и управляющих системах [11]. Пример реализации алгоритма Герцеля в модификации Блейхута из работы [11] был
воспроизведен в монографии [9, §10.6]. Известны также другие
полубыстрые алгоритмы вычисления ДПФ над конечным полем.
Автор благодарит фонд имени Александра фон Гумбольдта
(Германия) за многолетнюю поддержку его научных исследований.
Литература
[1] G. Goertzel, An algorithm for the evaluation of finite trigonometric series,
The American Mathematical Monthly, January 1958, Vol. 65, No. 1, P. 34–35.
[2] Р. Блейхут, Теория и практика кодов, контролирующих ошибки, М.:
Мир, 1986.
[3] Р. Блейхут, Быстрые алгоритмы цифровой обработки сигналов, М.:
Мир, 1989.
[4] R. E. Blahut, Algebraic codes on lines, planes, and curves: an engineering
approach, Cambridge, U.K.: Cambridge University Press, 2008.
[5] S. Fedorenko, P. Trifonov, On computing the fast Fourier transform over
finite fields, Proceedings of eight international workshop on algebraic and
combinatorial coding theory at Tsarskoe Selo, Russia, September 2002,
P. 108–111.
-------------------------------------------------------
160
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
[6] П. В. Трифонов, С. В. Федоренко, Метод быстрого вычисления преобразования Фурье над конечным полем, Проблемы передачи информации,
2003, Т. 39, №3, С. 3–10.
[7] С. В. Федоренко, Метод вычисления дискретного преобразования Фурье
над конечным полем, Проблемы передачи информации, 2006, Т. 42, №2,
С. 81–93.
[8] С. В. Федоренко, Методы быстрого декодирования линейных блоковых
кодов, СПб.: ГУАП, 2008.
[9] R. E. Blahut, Fast algorithms for signal processing, Cambridge, U.K.:
Cambridge University Press, 2010.
[10] А. Ахо, Дж. Хопкрофт, Дж. Ульман, Построение и анализ вычислительных алгоритмов, М.: Мир, 1979.
[11] S. V. Fedorenko, On semifast Fourier transform algorithms, Proceedings of
the XII international symposium on problems of redundancy in information
and control systems at St.Petersburg, Russia, May 2009, P. 65–70.
-------------------------------------------------------
161
-------------------------------------------------------
Методы защиты информации от
несанкционированного доступа
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Система разделения секрета, основанная на
использовании линейных кодов
А.Ю. Абрамов
аспирант
Санкт-Петербургский государственный
университет аэрокосмического приборостроения
I. Введение
Ограничение доступа к конфиденциальной информации в любой информационной системе является важной задачей. Обычно
доступ к ней может быть получен при помощи ключа или пароля,
а в том случае, когда ключ должен быть разделен между некоторой группой пользователей системы таким образом, что только
совместные действия этой группы приведут к получению ключа,
такая система называется системой разделения секрета. При этом
доступ к секретной информации должны иметь только допустимые группы пользователей, и не должны – запрещенные группы.
Шамир [1] и Блейкли [2] независимо предложили концепцию
пороговой (n, k) системы разделения секрета. В такой системе всего участвуют n пользователей, при этом восстановить секрет может любое подмножество из k пользователей, а любое меньшее по
числу участников множество секрет восстановить не может.
Однако на практике структуры доступа зачастую не могут
быть выражены в пороговом виде, в этом случае они представляются набором допустимых коалиций пользователей, и тогда секрет может быть восстановлен участниками структуры доступа
только при образовании одной из допустимых коалиций. Такие
структуры доступа называются структурами доступа общего ви-------------------------------------------------------
165
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
да. Схемы, позволяющие разделять секрет между пользователями для структуры доступа общего вида, называются системами
разделения секрета, реализующими структуру доступа общего вида [3, 4].
Формально система разделения секрета может быть описана
следующим образом:
• пусть имеется n пользователей с номерами {1, . . . , u};
• подмножество A множества {1, . . . , u} будет называться допустимой коалицией, если пользователи с номерами из A
совместно имеют право доступа к некоторой информации
(секрету);
• Γ = {Ai }, i = {1, . . . , m} – множество допустимых коалиций
системы разделения секрета называется структурой доступа; если множество B ̸∈ Γ, то оно называется недопустимой
коалицией, и пользователи такого множества не получают
доступа к секрету.
Существует два наиболее часто используемых способа построения систем разделения секрета общего вида – с использованием
односторонних функций [6,8,9] и с использованием линейных блоковых кодов [7,10]. Системы, построенные этими способами, могут
быть в свою очередь разделены на те, в которых у каждого пользователя структуры доступа имеется единственный ключ и на те,
в которых у него их несколько (обычно столько, в скольких коалициях он состоит). Известные СРС с одним ключом характеризуются большим количеством публичной информации, необходимой
для восстановления секрета, и высокой вычислительной сложностью, а системы с несколькими – большим размером секретного
ключа пользователя.
В данной статье предложен алгоритм построения системы разделения общего вида, использующий свойства линейных блоковых кодов. Данный алгоритм позволяет уменьшить размеры и
публичной, и секретной информации. Статья организована следующим образом: раздел II описывает предлагаемую систему, в
разделе III производится анализ её безопасности, а раздел IV со-------------------------------------------------------
166
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
держит сравнение эффективности предложенной системы с существующими и вывод о целесообразности её применения.
II. Описание системы
Идея алгоритма заключается в применении для разделения
секрета кодов, исправляющих ошибки. Постановка задачи имеет
следующий вид.
• Пусть имеется структура доступа Γ, состоящая из n участников и m коалиций, которая может быть записана в виде
двоичной матрицы Am×u , у которой aij = 1 в том случае,
если j-й пользователь состоит в i-й допустимой коалиции.
При этом u > m и rank(A) ≥ m, что позволит вычеркнуть из
матрицы A f = u − m столбцов таким образом, чтобы после
этого она стала неособенной (т.е. исключить f «свободных»
переменных). Наличие «свободных» переменных используется для наложения на них весовых ограничений, что позволяет найти ограничения на параметры рассматриваемой
системы.
• Пусть имеется некоторый (n, k1 , d1 ) код g1 , способный исправлять до t1 = ⌊ d−1
2 ⌋ ошибок.
• Пусть секрет является словом данного кода, имеющим вес n2 .
В основе алгоритма лежат следующие положения:
• Необходимо выдать участникам структуры доступа ключи
таким образом, чтобы в случае, когда собралась допустимая
коалиция участников, сумма ключей её участников давала
вектор, отличающийся от вектора секрета в t или менее позициях. В этом случае результирующий вектор может быть
продекодирован с ошибками в известном коде g1 , и секрет
может быть однозначно восстановлен.
• Напротив, сумма ключей участников любой недопустимой
коалиции должна дать вектор секрета с количеством ошибочных позиций, большим t, то есть таким, которое код g1
будет декодировать в некоторое другое слово.
-------------------------------------------------------
167
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Строится система разделения секрета, удовлетворяющая следующим требованиям:
∑
1. Aj : Aj ⊆ Γ ⇒ k∈Aj xk = (S + e), |e| ≤ t,
(*)
∑
2. Aj : Aj ̸⊂ Γ ⇒ k∈Aj xk = (S + e), |e| > t.
(**)
Если записать условие (*) для каждой из допустимых коалиций, для нахождения ключей участников необходимо решить
недоопределенную систему уравнений, при этом с учетом наложенных ограничений на структуру доступа Γ система может быть
доопределена таким образом, что после этого у неё будет существовать единственное решение:
Ak ∈ Γ, k = {1, . . . , m},
∑


i∈A1 xi = S + e1


∑
i∈A2 xi = S + e2
,

...



∑
i∈Am xi = S + em
(1)
|ek | ≤ t, k = {1, . . . , m}.
Для того, чтобы выполнить условие (*), сначала доопределяется система (1), затем она решается и находятся оставшиеся ключи. Для выполнения условия (**) требуется наложить ограничения на веса составляющих системы, коды и линейные комбинации
ключей участников.
• Т.к. система является недоопределенной, существует возможность выбрать некоторую часть ключей специальным образом. Пусть эти «свободные» ключи выбираются как слова
cj из линейного (n2 , k2 , d2 )-кода g2 с учетом того, что итоговая матрица системы должна быть невырожденной. Длина
n2 кода g2 меньше n (этот факт вытекает из ограничений,
о которых будет сказано ниже), следовательно, этот код может быть удлинен таким образом, что его параметры станут
(n, k2 , d2 ).
-------------------------------------------------------
168
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
• После выбора «свободных» ключей остальные могут быть
однозначно найдены как решение системы уравнений.
• Множество ошибок {e1 , . . . , em }, используемое в описании
системы (1), строится таким образом, чтобы каждая пара
векторов ошибок пересекалась в λ позициях, с учетом того, что вес любой линейной комбинации векторов ошибок
должен превышать t. В таком случае можно оценить минимальный и максимальный веса векторов ошибок:
∑
2 λ – случай, когда все пары
– min i=1,...,m ei = mt − 2Cm
векторов
∑ ошибок пересекаются в различных позициях.
– max i=1,...,m ei = mt − mλ + λ(m mod 2) – случай,
когда все пары векторов ошибок пересекаются в одних
и тех же позициях.
Значение ключа участника
∑ системы в общем виде может быть
записано как x = υS + αc + i βi ei ; υ, α, β ∈ {0, 1}; c ∈ g2 . Линейная комбинация слов кода g2 может быть представлена как некоторое другое ненулевое слово этого кода при условии, что k2 > f .
Для выполнения условия (**) при построении системы обеспечивается выполнение следующих условий.
1. Линейная независимость векторов {c1 , . . . , cf } ⇒ k2 > f .
2. Линейная независимость векторов из множества {S, c1 , . . .,
cn−m , e1 , . . ., em }, тогда может быть доказана невозможность
вскрытия системы при помощи решения системы уравнений
(1) (см. Теорему 1).
3. Единичные позиции векторов ошибок не пересекаются с единичными позициями вектора секрета S, то есть с учетом
ограничения на его вес максимальный вес линейной комбинации векторов ошибок не должен превышать n2 .
4.


∑


min S + c +
ei > t



i⊂{1,...,m} .


∑


ei > t

min c +
i⊂{1,...,m} -------------------------------------------------------
169
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Данное множество условий может быть преобразовано к следующему виду:

∑

d2 ≥ max | ei |


i


max |∑ ei | ≤ n1
2
i
⇒
∑
n1

+ min | ei | − (n2 − d2 ) > 1


2

i


k2 > f


t1 > (m − 1)λ









2λ

d2 ≥ mt − 2Cm




n1
2


 2 ≥ mt − 2Cm λ
(все ei пересекаются
в различных
позициях)
∑
(min c + i⊂{1,...,m} ei > t)
(ограничение на длину кода g1 ,
позволяющее «разнести» позиции
секрета
и векторов ошибки)
∑
(min S + c + i⊂{1,...,m} ei > t)







n1



2 > (n2 − d2 )




n2 (1 − H(δ2 )) > (u − m) (из кода g2 можно выбрать




(u − m) ЛНЗ слов)
С учетом наложенных ограничений можно доказать, что система не может быть тривиально вскрыта.
Теорема 1: Пусть вектора множества {S, c1 , . . ., cn−m , e1 , . . .,
em } линейно
независимы. Тогда не существует линейной комби∑
нации
i αi xi , где xi – ключи участников системы, такой, что
∑
α
x
=
S + ek , |ek | ≤ t, αi = {0, 1}, k ∈ {1, . . . , m}.
i i i
Доказательство: Пусть такая линейная комбинация существует. Тогда её можно подставить в соответствующее k-е уравнение
системы, после чего получится, что либо
∑
∑
αi xi +
βj xj = 0,
j∈Ak
-------------------------------------------------------
170
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
т.е. в том случае, если в k-м уравнении системы не участвовали
свободные переменные, после сложения правых частей получается 0, либо
∑
∑
αi xi +
βj xj = c,
j∈Ak
т.е. в том случае, если в k-м уравнении системы участвовали свободные переменные, то после сложения они остаются.
В силу линейной независимости векторов множества {S, c1 ,
. . ., cn−m , e1 , . . ., em } оба этих варианта невозможны, следовательно, утверждение теоремы доказано.
Таким образом, были получены ограничения на параметры системы, необходимые для её построения. В следующих подразделах будет изложен алгоритм построения предложенной системы,
который состоит из трех фаз: инициализации, выдачи ключей и
восстановления секрета.
A. Фаза инициализации
• Выбираются коды g1 и g2 , параметры которых удовлетворяют следующим условиям:


t > mλ,

1

2 λ,


− 2Cm
d2 ≥ mt
∑
m−1
n1
k=0 (t − kλ),
2 ≥


n1



2 > (n2 − d2 ),


n2 (1 − H(δ2 )) > (u − m).
• Из кода g1 выбирается секрет S веса n2 .
• Строится множество ошибок {e1 , . . . , em } на длине n.
B. Фаза выдачи ключей
• Выбирается f «свободных» переменных в системе уравнений и из кода g2 выбираются ключи для пользователей с
соответствующими номерами.
-------------------------------------------------------
171
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
• Ключи для оставшихся n − f пользователей находятся как
решение системы.
C. Фаза восстановления секрета
Пусть собралась некоторая
∑допустимая коалиция Ak ∈ Γ. ′Её
′
участники вычисляют S =
j∈Ak xj и затем декодируют S в
коде g1 известной структуры, после чего восстанавливается исходный вектор секрета S.
III. Анализ безопасности схемы
В данном разделе будут рассмотрены основные виды атак и
оценена их вычислительная сложность. Стойкость системы находится как минимум по всем сложностям каждой из атак.
1. Перебор всех слов веса n2 , что потребует ∼ √1n 2k операций,
где n, k – параметры линейного (n, k, d)-кода g1 .
2. Поиск векторов ошибок ei .
Пусть имеется вектор e′ , который является суммой двух векторов ошибок. Вес такого вектора составляет (2t − 2λ) и известно, что вес каждого из векторов ошибок составляет t.
Тогда для нахождения одного из исходных векторов ошибок необходимо выделить из единичных позиций вектора e′
(t−λ) позиций этого исходного вектора и выделить из оставшихся (n − (2t − 2λ)) нулевых позиций еще λ позиций, которые были единичными в исходном векторе и наложились на
единичные позиции второго вектора ошибок.
Обобщив на случай сложения p векторов ошибок, можно получить следующую оценку сложности выполнения данного
вида атаки:
(
)
t−(p−1)λ
(p−1)λ
min
Cpt−p(p−1)λ · Cn−pt−p(p−1)λ =
p=2,...,m
t−(p−1)λ
(p−1)λ
= Cpt−p(p−1)λ · Cn−pt−p(p−1)λ .
p=2
-------------------------------------------------------
172
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
3. Поиск параметров безопасности {λ, w, d2 }. Поиск кода g2 .
Если злоумышленнику известен код g1 и структура доступа
Γ, то он может найти в нем векторы вида c + ei1 , продекодировать их в коде g2 (т.к. корректирующая способность кода
g2 выше, чем у кода g1 ) и получить вектор c. Будем считать
этот факт фактом взлома построенной системы и оценим
сложность получения кода g2 .
Пусть злоумышленнику известна структура доступа Γ, тогда он может найти ограничения снизу для всех параметров
системы – {λ∗ , w∗ , d∗2 , k2∗ }, а также n и t в силу того, что
код g1 известен всем участникам структуры доступа. Тогда
задача поиска кода g2 разбивается на два этапа:
• найти реальные значения {λ, w, d2 , k2 },
• найти код g2 с параметрами (n2 , k2 , d2 ).
Сложность данной атаки составляет ((w − w∗ )(d2 − d∗2 )(k2 −
k2∗ )k2 !n!).
4. Декодирование по информационным совокупностям в коде g1 .
Сложность данного вида атаки не может быть меньше, чем
атака 2, в силу того, что необходимо найти информационную
совокупность, свободную от ошибок, т.е. атакующему нужно
найти положение ошибочных символов, что означает поиск
вектора ei .
Теперь можно ввести параметр безопасности p, характеризующий минимальную требуемую стойкость системы. Тогда для построения системы с указанной стойкостью нужно, чтобы параметр безопасности p был меньше минимума сложности известных
атак на систему:
}
{
1 k1
t−λ
λ
k1
.
p < min C2t−2λ · Cn−2t+2λ , 2 , √ 2
n
Данное требование накладывает еще одно ограничение на параметры системы.
Таким образом, найденные атаки на систему можно разделить
на два класса: комбинаторные и кодовые.
-------------------------------------------------------
173
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Таблица I
Оценка размера ключа пользователя в различных
типах систем
Тип системы
Системы с несколькими
ключами у участников
Системы с единственным
ключом на основе хэшфункций
Предложенная система
Размер секретного ключа
k · log2 p, k – количество коалиций, в которых состоит
конкретный пользователь
log2 p
n ∼ m2 λ
IV. Анализ эффективности схемы
В данном разделе изложены оценки эффективности и выявляются те структуры доступа, на которых использование предложенной системы наиболее предпочтительно. Оценки размеров
ключей в различных типах систем приведены в Табл. I и Табл. II.
Очевидно, что преимущество по размеру секретного ключа
каждого из пользователей системы разделения секрета в случае
использования СРС с единственным ключом перед системами с
несколькими ключами появляется в том случае, если один и тот
же пользователь принадлежит нескольким коалициям.
V. Заключение
В статье изложен способ построения системы разделения секрета общего вида с использованием линейных блоковых кодов.
Данный подход позволяет выдавать каждому из участников структуры доступа единственный ключ без использования хэш-функций
вне зависимости от числа коалиций, в которых он (участник) состоит. Предложенная система может находить применение в тех
реальных системах, где количество участников превышает количество допустимых коалиций.
-------------------------------------------------------
174
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Таблица II
Оценка размера публичного ключа в различных типах
систем
Тип системы
Системы с несколькими
ключами у участников
Системы с единственным
ключом на основе хэшфункций
Предложенная система
Размер публичного ключа
Обычно отсутствует
m · sz(h(·))
n · k1
Литература
[1] A. Shamir, ”How to share a secret”, 1979, Communications of the ACM 22
(11), pp. 612–613.
[2] G.R. Blakley, ”Safeguarding cryptographic keys”, 1979, Proceedings of the
National Computer Conference 48, pp. 313–317.
[3] M. Ito, A. Saito, T. Nishizeki, ”Secret sharing scheme realizing general access
structure”, 1987.
[4] J. Benaloh and J. Leichter, Generalized secret sharing and monotone
functions, in ”Advances in Cryptology – CRYPTO ’88”, S. Goldwasser, ed.,
Lecture Notes in Computer Science 403 (1989), pp. 27–35.
[5] L. Pang, H. Li, Y. Wang, ”A secure and efficient secret sharing scheme with
general access structure”, 2006, LNAI 4223, pp. 646–649.
[6] A. Das, A. Adhikari, ”An efficient multi-use multi-secret sharing scheme
based on hash function”, Applied Mathematics Letters, 2010.
[7] C. Hung-Yu, J. Jinn-Ke, T. Yuh-Min, ”A unified approach to secret sharing
schemes with low distribution cost”, Journal of the Chinese Institute of
Engineers, Vol. 25, No. 6, pp. 723–733 (2002).
[8] J. He, E. Dawson, ”Multistage Secret Sharing Based on One-Way Function”,
Electronics Letters, Vol. 30, No. 19, pp. 1591–1592 (1994).
[9] Y.J. Geng, X.H. Fan, F. Hong, A new multi-secret sharing scheme with
multi-policy, The 9th International Conference on Advanced Communication
Technology, vol. 3, pp. 1515–1517, 2007.
[10] M. Bertilsson, I. Ingemarsson, ”A Construction of Practical Secret Sharing
Schemes Using Linear Block Codes,” Advances in Cryptology-Auscrypt’92,
Springer-Verlag, pp. 2–21.
-------------------------------------------------------
175
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
К вопросу о реализации личностной
криптосистемы на основе кодов,
исправляющих ошибки
А.В. Афанасьева
С.В. Беззатеев
программист
к.т.н. доцент
Д.О. Иванов
Д.А. Рыжов
студент
студент
Санкт-Петербургский государственный
университет аэрокосмического приборостроения
I. Введение
Криптосистемой на основе идентификационных данных или
личностной криптосистемой называется криптосистема с публичным ключом, в которой в качестве публичного ключа пользователя выбирается его уникальный идентификатор, т.е. произвольная
строка (например, электронный адрес) [1]. Главным достоинством
такой системы является то, что отправителю перед шифрованием
не требуется получать публичный ключ получателя и проверять
его подлинность. Однако, в такой системе необходим сервер (PKG
– private key generator), который генерирует секретные ключи и
после аутентификации выдает их пользователям в соответствии с
их идентификаторами.
В личностной криптосистеме должны быть определены следующие операции.
1. Начальная инициализация(σ). Алгоритм, который на
вход принимает параметр безопасности σ ∈ Z (размерность
трудной задачи) и вычисляет публичные параметры системы PK и секретный мастер ключ MSK.
-------------------------------------------------------
176
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
2. Вычисление секретного ключа(ID, PK, MSK). Алгоритм,
который по идентификатору пользователя ID вычисляет его
секретный ключ SKID , используя PK и MSK.
3. Шифрование(ID, M , PK). Алгоритм, который по идентификатору пользователя ID и сообщению M вычисляет шифротекст C, используя PK.
4. Дешифрование(ID, C, SKID , PK). Алгоритм, который по
шифротексту C и секретному ключу пользователя SKID вычисляет сообщение M , используя ID и PK.
Стойкость личностной криптосистемы принято оценивать как
вероятность выиграть в следующей игре между атакующим и проверяющим.
1. Инициализация. Проверяющий проводит начальную инициализацию системы и сообщает атакующему PK.
2. Первая фаза обучения. Атакующий может задавать вопросы проверяющему.
3. Вызов. Атакующий генерирует два сообщения M0 и M1 , а
также ID и посылает их проверяющему. Проверяющий шифрует M0 и M1 в C0 и C1 . Затем проверяющий случайным образом выбирает либо шифротекст C0 , либо шифротекст C1
и посылает результат атакующему.
4. Вторая фаза обучения. Атакующий может задавать вопросы проверяющему.
5. Ответ. Атакующий должен угадать, какому из исходных сообщений соответствует полученный во время вызова шифротекст Ci .
В зависимости от того, какие вопросы атакующий может задавать во время фазы обучения, выделяют три вида атак:
1. Атака по выбранному идентификатору. Атакующий выбирает произвольные IDj (кроме используемого на шаге «вызов»), а проверяющий должен ответить результатом алгоритма вычисление секретного ключа (IDj , PK, MSK).
-------------------------------------------------------
177
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
2. Атака по выбранному исходному тексту. Атакующий
выбирает произвольные Mj и IDj (кроме используемых на
шаге «вызов»), а проверяющий должен ответить результатом алгоритма шифрования (IDj , Mj , PK).
3. Атака по выбранному шифротексту. Атакующий выбирает произвольные Cj и IDj (кроме используемых на шаге
«вызов»), а проверяющий должен ответить результатом алгоритма дешифрования (IDj , Cj , SKIDj , PK).
От личностной криптосистемы требуется стойкость ко всем 3
видам атак.
В литературе предложено несколько реализаций личностной
криптосистемы, построенных на разных математических аппаратах: криптосистемы [2–4] используют эллиптические кривые,
криптосистемы [5, 6] используют квадратичные вычеты, криптосистемы [7–9] используют решетки.
В данной работе будет поставлена задача построения личностной криптосистемы на основе методов теории помехоустойчивого
кодирования, а также приведено описание нескольких подходов к
ее решению.
II. Кодовый подход к реализации личностной
криптосистемы
Все предложенные до сих пор личностные криптосистемы базируются на трех типах математических объектов: на точках эллиптической кривой, квадратичных вычетах и решетках. Безопасность этих систем основывается на допущениях о сложности некоторой задачи. Кодовые криптосистемы выгодно отличаются от
них тем, что в качестве основы безопасности в них используется
доказанно сложная задача декодирования случайного кода. Кроме того, так как коды являются линейными объектами, то и процедуры вычисления с ними чаще всего имеют невысокую сложность и могут быть легко реализованы аппаратно. Единственным
недостатком кодовых систем остается большой размер ключей, но
в случае личностной криптосистемы публичные ключи не требу-------------------------------------------------------
178
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
ется передавать по сети и хранить в некотором доверенном хранилище, поэтому данный недостаток может быть не столь важен.
В первую очередь опишем общий подход, который может быть
применен в реализации личностной криптосистемы на основе кодов, исправляющих ошибки.
A. Базовый подход
Пусть существует некоторая хеш-функция H ∗ : {0, 1}∗ → S,
где S – множество декодируемых синдромов некоторого кода C.
Тогда личностная криптосистема может быть описана следующим
образом.
• Начальная инициализация схемы.
Генератор секретных ключей выбирает некоторый двоичный
(n, k)-код C с проверочной матрицей H(MSK), имеющий полиномиальный алгоритм декодирования и корректирующую
способность t. Затем в качестве публичного параметра системы (PK) публикуется замаскированная проверочная матрица H ′ = V · H · P , где V – случайная невырожденная
((n − k) × (n − k)) матрица, H – проверочная ((n − k) × n)
матрица выбранного кода C, a P – случайная перестановочная (n × n) матрица.
• Вычисление секретного ключа.
По идентификатору пользователя системы (ID) генератор
секретных ключей вычисляет его публичный ключ при помощи функции H ∗ (PKID = H ∗ (ID)), равный некоторому
декодируемому синдрому кода C. После этого при помощи
известной только ему процедуры декодирования на основе
матрицы H находит соответствующий полученному синдрому вектор ошибки e: e · (H ′ )T = PKID , wt(e) ≤ t, который и
является секретным ключом SKID = e.
• Шифрование.
По идентификатору получателя сообщения (ID) отправитель вычисляет его публичный ключ PKID = H ∗ (ID). Для
шифрования одного бита исходного сообщения b случайным
-------------------------------------------------------
179
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
образом генерируется матрица



A=

a1
a2
..
.





al
такая, что PKID · ai = b, i = 1, l.
Также случайным образом генерируется двоичная маскирующая матрица X размера (n × l), где каждый элемент принимает значение 1 с вероятностью p.
Шифрограмма вычисляется по формуле C = (H ′ )T · A + X.
• Дешифрование.
Получатель сообщения при помощи своего секретного ключа вычисляет e · C и, если вес полученного вектора больше
l/2, принимает решение, что передавалась единица, иначе
ноль.
Для реализации системы при помощи данного подхода необходимо найти и описать функцию H ∗ . Такая же задача решалась
при разработке цифровой подписи на кодах. Попробуем использовать три известных на данный момент решения для построения
новой личностной криптосистемы.
B. Использование совершенных кодов
Самым очевидным способом построения функции H ∗ является замена ее обычной хеш-функцией, которая по исходной строке
будет возвращать строку длины n − k. Тогда, чтобы иметь возможность решать уравнение e · (H ′ )T = PKID , необходимо использовать совершенный код C, в котором декодируемым является любой синдром. В качестве такого кода мы рассматривали двоичный
код Хемминга, который существует на больших длинах и имеет
простую процедуру декодирования, единственным его недостатком является то, что он исправляет одну ошибку.
-------------------------------------------------------
180
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Данный недостаток был преодолен при помощи аппарата алгебро-геометрических кодов [10]. Код Хемминга был заменен кодом Гоппы, в котором каждый столбец проверочной матрицы кода Хемминга единственным образом представим суммой t столбцов проверочной матрицы. Таким образом, декодирование синдрома происходило в коде Хемминга, а потом полученная ошибка
представлялась в соответствии с разложением по столбцам кода
Гоппы. Реализация личностной криптосистемы полностью соответствовала базовой модели, кроме этапа «начальной инициализации», который включал дополнительные шаги по построению
кода Гоппы. В качестве публичного параметра системы выступала проверочная матрица кода Гоппы, а в качестве секретного
мастер-ключа – код Хемминга и процедура разложения.
Единственным недостатком данной схемы является малое количество кодов Гоппы, определяемое количеством порождающих
многочленов. В связи с этим сложность атаки по перебору всех
кодов оказалась сравнима со сложностью построения криптосистемы.
C. Использование переборной техники
Следующий способ основан на использовании классов кодов,
близких к совершенным, то есть кодов, в которых большинство
синдромов является декодируемыми. Подобная техника применялась в работе [11] для реализации кодовой цифровой подписи.
Основная идея состоит в том, что вместо однократного применения специальной функции H ∗ : {0, 1}∗ → S можно последовательно производить несколько хеширований, каждый раз проверяя, можно ли декодировать полученный синдром, если доля
декодируемых синдромов в общем количестве велика, то количество попыток в среднем будет небольшим. Например, для кодов
Гоппы можно оценить эту долю как t!1 , где t – корректирующая
способность кода.
Тогда общая схема криптосистемы изменится следующим образом.
-------------------------------------------------------
181
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
• Начальная инициализация схемы.
Генератор секретных ключей выбирает некоторый двоичный
(n, k)-код C, имеющий полиномиальный алгоритм декодирования и корректирующую способность t, и публикует его
замаскированную проверочную матрицу H ′ = V · H · P в
качестве публичного параметра системы, где V – случайная
невырожденная ((n − k) × (n − k)) матрица, H – проверочная ((n − k) × n) матрица выбранного кода C, P – случайная
перестановочная (n × n) матрица.
• Вычисление секретного ключа.
По идентификатору пользователя системы (ID) генератор
секретных ключей последовательно вычисляет PKID =
hash(ID, i), для i = 1, 2, . . ., и на каждом шаге пытается декодировать полученный синдром. В среднем через t! шагов
он находит соответствующий полученному синдрому вектор
ошибки e: e · (H ′ )T = PKID , wt(e) ≤ t, SKID = e.
• Шифрование.
Так как отправителю неизвестно, на каком шаге был получен декодируемый синдром, он шифрует сообщения на
нескольких (t!) вариантах PKID аналогично базовой схеме.
• Дешифрование.
Получатель сообщения выбирает нужную шифрограмму (так
как он знает «правильный» публичный ключ) и при помощи
своего секретного ключа вычисляет e · C и, если вес полученного вектора больше l/2, принимает решение, что передавалась единица, иначе ноль.
Данная схема имеет ряд достоинств: можно подобрать параметры схемы таким образом, чтобы она имела очень низкую вычислительную сложность процедур шифрования и дешифрования. Однако передача набора шифротекстов повышает нагрузку
на сеть. Применяя ряд оптимизаций, таких, как построение одной
шифрограммы для набора синдромов и передача в одном сообщении более одного бита, можно достичь нагрузки ≈ 200 кБ на бит,
что с одной стороны достаточно много, а с другой – уже сравнимо
с системой Кокса на остатках [5].
-------------------------------------------------------
182
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
D. Использование линейного подмножества декодируемых
синдромов
Последний, третий подход состоит в использовании идеи из работы [12] для построения H ∗ : {0, 1}∗ → S. В качестве реализации
H ∗ идентификатор пользователя сначала хешируется до фиксированного размера некоторой нелинейной однонаправленной функцией, а потом умножается на матрицу H ∗ = G · H(J)T , где G
– некоторая порождающая матрица кода G с известным минимальным расстоянием, а H(J) – подматрица проверочной матрицы кода с известным алгоритмом декодирования. Тогда, умножая
произвольный вектор v на H ∗ , получим v · G · H(J)T = gi · H(J)T ,
если wt(gi ) ≤ t, значит, это декодируемый синдром. Тогда базовая
криптосистема изменяется следующим образом.
• Начальная инициализация схемы.
К генерации публичного параметра системы H ′ добавляется
построение публичной функции H ∗ , а именно – выбор кода
G и его порождающей матрицы G, выбор секретного набора позиций J и вычисление второго публичного параметра
матрицы H ∗ .
Процедуры «вычисление секретного ключа», «шифрование» и «дешифрование» не будут отличаться от базовой системы.
Данная система наиболее эффективна как по объему вычислений, так и по количеству передаваемых данных на бит. Однако она
имеет один существенный недостаток, она не является стойкой к
атаке по выбранному идентификатору, так как при многократных
запросах ключей для различных ID система подвержена атаке с
обучением, описанной в работе [13].
III. Заключение
В работе было рассмотрено несколько подходов к реализации
личностной криптосистемы, основанной на кодах, исправляющих
ошибки.
-------------------------------------------------------
183
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Была рассмотрена возможность применения совершенных кодов, что оказалось невозможным в виду специфических свойств
кодов и их чрезвычайно малого количества.
В результате проделанной работы удалось получить пример
стойкой криптосистемы с малой сложностью процедур шифрования и дешифрования, но большим размером шифрограммы.
Соответственно, для данной криптосистемы необходимо предложить дополнительные меры по оптимизации объема передаваемого шифротекста.
Была также предложена личностная криптосистема на базе
цифровой подписи [12], стойкость которой напрямую связана со
стойкостью базовой системы. В случае, если удастся расширить
подпространство декодируемых синдромов, в которое отображается исходное множество идентификаторов, можно получить
вполне конкурентоспособную криптосистему.
Литература
[1] A. Shamir, Identity-based cryptosystems and signature schemes, Proc. of
Crypto 84, LNCS 196, pages 47–53, 1984.
[2] D. Boneh, M. Franklin, Identity based encryption from the weil pairing,
Proc. Crypto 01, LNCS 2139, pages 213–229, 2001.
[3] D. Boneh, X. Boyen, Efficient selective-id secure identity based encryption
without random oracles, Proc. Eurocrypt 04, LNCS 3027, pages 223–238,
2004.
[4] B. Waters, Efficient identity based encryption without random oracles, Proc.
Eurocrypt 05, LNCS 3494, pages 114–127, 2005.
[5] C. Cocks, An identity based encryption scheme based on quadratic residues,
LNCS 2260, pages 360–363, 2001.
[6] D. Boneh, C. Gentry, M. Hamburg, Space-efficient identity based encryption
without pairings, Proc. FOCS 07, pages 647–657, 2007.
[7] C. Gentry, C. Peirert, V. Vaikuntanathan, Trapdoors for hard lattices and
new cryptographic constructions, Proc. STOC 08, 2008.
[8] S. Agrawal and X. Boyen, Identity-based encryption from lattices in the
standard model, Manuscript, 2009.
[9] A. Kawachi, K. Tanaka, K. Xagawa, Multi-bit cryptosystems based on lattice
problems, Proc. PKC 07, pages 315–329, 2007.
[10] S. Bezzateev, N. Shekhunova, Class of binary generalized goppa codes perfect
in weighted hamming metric, Proc. WCC 11, 2011.
-------------------------------------------------------
184
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
[11] N. Courtois, M. Finiasz, N. Sendrier, How to achieve a mceliece based digital
signature scheme, Springer-Verlag, 2001.
[12] G. Kabatianskii, E.Krouk, B. J. M. Smeets., A digital signature scheme
based on random error-correcting codes, IMA Int.Conf., LNCS 1355, pages
161–167, 1997.
[13] P.-L. Cayrel, A. Otmani, D. Vergnaud, On kabatianskii-krouk-smeets
signatures, Proc. WAIFI 2007, pages 237—-251, 2007.
-------------------------------------------------------
185
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Пороговая криптосистема на основе
идентификационных данных
А.В. Афанасьева
С.В. Беззатеев
Е.М. Линский
программист
к.т.н. доцент
к.т.н. доцент
Санкт-Петербургский государственный
университет аэрокосмического приборостроения
I. Введение
Идея создания криптосистемы на основе идентификационных
данных (КСОИД) была предложена А. Шамиром [1] в 1984. Отличительной чертой этой криптосистемы является возможность
использования в качестве публичного ключа уникального идентификатора пользователя (любой строки, например, электронного
адреса someone@somehost.com). В отличие от традиционных публичных криптосистем, в КСОИД отправителю не нужно получать
публичный ключ получателя и его сертификат, так как данный
ключ может быть получен из уникального идентификатора получателя. Таким образом, в КСОИД не требуется доверенный центр
сертификации, хранящий публичные ключи всех пользователей
системы и их сертификаты. В то же время для данной схемы требуется другой доверенный центр, а именно — генератор секретных
ключей (ГСК), который генерирует секретные ключи пользователей на основе их идентификаторов и секретного мастер-ключа.
Главным достоинством КСОИД является то, что отправителю
не нужно запрашивать публичный ключ получателя, а серьезным
недостатком то, что ГСК является наиболее уязвимой частью системы. Если ГСК будет компрометирован, то все ранее выданные
секретные ключи будут раскрыты. Если ГСК будет недоступен,
то новые пользователи не смогут присоединиться к сети. До настоящего времени были предложены системы КСОИД, основан-------------------------------------------------------
186
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
ные на двух различных математических аппаратах (построенные
с использованием аппарата теории чисел [2, 3], и построенные с
использованием аппарата эллиптических кривых [4–6]).
Для устранения вышеупомянутых недостатков КСОИД была
предложена пороговая криптосистема на основе идентификационных данных (ПКСОИД). В данной криптосистеме любая коалиция из определенного количества узлов сети может выступать в
роли ГСК. Пусть сеть содержит l узлов, способных формировать
ГСК, тогда любая коалиция из k (1 ≤ k ≤ l) таких узлов вместе
может образовать ГСК. Эта коалиция может генерировать секретные ключи для новых пользователей. Однако ни один из ее
участников не имеет полной информации ни о секретном мастерключе системы, ни о сгенерированных секретных ключах.
Ключевой идеей ПКСОИД является разделение секретного
мастер-ключа между всеми l узлами системы. В общем виде выдача секретного ключа пользователю происходит следующим образом. Пользователь выбирает коалицию из k участников и посылает им запрос. Все участники по отдельности производят частичные вычисления со своей тенью секретного мастер-ключа и идентификатором пользователя, а затем отсылают пользователю свои
результаты (тени секретного ключа пользователя). Пользователь
комбинирует присланные тени и получает собственный секретный
ключ.
Ранее в литературе были описаны пороговые криптосистемы
[7,8], построенные с использованием аппарата эллиптических кривых, разработанные на основе КСОИД [4,6] того же типа. Однако
для существующих теоретико-числовых решений [2, 3], которые
имеют меньшую вычислительную сложность процедур шифрования и дешифрования, на данный момент пороговых схем не существует. В статье нами будет предложена новая схема ПКСОИД
для системы, описанной в работе [2].
Статья организована следующим образом. Раздел II посвящен
введению основных определений и допущений. Раздел III содержит описание предложенной схемы. В заключении приведены полученные результаты.
-------------------------------------------------------
187
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
II. Определения и допущения
A. Определение ПКСОИД
Определение 1: (ПКСОИД) Будем называть (k, l)-пороговой
криптосистемой на основе идентификационных данных, или (k, l)ПКСОИД, схему, включающую в себя следущие алгоритмы: Начальная инициализация, Генерация теней секретного ключа, Проверка теней секретного ключа, Вычисление секретного ключа по
теням, Шифрование, Дешифрование.
Более детально алгоритмы можно описать следующим образом.
1. Начальная инициализация(l, k, σ). Алгоритм, берущий
на вход количество узлов в сети l, которые могут входить в
ГСК, порог k (1 ≤ k ≤ l) и параметр безопасности σ ∈ Z.
На выходе алгоритм выдает тройку (PK, VK, SK), где PK –
публичные параметры системы, VK – множество проверочных ключей и SK = (SK1 , . . . , SKl ) – набор теней секретного
мастер-ключа системы. Каждый узел i получает соответствующую тень секретного мастер-ключа системы (i, SKi ).
2. Генерация теней секретного ключа(PK, i, SKi , ID). Алгоритм, берущий на вход публичные параметры системы
PK, проверочные ключи VK, идентификатор нового пользователя ID и тень секретного мастер-ключа системы (i, SKi ).
На выходе алгоритм выдает тень секретного ключа (i, Hi ) и
проверочный ключ для этой тени Pi .
3. Проверка теней секретного ключа(PK, VK, ID, Hi , Pi ).
Алгоритм, берущий на вход публичные параметры системы
PK, набор проверочных ключей VK, идентификатор пользователя ID, тень секретного ключа нового пользователя Hi
и ее проверку Pi . На выходе выдает значения «valid» или
«invalid».
4. Вычисление секретного ключа(PK, ID, (H1 , . . . , Hk )). Алгоритм, берущий на вход публичные параметры системы
PK, идентификатор пользователя ID и k теней секретного
-------------------------------------------------------
188
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
ключа нового пользователя (H1 , . . . , Hk ). На выходе алгоритм выдает секретный ключ пользователя dID или сообщение об ошибке ⊥.
5. Шифрование(PK, ID, M ). Алгоритм, берущий на вход публичные параметры системы PK, идентификатор пользователя ID и сообщение M и выдает шифротекст C.
6. Дешифрование(PK, ID, dID , C). Алгоритм, берущий на
вход публичные параметры системы PK, идентификатор ID,
секретный ключ пользователя dID и шифрограмму C. Алгоритм выдает на выходе сообщение M или сообщение об
ошибке ⊥.
B. Определения из теории чисел
В первую очередь мы дадим определение символов Лежандра
и Якоби, используемых в оригинальной схеме Кокса.
Определение 2: (Символ Лежандра) Пусть a – целое число, а
p – простое, тогда символ Лежандра определен следующим образом:

если p|a,
( ) 
0,
a
(1)
= 1,
если a ∈ Qp ,

p

−1, если a ∈ Qp ,
где Qp – множество квадратичных вычетов (КВ) по модулю p, Qp
– множество квадратичных невычетов (КНВ) по модулю p.
Определение 3: Символ Якоби. Пусть a – целое число, а
M = p1 · p2 · . . . · pn , где p1 , p2 , . . . , pn – простые, тогда символ
Якоби определен как:
( ) ( ) ( )
( )
a
a
a
a
=
·
· ... ·
,
(2)
M
p1
p2
pn
( ) ( )
( )
где pa1 , pa2 , . . . , pan – значения соответствующих символов Лежандра.
-------------------------------------------------------
189
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
III. Пороговая криптосистема на основе
идентификационных данных
Вначале будет описана базовая схема КСОИД, а затем предложена ее пороговая модификация.
A. Описание базовой схемы
Схема КСОИД состоит из четырех алгоритмов: начальной инициализации, выдачи секретных ключей, шифрования и дешифрования.
В работе Кокса [2] эти алгоритмы описаны следующим образом:
1. Начальная инициализация. Генерируются случайным образом два больших простых числа p, q, таких что p = 3 mod 4
и q = 3 mod 4, и вычисляется M = p · q. Определена также
хэш-функция H: {0, 1}∗ → ZM . Благодаря свойствам p, q
для
( a ) каждого значения a = H(ID) выполняется равенство
M = 1, так как или a, или −a является квадратом по модулю M . Таким образом, алгоритм возвращает публичные
параметры системы PK = (H, M ) и секретный мастер-ключ
системы (p, q).
2. Выдача секретных ключей. Для каждого пользователя
с данным идентификатором ID публичным ключом является значение PKID = H(ID) = a, а секретным – dID = r,
где r – это квадратный корень из a или −a по модулю M .
Только ГСК, обладающий секретным мастер-ключом p и q,
может извлечь квадратный корень по модулю M , например,
по следующей формуле:
r=a
M +5−(p+q)
8
mod M.
(3)
Тогда r2 = a, если a является квадратичным вычетом (КВ)
по модулю M , или r2 = −a, если −a является квадратичным
вычетом по модулю M .
-------------------------------------------------------
190
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
3. Шифрование. Чтобы зашифровать один бит исходного текста x, где x ∈ {−1, 1}, для получателя с идентификатором
ID, отправитель должен вычислить его публичный ключ по
формуле PKID = H(ID), сгенерировать два случайных
( t1зна)
чения t1 и t2 такие, что gcd(t1 , M ) = gcd(t2 , M ) = 1, M
=
( t2 )
M = x, и вычислить
S 1 = t1 +
S 2 = t2 −
a
t1
a
t2
mod M,
mod M.
(4)
Шифротекстом является пара C = (S1 , S2 ).
4. Дешифрование. Дешифрование шифротекста C = (S1 , S2 )
выполняется при помощи секретного ключа dID = r следующим образом:
{ (S1 +2r)
если a – КВ по модулю M ,
)
x̂ = (S2M
(5)
+2r
если (−a) – КВ по модулю M .
M
B. Пороговая модификация системы Кокса
Далее описана ПКСОИД, основанная на КСОИД Кокса и алгоритме распределенной подписи Шоупа [9].
1. Начальная инициализация.
(a) Выбрать два сильных простых числа p = 2p′ + 1 и
q = 2q ′ + 1, где p′ , q ′ – простые и вычислить модуль
криптосистемы M = pq. Пусть m = p′ · q ′ , тогда легко
показать, что ϕ(M ) = 4 · m. Секретный мастер-ключ
вычисляется следующим образом:
d=
m+1
M + 5 − (p + q)
=
.
8
2
(6)
(b) Секретный мастер-ключ системы случайным образом
представляется в виде суммы
d = 4 · d1 + d2 .
-------------------------------------------------------
191
(7)
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
При помощи схемы разделения секрета Шамира выбранные значения d1 и d2 распределяются между всеми
l возможными участниками ГСК. Выбираются два случайных многочлена: f (x) по модулю m степени k − 1 с
f (0) = d1 и g(x) по модулю m степени k − 1 с g(0) = d2 .
Каждому i-му потенциальному участнику ГСК выдаются значения обоих многочленов в его точке i
(1)
= f (i) · ∆−1 mod m
(8)
(2)
= g(i) · ∆−1 mod m,
(9)
SKi
и
SKi
где 1 ≤ i ≤ l и ∆ = l!.
(c) Публичные параметры системы состоят из модуля системы M и двух значений x и y таких, что:
4d2 x + y ≡ d2
(mod ϕ(M )).
(10)
Значения x и y вычисляются следующим образом: выбирается случайное число 0 < x < 4 · m, затем y вычисляется по формуле y = d2 · (1 − 4x) mod ϕ(M ). Таким
образом, публичные параметры системы представлены
следующей тройкой: PK = (M, x, y).
(d) Для генерации проверочных ключей случайным образом выбирается значение v из подгруппы квадратичных
вычетов в ZM , и для каждого i-го 1 ≤ i ≤ l узла значение его проверочного ключа вычисляется по форму(1)
(2)
(1)
(2)
лам: vi = v SKi mod M и vi = v SKi mod M . Таким
образом, проверочный ключ системы формируется из
следующих значений:
(1)
(1)
(2)
(2)
VK = (v, v1 , . . . , vl , v1 , . . . , vl ).
(11)
2. Генерация теней секретного ключа. Новый пользователь системы ПКСОИД запрашивает свой секретный ключ
-------------------------------------------------------
192
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
у k участников ГСК, посылая им свой ID. Каждый из участников выбранной коалиции вычисляет пару теней секретного ключа для полученного ID по следующим формулам: a =
(1)
(2)
(1)
(2)
Hash(ID), Hi = a4·SKi mod M , Hi = a4·SKi mod M , и
(1)
возвращает новому пользователю тройку значений {i, Hi ,
(2)
Hi }.
3. Проверка теней секретного ключа.
(a) Для проверки тени секретного ключа необходимо убе(1)
диться, что дискретный логарифм значения Hi
=
(1)
a4SKi mod M по основанию a4 равен дискретному логарифму vi по основанию v. Для выполнения этой проверки воспользуемся методом, предложенным в работе Шоупа с некоторыми необходимыми изменениями.
Участник ГСК высылает новому участнику сети вместе
с тенью его секретного ключа проверку для этой тени.
Эта проверка вычисляется по следующему алгоритму.
Пусть L(·) – это функция, возвращающая битовую длину входящей строки. И пусть H ′ – это некоторая хэшфункция, возвращающая битовую строку длины L1 , где
L1 – параметр безопасности. Для генерации проверки
для данной тени секретного ключа узел i выбирает случайное число r ∈ {0, . . . , 2L(M ) + 2L1 − 1} и вычисляет
(1)
ci
= H ′ (v, a4 , vi , (Hi ), v r , a4r )
(1)
(1)
(12)
и
(1)
zi
(1) (1)
= SKi ci + r.
(13)
(1)
Проверкой для тени секретного ключа Hi является
(1)
(1) (1)
пара Pi = (zi , ci ). Проверка для тени секретного
(2)
ключа Hi вычисляется аналогичным образом.
(b) Когда новый пользователь, запрашивающий ключ, получает тени своего секретного ключа и проверки к ним
-------------------------------------------------------
193
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
ото всех k участников ГСК, он проверяет выполнение
равенства
(1)
ci
= H ′ (v, a4 , vi , (Hi ),
(1)
(1)
(1)
(1)
(1)
(1)
v zi (vi )−ci , a4zi (Hi )−ci ).
(2)
Для Hi
(1)
(1)
(14)
проверка происходит аналогичным образом.
4. Вычисление секретного ключа по теням. Без потери
общности будем считать, что участники коалиции S имеют
номера 1, . . . , k, тогда через λ0,1 , . . . , λ0,k будем обозначать
коэффициенты Лагранжа для участников этой коалиции, а
через λ′0,1 = ∆ · λ0,1 , . . . , λ′0,k = ∆ · λ0,k ∈ Zm (∆ = l!) будем обозначать модифицированные
коэффициенты Лагран∑
жа, такие, что f (0)·∆ = ki=1 λ′0,i f (i). В этом случае секретный ключ пользователя может быть вычислен следующим
образом:
∏ (1)·λ′ S0,i
(1)
dID ≡
Hi
≡
i∈S
′(2)
dID
−1
∑
−1
∑
i∈S
≡ a4∆·∆
(2)
dID
S
i∈S f (i)λ0,i ≡ a4d1
≡ a4∆·∆
∏ (2)·λ′ S0,i
≡
Hi
≡
≡
dID ≡
′(2)x
dID · ay
(1)
(2)
dID · dID
i∈S
g(i)λS
0,i
≡ ad2
≡ a4d2
(mod M ),
(15)
(mod M ),
(16)
(mod M ),
≡ a4d1 +d2 ≡ ad
(mod M ).
(17)
5. Шифрование. Чтобы зашифровать один бит исходного текста x, где x ∈ {−1, 1}, для получателя с идентификатором
ID, отправитель должен вычислить его публичный ключ по
формуле PKID = H(ID), сгенерировать два случайных значения
( t1 ) (t1t2 )и t2 такие, что gcd(t1 , M ) = 1, gcd(t2 , M ) = 1,
M = M = x, и вычислить
S 1 = t1 +
S 2 = t2 −
-------------------------------------------------------
a
t1
a
t2
194
mod M,
mod M.
(18)
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Шифротекстом является пара C = (S1 , S2 ).
6. Дешифрование. Дешифрование шифротекста C = (S1 , S2 )
выполняется при помощи секретного ключа dID = r следующим образом:
{ (S1 +2r)
, если a – КВ по модулю M,
)
x̂ = (S2M
(19)
+2r
, если (−a) – КВ по модулю M.
M
IV. Заключение
В работе была предложена пороговая модификация для криптосистемы Кокса, основанной на идентификационных данных. Основными достоинствами схемы является неинтерактивность и низкая вычислительная сложность процедур шифрования и дешифрования по сравнению с существующими ПКСОИД схемами.
Литература
[1] A. Shamir, Identity-based cryptosystems and signature schemes, Proc. of
Crypto 84, LNCS 196, pages 47–53, 1984.
[2] C. Cocks, An identity based encryption scheme based on quadratic residues,
LNCS 2260, pages 360–363, 2001.
[3] D. Boneh, C. Gentry, and M. Hamburg, Space-efficient identity based
encryption without pairings, Proc. FOCS 07, pages 647–657, 2007.
[4] D. Boneh and M. Franklin, Identity based encryption from the weil pairing,
Proc. Crypto 01, LNCS 2139, pages 213–229, 2001.
[5] D. Boneh and X. Boyen, Efficient selective-id secure identity based encryption
without random oracles, Proc. Eurocrypt 04, LNCS 3027, pages 223–238,
2004.
[6] B. Waters, Efficient identity based encryption without random oracles, Proc.
Eurocrypt 05, LNCS 3494, pages 114–127, 2005.
[7] D. Boneh, X. Boyen, and S. Halevi, Chosen ciphertext secure public key
threshold encryption without random oracles, Proc. RSA-CT 06, LNCS 3860,
pages 226–243, 2006.
[8] J. Li and Y. Wang, Threshold identity based encryption scheme without
random oracles, Proc. WCAN 06, 2006.
[9] V. Shoup, Practical threshold signatures, Proc. Eurocrypt 00, LNCS 1807,
pages 207–220, 2000.
-------------------------------------------------------
195
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Использование семейства вложенных
(L, G) кодов в протоколах анонимного
запроса к данным
С.В. Беззатеев
к.т.н. доцент
Санкт-Петербургский государственный
университет аэрокосмического приборостроения
I. Введение
В настоящее время информация о предпочтениях и интересах
частных лиц представляет определенный интерес и в некоторых
случаях имеет вполне значимую цену. При этом, к сожалению,
нельзя гарантировать, что владельцы информационных ресурсов
будут соблюдать конфиденциальность и не будут собирать данные о предпочтениях клиентов с целью перепродажи их третьим
лицам. Протоколы извлечения информации без раскрытия запроса позволяют пользователю получить желаемую информацию из
базы данных таким образом, что владелец базы данных ничего
не узнает о номере бита, который запрашивал пользователь. Понятие такого протокола впервые было введено в работе B. Chor,
O. Goldreich, E. Kushilevitz и M. Sudan [1] под названием Private
Information Retrieval Protocol, поэтому мы в дальнейшем будем
называть такие схемы протоколами анонимного запроса к данным. Существует множество примеров, где использование про∗
Материал этой статьи частично представлялся на 7-й конференции
FRUCT, Санкт-Петербург, 26-30 апреля 2010.
-------------------------------------------------------
196
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
токолов, которые скрывают от владельца базы данных интересы клиентов, пользующихся такими базами, может быть полезно.
Приведем здесь лишь некоторые из таких систем.
Фармацевтические базы данных. Обычно фармацевтические
компании интересуются либо вопросами изобретения и соответственно патентования новых лекарств, либо получением максимального объема информации об определенных компонентах лекарственных препаратов и их свойствах (фармацевтические базы данных). В процессе создания нового лекарства производителю требуется получить максимальный объем информации о свойствах его компонент. Соответственно, по запросам сотрудников
компании-производителя можно получить представление о том,
разработкой какого типа лекарств занимается компания в данный момент. Чтобы скрыть планы компании, можно купить все
необходимые для работы базы данных, однако это весьма дорого
и, кроме того, требует постоянных обновлений. В этом случае использование протоколов анонимного запроса к данным позволяет
избежать таких затрат.
Собственные распределенные базы данных. В настоящее время
все более востребованными становятся распределенные хранилища данных, предоставляемые в пользование различным организациям. Такие услуги существенно снижают расходы компаний на
хранение информации и поддержание работоспособности систем
управления базами данных. Однако, в таком случае появляется
проблема конфиденциальности хранящейся и обрабатываемой таким образом информации. В этом случае защищаемой информацией является не только содержание хранимых и обрабатываемых данных, но и то, к каким данным обращаются пользователи
наиболее часто или в какие моменты времени, кроме того, третьи лица могут интересоваться закономерностями в обращениях к
определенным данным и определенным, наиболее частым связям
запросов между собой. Использование для таких систем протоколов анонимного запроса позволяет обеспечить конфиденциальность не только самих данных в неконтролируемых хранилищах,
но и скрыть информацию о запросах к таким базам данных.
-------------------------------------------------------
197
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
II. Использование семейства вложенных (L, G) кодов
для обеспечения анонимности запросов
Одним из способов построения протоколов анонимных запросов является использование помехоустойчивых кодов. В работах
[2, 3, 4] для этих целей предлагается использовать специальный
класс кодов — так называемые частично декодируемые коды, то
есть коды, в которых можно восстанавливать определенную часть
информационных символов. Здесь будет рассмотрен вариант построения протокола анонимных запросов, использующий семейства вложенных (L, G) кодов [5].
Данные, находящиеся в информационной базе, предварительно будут закодированы заранее выбранным множеством вложенных (L, G) кодов. Для каждого i-го поля записи выберем свой
(Li , Gi ) код в качестве «базового». Информация из i-го поля кодируется с использованием надкода (Li , gi ), где Gi (x) ≡ 0 (mod gi (x)),
и минимальные расстояния этих кодов соотносятся следующим
образом:
d(Li , Gi ) − 1
,
di ≤
2
где d(Li , Gi ) — минимальное расстояние (Li , Gi ) кода.
Таким образом, слова минимального веса надкода (Li , gi ) можно интерпретировать как вектора ошибок, которые могут быть
исправлены «базовым кодом» (Li , Gi ), выбранным для данного
поля записи.
Принцип кодирования с использованием «базового» (Li , Gi )
кода и его надкода (Li , gi ) выглядит в общем случае следующим
образом: информация, представленная кодовым словом al веса
di надкода (Li , gi ) маскируется произвольным кодовым словом bi
«базового» кода (Li , Gi ):
el = al + bi .
Таким образом, запись, состоящая из n различных полей, будет
иметь следующий вид:
[
]
e1 e2 . . . en .
(1)
-------------------------------------------------------
198
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Очевидно, что в каждом поле информация представлена некоторым произвольным кодовым словом соответствующего надкода
(Li , gi ).
Запрос (request) на получение значения определенного (k-го)
поля записи, обеспечивающий при этом анонимность запрашиваемого поля, будет выглядеть следующим образом:
]
[
request = h∗1 h∗2 . . . Hk∗ . . . h∗n ,
где

Ai − случайная матрица размером rGi × rgi ,




rGi − избыточность «базового» кода (Li , Gi ),




rg − избыточность надкода (Li , gi ),


 i
hi − проверочная матрица надкода
h∗i = Ai ·hi ·Pi , где
размером rgi × ni ,





Pi − перестановочная матрица размером




ni × ni ,


ni − длина кода(Li , Gi ),

Ak − случайная матрица размером




rGk × rGk ,




H
−
проверочная матрица «базового»

k


кода размером rGk × nk ,
Hk∗ = Ak ·Hk ·Pk , где
P
−
перестановочная матрица размером

k




nk × nk ,



 nk − длина кода (Li , gi ), совпадающая с


длиной кода (Li , Gi ).
Тогда, в результате выполнения запроса к информации, содержащейся в k-м поле записи (1) при использовании выписанного
вектора запроса request получим:
[a1 + bi1 a2 + bi2 . . . ak + bik . . . an + bin ]×
× [h∗1 h∗2 . . . Hk∗ . . . h∗n ]T =
= [a1 + bi1 ] · (h∗1 )T + [a2 + bi2 ] · (h∗2 )T + . . .
. . . + [ak + bik ] · (Hk∗ )T + . . . + [an + bin ] · (h∗n )T .
-------------------------------------------------------
199
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Рассмотрим слагаемое, получаемое для первого поля записи:
[
]
[α1 · D · Gg1 · P1 + β1 · B · GG1 · P1 ] · P1T · (h1 )T · AT1 ,
где P1 — одинаковые для данного поля перестановочные матрицы, используемые в процессе шифрации базы данных, перед ее
загрузкой на удаленный, неконтролируемый сервер, и при формировании запроса к данному полю такой базы, Gg1 — порождающая матрица надкода (L1 , g1 ), используемого при обработке
информации первого поля, D — неособенная матрица размера
kg1 × kg1 , где kg1 — число информационых символов в надкоде
(L1 , g1 ), kg1 + rg1 = n1 , α1 — информационный вектор первого поля записи, такой, что вес Хэмминга соответствующего ему кодово1 )−1
го слова надкода (L1 , g1 ) не превышает величины d1 ≤ d(L1 ,G
,
2
GG1 — порождающая матрица «базового» кода Гоппы для первого
поля, β и B — соответственно случайный информационный вектор базового кода и случайная неособенная матрица для первого
поля.
Очевидно, что для первого поля записи получим:
α1 · D · Gg1 · P1 · P1T · (h1 )T · AT1 +
+ β1 · B · GG1 · P1 · P1T · (h1 )T · AT1 =
= α1 · D · Gg1 · (h1 )T · AT1 + β1 · B · GG1 · (h1 )T · AT1 = 0,
так как P1 ·P1T = E, где E — единичная матрица, и Gg1 · (h1 )T = 0,
GG1 · (h1 )T = 0, так как h1 — проверочная матрица надкода
(L1 , g1 ), и следовательно, она же является подматрицей проверочной матрицы H1 базового кода (L1 , G1 ) для этого поля. Очевидно,
что для всех остальных полей записи, за исключением запрашиваемого поля, также получатся значения, равные 0.
Слагаемые же для запрашиваемого k-го поля будут иметь следующие значения:
]
[
[αk · D · Ggk · Pk + βk · B · GGk · Pk ] · PkT · (Hk )T · ATk =
= αk · D · Ggk · Pk · PkT · (Hk )T · ATk =
= αk · D · Ggk · (Hk )T · ATk ,
-------------------------------------------------------
200
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
где αk · D · GGk = ak — кодовое слово надкода, вес которого не
превышает корректирующей способности «базового» (Lk , Gk ) кода Гоппы.
Таким образом, имея
αk · D · Ggk · (Hk )T · ATk = ak · (Hk )T · ATk
и зная матрицу Ak , легко получить значения синдромных компонент Rk для «базового» кода (Lk , Gk ):
T
T
ak · (Hk )T · ATk · (A−1
k ) = ak · (Hk ) = Rk .
Далее, используя знание множества нумераторов позиций Lk и
многочлен Гоппы Gk и применяя стандартный алгоритм декодирования для кодов Гоппы, можно получить значение вектора ошибок по его синдромным компонентам, то есть фактически получить значение вектора a, а значит, и значение информационного
вектора k-го поля αk . Таким образом, мы восстановим значение
запрашиваемого поля записи.
Литература
[1] Chor B., Goldreich O., Kushilevitz E., Sudan M., Private information
retrieval, Proc. of the 36th Annu. IEEE Symp. on Foundations of Computer
Science, pp. 41-51, 1995.
[2] Hemenway B., Ostrovsky R., Public Key Encryption hich is Simultaneously
a Loccaly-Decodable Error-Correcting Code, Electronic Collocquium on
Computational Complexity, 2007, N. 21.
[3] Yekhanin S., New Locally Decodable Codes and Private Information
Retrieval Schemes, Electronic Colloquium on Computational Complexity
(ECCC), TR06-127.
[4] Goldreich O., Karloff H., Schulman L., Trevisan L., Lower bounds for linear
locally decodable codes and private information retrieval systems, Proc. of
the 17th IEEE Conf. on Complexity Theory. IEEE Computer Society Press,
2002.
[5] Bezzateev S.V., Shekhunova N.A., On the Subcodes of one class Goppa
codes, Proc. Intern. Workshop Algebraic and Combinatorial Coding Theory
ACCT-1, Sept. 1988, pp.143-146.
-------------------------------------------------------
201
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Модификация системы открытых ключей
HFE
В.А. Давыдов
Директор Управления по работе с проблемными активами
Северо-Западного Банка Сбербанка РФ
I. Система HFE
Наиболее известным из вариантов системы на базе полиномов от нескольких переменных является предложенная в 1996 году [1] система открытых ключей, широко известная сегодня как
HFE или «Hidden Field Equations». Система использует малое поле GF (Q) (обычно используют Q = 2) и его расширение GF (Qk )
(рекомендуемая величина k = 128). Расширенное поле GF (Qk )
может быть представлено как пространство векторов длины k
над полем GF (Q). Каждый элемент поля u ∈ GF (Qk ) представим в виде разложения по базисным векторам {w1 , w2 , . . . , wk } ∈
GF (Qk ):
u=
k
∑
wi ui ↔ (u1 , u2 , . . . , uk ) , ui ∈ GF (Q), 1 ≤ i ≤ k.
i=1
Для построения публичного ключа пользователь выбирает случайным образом полином C(X) от одной переменной X с коэффициентами cij из поля GF (Qk ) в следующей форме:
C(X) =
r−1 ∑
r−1
∑
i
j
cij X Q +Q .
i=0 j=0
Параметр r является константой, которая гарантирует, что степень C(X) не превосходит определенной величины. Обозначим
-------------------------------------------------------
202
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
степень полинома deg(C(X)) = d. Для случая Q = 2 в [8] рекомендуется выбирать r = 13, что позволяет получать deg(C(X)) =
d ≤ 8192.
Ограничение степени полинома C(X) необходимо для того,
чтобы сложность решения уравнения C(X) = Y в поле GF (Qk )
была приемлемой для пользователя. В [8] показывается, что при
применении алгоритма Берлекэмпа для случая Q = 2m средняя
ожидаемая сложность алгоритма равна O(mk 3 d2 + k 2 d3 ). Более
того, данный алгоритм является детерминированным и в худшем
случае сложность будет O(m2 k 4 d2 + mk 3 d3 ).
Будем считать, что число элементов расширенного конечного
поля GF (Qk ) больше степени полинома C(X), т.е. Qk > deg(C(X)),
k
и называть такой полином приведенным по модулю X Q − X.
k
В [7] показано, что приведенный по модулю X Q − X многочлен
C(X) может быть однозначно (для выбранного базиса {w1 , w2 ,
. . ., wk } ∈ GF (Qk )) представлен в виде алгебраической суммы
системы полиномов, а именно:
C(u) = C(w1 u1 + . . . + wk uk ) =
= w1 c1 (u1 , u2 , . . . , uk ) + . . . + wk ck (u1 , u2 , . . . , uk ),
где ci (x1 , x2 , . . . , xk ), 1 ≤ i ≤ k – полиномы от k переменных над
Q
Q
GF (Q), приведенные по модулю (xQ
1 − x1 )(x2 − x2 ) . . . (xk − xk ).
Из ограничения, наложенного на степени полинома C(X), следует, что все полиномы ci (x1 , x2 , . . . , xk ), 1 ≤ i ≤ k являются квадратичными полиномами, поскольку для любого целого i функция
i
xQ над полем GF (Qk ) является линейной функцией. Будем обозначать систему k полиномов от k переменных
Ck (xk ) = (c1 (x1 , x2 , . . . , xk ), c2 (x1 , x2 , . . . , xk ), . . . , ck (x1 , x2 , . . . , xk )) .
Таким образом, для HFE публичный ключ имеет следующий вид:
CkHFE (xk ) =(c1 (x1 , x2 , . . . , xk ), c2 (x1 , x2 , . . . , xk ), . . . ,
. . . , ck (x1 , x2 , . . . , xk )) =
-------------------------------------------------------
203
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
(
=
∑
γ1,i,j xi xj +
1≤i≤j≤k
∑
β1,j xj + α1 ,
1<j≤k
γ2,i,j xi xj +
1≤i≤j≤k
∑
...,
∑
∑
β2,j xj + α2 , . . .
1<j≤k
γk,i,j xi xj +
1≤i≤j≤k
∑
)
βk,j xj + αk .
1<j≤k
Необходимо отметить, что C(X) в общем случае не является
многочленом, отображающим каждый элемент поля α ∈ GF (Qk )
в уникальный элемент C(α) ∈ GF (Qk ), и следовательно, уравнение C(X) = Y над полем GF (Qk ) может иметь более одного
решения. В [1] доказывается, что для «не слишком больших» значений Q, k и d = deg(C(X)) (Q ≤ 64, k ≤ 1024, d ≤ 1024) всегда
возможно найти все корни уравнения C(X) = Y ∈ GF (Qk ). Число
таких решений не превосходит величины deg(C(X)) = d.
Для того, чтобы определить, какое именно из полученных решений уравнения C(X) = Y является исходным значением, в
системе HFE предусматривается введение дополнительной избыточности. Для этого в [1] в качестве вектора u = (u1 , u2 , . . . , uk ),
подставляемого в систему полиномов Ck (xk ), используется конкатенация информационного сообщения M длины m с элементами
из поля GF (Q) и нелинейной хэш-функции h(M ), значением которой является вектор длины k − m с элементами из поля GF (Q).
Таким образом, u = (u1 , u2 , . . . , uk ) = M ∥ h(M ).
Кроме системы полиномов Ck (xk ), в системе HFE также используются два аффинных преобразования, задаваемых системами полиномов Sk (xk ) и Tk (xk ) с коэффициентами над полем
GF (Q):
Sk (xk ) = (s1 (x1 , . . . , xk ), s2 (x1 , . . . , xk ), . . . , sk (x1 , . . . , xk )) =
(
∑
∑
=
η1,j xj + δ1 ,
η2,j xj + δ2 , . . .,
1<j≤k
1<j≤k
...
∑
)
ηk,j xj + δk ,
1<j≤k
-------------------------------------------------------
204
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Tk (xk ) = (t1 (x1 , . . . , xk ), t2 (x1 , . . . , xk ), . . . , tk (x1 , . . . , xk )) =
(
)
∑
∑
∑
=
ξ1,j xj + µ1 ,
ξ2,j xj + µ2 , . . .,
ξk,j xj + µk .
1<j≤k
1<j≤k
1<j≤k
Преобразования Sk (xk ) и Tk (xk ) выбираются таким образом, чтобы существовали обратные преобразования, задаваемые системами полиномов S−k (xk ) и T−k (xk ) соответственно. Важно отметить, что результат композиции отображений, получаемый в результате последовательного применения систем полиномов Sk (xk ),
CkHFE (xk ) и Tk (xk ), дает отображение, описываемое системой полиномов Zk (xk ), которая состоит из квадратичных функций, т.е.
аналогична по структуре системе CkHFE (xk ). Описанное последовательное применение систем полиномов будем обозначать через
ZkHFE (xk ) = Tk (CkHFE (Sk (xk ))).
Процедура шифрования в системе HFE исходного сообщения
M длины m с элементами из поля GF (Q) состоит из двух этапов.
На первом этапе к сообщению M добавляется значение хэшфункции h(M ), которым является вектор длины k − m с элементами из поля GF (Q). В результате получаем вектор u = (u1 , u2 ,
. . ., uk ) = M ∥ h(M ).
На втором этапе полученный вектор подставляется в квадратичную систему полиномов ZkHFE (xk ). В результате получаем
криптограмму v = (v1 , v2 , . . . , vk ) = ZkHFE (u1 , u2 , . . . , uk ) с элементами из поля GF (Q).
Процедура дешифрования криптограммы v = (v1 , v2 , . . . , vk ) в
системе HFE состоит из четырех этапов.
На первом этапе к полученной криптограмме v = (v1 , v2 , . . . , vk )
применяется система полиномов T−k (xk ). В результате получается вектор v′ = (v1′ , v2′ , . . . , vk′ ) = T−k (v1 , v2 , . . . , vk ) с элементами
из поля GF (Q).
На втором этапе вектор v′ = (v1′ , v2′ , . . . , vk′ ) с учетом базиса
{w1 , w1 , . . . , wk } ∈ GF (Qk ) интерпретируется как элемент V ′ =
v1′ w1 + v2′ w2 + . . . + vk′ wk ∈ GF (Qk ), и определяются элементы
поля V ′′ ∈ GF (Qk ), удовлетворяющие уравнению C(V ′′ ) = V ′ .
Множество полученных элементов обозначим как {V ′′ }.
-------------------------------------------------------
205
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
На третьем этапе последовательно выбираются элементы V ′′ ∈
{V
и каждый элемент V ′′ ∈ GF (Qk ) с учетом базиса {w1 , w2 ,
. . ., wk } ∈ GF (Qk ) интерпретируется как вектор v′′ = (v1′′ , v2′′ ,
. . ., vk′′ ), 1 ≤ i ≤ k, vi′′ ∈ GF (Q), для которого выполняется равенство V ′′ = v1′′ w1 + v2′′ w2 + . . . + vk′′ wk . К полученному вектору
v′′ = (v1′′ , v2′′ , . . . , vk′′ ) применяется система полиномов S−k (xk ). В
результате получаем вектор S−k (v1′′ , v2′′ , . . . , vk′′ ) = (v1′′′ , v2′′′ , . . . , vk′′′ )
с элементами из поля GF (Q).
′′′ ) =
На четвертом этапе производится сравнение h(v1′′′ , v2′′′ , . . . , vm
′′′
′′′
′′′
(vm+1 , vm+2 , . . . , vk ). В случае, если равенство соблюдено, получа′′′ ) = M .
ем исходное сообщение (v1′′′ , v2′′′ , . . . , vk−m
Криптостойкость системы HFE основывается на проблеме нахождения решения случайной квадратичной системы уравнений
от нескольких переменных (так называемая MQ-problem или проблема решения «Multivariate Quadratic equations»). Как было доказано в [2] и [3], данная задача принадлежит к классу NP-полных
задач.
Все коэффициенты в уравнениях ZkHFE (xk ) принадлежат полю GF (Q). Из построения системы ZkHFE (xk ) следует, что каждое
уравнение системы содержит
(
) ( )
k+1
k
+
+ 1 = k(k + 1)/2 + k + 1 =
2
1
′′ },
= k 2 /2 + 3k/2 + 1 = (k + 1)(k + 2)/2
коэффициентов над полем GF (Q). Число уравнений в системе
ZkHFE (xk ) равно k. Таким образом, число различных способов за(k+1)(k+2)k
2
дания системы ZkHFE (xk ) составляет Q
. Следовательно,
размер открытого ключа в битах для такой системы составляет
(k + 1)(k + 2)k
log2 Q.
2
Несмотря на то, что с 1996 года проблематика системы HFE
интенсивно исследовалась целым рядом авторов [4–6], на сегодня
остаются открытыми ряд основных вопросов.
-------------------------------------------------------
206
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Во-первых, возможно ли построить систему HFE с системой
полиномов ZkHFE (xk ), которая является системой, задающей взаимнооднозначное отображение множества векторов длины k над
полем GF (Q) на себя.
Во-вторых, возможно ли найти решение системы квадратичных уравнений ZkHFE (xk ) произвольного вида способом более быстрым, чем полный перебор.
В данной работе приводится алгоритм построения системы полиномов ZkHFE (xk ), задающей взаимнооднозначное отображение
множества векторов длины k над полем GF (Q) на себя.
II. Системы полиномов от нескольких переменных
Аппарат описывает отображение множества векторов размерности k с компонентами, принадлежащими GF (Q), на множество векторов размерности m, компоненты которых также принадлежат GF (Q). Обозначим через GF k (Q) прямое произведение
k экземпляров поля GF (Q). Элементами GF k (Q) являются вектора длины k с элементами, принадлежащими GF (Q). Число элементов множества GF k (Q) равно Qk . Обозначим через GF m (Q)
прямое произведение m экземпляров поля GF (Q). Элементами
GF m (Q) являются вектора длины m с элементами, принадлежащими GF (Q). Число элементов множества GF m (Q) равно Qm .
Пусть задано отображение F m,k векторов множества GF k (Q)
в произвольные вектора GF m (Q). Вектора из множества GF m (Q)
будем называть образами векторов из множества GF k (Q). Отображение F m,k каждому элементу u ∈ GF k (Q) ставит в соответствие один элемент F m,k (u) = z ∈ GF m (Q). Нескольким различным элементам GF k (Q) может соответствовать одинаковый элемент GF m (Q).
Будем считать, что все вектора множества GF k (Q) перенумерованы от 1 до Qk . Порядковый номер вектора будем обозначать
нижним индексом ut = (ut1 , ut2 , . . . , utk ) ∈ GF k (Q), 1 ≤ t ≤ Qk .
Для вектора ut ∈ GF k (Q) будем обозначать его образ F m,k (ut ) =
zt = (zt1 , zt2 , . . . , z tm ) ∈ GF m (Q). Соответственно для вектора
-------------------------------------------------------
207
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
us ∈ GF k (Q) обозначим образ F m,k (us ) = zs = (zs1 , zs2 , . . . , z sm ) ∈
GF m (Q). Компоненты вектора F m,k (ut ) = zt = (zt1 , zt2 , . . . , z tm )
будем обозначать следующим образом: zti = Fim,k (ut1 , ut2 , . . . , utk ),
1 ≤ i ≤ m, 1 ≤ t ≤ Qk .
Для некоторых значений 1 ≤ t ≤ Qk , 1 ≤ s ≤ Qk может выполняться равенство zt = (zt1 , zt2 , . . . , z tm ) = zs = (zs1 , zs2 , . . . , z sm ).
Таким образом, нижний индекс для множества образов не является порядковым номером образа во множестве GF m (Q), а лишь
указывает на соответствие между векторами GF k (Q) и их образами во множестве GF m (Q).
В [7] доказывается, что каждое отображение F 1,k , отображающее GF k (Q) → GF (Q), можно представить с помощью некоторого
многочлена f (x1 , x2 , . . . , xk ) над полем GF (Q), который по каждой из переменных имеет степень, меньшую Q. Этот многочлен
задается следующей формулой:
k
f (x1 , x2 , . . . , xk ) =
Q
∑
F 1,k (ut1 , . . . , utk )
t=1
k
∏
(1 − (xl − utl )Q−1 ). (1)
l=1
Пусть FQ [x1 , x2 , . . . , xk ] – кольцо многочленов от k переменных
Q
Q
над полем GF (Q). Пусть J = (xQ
1 − x1 , x2 − x2 , . . . , xk − xk ) –
идеал в кольце многочленов FQ [x1 , x2 , . . . , xk ], состоящий из всех
многочленов вида
Q
g1 (x1 , x2 , . . . , xk )(xQ
1 − x1 ) + g2 (x1 , x2 , . . . , xk )(x2 − x2 ) + . . .
. . . + gk (x1 , x2 , . . . , xk )(xQ
k − xk ),
где g1 (x1 , x2 , . . . , xk ), . . ., gk (x1 , x2 , . . . , xk ) ∈ FQ [x1 , x2 , . . . , xk ]. Для
дальнейших рассуждений нам потребуется Лемма 1 из второго тома [7]. Приведем ее полностью.
Лемма 1:
1. Для любого многочлена f (x1 , x2 , . . . , xk ) ∈ FQ [x1 , x2 , . . . , xk ]
найдется единственный многочлен g(x1 , x2 , . . . , xk ) ∈ FQ [x1 ,
-------------------------------------------------------
208
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
x2 , . . ., xk ], имеющий по каждой переменной степень, меньшую Q, и такой, что для любого вектора (c1 , c2 , . . . , ck ) ∈
GF k (Q) выполняется равенство g(c1 , c2 , . . . , ck ) = f (c1 , c2 ,
. . ., ck ).
2. Если f (x1 , x2 , . . . , xk ) ∈ FQ [x1 , x2 , . . . , xk ] и g(x1 , x2 , . . . , xk ) ∈
FQ [x1 , x2 , . . . , xk ], то равенство g(c1 , c2 , . . . , ck ) = f (c1 , c2 , . . .,
ck ) выполняется для всех векторов (c1 , c2 , . . . , ck ) ∈ GF k (Q)
тогда и только тогда, когда g(x1 , x2 , . . . , xk ) ≡ f (x1 , x2 , . . .,
Q
Q
xk ) (mod (xQ
1 − x1 , x2 − x2 , . . . , xk − xk )).
3. Для любого многочлена f (x1 , x2 , . . . , xk ) ∈ FQ [x1 , x2 , . . . , xk ]
найдется единственный многочлен g(x1 , x2 , . . . , xk ) ∈ FQ [x1 ,
x2 , . . ., xk ], имеющий по каждой переменной степень, меньшую чем Q, и удовлетворяющий соотношению f (x1 , x2 , . . .,
Q
Q
xk ) ≡ g(x1 , x2 , . . . , xk ) (mod (xQ
1 − x1 , x2 − x2 , . . . , xk − xk )).
Однозначно определенный многочлен g(x1 , x2 , . . . , xk ) из пункта 3 Леммы 1 называется в [7] результатом приведения многочлеQ
Q
на f (x1 , x2 , . . . , xk ) по модулю идеала J = (xQ
1 −x1 , x2 −x2 , . . . , xk −
xk ) и обозначается f ≡ g (mod J). В дальнейшем будем рассматривать только многочлены, приведенные по модулю J = (xQ
1 −
Q
x1 , xQ
−
x
,
.
.
.
,
x
−
x
)
с
коэффициентами
из
поля
GF
(Q).
2
k
2
k
Пусть задана система, состоящая из m полиномов от k переменных Fm (xk ) = (f1 (x1 , x2 , . . . , xk ), f2 (x1 , x2 , . . . , xk ), . . . , fm (x1 ,
x2 , . . ., xk )). Число переменных и число полиномов системы будем
называть размерностью данной системы. Для случая отображения F m,k формула (1) обобщается следующим образом:
Fm (xk ) = (f1 (x1 , . . . , xk ), f2 (x1 , . . . , xk ), . . . , fm (x1 , . . . , xk )) =
( Qk
k
∑ m,k
∏
=
F1 (ut1 , . . . , utk )
(1 − (xl − utl )Q−1 ),
t=1
Qk
∑
l=1
F2m,k (ut1 , . . . , utk )
t=1
k
∏
l=1
Qk
...,
∑
m,k
Fm
(ut1 , . . . , utk )
t=1
-------------------------------------------------------
(2)
(1 − (xl − utl )Q−1 ), . . .
k
∏
)
Q−1
(1 − (xl − utl )
) .
l=1
209
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Для системы полиномов Fm (xk ) множество GF k (Q) является множеством аргументов, а множество F m,k (GF k (Q)) – множеством значений системы полиномов Fm (xk ) от соответствующих аргументов. Из (2) следует, что каждый из m полиномов
Fm (xk ) имеет степень не более Q − 1 по каждой из k переменных
x1 , x2 , . . . , xk .
Для случая k = m получаем, что система полиномов Fk (xk )
задает отображение множества GF k (Q) на себя. Если каждому
вектору из множества аргументов системы полиномов Fk (xk ) соответствует единственный вектор из множества значений, такая
система задает некоторую перестановку множества и называется
ортогональной системой.
В [7] приводится определение перестановочного многочлена.
Определение 1: Многочлен f (x1 , x2 , . . . , xk ) ∈ FQ [x1 , x2 , . . . , xk ]
является перестановочным многочленом от k переменных над полем GF (Q), если для любого α ∈ GF (Q) уравнение f (x1 , x2 , . . .,
xk ) = α имеет ровно Qk−1 решений в GF k (Q).
В [7] доказывается, что многочлены, составляющие ортогональную систему Fk (xk ) = (f1 (x1 , x2 , . . ., xk ), f2 (x1 , x2 , . . ., xk ),
. . ., fk (x1 , x2 , . . . , xk )), являются перестановочными многочленами.
Как показано в [7], свойство быть перестановочным многочленом над полем GF (Q) инвариантно относительно любых преобразований вида
xi =
k
∑
αij yj + βi ,
1 ≤ i ≤ k,
(3)
j=1
где βi ∈ GF (Q), αij ∈ GF (Q), и матрица (αij ) – невырожденная.
Два многочлена от k переменных над полем GF (Q) называются
эквивалентными, если один из них может быть преобразован в
другой с помощью преобразований переменных вида (3).
-------------------------------------------------------
210
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
III. Зависимость вида ортогональной системы
полиномов от типа задаваемой перестановки
Для дальнейших рассуждений нам потребуется Теорема из
второго тома [7]. Приведем ее полностью.
Теорема 1: Пусть f (x1 , x2 , . . . , xk ) ∈ FQ [x1 , x2 , . . . , xk ], причем
deg(f (x1 , x2 , . . . , xk )) ≤ 2 и k ≥ 2. Если Q нечетно, то f (x1 , x2 ,
. . ., xk ) является перестановочным многочленом над полем GF (Q)
тогда и только тогда, когда он эквивалентен многочлену вида
g(x1 , x2 , . . . , xk−1 ) + xk для некоторого g(x1 , x2 , . . . , xk−1 ) ∈ FQ [x1 ,
x2 , . . ., xk−1 ]. Если же Q четно, то f (x1 , x2 , . . . , xk ) является перестановочным многочленом над полем GF (Q) тогда и только тогда, когда он эквивалентен многочлену вида g(x1 , x2 , . . . , xk−1 ) +
xk или многочлену вида g(x1 , x2 , . . . , xk−1 ) + x2k для некоторого
g(x1 , x2 , . . . , xk−1 ) ∈ FQ [x1 , x2 , . . . , xk−1 ].
Будем считать, что множество аргументов GF k (Q) упорядочено определенным образом. Вектора множества GF k (Q) будем
рассматривать как Q-ичную запись чисел от нуля до Qk − 1. Тогда, например, нулевой вектор будет соответствовать числу ноль,
а вектор, состоящий из k символов Q − 1, соответственно, числу
Qk − 1.
Обозначим через ∗ GF k (Q) множество значений, соответствующих множеству аргументов GF k (Q) для некоторой системы полиномов Fk (xk ). Пусть вектора множества значений ∗ GF k (Q) отличаются от векторов множества аргументов GF k (Q) по заданным
r позициям. Остальные k − r позиций во всех векторах указанных
множеств совпадают. Будем называть такие множества значений
и аргументов (k − r)-совпадающими множествами.
Теорема 2: Пусть задана ортогональная система полиномов
= (f1 (x1 , x2 , . . . , xk ), f2 (x1 , x2 , . . . , xk ), . . . , fk (x1 , x2 , . . . , xk )),
у которой множество значений ∗ GF k (2) и множество аргументов
GF k (2) являются (k − r)-совпадающими множествами. Для удобства обозначений будем считать, что в качестве различных выбраны первые r позиций. Тогда любой полином fi (x1 , x2 , . . . , xk ), 1 ≤
Fk (xk )
-------------------------------------------------------
211
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
i ≤ k, входящий в систему Fk (xk ), имеет вид fi (x1 , x2 , . .∏
. , xk ) =
g(x1 , x2 , . . . , xr ), где g(x1 , x2 , . . . , xr ) не содержит монома ri=1 xi .
Доказательство: Независимость значений полинома fi (x1 , x2 ,
. . ., xk ) от переменных xr+1 , xr+2 , . . . , xk , и как следствие данной
независимости, представление полинома fi (x1 , x2 , . . . , xk ) в виде
полинома g(x1 , x2 , . . . , xr ), следует из формулы (2) и того факта,
что множество значений ∗ GF k (2) и множество аргументов GF k (2)
системы полиномов Fk (xk ) являются (k − r)-совпадающими множествами.
Заметим, что полином g(x1 , x2 , . . . , xr ) является перестановочным полиномом, а Q = 2 – четно. Из Теоремы 1 следует, что для
полинома g(x1 , x2 , . . . , xr ) существует некоторое преобразование
вида (3), с помощью которого возможно преобразовать g(x1 , x2 ,
. . ., xr ) ⇒ g ′ (y1 , y2 , . . . , yr−1 )+yr , где g ′ (y1 , y2 , . . . , yr−1 ) ∈ F2 [y1 , y2 ,
. . ., yr−1 ]. Отметим, что преобразование к виду g(x1 , x2 , . . . , xr ) ⇒
g ′ (y1 , y2 , . . . , yr−1 ) + yr2 для случая Q = 2 невозможно, так как все
полиномы приводятся по модулю mod (y12 −y1 , y22 −y2 , . . . , yk2 −yk ).
Предположим,
что в состав полинома g(x1 , x2 , . . . , xr ) входит
∏r
моном i=1 xi . Коэффициенты указанного преобразования вида
(3) образуют невырожденную матрицу (αij ), следовательно, никакая строка данной матрицы не может
∏r быть нулевой. Данное
условие эквивалентно тому, что моном i=1 xi , входящий в полином g(x1 , x2 , . . . , xr ), в результате
преобразования (3) обязательно
∏r
будет содержать моном i=1 yi . Таким образом, получили противоречие. Следовательно, наше предположение
неверно и в состав
∏
g(x1 , x2 , . . . , xr ) не входит моном ri=1 xi .
IV. Построение ортогонального открытого ключа для
системы HFE
Разобьем k позиций на z непересекающихся блоков, в каждом
из которых не более трех позиций. Выберем для каждого блока
свою перестановку, затрагивающую только позиции, входящие в
блок, и оставляющую без изменения остальные позиции векто-------------------------------------------------------
212
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
ров из множества аргументов GF k (2). Пусть k кратно трем. Тогда число различных вариантов выбора z блоков из трех позиций
равно (3!)k!k/3 . Число выбора различных перестановок для каждого
блока, сохраняющие остальные k − 3 позиций, равно (23 )!.
Согласно Теореме 2 получаем, что каждому блоку с номером
1 ≤ i ≤ z и выбранной на данном блоке перестановке соответствует своя ортогональная система полиномов Fki (xk ), 1 ≤ i ≤ z.
В каждой системе Fki (xk ), 1 ≤ i ≤ z все полиномы, кроме полиномов с номерами, входящими в блок i, являются единичными
полиномами. Полиномы системы Fki (xk ), 1 ≤ i ≤ z с номерами,
входящими в блок i, являются полиномами не выше второй степени, т.е. содержат мономы вида xl xj и xj (где xl и xj – переменные,
индексы которых соответствуют блоку с номером 1 ≤ i ≤ z), а
также ненулевой символ поля GF (2).
Заметим, что по описанному способу построения ортогональные системы Fki (xk ), 1 ≤ i ≤ z являются коммутирующими, т.е.
Fkj (Fki (xk )) = Fki (Fkj (xk )), 1 ≤ i ≤ z, 1 ≤ j ≤ z. Таким образом, последовательность их применения для получения результирующей
ортогональной системы не имеет значения. Результирующая система, полученная путем суперпозиции систем Fki (xk ), 1 ≤ i ≤ z,
будет квадратичной системой. Таким образом, можно использовать полученную результирующую систему в качестве центральной системы для построения открытого ключа в системе HFE.
Обозначим такую систему как
FkHFE (xk ) =(f1 (x1 , x2 , . . . , xk ), f2 (x1 , x2 , . . . , xk ), . . .
(
=
. . . , fk (x1 , x2 , . . . , xk )) =
∑
γ1,i,j xi xj +
1≤i≤j≤k
∑
β1,j xj + α1 ,
1<j≤k
γ2,i,j xi xj +
1≤i≤j≤k
...,
∑
∑
∑
β2,j xj + α2 , . . .
1<j≤k
γk,i,j xi xj +
1≤i≤j≤k
-------------------------------------------------------
∑
)
βk,j xj + αk .
1<j≤k
213
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Заметим, что в построенной ортогональной системе FkHFE (xk )
смежными (т.е. входящими в один моном) могут быть только переменные xl и xj , соответствующие одному блоку позиций. Данное условие скрывается путем умножения слева и справа данной
системы на аффинные ортогональные преобразования Sk (xk ) и
Tk (xk ) с коэффициентами над полем GF (Q):
Sk (xk ) = (s1 (x1 , . . . , xk ), s2 (x1 , . . . , xk ), . . . , sk (x1 , . . . , xk )) =
(
)
∑
∑
∑
=
η1,j xj + δ1 ,
η2,j xj + δ2 , . . . ,
ηk,j xj + δk ,
1<j≤k
1<j≤k
1<j≤k
Tk (xk ) = (t1 (x1 , . . . , xk ), t2 (x1 , . . . , xk ), . . ., tk (x1 , . . . , xk ) =
(
)
∑
∑
∑
=
ξ1,j xj + µ1 ,
ξ2,j xj + µ2 , . . .,
ξk,j xj + µk .
1<j≤k
1<j≤k
1<j≤k
Таким образом, окончательный вид открытого ключа для предложенной модификации систем HFE имеет вид
ZkHFE (xk ) = Tk (FkHFE (Sk (xk ))).
Предложенная модификация системы позволяет избавиться от
введения дополнительной избыточности, необходимой классической HFE, описанной в [1]. Кроме этого, наличие единственного
решения для системы ZkHFE (xk ) = Tk (FkHFE (Sk (xk ))) сокращает
сложность дешифрования модифицированной системы.
Заметим, что найти обратную систему полиномов непосредственно для системы FkHFE (xk ) достаточно просто, так как данная
система однозначно представляется в виде суперпозиции систем
Fki (xk ), 1 ≤ i ≤ z. Каждая из систем полиномов Fki (xk ), 1 ≤ i ≤ z
содержит единичные полиномы под всеми номерами от 1 до k,
кроме трех полиномов с номерами, входящими в блок i. Следовательно, построение обратной системы для Fki (xk ), 1 ≤ i ≤ z имеет
сложность 8!. Таким образом, сложность построения обратной сиk
стемы полиномов для FkHFE (xk ) можно оценить величиной (8!) 3 .
-------------------------------------------------------
214
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
В работе [6] приводится доказательство того, что число Ω невырожденных матриц размера k × k над полем GF (Q) вычисляется
как
k−1
∏
Ω=
(Qk − Qi ).
(4)
i=0
В рассматриваемом случае Q = 2, и для величины Ω справедлива
оценка
k−1
∏
2
Ω=
(2k − 2i ) ≈ 2k .
(5)
i=0
Каждой невырожденной матрице соответствует свое аффинное преобразование Sk (xk ) и Tk (xk ) с коэффициентами над полем
GF (2). Таким образом, путем перебора всех возможных комбинаций преобразований Sk (xk ) и Tk (xk ) будет обязательно получена
система FkHFE (xk ) = T−k (ZkHFE (S−k (xk ))). Сложность такого пеk
ребора оценивается величиной Ω2 . Величина (8!) 3 ≈ 25k прене2
брежимо мала по сравнению с величиной Ω2 ≈ 22k . Полученные
рассуждения сформулируем в виде следующей Леммы.
Лемма 2: Сложность построения обратной системы полиномов
для публичного ключа ZkHFE (xk ) = Tk (FkHFE (Sk (xk ))) оценивается
∏
k
i 2
2k2 .
величиной Ω2 = ( k−1
i=0 (2 − 2 )) = 2
V. Открытые вопросы
1. При переборе возможных вариантов комбинаций Sk (xk ) и
Tk (xk ) необязательно получать систему вида FkHFE (xk ) =
T−k (ZkHFE (S−k (xk ))). Достаточно получить систему с двумя
разделяющимися группами переменных. Другими словами,
достаточно, чтобы исходная система путем некоторого преобразования могла быть представлена в виде суперпозиции
двух систем, переменные которых не входят в один моном ни
в одном из полиномов системы. В этом случае дальнейшие
преобразования можно осуществлять с каждой из систем
-------------------------------------------------------
215
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
отдельно, что снижает сложность алгоритма поиска обратной системы. Таким образом, представляет интерес оценка
сложности такой модификации алгоритма для системы вида
ZkHFE (xk ) = Tk (FkHFE (Sk (xk ))).
2. Неясно, можно ли в виде ZkHFE (xk ) = Tk (FkHFE (Sk (xk ))) описать произвольную ортогональную квадратичную систему.
Если можно – то ответ на первый вопрос дает ключ к пониманию сложности решения систем такого класса.
3. Аналогичные рассуждения (как и для квадратичного случая) возможны для систем любой степени. Другими словами, если получится решить первые два вопроса, то их обобщение на произвольный случай дает алгоритм для решения
систем полиномов произвольной степени.
Литература
[1] J. Patarin, Hidden Field Equations (HFE) and Isomorphisms of Polynomials
(IP): two new families of asymmetric algorithms. In Advances in Cryptology
EUROCRYPT 1996, volume 1070 of Lecture Notes in Computer Science,
pp. 33–48. Ueli Maurer, editor, Springer, 1996, Extended Version.
[2] J. Patarin and L. Goubin, Trapdoor one-way permutations and multivariate
polynomials, International Conference on Information Security and
Cryptology 1997, volume 1334 of Lecture Notes in Computer Science,
pp. 356–368, International Communications and Information Security
Association, Springer, 1997, Extended Version.
[3] M.R. Garay and D.S. Johnson, Computers and Intractability. A Guide to
the Theory of NP-Completeness, W.H. Freeman and Company, 1979, ISBN
0-7167-1044-7 or 0-7167-1045-5.
[4] T. Matsumoto and H. Imai, Public quadratic polynomialtuples for efficient
signature verification and message-encryption. In Advances in Cryptology
EUROCRYPT 1988, volume 330 of Lecture Notes in Computer Science,
pp. 419–545, Christoph G. Gäunther, editor, Springer, 1988.
[5] A. Kipnis, J. Patarin and L. Goubin, Unbalanced Oil and Vinegar signature
schemes, Advances in Cryptology EUROCRYPT 1999, volume 1592 of
Lecture Notes in Computer Science, pp. 206–222. Jacques Stern, editor,
Springer, 1999.
[6] C. Wolf and B. Preneel, Superiors keys in Multivariate Quadratic
asymmetric systems, Public Key Cryptography PKC 2005, volume 3386 of
Lecture Notes in Computer Science, pp. 275-287, Serge Vaudenay, editor,
Springer, 2005, Extended version.
-------------------------------------------------------
216
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
[7] R. Lidl and H. Niederreiter, Finite Fields, Encyclopedia Math. Appl., Vol.
20, Cambridge University Press.
[8] A. Kipnis and A. Shamir, Cryptanalysis of the HFE public key cryptosystem
by relinearization, M. Wiener, editor, Advances in crytology – Crypto ’99,
LNCS, volume 1666, pp. 19–30, Springer, 1999.
-------------------------------------------------------
217
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Использование вэйвлетных разложений
сплайнов 3-го порядка в защите
информации
А.Б. Левина
к.ф.-м.н. ассистент
Санкт-Петербургский государственный
университет аэрокосмического приборостроения
I. Введение
Предложенная работа рассматривает новый класс алгоритмов,
построенных на сплайн-вэйвлетных разложениях на неравномерной сетке.
Предложенные алгоритмы имеют строгую математическую
структуру, ранее не использовавшуюся в шифровании. В данных
алгоритмах не происходит XOR операции с ключом, также алгоритмы не используют S-box. Алгоритмы могут работать с блоками, равными 1024 и 2048 бит, и это не является пределом, структура алгоритма не меняется от длины блока, меняется только количество раундов и длина ключа.
Работа данных алгоритмов базируется только на математических преобразованиях, что упрощает их анализ. Математическая
структура, используемая в предложенных алгоритмах, легко поддается параллельной обработке.
II. Основы сплайн-вэйвлетных разложений
В данном разделе будет кратко представлена основная идея
сплайн-вэйвлетных разложений.
-------------------------------------------------------
218
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Рассмотрим неравномерную сетку X, состоящую из элементов
{xj }j=0,...,L−1 , где {xj }j=0,...,L−1 — натуральные числа, L — количество элементов в сетке X.
Сплайны третьего порядка на сетке X задаются следующими
формулами:
k
∑
ωj (t) ≡ 1,
j=k−3
k
∑
j=k−3
k
∑
j=k−3
k
∑
1
(xj+1 + xj+2 + xj+3 ) ωj (t) ≡ t,
3
1
(xj+1 xj+2 + xj+1 xj+3 + xj+2 xj+3 ) ωj (t) ≡ t2 ,
3
xj+1 xj+2 xj+3 ωj (t) ≡ t3 .
j=k−3
Сплайны обозначаются через ωj (t), элементы xj — узлы сетки X.
Идея вэйвлетных разложений состоит в следующем: из сетки
X выбрасывается элемент xk , получается новая сетка X, и на
новой сетке X строятся новые сплайны ω j . Новые сплайны могут
быть представлены с помощью комбинации сплайнов ωj , которые
были построены на сетке X.
Элементы новой сетки получаются с помощью следующих формул: xj = xj , если j ≤ k − 1, и xj = xj+1 , если j ≥ k, ξ = xk .
Формулы, представляющие новые сплайны ω j (t) через сплайны ωj (t):
xk+1 − ξ
ωk−3 (t),
xk+1 − xk−3
ξ − xk−3
xk+2 − ξ
ω k−3 (t) ≡
ωk−3 (t) +
ωk−2 (t),
xk+1 − xk−3
xk+2 − xk−2
ω k−4 (t) ≡ ωk−4 (t) +
-------------------------------------------------------
219
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
ξ − xk−2
xk+3 − ξ
ωk−2 (t) +
ωk−1 (t),
xk+2 − xk−2
xk+3 − xk−1
ξ − xk−1
ω k−1 (t) ≡
ωk−1 (t) + ωk (t).
xk+3 − xk−1
ω k−2 (t) ≡
Аналогично сплайны ωj (t) могут быть представлены с помощью сплайнов ω j (t).
Это даст два типа формулы: формулы декомпозиции и формулы реконструкции. Шаг за шагом можно выбрасывать элементы
из изначальной сетки X и строить новые сплайны, которые будут
использовать новую сетку.
В рассматриваемом алгоритме ключом является сетка и порядок выбрасывания узлов, формулы декомпозиции на каждом
раунде преобразуют открытый текст в шифротекст. Процесс дешифрования основывается на формулах реконструкции.
Данный способ шифрования имеет структуру обобщенной сети
Фейстеля, один байт выбрасывается, два преобразуются по формулам, остальные сдвигаются.
Формулы декомпозиции разбивают передаваемый поток (открытый текст) на основной поток и вэйвлетную составляющую
(дополняющий элемент) bk−1 . Формулы реконструкции восстанавливают открытый текст, используя основной поток и вэйвлетную
составляющую.
III. Основные понятия
Предлагаемая криптосистема относится к блочным, симметричным, при шифровании и дешифровании используется один
ключ.
Ключом является неравномерная сетка X, порядок выбрасывания узлов из этой сетки γ. Обозначим ключ K = (X, γ). Количество раундов — K. Все вычисления проводятся в конечных полях
по модулю N (N — простое число в диапазоне от 28 до 216 ).
Сетка X является циклически упорядоченным множеством, ее
элементы — узлы xj :
X = {xj }j∈N0 ,
-------------------------------------------------------
220
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Таблица I
Длина блока, длина ключа, количество раундов
M = 128 бит
M = 192 бит
M = 256 бит
M = 512 бит
M = 1024 бит
M = 2048 бит
(K, KXγ )
(14, 256) бит
(22, 384) бит
(30, 512) бит
(62, 1024) бит
(126, 2048) бит
(254, 4096) бит
L
18
26
34
66
130
258
где N0 — множество натуральных чисел с нулем.
Сетка X — периодическая, с периодом, равным N , так что
xj = xj+N для ∀j ∈ Z.
Последовательность номеров выбрасываемых узлов γ : γ =
{γn }n∈[1,...,K] , где K — число раундов шифрования, γn — номер
случайно выбираемого узла xj .
Открытым текстом является последовательность C = {ci }i∈J ,
J ⊂ Z. Она разбивается на l блоков одинаковой длины, |Cl | = M,
здесь |Cl | — количество элементов в блоке. При необходимости последовательность {ci }i=0,...,M −k будет продлеваться периодически,
период будет равным M −k, здесь M −k — количество оставшихся
в блоке элементов на k-м раунде.
Во всех формулах i и j ∈ N0 .
На каждом раунде из сетки выбрасывается один узел с номером γk , далее при шифровании по формулам декомпозиции счита1
ется последовательность {c−k
i }i∈J , после проведения K раундов
получается шифротекст. При дешифровании текст восстанавливается с помощью формул реконструкции.
Рассмотрим связь длины блока, количества раундов и длины
ключа для данного алгоритма. Число раундов зафиксировано в
данной спецификации, но в случае возникновения проблем с без1
В дальнейшем для простоты формулировок индекс сверху используется для обозначения номера и не является показателем степени; если индекс
сверху — показатель степени, то выражение, которое возводится в степень,
пишется в квадратных скобках [...].
-------------------------------------------------------
221
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
опасностью алгоритмы могут модифицироваться и иметь число
раундов в качестве параметра.
В Табл. I представлена связь длины блока, длины ключа и количества раундов для шифрования сплайн-вэйвлетным разложением третьего порядка, в соответствии с имеющейся практикой и
тем, что количество узлов в сетке на каждом раунде должно быть
больше либо равно четырем. Здесь K — количество раундов, M
— длина блока, L — количество узлов в сетке X, длину ключа
обозначим KXγ .
IV. Процесс шифрования
Опишем процесс шифрования. На первом шаге шифрования
поступает шифруемая последовательность {ci }i=0,...,M . С помощью ключа K и формул декомпозиции производится первый раунд шифрования.
Первый раунд :
1. Из первоначальной сетки X выбрасывается узел xγ1 .
2. Обозначим полученную в п. 1 сетку как X −1 , а ее узлы —
соответственно символами x−1
j :
x−1
j = xj
при j < γ1 ,
(1)
x−1
j = xj+1
при j > γ1 ,
(2)
X −1 = {x−1
j }.
Для выбрасываемого узла введем обозначение xγ1 = ξ.
3. Рассмотрим формулы декомпозиции для сплайнов третьего
порядка. Введем следующие обозначения:
A−k = ξ − x−k
γk ,
B −k = ξ − x−k
γk −1 ,
C −k = ξ − x−k
γk −2 ,
-------------------------------------------------------
222
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
D−k = ξ − x−k
γk −3 ,
E −k = ξ − x−k
γk +1 ,
−k
F −k = x−k
γk +2 − xγk −1
где k — номер раунда k = 1, 2, . . . , K, сейчас рассматривается k = 1.
Запишем с помощью новых обозначений формулы декомпозиции:
c−1
i = ci
c−1
i = ci+1
c−1
γ1 −3
=
(
(3)
при γ1 − 1 ≤ i ≤ M − 2,
(4)
A−1
· (cγ1 −4 − cγ1 −3 ) + cγ1 −3
D−1
)
mod N,
A−1 · E −1
(cγ −4 − cγ1 −3 )+
C −1 · D−1 1
)
E −1
+ −1 (cγ1 −3 − cγ1 −2 ) + cγ1 −2 mod N,
C
(
)
B −1 −1
−1
−1
= cγ1 −1 − cγ1 −2 + −1 (cγ1 −2 − cγ1 −1 ) mod N.
F
c−1
γ1 −2
b−1
(
при 0 ≤ i ≤ γ1 − 4,
(5)
=
(6)
(7)
4. Сдвиг элементов c−1
произведем следующим образом:
i
−1
−1
−1
−1
c−1
0 → c1 → c2 . . . → cM −2 → c0 .
Формулы (3)–(5) записаны в обозначениях новой сетки X −1 .
−1
Получили последовательность {c−1
i }i=0,...,M −2 и b .
K-й (последний) раунд :
1. По аналогии с предыдущими раундами имеем
c−K
= c−K+1
i
i
c−K
= c−K+1
i
i+1
при 0 ≤ i ≤ γK − 4,
при γK − 1 ≤ i ≤ M − 1 − K,
-------------------------------------------------------
223
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
c−K
γK −3
c−K
γK −2
b−K
)
A−K
−K+1
−K+1
−K+1
=
· (cγK −4 − cγK −3 ) + cγK −3 mod N,
D−K
( −K
A
· E −K −K+1
=
(c
− cγ−K+1
)+
K −3
C −K · D−K γK −4
)
E −K −K+1
−K+1
−K+1
+ −K (cγK −3 − cγK −2 ) + cγK −2 mod N,
C
(
−K
= c−K+1
γK −1 − cγK −2 +
)
B −K −K
−K
+ −K (cγK −2 − cγK −1 ) mod N.
F
(
На K-м раунде сдвиг не производится.
−K .
Определили последовательность {c−K
i }i=0,...,M −K−1 и b
В результате K раундов получаются последовательность вложенных сеток
X −K ⊂ X −K+1 ⊂ . . . ⊂ X −1 ⊂ X 0
и две последовательности
{b−n }n=1,2,...,K ,
{c−K
i }i=0,1,2,...,M −K−1 .
−n }
Последовательность {c−K
n=1,2,...,K;i=0,1,2,...,M −K−1 являi ,b
ется шифротекстом.
V. Процесс дешифрования
Процесс дешифрования проводится по аналогии с процессом
шифрования, используется тот же ключ K и формулы реконструкции.
−n }
Зная число раундов K, шифротекст {c−K
n=1,...,K;i=0,...,M −K
i ,b
разбивается на две последовательности:
{b−n }n=1,2,...,K ,
{c−K
i }i=0,1,2,...,M −K−1 .
Зная изначальную сетку X и порядок выбрасывания узлов γ,
по формулам (1), (2) находим сетки X −1 , . . . , X −K+1 , X −K .
-------------------------------------------------------
224
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Первый раунд :
1. Выберем сетку X −K , ξ = xγk .
2. Выпишем формулы реконструкции:
c−K+1
= c−K
i
i
при 0 ≤ i ≤ γK − 4,
(8)
c−K+1
i
при γK ≤ i ≤ M − K,
(9)
c−K+1
γK −3
c−K+1
γK −2
c−K+1
γK −1
=
c−K
i−1
(
=
D−K
· c−K −
D−K − A−K γK −3
)
A−K
−K
− −K
·c
mod N,
D
− A−K γK −4
(
C −K
=
· c−K −
C −K − E −K γK −2
)
E −K
−K
·c
− −K
mod N,
C
− E −K γK −3
(
−B −K
−K
=
· (c−K
γK −2 − cγK −1 )+
F −K
)
−K
−K
+ cγK −2 + b
mod N.
(10)
(11)
(12)
3. Произведем сдвиг c−K+1
следующим образом:
i
−K+1
c−K+1
← c−K+1
← c−K+1
. . . ← c−K+1
.
0
1
2
M −K ← c0
Определяем последовательность {c−K+1
}i=0,...,M −K .
i
K-й раунд :
1. Выберем сетку X −1 , ξ = xγ1 .
2. Выпишем формулы реконструкции:
ci = c−1
i
c−K+1
i
=
c−1
i−1
-------------------------------------------------------
при 0 ≤ i ≤ γ1 − 4,
при γ1 ≤ i ≤ M − 1,
225
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
(
cγ1 −3 =
(
D−1
A−1
−1
·
c
−
· c−1
D−1 − A−1 γ1 −3 D−1 − A−1 γ1 −4
)
mod N,
)
C −1
E −1
−1
−1
cγ1 −2 =
·c
−
·c
mod N,
C −1 − E −1 γ1 −2 C −1 − E −1 γ1 −3
(
)
−B −1
−1
−1
−1
−1
cγ1 −1 =
· (cγ1 −2 − cγ1 −1 ) + cγ1 −2 + b
mod N.
F −1
На K-м раунде сдвиг не производится.
Таким образом, после K раундов был восстановлен исходный текст {ci }i=0,...,M .
Пример 1: Наглядно продемонстрируем работу представленной криптосистемы, основанной на сплайн-вэйвлетных разложениях третьего порядка. Количество раундов, которые сейчас будут проводиться, не обеспечивают достаточную безопасность, данный пример демонстрирует работу математической структуры,
используемой в данном алгоритме.
Передаем сообщение {4, 6, 7, 9, 1, 8}.
Ключ K = ({1, 3, 5, 9, 10, 6}, {4, 5}). В данном примере возьмем
N = 11, K = 2.
1 раунд:
1. Выпишем сетку X−1 : X−1 = {1, 3, 5, 9, 6}, а ξ = xγ4 = 10.
2. По формулам (3)–(7) определяем:
c−1,0 = c0 = 4,
)
(
6−3
10 − 6
·4+
· 6 mod 11 =
c−1,1 =
10 − 3
10 − 3
= (4 · 8 · 4 + 3 · 8 · 6) mod 11 = 8,
c−1,2 = ((10 − 6)(10 − 1) · 4 + (10 − 1)(6 − 3) · 6+
+ (1 − 5) · (10 − 5) · 7)[10 − 5]−1 [10 − 3]−1 mod 11 =
= (4 · 9 · 4 + 9 · 3 · 6 − 4 · 5 · 7) · [5 · 7]−1 mod 11 = 0,
c−1,3 = c4 = 1,
-------------------------------------------------------
226
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
c−1,4 = c5 = 8,
)
(
10 − 9
3 − 10
·0−
· 1 mod 11 =
b−1 = 9 −
3−9
3−9
= (9 − (−7) · 2 · 0 + 1 · 2 · 1) mod 11 = 0.
3. Произведем сдвиг: c−1,0 = 8, c−1,1 = 4, c−1,2 = 8, c−1,3 = 0,
c−1,4 = 1.
Получаем последовательность c−1 = {8, 4, 8, 0, 1} и b−1 = 0.
2 раунд:
1. Выпишем сетку X−2 : X−2 = {3, 5, 9, 6}, а ξ = xγ5 = 1.
2. По формулам (3)–(7) находим:
c−2,0 = c−1,0 = 8,
c−2,1 = c−2,1 = 4,
)
(
5−9
1−5
·4+
· 8 mod 11 =
c−2,2 =
1−9
1−9
= (−4 · 7 · 4 − 4 · 7 · 8) mod 11 = 6,
(
c−2,3 = 1 − 5)(1 − 9) · 4 + (1 − 9)(5 − 9) · 8+
[
+ (9 − 6)(1 − 9) · 0 1 − 6]−1 [1 − 9]−1 mod 11 =
= (−4 · (−8) · 4 − 4 · (−8) · 8+
+ 3 · (−8) · 0)[5 · 8]−1 mod 11 = 3,
(
)
6−1
1−3
b−2 = 1 −
·3−
· 8 mod 11 =
6−3
6−3
= (1 − 5 · 4 · 3 − (−2) · 4 · 8) mod 11 = 5.
После двух раундов получили последовательности {8, 4, 6, 3} и
{0, 5}.
Шифротекстом является последовательность {8, 4, 6, 3, 0, 5}.
Восстановим исходную информацию.
-------------------------------------------------------
227
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
1 раунд:
1. Изначальная сетка имела вид: {1, 3, 5, 9, 10, 6}, порядок выбрасывания узлов {4, 5}, следовательно, на последнем шаге
была получена сетка {3, 5, 9, 6}, ξ = 1. Выполнялось два раунда ⇒ {c−K,i }i=0,...3 = {8, 4, 6, 3} и {b−n }n=1,2 = {0, 5}.
2. По формулам (8)-(12) находим:
c−1,0 = c−2,0 = 8, c−1,1 = c−2,1 = 4,
)
(
5−1
1−9
c−1,2 =
·4+
· 6 mod 11 = 8,
5−9
5−9
(
)
9−1
1−6
c−1,3 =
·6+
· 3 mod 11 = 0,
9−6
9−6
(
)
6−1
1−3
c−1,4 = 5 +
·3+
· 8 mod 11 = 1.
6−3
6−3
3. Произведем сдвиг: c−1,0 = 4, c−1,1 = 8, c−1,2 = 0, c−1,3 = 1,
c−1,4 = 8.
Получаем последовательность c−1 = {4, 8, 0, 1, 8}.
2 раунд:
1. На этом раунде сетка имеет вид: {1, 3, 5, 9, 6}, а ξ = 10.
2. Согласно формулам (8)-(12) получаем:
c0 = c−1,0 = 4,
)
(
6 − 10
10 − 3
·4+
· 8 mod 11 = 6,
c1 =
6−3
6−3
)
(
1 − 10
10 − 5
c2 =
·8+
· 0 mod 11 = 7,
1−5
1−5
(
)
3 − 10
10 − 9
·0+
· 1 + 0 mod 11 = 9,
c3 =
3−9
3−9
c4 = c−1,3 = 1, c5 = c−1,4 = 8.
В результате получаем последовательность c = {4, 6, 7, 9, 1, 8}.
Передаваемое сообщение полностью восстановлено.
-------------------------------------------------------
228
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
VI. Демонстрация алгоритма
Продемонстрируем работу алгоритма при длине блока, равной
512 бит (64 байта).
В этом случае возьмем сетку X с числом узлов L = 66 и проведем 62 раунда.
Шифруемым блоком будет последовательность элементов открытого текста {c0 , c1 , . . . , c63 }, ключом — K = {X, γ}, где X =
{x0 , x1 , . . . , x65 }, γ = {γn }n=1,...,62 , а K = 62.
Как и для сплайн-вэйвлетного шифрования первого и второго
порядка, модуль N — простое однобайтное число.
Запишем элементы открытого текста в виде матрицы C.
Число столбцов в матрице — Col, Col = M/4, а строк 4. Для
блока, равного 512 бит, матрица C будет являться матрицей 4×16,
16 столбцов и 4 строки.


c0 c1 . . . c14 c15
 c16 c17 . . . c30 c31 

C=
 c32 c33 . . . c46 c47  .
c48 c49 . . . c62 c63
Узлы изначальной сетки записываются в одностолбцовую матрицу X :
(
)T
X = x0 , x1 , x2 , . . . , x65
.
Здесь c0 , c1 , . . . ., c63 , x0 , . . . , x65 — однобайтовые символы.
По аналогии со сплайн-вэйвлетным шифрованием первого и
второго порядка процесс шифрования состоит из четырех процедур:
• Вычисление сетки, которая будет использоваться на данном
раунде.
• Вычисление по формулам декомпозиции элементов, используемых в следующем раунде.
• Сдвиг полученных элементов.
• Создание матрицы B.
-------------------------------------------------------
229
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
На каждом раунде количество элементов в матрице C будет
уменьшаться на один элемент; для того, чтобы сохранить матрицу
C в виде матрицы 4 × 16 недостающий элемент заменяется нулем.
В то же время, на каждом раунде появляется новый элемент
b−i , этот элемент записывается в матрицу B, размерность матрицы B такая же, как у матрицы C, в данном примере 4 × 16.
Изначально матрица B является нулевой матрицей.
На каждом раунде, начиная с позиции {M − K ÷ Col, M −
K mod Col}, в матрицу B записывается элемент b−i , нумерация
строк и столбцов в матрице B начинается с {0,0}.
На первом раунде шифрования известна матрица C, сетка X,
номер выбрасываемого узла γ1 и модуль N .
Опишем для первого раунда подробнее каждую процедуру:
1. Вычислим сетку, которую будем использовать на первом раунде, обозначим ее X −1 .
Новая сетка X −1 получается при умножении матрицы X
на матрицу, получающуюся из единичной матрицы заменой
элемента в строке с номером γ1 на диагонали 0.
X −1


0
1
0 ... 0
0
x0
 0
  x1
1
1
.
.
.
0
0


  ...
... 
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.




= γ1
 . . . . . . 0 . . . . . . · xγ1


... ... ... ... ... ...
  ...
...  0
0 ... 1
0   ...
L−1 0
0 ... 0
1
x65


 
 
 
 
=
 
 
 
 
x0
x1
...
0
...
...
x65





.




2. Опишем вычисление элементов, используемых в следующем
раунде.
По формулам декомпозиции элементы {c−1
i } при i ≤ γ1 − 4
равны элементам {ci }i≤γ1 −4 , а при γ1 − 1 ≤ i ≤ M − 2 равны
−1
−1
{c−1
i } = {ci+1 }. Вычислим элементы cγ1 −3 и cγ1 −2 :
) (
)
(
−1
(x−1
cγ1 −4
γ1 −xγ −3 )
(ξ−x−1
γ1 )
−1
1
,
·
mod N,
cγ1 −3 =
(ξ−x−1
(ξ−x−1
cγ1 −3
γ1 −3 )
γ1 −3 )
-------------------------------------------------------
230
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
c−1
γ1 −2
(
=
−1
(ξ−x−1
γ1 )(ξ−xγ +1 )
1
−1
(ξ−xγ −2 )(ξ−x−1
γ1 −3 )
1
,
−1
−1
(ξ−x−1
γ1 +1 )(xγ1 −xγ1 −3 )
−1
−1
(ξ−xγ −2 )(ξ−xγ −3 )
1
1
−1
(x−1
γ1 +1 −xγ1 −2 )
−1
(ξ−xγ −2 )
1
)
,
×


cγ1 −4
× cγ1 −3  mod N
cγ1 −2
и запишем получившиеся элементы в матрицу C; при этом
элемент cγ1 −1 выкидывается, а все следующие за ним элементы сдвигаются:


c0 . . .
c5
...
c10 c11 . . . c14 c15
−1

c16 . . . cγ1 −4 c−1
γ1 −3 cγ1 −2 cγ1 . . . . . . . . . 
C=
. . . . . . . . .
...
...
. . . . . . . . . . . .
... ... ...
...
...
. . . . . . c63 0
3. Сдвиг элементов производится в соответствии:


c0 . . .
c5
...
c10 c11 . . . c14 c15
−1
c16 . . . cγ1 −4 c−1

γ1 −3 cγ1 −2 cγ1 . . . . . . . . .  →

. . . . . . . . .
...
...
. . . . . . . . . . . .
... ... ...
...
...
. . . . . . c63 0

c63 c0
c15 . . .
→
. . . . . .
... ...
...
c5
...
c10 c11
−1
. . . cγ1 −4 c−1
c
γ1 −3
γ1 −2 cγ1
... ...
...
...
...
... ...
...
...
...
...
...
...
...

. . . c14
... ... 
.
... ... 
c62 0
Переписывая результат с использованием новых
ний, получаем матрицу C −1 :
 −1 −1 −1
c0
c1
c2
. . . c−1
c−1
c−1
13
14
15
−1
c
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
..
−1
16
C =
... ... ... ... ... ... ...
. . . . . . . . . . . . . . . c−1
0
62
-------------------------------------------------------
231
обозначе

.

-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
4. Рассмотрим преобразования, связанные с матрицей B.
На первом раунде в матрицу B записывается элемент b−1 :


(
)
cγ1 −1
−1
−1
x
−ξ
ξ−xγ −1
1
 mod N
b−1 = 1, − x−1γ1 +2
, − x−1 −x
· c−1
−1
−1
γ1 −2
−x
γ1 +2
γ1 −1
γ1 +2
γ1 −1
−1
cγ1 −1


00 b−1 0000000000000
00 0 0000000000000

B=
00 0 0000000000000 .
00 0 0000000000000
K-й (последний) раунд:
1. Сетка X −K вычисляется

1
0 ...
. . . . . . . . .

X −K = 
. . . . . . . . .
. . . . . . . . .
0 ... 0
соответствующим образом:
  −K+1   −K+1 
x0
x
0
x−K+1   0−K+1 
. . .
x

1
 

 1−K+1  
 0 .
. . .
·
=
x


  2

  −K+1 

. . . x−K+1

x2
3
−K+1
−K+1
1
x3
x4
2. Вычисляем элементы матрицы C −K :
) ( −K+1 )
(
−K
(x−K
c K −4
γK −xγ −3 )
(ξ−x−K
γK )
−K
K
,
· γ−K+1
mod N,
cγK −3 =
−K
(ξ−x−K
)
(ξ−x
)
cγK −3
γK −3
γK −3
c−K
γK −2
(
=
−K
−K
−K
−K
−K
−K
(ξ−x−K
γK )(ξ−xγ +1 ) (ξ−xγ +1 )(xγK −xγ −3 ) (xγ +1 −xγ −2 )
K
K
K
K
K
,
,
−K
−K
−K
−K
−K
(ξ−xγ −2 )(ξ−xγ −3 )
(ξ−xγ −2 )(ξ−xγ −3 )
(ξ−xγ −2 )
K
K
K
K
K
)
×


cγ−K+1
K −4
 −K+1

× cγK −3  mod N,
cγ−K+1
K −2

C −K
c−K
0
 0
=
 0
0
-------------------------------------------------------
c−K+1
2
0
0
0
232

00000000000000
00000000000000
.
00000000000000
00000000000000
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
В новых обозначениях:
 −K
c0

0
C −K = 
 0
0
c−K
1
0
0
0

00000000000000
00000000000000
.
00000000000000
00000000000000
3. Сдвиг не производится.
4. Вычисляем b−K и записываем в матрицу B :


−K+1
)
(
c
γ −1
ξ−x−K−1
x−K −ξ
 K 
b−K = 1,− −KγK +2 −K ,− −K γK −K
·  c−K
γK −2  mod N
xγ +2 −xγ −1
xγ +2 −xγ −1
K
K
K
K
c−K
γK −1

0
0 b−1 b−2
. . . . . . . . . . . .
B=
. . . . . . . . . . . .
... ... ... ...

... ...
... ... 
.
... ... 
. . . b−K
Шифротекстом является матрица C = C −K + B :
 −K −K −1 −2

c0
c1
b
b
... ...
 ...
... ... ... ... ... 
.
C=
 ...
... ... ... ... ... 
...
. . . . . . . . . . . . b−K
При дешифровании поступает матрица C и ключ K, следовательно, известно количество проводимых раундов K, можно посчитать длину блока M = K + 2.
Зная длину блока M , можно разбить матрицу C на матрицы
−K
C
иB:


0
0 b−1 b−2 . . . . . .
. . . . . . . . . . . . . . . . . . 

B=
. . . . . . . . . . . . . . . . . .  ,
. . . . . . . . . . . . . . . b−K
-------------------------------------------------------
233
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ

C −K
c−K
0
 0
=
 0
0
c−K
1
0
0
0

00000000000000
00000000000000
.
00000000000000
00000000000000
Зная изначальную сетку X, посчитаем X −1 , . . . , X −i , . . . , X −K ,
и все эти матрицы запишем в матрицу X all , размерность этой
матрицы в данном случае 65 × 62
 −1

x0
...
x−i
. . . x−K
0
0
 x−1 . . .

x−i
. . . x−K

 1
1
1
 −1
−i
−K 
x
.
.
.
x
.
.
.
x


2
2
X all =  2
.
 ... ...

...
. . . x−K
3


 . . . . . . x−i

.
.
.
0
L−i−1
−1
xL−2 . . .
...
...
0
Процесс дешифрования состоит из двух процедур:
• Вычисление элементов, используемых в следующем раунде.
• Сдвиг элементов.
Опишем каждую процедуру для первого раунда:
1. Вычислим по формулам реконструкции элементы c−K+1
. На
i
all
первом раунде из матрицы X необходим только последний
K-й столбец, его первые L − K элементов, в данном случае
это первые 4 элемента, т. е.
 −K 
x0


x−K
1
.
X −K = 
−K
 x

2
x−K
3
Вычисляем:
c−K+1
γK −3 =
(
(ξ−xγK −3 )
(xγK −ξ)
(xγK −xγK −3 ) , (xγK −xγK −3 )
-------------------------------------------------------
234
)
(
)
c−K
K −4
· γ−K
mod N,
cγK −3
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
c−K+1
γK −2
c−K+1
γK −1
)
c−K
K −3
=
· γ−K
mod N,
cγK −2
 −K 
cγK −2
(
)
(x K +2 −ξ)
(ξ−xγK −1 )
c−K  mod N,
= (xγ γ+2
,
,1
·
γK −1
−xγK −1 ) (xγK +2 −xγK −1 )
K
b−K
(
(xγK +1 −ξ)
(ξ−xγK −2 )
(xγK +1 −xγK −2 ) , (xγK +1 −xγK −2 )
)
(
где ξ = x−K+1
.
γK
По формулам реконструкции элементы {c−K+1
} при i ≤ γK
i
равны элементам {c−K
}
,
а
начиная
с
элемента
cγK проi≤γK
i
−K+1
−K
исходит сдвиг и {ci
} = {ci−1 } при γK +1 ≤ i ≤ M −K.
Записываем элементы матрицы C −K+1 :

 −K+1 −K+1 −K+1
cγK −3 cγK −2 cγK −1 0000000000000
 0
0
0
0000000000000
.
C −K+1 = 
 0
0
0
0000000000000
0
0
0
0000000000000
2. Сдвиг элементов происходит в
тельно процесса шифрования:
 −K+1 −K+1 −K+1
cγK −3 cγK −2 cγK −1
 0
0
0

 0
0
0
0
0
0

обратном порядке относи
0000000000000
0000000000000
→
0000000000000
0000000000000
c−K+1
c−K+1
c−K+1
γK −2
γK −1
γK −3
 0
0
0
→
 0
0
0
0
0
0

0000000000000
0000000000000
.
0000000000000
0000000000000
Переписываем матрицу C −K+1 в новых обозначениях:

 −K+1 −K+1 −K+1
c0
c1
c2
0000000000000
 0
0
0
0000000000000
.
C −K+1 = 
 0
0
0
0000000000000
0
0
0
0000000000000
-------------------------------------------------------
235
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
K-й (последний) раунд:
−1
1. Берем из матрицы X all 1-й столбец X −1 = (x−1
0 , x1 , . . . ,
−1 T
x64 ) .
Вычисляем:
(
) (c−1 )
(ξ−xγ1 −3 )
(xγ1 −ξ)
1 −4
cγ1 −3 = (xγ −x
,
· γ−1
mod N,
γ1 −3 ) (xγ1 −xγ1 −3 )
1
cγ1 −3
(
) (c−1 )
(xγ1 +1 −ξ)
(ξ−xγ1 −2 )
1 −3
cγ1 −2 = (xγ +1 −xγ −2 ) , (xγ +1 −xγ −2 ) · γ−1
mod N,
1
1
1
1
cγ1 −2
 −1 
cγ1 −2
(
)
(xγ1 +2 −ξ)
(ξ−xγ1 −1 )
c−1  mod N,
cγ1 −1 = (xγ +2
,
,1
·
γ1 −1
−xγ1 −1 ) (xγ1 +2 −xγ1 −1 )
1
b−1
где ξ = xγ1 .
Записываем матрицу C :
 −1
c0
...
...
...
 . . . cγ1 −3 cγ1 −2 cγ1 −1
C=
...
...
...
...
...
...
...
...
Переписываем элементы

c0
 c16
C=
 c32
c48

... ...
... ...
.
... ...
. . . c−1
62
матрицы C в новых обозначениях:

c1 . . . c14 c15
c17 . . . c30 c31 
.
c33 . . . c46 c47 
c49 . . . c62 c63
2. Сдвиг на последнем раунде не производится.
Таким образом, открытый текст был полностью восстановлен.
VII. Заключение
В данной работе представлен один из вариантов использования вэйвлетных разложений сплайнов 3-го порядка. На сплайнвэйвлетных разложениях может быть построено большое количество алгоритмов, которые будут отличаться затрачиваемыми ресурсами и уровнем обеспечения безопасности.
-------------------------------------------------------
236
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Литература
[1] Демьянович Ю. К., Левина А. Б., О вэйвлетных разложениях линейных пространств над произвольным полем и о некоторых приложениях,
Математическое моделирование, 2008, том 20, номер 11, c. 104–108.
[2] Демьянович Ю. К., Левина А. Б., Вэйвлетные разложения и шифрование, Методы вычислений, под ред. проф. В. М. Рябова, СПб.: Изд-во
С.-Петерб. ун-та., 2008, вып. 22, c. 56–64.
[3] Левина А. Б., Работа криптосистемы, основанной на формулах реконструкции и декомпозиции на неравномерной сетке, Математические
модели: теория и приложения, сб. науч. статей СПб.: Изд-во С.-Петерб.
ун-та, 2008, вып. 9, с. 3–29.
[4] Смарт Н., Криптография М: ТЕХНОСФЕРА, пер. с английского С. А.
Кулешова под ред. С. К. Ландо, 2005 г., 528 с.
[5] Шнайер Б., Прикладная криптография, Издательство: Триумф, 2002 г.,
816 с.
-------------------------------------------------------
237
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Методы обеспечения безопасности
в системах интернет-банкинга в России
В.О. Минченков
А.В. Сергеев
аспирант
начальник отдела ИИТО
Санкт-Петербургский государственный
университет аэрокосмического приборостроения
I. Введение
Интенсивное развитие глобальных коммуникационных сетей,
в первую очередь сети Интернет, затрагивает сегодня все сферы деятельности человека. Не является исключением и банковская сфера. Большинство банков страны дают своим клиентам
возможность проводить весь спектр банковских операций по счетам и платежным картам через Интернет. При этом набор операций, проводимый клиентом удаленно, фактически не отличается
от набора операций, допустимых при личном присутствии в банке. Фактически клиент допускается к непосредственному управлению своим счетом, а контроль со стороны персонала банка, в силу большого количества проводимых операций, почти отсутствует
или носит автоматизированный характер. Однако повышается и
ответственность клиента – за допущенные ошибки пользователь
системы интернет-банкинга отвечает самостоятельно. Класс банковских систем, предоставляющих подобный функционал, получил название «системы Интернет-банкинга» (также встречаются
термины «и-банкинг» и «банк-клиент»).
Преимущества от внедрения нового сервиса очевидны: клиенты экономят время и деньги, банк существенно снижает нагрузку на операционный зал и, следовательно, снижает накладные
расходы на проведение операций. Объем операций, проводимых
в России через Интернет, удваивается, примерно, каждые 2 года,
-------------------------------------------------------
238
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
достигая сегодня 10 млрд. долларов.
Вопросы безопасности таких систем представляются сегодня
исключительно актуальными. И в первую очередь – для клиентов
банков, не имеющих никакой информации о реальном уровне защищенности систем и-банкинга, кроме рекламных буклетов. Кроме того, в России на данный момент отсутствуют стандарты подобных систем, а проектная документация, в том числе обоснование и выбор политик безопасности, является закрытой и не опубликована.
Насколько применяемые решения безопасности соответствуют
известным угрозам? Что вообще представляет наибольшую угрозу безопасности для систем данного класса? Какие задачи защиты ставили для себя разработчики систем, которыми пользуются
сотни тысяч клиентов банков страны? В своей работе мы постарались найти ответы на эти вопросы, проведя сравнительный анализ
наиболее распространенных систем интернет-банкинга в России.
II. Постановка задачи
Цель работы – провести анализ и оценить защищенность систем интернет-банкинга в России: установить основные угрозы,
сформулировать задачи информационной безопасности, выяснить
общие подходы при построении систем, рассмотреть и классифицировать применяемые механизмы защиты и, как основной результат, оценить уровень информационной безопасности.
Наибольшую опасность, на наш взгляд, представляют удаленные атаки, поэтому основное внимание было уделено протоколам
клиент-серверного взаимодействия.
Основной вопрос, на который отвечает работа, звучит так: насколько применяемые средства защиты в системах класса интернет-клиент соответствуют угрозам информационной безопасности
и известным сценариям атаки?
Структура работы следующая.
В текущем разделе вводится задача по оценке защищенности
систем и-банкинга, ставятся основные вопросы. В разделе III при-------------------------------------------------------
239
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
водится описание интернет-банкинга в контексте систем дистанционного банковского обслуживания. Выделены характерные особенности таких систем и основные структурные элементы.
Раздел IV является основным разделом работы. В нём проводится анализ основных методов обеспечения информационной
безопасности (ИБ) в системах интернет-банкинга. Определяются основные угрозы ИБ, на их основании формулируются задачи безопасности, вводится модель атакующего. Затем, на основании исследований и сравнительного анализа известных решений
и-банкинга, приводятся типовые схемы построения таких систем.
Выявляются основные подходы, используемые для решения заявленных задач информационной безопасности. Вводится классификация таких методов, приводятся результаты их анализа с
указанием преимуществ и недостатков, а также наиболее критичных уязвимостей
III. Интернет-банкинг
A. Дистанционное банковское обслуживание
С каждым годом все больше клиентов банков отдают предпочтение различным системам дистанционного банковского обслуживания (ДБО). Конечно, такие системы стали доступны только
на определенном этапе развития как технического, так и юридического обеспечения. С технической стороны, подобные системы
существуют достаточно давно, но только с массовым распространением Интернета они смогли получить всеобщее признание, поскольку появилась возможность осуществлять операции со счетом
из любой точки земного шара, где есть доступ в Сеть [1].
B. ДБО класса интернет-клиент
Наиболее динамично развивающимся классом систем ДБО является так называемый Интернет-Банкинг. Интернет-банкинг –
это технология предоставления банковских услуг на основании
распоряжений, передаваемых клиентом удаленным образом через
-------------------------------------------------------
240
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
сеть Интернет. В набор операций таких систем входят функции
выписки со счетов, формирование платежных поручений, перевод
денег на другие счета, конвертация валют и другие операции.
Системы Интернет-банкинга можно разделить на два подкласса: «тяжелый» (или «толстый») клиент-банк и «легкий» клиентбанк (или т.н. «тонкий-клиент» или «интернет-клиент»). Эти два
подкласса обычно имеют похожий функционал, но различаются
по способу программной реализации.
Первый подразумевает установку на рабочем месте клиента
большого программного, а возможно, и аппаратного комплекса.
Это предъявляет дополнительные требования к ПО на компьютере клиента, установка и настройка системы на рабочем месте
требуют определенной квалификации, возникают вопросы обновления и т.д. Снижается мобильность, возрастает время на освоение, увеличивается стоимость системы. В то же время, реализация
банк-клиента в виде специализированного ПО имеет ряд преимуществ:
• возможность реализации защищенных механизмов клиентсерверного взаимодействия, например, организацию виртуальной частной сети (VPN),
• возможность использовать альтернативные каналы связи с
банком, помимо сети Интернет, например, модемное соединение по телефонной линии,
• возможность использования любых протоколов клиент-серверного взаимодействия, например, протоколов электронной
почты.
В основном такие системы используются юридическими лицами, когда работа с банком происходит с одного компьютера,
объем проводимых операций значителен и есть возможность технической поддержки пользователей.
Значительно большую популярность, как среди юридических,
так и физических лиц, сегодня набирают системы интернет-банкинга, реализованные в виде интернет-клиента, в которых работа с банком организована через веб-браузер. Они делают ставку
-------------------------------------------------------
241
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Рис. 1. Общая схема взаимодействия клиента и сервера в системах интернетбанкинга
на простоту и мобильность использования, без установки значительных по объему пакетов специализированного ПО, что уменьшает накладные расходы и время на подготовку клиентской части системы работе. Подавляющее число пользователей интернетбанкинга для проведения операций используют именно данный
подкласс систем ДБО, вопросам безопасности которых и посвящена данная работа.
C. Основные свойства и функционал
Типовой интернет-клиент обладает следующими основными
свойствами. Это распределенная, многопользовательская клиентсерверная система, предоставляющая удаленный доступ клиентам
к банковским операциям и использующая для передачи информации открытые каналы связи в рамках сети Интернет. Подразумевается наличие в системе большого числа пользователей с разными правами доступа к информации.
В системе циркулирует информация различных уровней конфиденциальности, содержащая сведения, представляющие собой
коммерческую и банковскую тайну, а также персональные данные, попадающие под действия Федеральных законов «Об информации, информатизации и защите информации», «О банках
и банковской деятельности», «О персональных данных».
Общая схема клиент-серверного взаимодействия в рамках системы интернет-клиент представлена на Рис. 1.
На Рис. 2 представлен пример графического интерфейса, дающий представление о доступном пользователю функционале.
-------------------------------------------------------
242
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Рис. 2. Пример пользовательского интерфейса системы интернет-банкинга.
Дерево в правой части экрана даёт представление о доступном функционале
системы.
IV. Структура
Рассмотрим основные компоненты таких систем: клиент, сервер, механизмы сетевого взаимодействия.
• Серверная часть. Наиболее критический элемент системы, т.к. неработоспособность сервера делает неработоспособной всю систему в целом. Число возможных серверных
платформ, вариантов решений и средств защиты крайне велико. Администрирование требует квалифицированных специалистов, а организация – высококлассного и дорогого оборудования. Наибольшую угрозу для сервера представляют
атаки класса «Отказ в обслуживании» (DDoS). Финансовые
организации располагают достаточными ресурсами для организации серверной части системы на требуемом уровне.
Это, к сожалению, не исключает возможность успешного
проведения атак. Тем не менее, достаточно реалистичным
является предположение о том, что серверная часть имеет
все необходимые организационно-технические средства защиты, адекватные обозначенному уровню опасности для всей
-------------------------------------------------------
243
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
системы. Потому угрозы безопасности и меры противодействия, связанные с серверной частью системы, в нашей работе не рассматриваются.
• Клиентская часть. Организация систем интернет-клиент
сегодня возлагает ответственность о безопасности клиентского рабочего места на пользователя. Для систем с количеством пользователей в десятки и сотни тысяч это, безусловно, логичный шаг. Однако очевидно, что пользователь, в подавляющем большинстве случаев, не обладает специальными знаниями и необходимой квалификацией для создания
и поддержания необходимого уровня защищенности рабочего места (файервол, антивирус, своевременное обновление
ОС/ПО, разделение прав доступа, организация доступа к
рабочему месту и т.п.). В этом заключается основная причина высокой уязвимости клиента для всевозможных атак.
Атаки могут быть направлены на компрометацию, блокирование пользователя, а также, при наихудшем сценарии, получение аутентифицирующей информации (логин, пароль,
ключи и т.д.) и, как следствие, несанкционированный доступ
к банковской системе. Можно выделить три источника угроз
ИБ на клиенте: вредоносное ПО (специализированные или
обычные вирусы), потенциально опасное ПО (программы,
содержащие уязвимости) и сбой в обновлении ПО (устаревшие и неактуальные версии программ). Клиентская часть
является наиболее уязвимым элементом системы и требует
отдельного изучения, что выходит за рамки данной работы. Отдельно необходимо отметить, что использование веббраузера в качестве клиента делает клиентскую часть кроссплатформенной, делая возможным доступ к системе из компьютеров с разными операционными системами.
• Протоколы обмена данными. Клиент-серверное взаимодействие происходит через сети общего пользования, что
определяет необходимость применения безопасных протоколов, обеспечивающих весь набор криптографических средств
защиты. Однако использование в качестве легкого клиента
-------------------------------------------------------
244
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
веб-браузера четко ограничивает набор используемых протоколов. На прикладном уровне это HTTP и его защищенная
версия HTTPS (расширение протокола HTTP через транспортные протоколы TLS и SSL [3, 4]) и TCP/IP в качестве
транспорта. Протокол HTTPS может обеспечить шифрование, аутентификацию и защиту от подмены пакетов, однако не защищает от общесетевых атак, т.к. является протоколом прикладного уровня, что приводит к необходимости
использования дополнительных протокольных мер защиты.
Это входит в противоречие с требованиями к механизмам
клиент-серверного взаимодействия, т.к. от них требуется хотя бы частично «компенсировать» низкий уровень защищенности клиента: компрометация пользовательского компьютера не должна открывать атакующему полный доступ к
операциям по счету.
Сравнение различных систем и-банкинга, представленных в
РФ, показало, что наборы используемых в них протокольных решений и механизмов обеспечения безопасности клиент-серверного
взаимодействия очень схожи. Это объясняется идентичным клиентским ПО (веб-браузер) и функционалом (банковские операции). Выявление типовых механизмов клиент-серверного взаимодействия и присущих им уязвимостей представляется сегодня очень
актуальной задачей, т.к. определяет уровень защищенности всего
класса систем интернет-клиент. Поэтому объектом исследования
в нашей работе являются, в первую очередь, протоколы и решения безопасного обмена данными в системах веб-банкинга.
V. Методы обеспечения информационной
безопасности клиент-серверного взаимодействия в
системах интернет-банкинга
A. Модель нарушителя
Определив объект исследования, следующим шагом необходимо ввести модель нарушителя, обозначив место приложения атаки
-------------------------------------------------------
245
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Рис. 3. Модель нарушителя для системы интернет-банкинга
и уровень возможностей атакующего (Рис. 3):
• Положение относительно объекта атаки
– Нарушитель имеет доступ к каналам связи между клиентом и сервером.
• Возможности
– Полный доступ к передаваемым данным с возможностью чтения, модификации и повтора.
– Свободное использование технологий программирования для сетевых приложений.
– Свободное владение базовыми сетевыми протоколами.
• Исходные права доступа и представление о системе
– Не является легальным клиентом системы.
– Не имеет представления о серверной части системы:
ОС, ПО, средства обеспечения безопасности, оборудование и т.д.
– Имеет представление о клиентской части системы.
– Имеет полное представление о протоколах взаимодействия: внутренние протоколы, HTTP/HTTPS, TCP/IP
и т.д.
• Используемый метод генерации сценария атаки
– Имеет возможность изменять способы атак и последовательность методов атаки.
-------------------------------------------------------
246
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
B. Вероятные угрозы
Для выбранной модели нарушителя определим основные угрозы ИБ в рассматриваемом классе систем:
• Несанкционированный доступ к системе
– Получение нелегальным пользователем полного/частичного доступа к операциям пользователей системы.
• Нарушение работоспособности системы
– Нарушение/сбой связи между клиентом и серверным
приложением.
– Чрезмерная загрузка сервера нелегальным пользователем, приводящая к отказу в обслуживании.
• Несанкционированный сбор информации
– Перехват данных при передаче по каналам связи.
– Перехват пользователем аутентифицирующей информации других пользователей.
– Получение НСД к системе без возможности проведения
операций.
• Нарушение целостности данных
– Искажение/подмена данных при передаче по открытым
каналам связи.
C. Задачи информационной безопасности
Исходя из угроз, можно определить основные задачи безопасности для систем веб-банкинга:
• Обеспечение конфиденциальности информации. Невозможность ознакомления с информацией посторонних лиц.
• Обеспечение целостности информации. Отсутствие искажений информации в процессе хранения и передачи.
• Обеспечение работоспособности Системы. Непрерывное поддержание всех функций Системы в исправном состоянии.
-------------------------------------------------------
247
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
• Отслеживание авторства информации. Обеспечение аутентичности и подлинности информации.
• Обеспечение аутентификации. Предоставление доступа к информации только авторизованным лицам.
D. Методы обеспечения информационной безопасности
В структуре информационного обмена между клиентом и сервером в современных системах веб-банкинга можно выделить три
основных этапа, направленных на решение задач информационной безопасности:
• Установление и поддержание защищенного клиент-серверного соединения. Обеспечивает конфиденциальность (применяя шифрование) передаваемых данных, аутентификацию
клиента и/или сервера, целостность пакетов данных.
• Аутентификация клиента в системе. При успешной аутентификации пользователь получает доступ к своему профилю, просмотру и подготовке операций по счету. Личный профиль клиента, т.е. вся личная информация о состоянии счета
и проводимых операциях в таких системах всегда хранится
на стороне сервера, и клиент получает доступ ко всей информации только после прохождения аутентификации.
• Подтверждение операций по счетам. Обеспечивает дополнительную аутентификацию, подтверждение авторства и целостность информации. Данный этап критичен, т.к. успешная атака двух предыдущих этапов могла нанести лишь косвенный ущерб от разглашения информации, блокировки доступа к профилю или компрометации клиента, в то время
как взлом механизмов подтверждения операций приводит к
прямым финансовым потерям.
1)Установление и поддержание защищенного клиентсерверного соединения:
По описанным выше причинам для этой цели используется
протокол HTTPS. На этапе установления HTTPS-соединения про-------------------------------------------------------
248
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
водится аутентификация клиента или пары клиент/сервер. Цель
аутентификации (клиента или сервера) – доказать, что аутентифицируемый объект – тот, за кого он себя выдает, доказав наличие у него некоторого секрета. Таким секретом в протоколе
HTTPS является пара открытый/закрытый ключ, а для проведения аутентификации применяются алгоритмы электронной цифровой подписи: RSA (по умолчанию) или ГОСТ Р 34.10-2001.
Ключевая пара может быть представлена отдельно или в составе
сертификата. Понятно, что ключи и сертификаты должны быть
получены и установлены заранее. В интернет-банкинге используются 2 типа аутентификации HTTPS:
• Односторонняя – аутентифицируется только сервер. Плюс:
мобильность и простота использования, на клиенте не требуется установка/хранение ключей/сертификатов. Минус: клиент не аутентифицируется и может быть легко подменён, что
дискредитирует саму цель аутентификации.
• Двусторонняя – аутентификация обеих сторон (клиент – сервер). Плюс: надежный метод аутентификации, приводящий,
однако, к потере мобильности, т.к. на компьютере для доступа к системе необходимо наличие установленного сертификата или ключа.
По способу программной реализации (см. Рис. 4) методы защиты соединения можно разделить на 3 группы:
• Стандартные средства интернет браузеров. Плюсы: простота использования, хорошая совместимость с большинством
протоколов и мобильность. Минусы: этим способом невозможно реализовать защищенное соединение с использованием национальных стандартов и СКЗИ, в частности ГОСТ
Р 34.10-2001.
• Дополнительные программные шлюзы. На рабочем месте
устанавливается ПО, которое отвечает за организацию соединения по HTTPS протоколу. Плюсы: банк контролирует использование актуального ПО, возможность использования отечественных СКЗИ. Минусы: значительное услож-------------------------------------------------------
249
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Рис. 4. Типовые методы защиты клиент-серверного канала связи между клиентом и сервером
нение архитектуры и снижение мобильности, т.к. всякий раз
для работы с системой необходимо установить дополнительное ПО – шлюз.
• Дополнительное ПО, расширяющее возможности браузера.
В качестве такого ПО могут выступать библиотеки технологии ActiveX [6] для браузера MS Internet Explorer, расширения браузера Mozilla FireFox, апплеты кроссплатформенной технологии Java [7]. Приложения, реализованные с помощью этих технологий, могут скачиваться на сторону клиента и исполняться с помощью веб-браузера. Плюсы: возможность использования отечественных СКЗИ, большая функциональность. Минусы: некоторое снижение мобильности,
использование уязвимостей технологий.
2)Аутентификация пользователя в системе:
• Аутентификация по паре логин/пароль. Это классический
метод защиты, который используется не только в ДБО, но и
в очень большом количестве приложений. Плюсы: простота
использования. Минусы: в случае прослушивания канала,
легко похищаемы.
• Электронная цифровая подпись (ЭЦП) случайного числа на
клиенте. Со стороны сервера клиенту выдается случайное
число, это число клиент подписывает с помощью СКЗИ своей закрытой ЭЦП и итоговое значение отправляет на сервер.
Сервер расшифровывает полученное сообщение на публич-------------------------------------------------------
250
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
ном ключе клиента. В результате проверяется подлинность
клиента, так как только на настоящем закрытом ключе возможно сделать корректную подпись. Плюсы: случайность,
защита от подделки. Минусы: необходима поддержка СКЗИ,
потеря мобильности.
• Ввод одноразового кода, полученного на мобильный телефон из банка. Этот метод является уже методом двухфакторной аутентификации. Плюсы: случайность, защита от подделки. Минусы: зависимость от доступности второго фактора, т.е., например, если телефон клиента выключен или вне
зоны доступа, то аутентификацию произвести невозможно.
3)Подтверждение операций по счетам:
Методы подтверждения авторства операций можно разделить
на два класса: однофакторные и двухфакторные.
Однофакторные:
• Электронные генераторы одноразовых ключей или одноразовый код из списка. Клиенту в банке выдается карточка
со списком одноразовых ключей или электронный генератор ключей, построенный на хэш-цепочках. Плюсы: случайность. Минусы: возможность перехвата, конечное число ключей, неудобства при обработке большого числа операций.
• Аппаратные системы выполнения ЭЦП. Клиенту в банке выдается специальное устройство, умеющее выполнять криптографические операции. Также в это устройство вшивается
ЭЦП клиента так, что его невозможно программно скопировать. Плюсы: защита от копирования ЭЦП. Минусы: цена
устройства, требуются дополнительные драйверы и СКЗИ
для устройства, потеря мобильности.
• ЭЦП на обычном носителе. Клиенту выдается носитель, на
котором хранятся закрытый и открытый ключ. Далее клиент обязан отвечать за сохранность данных ключей. Плюсы:
простота использования, защита от перехвата. Минусы: требуется СКЗИ, возможность копирования.
-------------------------------------------------------
251
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
• ЭЦП на защищенном носителе. Клиенту выдается носитель,
чтение с которого возможно лишь при установке в системе
специального драйвера. Защита ЭЦП на таком носителе является относительной, так как стандартные методы чтения
ему недоступны, но при использовании функций драйвера
копирование становится возможным. Плюсы: защита от копирования (относительная), защита от перехвата. Минусы:
необходимость поддержки драйверов для используемой операционной системы, потеря мобильности.
Двухфакторные:
• Подтверждение операции кодом, полученным на мобильный
телефон из банка. Плюсы: случайность, защита от подделки.
Минусы: зависимость от доступности второго фактора.
• Подтверждение операций методом звонка в банк. В этом
случае клиент после формирования всех операций обязан
позвонить в банк и, назвав ключевую фразу, подтвердить
правильность проводимых операций. Плюсы: полный контроль над проводимыми операциями. Минусы: неудобства
при обработке большого числа операций.
4)Пример применения методов на модели системы
Интернет-Банкинга:
На Рис. 5 изображена классификация типовых элементов защиты систем интернет-банкинга. На практике модель системы будет состоять из одного или нескольких блоков, взятых из каждой
из трех основных ветвей. Совокупность всех блоков должна надежно обеспечивать информационную безопасность всей системы
в целом. К сожалению, уязвимости, характерные для каждого элемента, будут распространяться и на систему и-банкинга, в которой они нашли применение. Пример построения модели системы
с указанием уязвимостей приведен на Рис. 6.
Разберем приведенный пример. Основываясь на приведенной
выше модели нарушителя, введем модель атаки как получение
-------------------------------------------------------
252
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Рис. 5. Классификация типовых методов защиты в системах ИнтернетБанкинга
-------------------------------------------------------
253
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Рис. 6. Пример построения системы Интернет-Банкинга из типовых элементов, приведенных на Рис. 5, с указанием возможных сценариев атаки
полного доступа к системе. Для этого необходимо получение логина, пароля и ключей ЭЦП. Для реализации этой цели может
быть предложен и реализован сценарий атаки, также изображенный на Рис. 3:
• Для реализации перехвата данных атакующий может воспользоваться широко известной атакой «ARP-spoofing» [7].
«ARP-spoofing» – атака, использующая пакеты ARP для изменения ARP-таблиц клиента, в результате которой настоящая пара IP-MAC заменяется на пару IP-MAC’, где MAC’
– сетевой адрес атакующего. Итог: успешная атака «человек посередине», весь трафик между клиентом и сервером
проходит через компьютер атакующего.
• Для вскрытия шифрования HTTPS трафика атакующий может воспользоваться методом автоматической генерации поддельного сертификата сервера. В результате клиент вместо
сервера подключается к атакующему, а тот, соответственно, к серверу. Успешность атаки зависит от того, на каком
сертификате атакующий подписывает свой поддельный сертификат. Если корневой сертификат дерева сертификатов
создавался атакующим самостоятельно, то современные браузеры выведут клиенту предупреждение, что используемый
«сервером» сертификат не является доверенным. Аккурат-------------------------------------------------------
254
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
ный и внимательный пользователь может насторожиться и
отказаться от дальнейших действий. Если атакующий сможет достать доверенный сертификат с возможностью подписи, то пользователь никаких предупреждений не получит и атака пройдет полностью незамеченной. Большинству
современных браузеров достаточно информации о том, что
сертификат входит в список доверенных. Итог: весь HTTPS
трафик между клиентом и сервером является доступным
для атакующего.
• Так как все передаваемые данные известны нарушителю, то
необходимости в дополнительных методах атаки для получения пары логин/пароль нет – они уже известны.
• Для захвата ключей ЭЦП у атакующего есть возможность
внедрения исполняемого кода в легальный код системы. Благодаря расширению возможностей браузера клиента внедренный код сможет отправить ключи ЭЦП на компьютер
атакующего.
В результате успешного выполнения первого этапа сценария
атаки будут получен несанкционированный доступ на чтение данных. Успешная реализация трёх первых пунктов приведет к угрозе целостности данных, всех – к полному несанкционированному
доступу к системе.
VI. Заключение
Проделанная работа, по своей сути, является обратным инжинирингом в области информационной безопасности систем интернет-банкинга. Что это значит? При проектировании и разработке
систем ИБ общепринятым путём является: выявление угроз −→
введение модели нарушителя −→ постановка задач ИБ −→ разработка политики ИБ −→ разработка профиля −→ реализация
положения профиля. Мы занимались обратной задачей: для уже
существующего и работающего класса систем были сформулированы угрозы и введена модель атакующего, а затем на основании
-------------------------------------------------------
255
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
изучения и анализа существующих систем были выявлены типовые схемы их построения, введена их классификация.
Было выяснено, что типовая схема защиты системы и-банкинга
включает в себя три уровня: обеспечение безопасности клиентсерверного соединения, проведение аутентификации и подтверждение операций. Для каждого из уровней защиты в работе приведен набор типовых решений, повсеместно используемых в реальных системах. Для каждого решения ИБ указаны возможные
уязвимости.
К сожалению, по результатам работы можно констатировать,
что уровень защищенности систем и-банкинга в стране является
достаточно низким. Практически все элементы защиты содержат
критические уязвимости, позволяющие, как минимум, получить
несанкционированный доступ к передаваемым данным на чтение
и, как максимум, полный доступ к операциям по счетам. Общепринятые сегодня решения по обеспечению ИБ: серверная аутентификация с использованием сертификатов, вход в профиль по
паре логин/пароль и использование случайных чисел (через кодовую книгу или е-токен) уязвимы и не обеспечивают должный
уровень безопасности.
В то же время, существуют решения, позволяющие существенно повысить уровень защищенности: е-токены с аппаратным ЭЦП,
клиент-серверная аутентификация с использованием доверенных
цифровых сертификатов. Однако, их применение носит случайный характер. Мы можем объяснить это дополнительными расходами, связанными с выдачей и поддержанием дополнительной
инфраструктуры открытых ключей клиентов и нежеланием банков проводить просветительскую работу среди клиентов.
Литература
[1] Мартынов В.Г., Андреев А.A., Кузнецов В.А., Электронные деньги: интернет - платежи, Маркет ДС, 2010, 165 с.
[2] Котенко И.В., Степашкин М.В., Богданов В.С., Модели и методика интеллектуальной оценки уровня защищенности компьютерных сетей, Труды Международных научно-технических конференций "Интел-------------------------------------------------------
256
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
[3]
[4]
[5]
[6]
[7]
[8]
[9]
[10]
лектуальные системы (AIS’06)" и "Интеллектуальные САПР (CAD2006)", М.: Физматлит, 2006, С. 321–328.
Rescorla E., HTTP Over TLS, RFC 2818, May, 2000.
Freier A.O., Karlton P., Kocher P.C., The SSL Protocol Version 3.0, IETF,
November 18, 1996.
ГОСТ Р 34.10-2001, Информационная технология. Криптографическая
защита информации. Процессы формирования и проверки электронной
цифровой подписи, Москва, Госстандарт России, 2001, 16 с.
Microsoft Announces ActiveX Technologies: Microsoft Corp. announced
ActiveX Technologies, which make it easy for the broadest range of software
developers and Web designers to build dynamic content for the Internet and
the PC, Microsoft PressPass, Microsoft, San Francisco, March 12, 1996.
The Java Tutorials, A Sun Developer Network Site, 2010.
D.C. Plummer, An Ethernet Address Resolution Protocol: or Converting
Network Protocol Addresses to 48.bit Ethernet Address for Transmission on
Ethernet Hardware, RFC 826, November, 1982.
P. Mockapetris, Domain names - Implementation and specification, RFC
1035, November, 1987.
CVE-2009-3555, Common Vulnerabilities and Exposures, October, 2009.
-------------------------------------------------------
257
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Реализация криптографических функций в
RFID системах
Р.Ш. Омиров
аспирант
Санкт-Петербургский государственный
университет аэрокосмического приборостроения
I. Введение
RFID системы все глубже входят в повседневную жизнь людей. Их можно встретить практически в любой области человеческой жизнедеятельности: на продукции в магазинах, на животных для отслеживания их перемещений, в прогнозировании погоды, в паспортах граждан некоторых стран, в военных целях и
целях безопасности и т.д. В связи с таким широким использованием RFID систем возникает вопрос о защищенности информации,
которая передается и хранится в этих системах. RFID системы
накладывают определенный отпечаток на реализацию криптографических функций, позволяющих производить защиту информации. Основной такой особенностью является ограниченность ресурсов. Чем меньше стоит RFID метка, тем больше у нее ограничений. У низкостоимостных RFID меток, которые чаще всего используются, существенными ограничениями являются отсутствие
источника питания (питание и, следовательно, работа производятся за счет принятого сигнала от RFID считывателя) и малое
количество памяти, которое необходимо для хранения идентификационного номера и небольшого числа функций, управляющих
работоспособностью системы. Таким образом, необходимо реализовать криптографические функции так, чтобы они соответствовали этим ограничениям.
-------------------------------------------------------
258
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Для реализации криптографических функций в рамках таких строгих ограничений требуются алгоритмы, которые были бы
просты в своей реализации и при этом криптографически устойчивы. Подобные алгоритмы составляют раздел криптографии, называемый легкой криптографией. Примерами алгоритмов легкой
криптографии могут послужить DESX, DESL, DESXL, PRESENT,
TEA, HB и так далее. Кроме алгоритмов легкой криптографии,
для реализации в RFID системах подходят алгоритмы криптографии на эллиптической кривой, которые используют арифметику в поле и достаточно просты в своей реализации по сравнению с классической криптографией (RSA). Примерами алгоритмов криптографии на эллиптической кривой являются: алгоритм
DSA на эллиптической кривой (ECDSA), алгоритм Менезеса-КьюВенстоуна на эллиптической кривой (ECMQV) и так далее.
В процессе развития технологий появилось несколько способов
реализации криптографических функций в RFID метках.
II. Архитектура RFID метки
Прежде чем говорить о различных вариантах реализации криптографических функций в RFID метках, стоит немного рассказать о том, как она устроена.
Архитектура RFID меток зависит от тех функций, которые
хотят вложить в нее, и от компании-изготовителя. В общих чертах каждая метка состоит из двух главных частей: чипа, который
также называется микрочипом и представляет из себя интегрированную схему или интегрированную схему, отражающую специфику применения (Application-Specific Integrated Circuit, ASIC), и
антенны [1]. Чип выполняет функции, необходимые для поддержания работоспособности системы или для ее отключения. Чип
соединен с антенной, через которую происходит связь с другими
метками и устройствами, способными считывать ее сигнал – ридерами (считывателями). Обе эти части могут быть выполнены
различными способами, каждый из которых имеет как плюсы,
так и минусы.
-------------------------------------------------------
259
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Рис. 1. Общая архитектурная схема RFID метки
На Рис. 1 можно увидеть общую схему RFID метки [2]. Как
видно из рисунка, чип состоит из модуля предварительной обработки данных (front end module), который обрабатывает входящие сигналы, преобразовывает выходные данные в сигнал и,
если это пассивная или полупассивная метка, преобразует энергию сигнала в энергию для своей дальнейшей работы. Модуль
связан с устройством управления электрическими шинами (bus
manager), при помощи которого осуществляется передача данных
по всей метке. Устройство управления шинами связано с микроконтроллером, который может выполнять основные арифметические операции и команды, необходимые для работы метки, а
также программы, введенные в ROM. Кроме микроконтроллера,
устройство управления шинами связано также с блоками памяти
ROM и RAM.
ROM запоминает программные коды и данные. Программы,
выполняемые микроконтроллером, и данные могут включать закрытый ключ метки, открытый ключ сервера и системные параметры. Программы в основном представляют из себя протоколы
аутентификации. RAM используется для запоминания промежуточных или финальных результатов вычислений микроконтроллера.
-------------------------------------------------------
260
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Рис. 2. Общая архитектурная схема RFID метки с добавлением криптографических функций
Стоит заметить, что у большинства меток с низкой стоимостью запись в память производится один раз – на заводе-изготовителе. Это ограничение приводит к тому, что использовать такие
метки для программных реализаций невозможно.
III. Принципы построения
Для реализации криптографических функций потребуется устройство, которое сможет выполнять соответствующие расчеты.
Такими устройствами являются процессор/микропроцессор и сопроцессор. Его расположение в RFID метке можно увидеть на
Рис. 2.
Аппаратное устройство такого процессора обусловлено тем,
какой криптографический алгоритм производитель собирается заложить в метку.
Различают два возможных способа построения процессора:
• на основе ASIC технологии;
• на основе FPGA (Field Programmable Gate Arrays) технологии.
-------------------------------------------------------
261
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Рис. 3. Схема процессора, преобразованного в последовательную форму DES
и выполненного при помощи технологии ASIC (Application Specific Integrated
Circuits)
Аналогично с процессором, для сопроцессора различают те же
два способа построения.
Кроме аппаратного способа реализации криптографических
функций для RFID метки, существует еще и программный способ.
ASIC технология заключается в использовании библиотек
стандартных логических элементов, таких, как NOT, AND, XOR
и так далее. Таких библиотек сейчас уже много. Примером может
послужить библиотека, которая называется UMCL18G212T3.
На Рис. 3 [3] проиллюстрирован пример реализации алгоритма DES с использованием библиотеки стандартных логических
элементов.
Реализация алгоритма DES в основном состоит из 5 постоянных модулей: controller, keyschedule, mem_left, mem_right и sbox.
Вот короткое описание этих модулей.
• Controller: модуль controller управляет всеми контрольными
сигналами в ASIC, основанном на конечном автомате (FSM).
-------------------------------------------------------
262
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
FSM представлен на Рис. 4.
• Keyschedule: в этом модуле генерируются ключи всех раундов DES. Он состоит из 56-битного регистра, мультиплексоров, стоящих на входе и на выходе для выбора правильной
части ключа раунда (roundkey).
• mem_left: этот модуль состоит из восьми 4-битных широких
регистров, каждый из которых состоит из D-триггера.
• mem_right: этот модуль похож на модуль mem_left с небольшим отличием – он также состоит из 4-битных широких регистров, но имеет разные сигналы на входе и на выходе: вместо 4-битного широкого выхода он имеет 6-битный широкий
выход, соответствующий функции расширения DES.
• sbox: этот модуль состоит из 8 S-боксов алгоритма DES и
мультиплексора на выходе. S-боксы реализуются в комбинаторной логике, то есть как сумма произведений (SOP).
56-битный ключ запоминается в триггер регистра ключа после того, как были произведенены перестановки PC1 и LS1. Незашифрованный текст сначала перемешивается с использованием
начальной перестановки (InitialPermutation, IP), затем разбивается на два 32-битных входных сигнала для модулей mem_left и
mem_right соответственно. Входной сигнал mem_left изменяется
на противоположный перестановкой P и запоминается в регистры
модулей mem_left и mem_right в одном цикле. Далее выходной
сигнал последнего регистра в mem_right и то, что было ранее,
запоминаются в первый регистр mem_right и расширяются до 6
бит. После операции XOR с соответствующим блоком текущего
ключа раунда, это расширенное значение обрабатывается sbox модулем, который выбирается сигналом count, обеспеченным модулем controller. Наконец, результат складывается с помощью XOR
с выходным сигналом модуля mem_left и запоминается в первый
триггер модуля mem_left. Это повторяется 8 раз, до тех пор, пока
все 32 бита правой части не будут обработаны.
Перестановка P применяется в каждом 9-м такте. Так как перестановка P −1 используется перед левой 32-битной частью Li ,
которая запоминается в mem_left, то перестановка P выполняет-------------------------------------------------------
263
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Рис. 4. Конечный автомат ASIC архитектуры для DES, DESX, DESL, DESXL
ся над результирующей правой половиной Ri+1 = P (P −1 (Li ) ⊕
S (E (Ri ) ⊕ Ki )), где Li обозначает левую часть, Ri обозначает
правую часть и Ki обозначает ключ раунда. При сокращении
внутренней шины данных от 32-битной шины до 4-битной необходимо только 100 транзисторов (25 вентилей) для операции XOR.
Один раз обрабатываются все восемь 4-битных блока обеих
половин, они складывают два 32-битных широких выходных сигнала модулей mem_left и mem_right. Выходной сигнал модуля
mem_left трансформируется перестановкой P и запоминается как
новое содержание модуля mem_left. Выполнение этого действия
повторяется остальные 15 раундов. Наконец, оба выходных сигнала памяти модулей mem_left и mem_right конкатенируются в
64-битный выходной сигнал. Этот выходной сигнал перемешивается перестановкой, обратной к начальной (IP −1 ), которая дает
результат в виде действительного шифротекста алгоритма DES.
Это требует 144 такта для шифрования одного 64-битного блока нешифрованного текста. Для одного такта шифрования при
частоте 100 килогерц в среднем затрачивается около 1.19 микроампера для устройства, состоящего из 4-х перечисленных ранее
модулей, с пропускной способностью 5.55 KB/s.
Как видно из данного примера, ASIC технология позволяет
реализовать каждую операцию алгоритма отдельно с помощью
соответствующего логического элемента. Это является главным
отличием ASIC технологии от технологии FPGA, в которой роль
функции играет программируемая матрица.
FPGA схемы делают аппаратные реализации более гибкими
в использовании за счет своей программируемости и небольшой
площади. Микросхемы ASIC, в свою очередь, имеют узкий круг
применения, обусловленный жёстко предопределённым набором
-------------------------------------------------------
264
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
их функций. Современные ASIC часто содержат полноценный 32битный процессор, блоки памяти, включая ROM, RAM,
EEPROM, Flash и другие крупные блоки. Такие ASIC часто называют SoC (system-on-a-chip, англ. «система на кристалле»).
Пример реализации функции алгоритма PRESENT-80 при помощи FPGA можно увидеть на Рис. 5. Матрица имеет 212 контактов на входе и выходе, а для PRESENT-128 – 270 таких контактов.
Интерфейс входа/выхода обычно сильно зависит от цели приложения, в данном случае он был сделан для параллельного ввода
ключа.
Функции шифрования и дешифрования выполнялись в VHDL
для Spartan-III XC3S400 (пакет FG456 со степенью скорости-5)
при помощи FPGA ядра для Xilinx. Для моделирования использовалось Mentor Graphics ModelSimXE 6.2g, а для планирования
метода исследования – Xilinx ISE v10.1.03 WebPACK.
Способ реализации криптографических функций при помощи
сопроцессоров основан на создании криптографического сопроцессора, управляемого главным ядром – микроконтроллером. Он
использует интерфейс памяти RAM для коммуникаций.
На Рис. 6 показана реализация сопроцессора для PRESENT128, обладающего возможностями шифрования и дешифрования
[4]. Для получения компактного и быстрого решения используется ASIC архитектура раунда с модификацией конечного автомата
и добавлением мультиплексоров. Незашифрованный текст загружается в 32-битовые блоки. Сопроцессор контролирует запись и
чтение разрешающими сигналами. Сигнал адреса выбирает разные битовые блоки и режимы шифрования или дешифрования.
Сопроцессоры для AES и PRESENT выполнялись на платформе «система-на-кристалле» (System-on-Chip, SoC), основанной на FPGA [4]. Для сопроцессоров использовалось оборудование со сменой моделирования GEZEL, которое создает симулятор платформы для комбинирования набора команд симуляторов
с ядром аппаратной части. Характеристики GEZEL могут быть
преобразованы в синтезируемый VHDL код, что способствовало
добавлению сопроцессоров, реализующих AES и PRESENT алго-------------------------------------------------------
265
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
А) соединения на входе/выходе
Б) конечный автомат (FSM)
Рис. 5. Соединения на входе/выходе и FSM для FPGA реализации PRESENT80
Рис. 6. Блок диаграмма сопроцессора PRESENT-128 с 32-битовым интерфейсом
-------------------------------------------------------
266
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Таблица I
Программа для протокола Шнорра
Программный код
Block_Mov(RNG,RAM[4])
Activate_ECP(ROM[3])
Wait_for_ECP
Block_Mov(RAM[2],Tran.)
Block_Mov(RAM[3],Tran.)
Block_Mov(Recv.,RAM[2])
Block_Mul(ROM[2],RAM[2])
Block_Add(ROM[0],RAM[4])
Block_Mov(RAM[0],Tran.)
End_of_code
Комментарии
Генерирует блок случайных
данных и запоминает в RAM[4]
Запуск ECP со значением X
координаты из ROM[3]
Ожидание, пока ECP
не завершит работу
Передача RAM[2]
Передача RAM[3]
Получение блока и
запоминание в RAM[2]
Производим модульное умножение
ROM[2] и RAM[2]
и запоминаем в ROM[1]
Производим модульное сложение
ROM[0] и RAM[4]
и запоминаем в RAM[0]
Передача ROM[0]
Конец программы
ритмы, в Xilinx Platform Studio 9.1.02. Подробнее о результатах
можно прочитать в [4, 7].
Программный способ заключается в том, что в ROM записывается программа, которая затем выполняется микроконтроллером.
В качестве примера аппаратно-программного способа реализации
криптографических функций в Табл. I проиллюстрирована программа для протокола Шнорра, которая выполняется микроконтроллером при участии процессора, выполняющего арифметические операции на эллиптической кривой (Elliptic Curve Processor,
ECP). ECP может выполнять не только арифметические операции, но и алгоритмы – такие, например, как ECDSA [2, 5, 6].
IV. Краткий обзор реализаций криптографических
алгоритмов
В Табл. II приведены результаты реализаций криптографических алгоритмов. Из таблицы видно, что затрачиваемое количе-------------------------------------------------------
267
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Таблица II
Реализации алгоритмов легкой криптографии,
облегченных алгоритмов и алгоритмов на
эллиптической кривой, выполненные для RFID
Ссыл
ка
Алгоритм
Устройство
Размер
CMOS,
CMOS,
CMOS,
CMOS,
CMOS,
CMOS,
CMOS,
CMOS,
8400 ge
8120 ge
10868 ge
<6000 ge
3400 ge
1600 ge
2330 ge
2945 ge
CMOS, 65 nm
5517 ge
0.20
[9]
MD-5
SHA-1
SHA-256
SQUASH
AES
DM-PRESENT-80
H-PRESENT-128
ZT‘-127
(lightweight)
ZT‘-127
(lightweight)
PRESENT-128
Проп. спос.
при 100KHz
(Kbps)
83.7
40.2
45.4
<0.1
12.4
14.6
11.5
0.52
Spartan-IIIXCS400-5
202 slices
508 Mbps
на 245 MHz
[9]
[9]
[9]
PRESENT-80
ICEBERG
SEA
Spartan-IIIEXC3S500 271 slices
Virtex-II
631 slices
Virtex-IIXC2V4000
424 slices
[9]
AES
Spartan-IIXC2S30-6
522 slices
[9]
AES
Spartan-IIXC2S15-6
264 slices
[10]
[10]
[10]
[10]
[10]
[11]
[11]
[11]
[11]
[11]
DES
DESXL
Trivium
Grain-80
HIGHT
PRESENT-80
mCrypton
PRESENT-128
TEA
MAME
CMOS,
CMOS,
CMOS,
CMOS,
CMOS,
CMOS,
CMOS,
CMOS,
CMOS,
CMOS,
2309
2168
2599
1294
3048
1075
2681
1886
2355
8100
[8]
[8]
[8]
[8]
[8]
[8]
[8]
[8]
[8]
-------------------------------------------------------
0.13 mm
0.35 mm
0.35 mm
0.35 mm
0.35 mm
0.18 mm
0.18 mm
65 nm
0.18
0.18
0.13
0.13
0.25
0.18
0.13
0.18
0.18
0.18
268
mm
mm
mm
mm
mm
mm
mm
mm
mm
mm
ge
ge
ge
ge
ge
ge
ge
ge
ge
ge
1016 Mbps
156 Mbps
на 145 MHz
166 Mbps
на 60 MHz
2.2 Mbps
на 67 MHz
44.4
44.4
100
100
188.2
11.4
492.3
200
100
266.67
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Таблица II (продолжение)
Ссыл
ка
[12]
[4]
[4]
[4]
[4]
[4]
[4]
[4]
[5]
[5]
[5]
[13]
[14]
[5]
[5]
Алгоритм
Устройство
Размер
Clefia
PRESENT-128
CMOS ,0.09 mm
Сопроцессор,
ASIC, 0.18 mm
AES
Сопроцессор,
ASIC, 0.18 mm
AES
Сопроцессор,
ASIC, 0.11 mm
AES
Сопроцессор,
ASIC, 0.6 mm
HIGHT
Программная
реализация
TEA
Программная
реализация,
8-бит. микроконтроллеры
SEA
Программная
реализация
Кривая E(F2163 ) CMOS, 0.18 mm
4993 ge
2900 ge
Кривая E(F2179 )
Кривая E(Fp ),
p = (2167 + 1)/3
ECDSA, E(Fp ),
p = (2101 + 1)/3
ECDSA:
E(F2160 )
E(F2192 )
E(F2256 )
E(F2256 )
Virtex 800
CMOS, 0.13 mm
11811 slices
34390 ge
CMOS, 0.13 mm
18720 ge
CMOS, 0.35 mm
CMOS, 0.35 mm
CMOS, 0.13 mm
Spartan-III 5000-5
19000 ge
23600 ge
122000 ge
27597 slices
-------------------------------------------------------
269
124000 ge
54000 ge
85000 ge
8-бит. микроконтроллеры
8-бит. микроконтроллеры
8-бит. микроконтроллеры
36000 ge
1 KB RAM
Проп. спос.
при 100KHz
(Kbps)
355.56
529 Mbps
на 323 MHz
872 Mbps
на 300 MHz
311 Mbps
на 131 MHz
50 Mbps
на 50 MHz
80.3
на 4 MHz
40.8
на 4 MHz
39.7
на 4 MHz
19000 операций в
секунду (ops)
1800 ops
320 ops
990 ops
56 ops
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
ство элементов (эквивалентов логического элемента – вентилей
(ge) и модулей (slices)) для реализации алгоритмов облегченной
криптографии намного ниже, чем для алгоритмов эллиптической
криптографии. В среднем на алгоритм облегченной криптографии затрачивается около 2000 вентилей или около 300 модулей,
а на алгоритм эллиптической кривой – около 20000 вентилей или
17000 модулей. По совокупности пропускной способности и затраченных элементов алгоритмы легкой криптографии также выигрывают у алгоритмов эллиптической кривой, как и по времени
работы: так, для алгоритма AES c 3595 вентилями время работы
10 µs (1016), в то время, как для одной из самых быстрых реализаций для эллиптической кривой это время достигает 19.55 µs
при затрачиваемом количестве элементов 16209 модулей при частоте 100 KHz [5, 15]. Тем не менее, алгоритмы на эллиптической
кривой обладают большей криптоустойчивостью, а их реализации
более гибкие в использовании. Так, при помощи алгоритмов эллиптической кривой можно не только шифровать данные, но и
подписывать их, а также безопасно распределять ключи.
V. Заключение
В данной статье были рассмотрены: общая архитектурная схема RFID меток и основные принципы реализации криптографических функций в RFID метках.
В связи с рассмотренным материалом можно сделать следующие выводы.
1. Реализация криптографических функций в RFID системах
возможна двумя способами, а именно – аппаратным и программным. Аппаратная реализация может производиться
при помощи процессоров и сопроцессоров, основанных на
технологиях ASIC и FPGA. Программная реализация производится при помощи микроконтроллеров и программ, которые записываются в блок памяти ROM.
2. Для RFID-систем с низкой стоимостью лучше всего подходит аппаратная реализация при помощи ASIC, так как при
-------------------------------------------------------
270
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
использовании ASIC наиболее низкие затраты на энергию,
на площадь, на память. Однако реализации при помощи
FPGA более гибкие в использовании, так как FPGA схемы
могут быть перепрограммированы, в отличие от ASIC схем.
3. Реализации облегченных алгоритмов и алгоритмов легкой
криптографии, такие, как AES, DES, PRESENT и так далее, выигрывают у реализаций алгоритмов на эллиптической кривой по таким показателям, как требуемая площадь,
затраты мощности и энергии, быстродействие. Однако стоит
заметить, что реализации алгоритмов эллиптической кривой
выигрывают по криптографической стойкости, по возможности выполнения большего количества операций, а именно
– выполнения цифровой подписи, распределения ключей и
так далее.
Несмотря на все ограничения в RFID-технологиях, та область,
которая связана с безопасностью, развивается очень быстро: ежегодно появляется много литературы, описывающей различные протоколы и алгоритмы, а также их аппаратные и аппаратно-программные реализации. Все эти технологии постепенно внедряются в RFID системы, которые все шире начинают применяться в
повседневной жизни.
Литература
[1] P.J. Sweeney and E. Zeisel, CompTIA RFID+ study guide, Sybex2007, 338 p.
[2] L. Batina, J.Guajardo, T. Kerins, N. Mentens, P. Tuyls, and I. Verbauwhede,
An elliptic curve processor suitable for RFID-tags.
[3] P.P. Lуpez, Lightweight cryptography in radio frequency identification
(RFID) systems, Computer Science Department, Leganés, October 2008.
[4] A.Y. Poschmann, Lightweight cryptography, Cryptographic engineering for
a pervasive world, Faculty of Electrical Engineering and Information
Technology Ruhr-University, Bochum, Germany, Feb. 2009.
[5] K. Järvinen, Studies on hardware implementation of cryptographic
algorithms, Helsinki University of Technology, Department of Signal
Processing and Acoustics, Espoo 2008.
[6] L. Leinweber, Improved cryptographic processor designs for security in RFID
and other ubiquitous systems, Department of Electrical Engineering and
Computer Science Case Western Reserve University, May 2009.
-------------------------------------------------------
271
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
[7] X.Guo, Z.Chen and P.Schaumont, Energy and performance evaluation of
an FPGA based SoC platform with AES and PRESENT coprocessors,
Embedded computer systems: architectures, modeling, and simulation,
volume 5114 of Lecture Notes in Computer Science, pages 106-115. SpringerVerlag, 2008.
[8] G. de Meulenaer, C. Petit, J.-J. Quisquater, Hardware implementations of
a variant of the Zemor-Tillich hash function: can a provably secure hash
function be very efficient?, Universite catholique de Louvain.
[9] M. Sbeiti, M. Silbermann, A. Poschmann, C. Paar, Design space exploration
of PRESENT implementations for FPGA’s, Horst Gortz Institute for IT
Security.
[10] A. Poschmann, G. Leander, K. Schramm, C. Paar, New lightweight crypto
algorithms for RFID, Horst Gortz Institute for IT-Security, Ruhr-University
Bochum, Germany.
[11] A. Bogdanov, G. Leander, C. Paar, A. Poschmann, M.J.B. Robshaw and Y.
Seurin, Hash functions and RFID tags: mind the gap, HorstGortz Institute
for IT Security, Ruhr-University Bochum, Germany, Orange Labs, Issyles
Moulineaux, France.
[12] T. Eisenbarth, C. Paar, A. Poschmann, S. Kumar, L. Uhsadel, A survey
of lightweight cryptography implementations, Design and Test of ICs for
Secure Embedded Computing, IEEE Design & Test of Computers, NovemberDecember 2007.
[13] G. Gaubatz, J.-P. Kaps, E. Öztürk, B. Sunar, State of the art in
ultra-low power public key cryptography for wireless sensornetworks, 2nd
IEEE International Workshop on Pervasive Computing and Communication
Security (PerSec 2005), Kauai Island, 2005.
[14] L. Harn, G. Gong, Elliptic curve digital signatures and accessories,
Department of Combinatorics & Optimization; University of Waterloo,
Waterloo, 2008.
[15] L. Batina, J. Guajardo, T. Kerins, N. Mentens, P. Tuyls and I. Verbauwhede,
An elliptic curve processor suitable for RFID-tags, ACR Eprint archive,
Report 2006/227, July 4th, 2006.
-------------------------------------------------------
272
-------------------------------------------------------
Алгоритмы для
распределенных систем
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Моделирование входного трафика
в беспроводной сети связи
А.В. Анисимов
С.Д. Андреев
аспирант
Санкт-Петербургский
государственный университет
аэрокосмического приборостроения
к.т.н. с.н.с.
Санкт-Петербургский
институт информатики и
автоматизации РАН
А.М. Тюрликов
к.т.н. доцент
Санкт-Петербургский государственный
университет аэрокосмического приборостроения
I. Введение
Повсеместное распространение беспроводных технологий связи и созданных на их основе систем передачи информации обуславливает необходимость в углубленной и более точной оценке
их производительности. Современные телекоммуникационные сети оперируют с большим количеством разнородной информации,
включая видео-, аудиопотоки, а также потоки данных. Для обеспечения определенных гарантий по качеству обслуживания таких потоков требуется построение адекватных аналитических и
имитационных моделей для систем передачи информации. С другой стороны, имеющиеся на сегодняшний день телекоммуникационные стандарты определяют лишь структуру физического и
канального уровней таких систем, оставляя без внимания характеристики вышележащих уровней. Таким образом, выбор модели
входного трафика в современных системах связи представляет собой важную исследовательскую задачу [1].
-------------------------------------------------------
275
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Имеется множество исследовательских работ, посвященных задаче построения адекватной модели входного потока. В частности, часто рассматриваются эмпирические модели, воспроизводящие поведение какого-либо протокола вышележащих уровней. В
работе [2] предлагается модель протокола передачи гипертекста
(Hypertext Transfer Protocol, HTTP), основанная на накопленной
статистике сообщений. К сожалению, эмпирические модели трафика существенным образом зависят как от набранной статистической информации, так и от процесса ее получения и не могут
использоваться в качестве общей методики при моделировании
систем передачи информации.
В качестве альтернативы, в документе [3] приведены обобщенные модели, которые могут быть использованы в достаточно широком диапазоне условий. Предложенные модели типового трафика в беспроводной сети, имеющей доступ к сети Интернет, основаны на прерванном пуассоновском процессе (Interrupted Poisson
Process, IPP), а также на комбинировании нескольких таких процессов в один. Простейшая IPP-модель, известная также как модель ON-OFF, масштабируема, легка в использовании и потому
рекомендована к использованию в современном стандарте региональных систем передачи информации IEEE 802.16 [4]. Имеется
ряд документов, регламентирующих использование IPP-моделей
трафика при оценке производительности беспроводных сетей связи, среди которых следует выделить [5], [6] и [7].
Модели, основанные на процессе IPP, принято относить к более широкой группе пуассоновских процессов, модулируемых цепью Маркова (Markov Modulated Poisson Process, MMPP) [8]. В
свою очередь, процессы MMPP входят в класс пачечных марковских входных процессов (Batch Markovian Arrival Process, BMAP),
которые сейчас достаточно хорошо изучены с помощью матричноаналитических методов. Процессы BMAP были впервые рассмотрены в статье [9] и позднее использованы в работе [10] для моделирования трафика в IP-сетях для учета переменной длины сообщения. В труде [11] разработана единая система определений и
обозначений, а сам процесс BMAP более точно назван дискретным
-------------------------------------------------------
276
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
пачечным марковским входным процессом (Discrete-time Batch
Markovian Arrival Process, DBMAP). Многие известные входные
процессы являются частными случаями процесса DBMAP, включая бернуллиевский входной процесс, бернуллиевский процесс, модулируемый цепью Маркова (Markov Modulated Bernoulli Process,
MMBP), пачечный бернуллиевский процесс с коррелированными
поступлениями пачек и другие [12].
Процессы DBMAP широко используются для моделирования
видеопотока MPEG-4 [13], а также для масштабируемого потока H.264/SVC [14]. В работе [15] входной процесс DBMAP был
использован для анализа энергосберегающего режима в системе
связи IEEE 802.16, а в статье [16] – для анализа алгоритма разрешения конфликтов канального уровня. Кроме того, в ряде работ,
таких как [17], [18] и [19], рассматриваются различные модификации процессов DBMAP в рамках матрично-аналитической теории.
К сожалению, полученные для процессов DBMAP аналитические результаты находят ограниченное применение на практике
в силу своей более высокой сложности по сравнению с моделями
трафика, принятыми в [5], [6] и [7] для реальных сетей передачи
информации. В данной работе мы устраняем данное ограничение,
предлагая простой подход к построению DBMAP-модели, которая
наиболее близка к практической IPP-модели. Тем самым, имеющиеся для DBMAP-процессов аналитические результаты могут
быть непосредственно применены для исследования имеющихся
сетей передачи информации, таких как IEEE 802.16, IEEE 802.11
и 3GPP Long Term Evolution (LTE). В следующем разделе мы
описываем известные практические модели трафика для беспроводных сетей связи, затем более подробно рассматриваем процессы DBMAP. Далее предлагается подход к построению DBMAPмодели, эквивалентной известной IPP-модели, и устанавливаются
их схожие свойства.
-------------------------------------------------------
277
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Первый пакет сеанса
Посл ед ний пакет сеанса
Врем я чтения
Рис. 1. Пример распределения сообщений в течение сеанса
II. Обзор моделей входных потоков
При исследовании и изучении различных свойств и характеристик систем передачи информации возникает задача построения моделей входного трафика, характеристики которых были бы
наиболее близки к характеристикам реальных потоков данных. В
данном разделе приводится описание основных моделей, которые
рекомендованы при анализе современных телекоммуникационных
сетей.
A. Описание модели HTTP-трафика
Рассмотрим модель HTTP-трафика, предложенную в [5], [6]
и [7]. На Рис. 1 представлен пример временно́го распределения
сообщений в течение типового сеанса работы в сети Интернет.
Данный сеанс имеет четко выраженные периоды ON и OFF, в
течение которых происходит и не происходит генерация данных,
соответственно.
Для генерации такого вида трафика используется модель [3],
которая известна как IPP. Данная модель представляет собой
марковскую цепь с двумя состояниями (см. Рис. 2). Такая цепь
характеризуется тремя параметрами: интенсивностью поступления сообщений в состоянии ON; интенсивностью переходов из состояния ON в состояние OFF и интенсивностью переходов из состояния OFF в состояние ON. Интенсивностью переходов будем
называть число переходов из одного состояния в другое за некоторую единицу времени.
В описываемой модели параметр C1 определяет интенсивность
переходов из состояния ON в состояние OFF, параметр C2 опре-------------------------------------------------------
278
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
C1
ON
λON
OFF
C2
Рис. 2. Модель ON-OFF
деляет интенсивность переходов в обратном направлении. Когда
модель находится в состоянии ON, происходит поступление новых сообщений согласно закону Пуассона с интенсивностью λON .
Интервал времени между двумя соседними сообщениями распределен по экспоненциальному закону с функцией распределения
F (t) = 1 − e−λON ·t .
(1)
Длительности периодов ON и OFF распределены по экспоненциальному закону, поэтому средняя длительность периода ON составляет 1/C1 , а средняя длительность периода OFF равна 1/C2 .
Вероятность того, что система находится в состоянии ON, составляет
C2
.
(2)
PON =
C1 + C2
Аналогично, вероятность нахождения системы в состоянии OFF
равна
C1
.
(3)
POF F =
C1 + C2
В некоторых случаях для моделирования реалистичного трафика используется прием комбинирования нескольких потоков
одного типа с различными параметрами в один. Для обозначения такой модели перед ее названием добавляется цифра, которая показывает количество комбинированных потоков. Например,
обозначение 4IPP соответствует комбинации, которая состоит из
четырех простейших прерванных пуассоновских потоков IPP. Согласно [3], количество совмещаемых потоков прямо пропорционально степени самоподобия трафика. Табл. I содержит типовые
-------------------------------------------------------
279
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Таблица I
Параметры IPP-модели
Параметр
Интенсивность в состоянии ON λON ,
сообщ./ед.вр.
C1 , переходов/ед.вр.
C2 , переходов/ед.вр.
Общая интенсивность λ, сообщ./ед.вр.
Значение
1.698
1.445 · 10−2
1.084 · 10−2
0.7278
параметры модели IPP для генерации Интернет-трафика от одного пользователя.
Приведенные параметры следует масштабировать для заданной скорости трафика. Например, пусть скорость моделируемого
потока должна быть равна 50 Кбит/сек. Согласно проведенным
в [3] исследованиям, средний размер сообщения равен 192 байтам.
Тогда количество сообщений в секунду составит 50000/1536 =
32.552. Чтобы пересчитать число единиц времени в одной секунде,
нужно выполнить следующее действие: 32.552/0.7278 = 44.7266
ед.вр./сек. Теперь для получения параметров модели, которая порождает поток со скоростью 50 Кбит/сек, необходимо все параметры из таблицы умножить на масштабирующий коэффициент
44.7266.
Как обсуждалось выше, модель IPP является частным случаем модели MMPP, которая включает в себя более двух состояний
и задает различную интенсивность поступления сообщений в этих
состояниях [8].
B. Описание VoIP-трафика
Для моделирования голосового VoIP-трафика используется модификация модели IPP, а именно, модель прерванного детерминированного процесса IDP (Interrupted Deterministic Process). В
модели IDP в состоянии ON вместо экспоненциального периода
времени между поступлениями двух соседних сообщений используется детерминированный период. В документе [3] содержатся
-------------------------------------------------------
280
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
параметры базовой модели. Более сложные модели потока VoIP
могут быть найдены в [5], [6] и [7]. В Табл. II приводятся их типовые параметры. Из указанного набора параметров можно рассчитать параметры для IDP-модели.
III. Описание процесса DBMAP
Рассмотрим временну́ю ось, разделенную на равные промежутки времени, называемые окнами. Окна нумеруются натуральными числами, и окну с номером t соответствует интервал времени [t − 1, t). Далее будем называть окно с номером t просто окном
t для краткости. Рассмотрим также некоторый стохастический
процесс с дискретным множеством состояний, которое обозначим
через S. Взаимооднозначно поставим в соответствие окну t состояние из рассмотренного множества: S t ∈ S. С другой стороны,
каждому окну t взаимооднозначно поставим в соответствие некоторое целое неотрицательное число X t , которое имеет смысл количества вновь поступивших сообщений в окне t. Отметим, что
при такой дискретизации время поступления каждого из X t сообщений внутри окна t остается без внимания.
Обозначим вероятность события, связанного с поступлением
n сообщений в окне t и переходом рассматриваемого стохастического процесса из состояния с номером i в состояние с номером j
в конце окна t, следующим образом:
Pr{X t = n, S t+1 = j|S t = i} , bij (n).
(4)
Каждому значению n можно поставить в соответствие матрицу Bn = {bij (n)}. В наиболее общем случае число n сообщений,
поступивших в некотором окне, может быть неограничено. Тогда
имеется бесконечное число матриц Bn . В литературе описанный
таким образом процесс {X t , S t } принято называть дискретным
пачечным марковским входным процессом или DBMAP [11]. Он
полностью описывается набором матриц Bn для всех возможных
значений n. Для этого процесса ниже введем основные определения и обозначения.
-------------------------------------------------------
281
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Таблица II
Параметры VoIP-модели
Параметр
Средняя длительность звонка, с
Аудио кодек
Длительность кадра
Длительность потока речи
Длительность паузы
Подавление пауз
Активность разговора
Соотношение UL:DL
-------------------------------------------------------
282
Значение
Закон распределения –
экспоненциальный:
µ = 210 с
AMR (12.2 Кбит/с)
20 мс
Закон распределения –
экспоненциальный:
α = 1026 с
Закон распределения –
экспоненциальный:
β = 1171 с
Да
47.17%
1:1
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Рассмотрим матрицу B, которая является суммой матриц Bn ,
составленных из элементов (4), по всем n:
B,
∞
∑
Bn .
(5)
n=0
Тогда элемент матрицы B будет иметь смысл вероятности перехода процесса {S t } из состояния с номером i в состояние с номером j в конце окна t:
bij = Pr{S t+1 = j|S t = i}.
(6)
Предположим, что матрица B с элементами bij является непериодической и неприводимой. Такие матрицы часто именуют примитивными (primitive) [20]. Аналогично, процесс DBMAP, соответствующий примитивной матрице B, будем также называть примитивным (primitive DBMAP). Далее сузимся до рассмотрения
только таких процессов.
Введем важные характеристики примитивных процессов
DBMAP. Рассмотрим среднее число сообщений, поступающих в
состоянии с номером i в течение одного окна:
∑ ∑
λi ,
n
bij (n).
(7)
n
j
Учитывая, что процесс {S t } – эргодический, введем стационарную вероятность pi нахождения процесса {S t } в состоянии с
номером i при условии, что в начальном окне процесс находился
в состоянии с номером j для любого j:
pi , lim Pr{S t = i|S 1 = j}.
t→∞
(8)
Тогда можно рассмотреть среднее число сообщений, поступающих в течение одного окна, которое будем называть средней интенсивностью входного потока сообщений:
∑
λ,
λ i pi .
(9)
i
-------------------------------------------------------
283
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Поступления сооб щ ений
T (1 )
X (1)
T (2)
X (2 )
X (3 )
...
...
Рис. 3. Эквивалентное описание непрерывного процесса поступлений
Практически среднюю интенсивностью входного потока сообщений можно вычислить как отношение количества вновь поступивших сообщений на некотором достаточно длительном интервале T к длительности этого интервала, то есть:
T∑
−1
lim
T →∞
Xt
t=0
T
= λ.
(10)
Как обсуждалось во введении, процессы DBMAP широко используются при решении ряда практических задач. Рассмотрим
некоторый процесс непрерывного времени, определяющий моменты поступления новых сообщений. Согласно данному процессу сообщения возникают через интервалы T (1) , T (2) , . . . , T (k) , . . .
(см. Рис. 3). Предположим, что длительности интервалов T (1) ,
T (2) , . . . , T (k) , . . . независимы и одинаково распределены (independent and identically distributed, i.i.d.). Необходимо построить эквивалентное описание исходного процесса с помощью процесса
DBMAP. Способу решения данной задачи и будет посвящена оставшаяся часть данного текста.
IV. Построение эквивалентной DBMAP-модели
Рассмотрим подход, используя который, можно описать процесс поступления сообщений IPP с помощью процесса DBMAP.
Напомним, что модель IPP характеризуется тремя параметрами:
C1 , C2 и λON . Вероятность того, что длительность периода ON
-------------------------------------------------------
284
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
e
1 – e –C 1 Δτ
–C 1 Δτ
λON
ON
e – C 2 Δτ
OFF
1 – e –C 2 Δτ
Рис. 4. Построенная цепь Маркова
превышает некоторую величину τ , равна
Pr{TON > τ } = e−C1 ·τ .
(11)
Для периода OFF аналогично имеем
Pr{TOF F > τ } = e−C2 ·τ .
(12)
Средние длительности периода ON и OFF составляют E[TON ] =
1/C1 и E[TOF F ] = 1/C2 , соответственно. Отметим, что IPP-модель
– это модель непрерывного времени, а DBMAP-модель – дискретного. Для того, чтобы перейти от IPP к DBMAP, необходимо
некоторым образом разбить временну́ю ось на окна. На Рис. 4
представлена цепь Маркова с переходными вероятностями, соответствующими рассматриваемому случаю. Предполагается, что в
течение длительности окна не может произойти более одной смены состояния.
Как следует из приведенного выше описания, процесс DBMAP
задается набором матриц Bn . Размер этих матриц в рассматриваемом случае составит 2 × 2. Элементы матриц приведены ниже:
λnON −λON −C1 ·t
·e
·e
,
n!
λn
= ON |S t = OF F } = ON · e−λON · (1 − e−C1 ·t ),
n!
= OF F |S t = OF F } = 1 · e−C2 ·t , n = 0,
Pr{X t = n, S t+1 = ON |S t = ON } =
Pr{X t = n, S t+1
Pr{X t = n, S t+1
Pr{X t = n, S t+1 = OF F |S t = ON } = 1 · (1 − e−C2 ·t ),
t
t+1
= OF F |S = OF F } = 0,
t
t+1
= OF F |S = ON } = 0,
Pr{X = n, S
Pr{X = n, S
t
t
-------------------------------------------------------
285
n = 0,
n ̸= 0,
n ̸= 0.
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Теперь, чтобы выписать сами матрицы Bn , достаточно подставить значения переменной n (в общем случае принимающей
значения от 0 до ∞) и рассчитать элементы данных матриц. Ниже приводится общий вид матриц для рассматриваемого случая:
[ −λ
]
e ON · e−C1 ·t e−λON · (1 − e−C1 ·t )
B0 =
,
(13)
(1 − e−C2 ·t )
e−C2 ·t
[
]
λON · e−λON · e−C1 ·t λON · e−λON · (1 − e−C1 ·t )
B1 =
, (14)
0
0
]
[ 2
2
λON
−λON · e−C1 ·t λON · e−λON · (1 − e−C1 ·t )
·
e
2
2
. (15)
B2 =
0
0
Полученные выражения задают описание модели DBMAP.
V. Сравнение моделей
При анализе систем передачи информации (например, IEEE
802.16, LTE и др.) возникают задачи, связанные с расчетом значений задержки передачи сообщений в различных режимах функционирования системы (режим ожидания, активный режим и др.).
Многие исследователи при таком анализе полагают, что время обслуживания есть дискретная случайная величина с дискретом в
один кадр. Данный выбор можно обосновать тем фактом, что в
централизованной системе передачи информации обратная связь
доступна абонентам один раз за кадр, поэтому рассмотрение дискрета менее одного кадра не имеет смысла. Кроме этого, расчет
характеристик системы связи с детерминированным временем обслуживания при входном потоке DBMAP существенно упрощается, если дискрет DBMAP-модели и время обслуживания совпадают и синхронизированы между собой. При имеющихся моделях
входных потоков и типовых значениях интенсивности использование в качестве дискрета DBMAP-модели одного кадра существенно не снижает точности расчета.
Ниже рассматривается DBMAP-модель трафика, построенная
в предыдущем разделе. Данная модель дискретного времени эквивалентна IPP-модели непрерывного времени, предложенной для
-------------------------------------------------------
286
-------------------------------------------------------
С р е дн яя за де р ж ка со о бщ е н и я, с
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
5,0
В х од ной поток IP P
В х од ной поток D B M A P
4,5
4,0
3,5
3,0
2,5
2,0
1,5
1,0
0,5
0
0
0,25
0,5
0 ,75
1
Н о р м и р о в а н н а я и н те н си в н о сть в хо дн о го п о то ка
Рис. 5. Сопоставление средней задержки сообщения
моделирования HTTP-трафика в беспроводной системе связи
IEEE 802.16 [5].
Для того, чтобы сравнить между собой входные потоки, порожденные процессами IPP и DBMAP, разработана программа
имитационного моделирования простейшей системы массового обслуживания с постоянным временем обслуживания. Таким образом, в дискретном случае имеется система массового обслуживания типа DBMAP/D/1. Предположим, что время обслуживания
в данной системе совпадает с длительностью кадра в сети IEEE
802.16 и принимает типовое значение в 5 мс. Для использования
выражений (13)–(15) и получения набора матриц Bn требуется
также выбрать длительность временно́го окна. Учитывая все факты, приведенные выше, эта длительность устанавливается равной
длительности кадра IEEE 802.16.
На Рис. 5 приведена зависимость средней задержки сообщения в рассматриваемой системе DBMAP/D/1 от нормированной
интенсивности входного потока сообщений. Отметим, что для моделей IPP и DBMAP средняя задержка практически совпадает, за
исключением небольшого расхождения в области высоких интен-------------------------------------------------------
287
-------------------------------------------------------
И н те гр а льн а я ф ун кци я р а сп р е де ле н и я
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
1
В х од ной поток IP P
В х од ной поток D B M A P
0,9
0,8
0,7
0,6
0,5
0,4
0,3
0,2
0,1
0
0
0,2
0 ,4
0,6
0 ,8
1 ,0
1,2
1 ,4
З а де р ж ка со о бщ е н и я , с
Рис. 6. Эмпирическая интегральная функция распределения для задержек
сивностей, которое, тем не менее, укладывается в доверительный
интервал имитационного моделирования.
Эмпирические интегральные функции распределения для нормированной интенсивности входного потока 0.5 изображены на
Рис. 6. Видно, что IPP- и DBMAP-модели входных процессов демонстрируют схожее поведение с точки зрения задержки сообщения в системе DBMAP/D/1.
VI. Заключение
В данной работе был проведен краткий обзор имеющихся моделей трафика для современных беспроводных систем передачи
информации. Он показал, что на сегодняшний день имеется некоторое несоответствие между практическими моделями, предложенными стандартизующей документацией по системам связи,
и аналитическими моделями, рассматриваемыми в соответствующей литературе. Практические модели зачастую не могут быть
проанализированы при помощи существующего аналитического
-------------------------------------------------------
288
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
аппарата, тогда как аналитические модели имеют ограниченную
применимость на практике. Мы заполняем данный пробел, предлагая простой подход к построению модели трафика, основанной
на дискретном пачечном марковском входном процессе. Данная
модель построена на основе прерванного пуассоновского процесса непрерывного времени и демонстрирует схожие с ней свойства
в рамках простой системы массового обслуживания. Построенная модель является примером того, как существующие теоретические сведения относительно процессов DBMAP могут быть
использованы при оценке производительности реальных систем
передачи информации.
Благодарности
Работа выполнена при поддержке РФФИ по проектам # 1008-01071-а и # 11-08-01016-a, а также в рамках программы фундаментальных исследований ОНИТ РАН по проекту 2.3.
Литература
[1] D. Moltchanov, “On-line state detection in time-varying traffic patterns”, in
Proc. of the 7th International Conference on Next Generation Teletraffic and
Wire/Wireless Advanced Networking, 2007, pp. 49–60.
[2] B. Mah, “An empirical model of HTTP network traffic”, in Proc. of the
16th Annual Joint Conference of the IEEE Computer and Communications
Societies, 1997, vol. 2, pp. 592–600.
[3] C. Baugh and J. Huang, Traffic model for 802.16 TG3 MAC/PHY
simulations, IEEE 802.16 Contribution 802.16.3c-01/30r1, March 2001.
[4] IEEE 802.16-2009. IEEE Standard for Local and metropolitan area networks.
Part 16: Air Interface for Broadband Wireless Access Systems, May 2009.
[5] J. Zhuang, L. Jalloul, R. Novak, and J. Park, IEEE 802.16m Evaluation
Methodology Document (EMD),
IEEE 802.16 Contribution 802.16m08/004r5, January 2009.
[6] WiMAX System Evaluation Methodology, July 2008.
[7] 3GPP2 Contribution C.R1002-0,
CDMA2000 Evaluation Methodology,
December 2004.
[8] A. Adas, “Traffic models in broadband networks”, IEEE Communications
Magazine, vol. 35, no. 7, pp. 82–89, 1997.
-------------------------------------------------------
289
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
[9] D. Lucantoni, “New results on the single server queue with a batch Markovian
arrival process”, Stochastic Models, vol. 7, pp. 1–46, 1991.
[10] A. Klemm, C. Lindemann, and M. Lohmann, “Traffic modeling and
characterization for UMTS networks”,
in Proc. of the IEEE Global
Telecommunications Conference, 2001, vol. 3, pp. 1741–1746.
[11] C. Blondia, “A discrete-time batch Markovian arrival process as B-ISDN
traffic model”, Belgian Journal of Operations Research, Statistics and
Computer Science, vol. 32, pp. 3–23, 1993.
[12] J. Zhao, Performance modeling and evaluation of digital video over wireless
networks, PhD thesis, Hong Kong University of Science and Technology,
2003.
[13] J.-A. Zhao, B. Li, and l. Ahmad, “Traffic modeling for layered video”, in
Proc. of the International Conference on Multimedia and Expo, 2003, vol. 1,
pp. 497–500.
[14] D. Fiems, V. Inghelbrecht, B. Steyaert, and H. Bruneel, “Markovian
characterisation of H.264/SVC scalable video”,
in Proc. of the 15th
International Conference on Analytical and Stochastic Modeling Techniques
and Applications, 2008, pp. 1–15.
[15] K. De Turck, S. De Vuyst, D. Fiems, and S. Wittevrongel, “An analytic
model of IEEE 802.16e sleep mode operation with correlated traffic”, in
Proc. of the 7th International Conference on Next Generation Teletraffic and
Wire/Wireless Advanced Networking, 2007, pp. 109–120.
[16] B. Van Houdt and C. Blondia, “Stability and performance of stack algorithms
for random access communication modeled as a tree structured QBD Markov
chain”, Stochastic Models, vol. 17, no. 3, pp. 247–270, 2001.
[17] A. Alfa and S. Chakravarthy, “A discrete queue with the markovian arrival
process and phase type primary and secondary services”, Stochastic Models,
vol. 10, no. 2, pp. 437–451, 1994.
[18] C. Herrmann,
“The complete analysis of the discrete time finite
DBMAP/G/1/N queue”, Performance Evaluation, vol. 43, pp. 95–121, 2001.
[19] J.-A. Zhao, B. Li, X.-R. Cao, and I. Ahmad, “A matrix-analytic solution
for the DBMAP/PH/1 priority queue”, Queueing Systems: Theory and
Applications, vol. 53, no. 3, pp. 127–145, 2006.
[20] B. Van Houdt and C. Blondia, “Robustness of Q-ary collision resolution
algorithms in random access systems”, Performance Evaluation, vol. 57, no.
3, pp. 357–377, 2004.
-------------------------------------------------------
290
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Модель для сравнения энергоэффективных
подходов в восходящем канале сотовой
системы связи
А.В. Анисимов
П.Ю. Гончуков
аспирант
соискатель
Санкт-Петербургский государственный
университет аэрокосмического приборостроения
I. Введение
В настоящее время беспроводные сети передачи информации
охватывают все большие территории и, соответственно, увеличивается число их пользователей. При этом бо́льшую часть пользователей составляют мобильные устройства. Так как мобильные
устройства имеют ограниченный запас энергии (который определяется емкостью аккумуляторных батарей [1]), остро встает вопрос о разработке новых и улучшении существующих механизмов
сбережения энергии мобильных станций (МС), которые позволяют сберегать энергию МС как при приеме информации, так и при
ее передаче [2].
В данной работе рассматриваются методы сбережения энергии, используемые при передаче информации от МС. Для этого
вводится модель системы, основанная на технологии IEEE 802.16
[3]. Однако, данная модель может быть легко адаптирована и для
другой популярной на сегодняшний день технологии LTE (LongTerm Evolution).
II. Описание системы передачи и построение модели
Технология IEEE 802.16 описывает взаимодействие базовой
станции (БС) и МС на двух нижних уровнях: физическом и ка-------------------------------------------------------
291
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Рис. 1. Топология сети
нальном (уровнем управления доступом к среде передачи, УДС).
Далее введем модель системы передачи информации, которая основана на рекомендациях из [4, 5]. Ниже приводится набор допущений для данной модели. Весь набор допущений разбит на
три группы: относительно конфигурации системы передачи информации, относительно распространения радиосигнала и шумов
в окружающей среде и непосредственно МС. Обсудим каждую из
трех групп допущений подробнее.
A. Конфигурация системы передачи информации
Введем допущение относительно структуры модели системы
передачи информации.
Допущение 1: Структура модели. Модель системы передачи
информации рассматривает систему, состоящую из набора соседних сот, количество которых равно NC . Сота представляет собой
правильный шестиугольник. Параметром, характеризующим соту, является радиус соты R. В центре каждой соты располагается
БС (см. Рис. 1).
Также введем допущение относительно конфигурации соты.
-------------------------------------------------------
292
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Допущение 2: Конфигурация соты. Каждая сота разбивается
на три сектора по 120◦ . При этом каждый сектор в соте обслуживается своей антенной на БС.
Во время проектирования сети выбирается шаблон переиспользования частотного ресурса. В настоящее время существует несколько таких шаблонов [3, 4]. Сделаем следующее допущение.
Допущение 3: Переиспользование частот. В каждом секторе
используется однин и тот же частотный диапазон.
Для дальнейшего расположения БС и МС необходимо задать
их координаты. Поэтому введем допущение относительно координатной сетки системы.
Допущение 4: Координатная сетка. Зададим координатную
сетку со следующим шагом:
√
10 23 R
a=
,
NSS
(1)
где NSS – количество возможных координат по оси X (Y ) (количество координат одинаково на обеих осях). При этом МС и
БС могут располагаться только в узлах введенной координатной
сетки.
После задания сетки координат происходит распределение МС
по рассматриваемому множеству сот.
Допущение 5: Распределение МС. Координаты каждой МС выбираются случайным образом, согласно равномерному распределению на множестве узлов решетки (исключая узлы, занятые БС)
до тех пор, пока количество МС в каждом секторе не будет равно
заданной величине. После получения координат МС для нее определяется обслуживающая БС. Выбор обслуживающей БС происходит на основании расчитанного значения «сигнал/шум» (SNR,
Signal to Noise Ratio), при этом выбирается БС, на которой SNR
-------------------------------------------------------
293
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
максимально. Для вычисления SNR используется следующая формула:
Pi gi
SNR = 2 ,
(2)
σ
где Pi – мощность передачи i-й МС; gi – коэффициент ослабления
сигнала для i-й МС; σ 2 – дисперсия шума в системе передачи
информации.
Допущение 6: Синхронизация в системе. Время работы системы разбивается на равные интервалы времени, называемые
кадрами. Кадры нумеруются целыми неотрицательными числами, и кадру с номером f соответствует интервал времени [f −1, f ).
Далее будем называть кадр с номером f просто кадром f для
краткости. Границы кадров известны всем абонентам системы.
B. Распространение радиосигнала и шумы
На практике в беспроводных системах передачи информации
передаваемый сигнал подвергается различного рода воздействиям, что ведет к уменьшению его мощности и искажениям. Характер искажений сигнала сильно зависит от окружающей среды, в
которой осуществляется передача информации. Согласно документу [5], для учета различных аспектов, оказывающих влияние
на передаваемый сигнал, введем следующее допущение.
Допущение 7: Среда распространения радиосигнала. В качестве внешней среды, в которой осуществляется радиопередача,
выступает городское пространство, и учитывается следующий набор факторов, влияющих на ослабление передаваемого сигнала.
Ослабление сигнала, связанное с его распространением, для
МС, передвигающейся со скоростью пешехода, рассчитывается
следующим образом:
PLITU-OIP (d) = 49 + 40 log10 (d) + 30 log10 (f ),
(3)
где d – расстояние между МС и БС; f – несущая частота.
-------------------------------------------------------
294
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Ослабление сигнала, связанное с его распространением, для
МС, передвигающейся со скоростью автомобиля, рассчитывается
следующим образом:
PLITU-V (d) = 80 − 18 log10 (∆HBS )+
+ 40(1 − 4∆HBS /1000) log10 (d) + 21 log10 (f ),
(4)
где ∆HBS – высота БС над средним уровнем крыш в городе. При
определении координат МС с некоторой вероятностью принимается решение, что данная МС передвигается со скоростью автомобиля. Значение этой вероятности является параметром модели.
Кроме ослабления сигнала, связанного с его распространением, учитывается затенение сигнала, которое вычисляется по следующему выражению:
Si,j = aXj + bYi,j ,
(5)
где a2 = b2 = 0.5; i, j – номер МС и БС, соответственно; X, Y –
случайные числа, распределенные по гауссовскому закону с нулевым математическим ожиданием.
Также учитывается ослабление сигнала при прохождении через различного рода препятствия. Значение данного ослабления
рассматривается как случайная величина, распределенная по гауссовскому закону с нулевым математическим ожиданием и дисперсией, равной 8.
Допущение 8: Шумы в канале. В качестве модели шума используется аддитивный гауссовский шум с дисперсией σ 2 .
C. Функционирование МС
Допущение 9: Входной поток сообщений. Каждая МС в системе имеет настроенное соединение с БС для восходящей передачи информации. Функционирование системы передачи информации исследуется в режиме насыщения. То есть у каждой МС в
любой момент времени в буфере есть хотя бы один пакет данных
для передачи на БС.
-------------------------------------------------------
295
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Кроме этого, для упрощения дальнейшего изложения сделаем
следующее допущение относительно типов потоков данных.
Допущение 10: Потоки данных. Потоки данных у всех МС,
функционирующих в системе, имеют одинаковый тип и относятся
к низкоприоритетным потокам (например, Best Effort [3]).
Также отметим, что в рамках данной модели не рассматривается механизм резервации канала. Заметим, что так как у МС
всегда есть пакеты данных для передачи, то МС может использовать механизм «piggybacking» [3]. Суть данного механизма заключается в том, что во время передачи пакета данных к нему
прикрепляется блок информации, в котором содержится информация о количестве данных в буфере на МС. Соответственно, БС
располагает актуальной информацией о размере данных у каждой МС.
Планировщик на БС составляет расписание передач в восходящем канале, которое рассылается всем МС, функционирующим
в данном секторе. Вся передача данных осуществляется в полном соответствии данному расписанию. Минимальной единицей
ресурса, которая может быть выделена для передачи данных МС,
является слот. При передаче пакет данных разбивается на блоки.
Передача одного блока занимает ровно один слот.
Условия внешней среды, в которой осуществляется передача
информации, сильно влияют на скорость передачи информации.
Чем меньше помехи в канале передачи и искажения радиосигнала,
тем большее количество информации можно передавать за единицу времени. При сильных помехах и искажениях сигнала скорость передачи информации необходимо уменьшать, чтобы обеспечить требуемое значение вероятности ошибки. Для обеспечения
вероятности ошибки при передаче данных в различных условиях внешней среды применяются разные кодово-модуляционные
схемы (КМС). Ниже в Табл. I приводятся возможные варианты
КМС, которые используются при передаче информации с использованием технологии IEEE 802.16.
-------------------------------------------------------
296
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Таблица I
Кодово-модуляционные схемы
Схема
модуляции
QPSK
16-QAM
64-QAM
Скорость
кода
1/2
3/4
1/2
3/4
1/2
2/3
3/4
Значение
SINR, дБ
5
8
10.5
14
16
18
20
Таблица II
Параметры модели
Название параметра
Количество сот
Радиус соты
Количество
координатных точек
Количество МС в секторе
Вероятность выбора МС
типа «автомобиль»
Дисперсия шума
Обозначение
NC
R
№ допущения
1
1
NSS
M
4
5
Q
σ
7
8
Кроме этого, в Табл. I приводятся значения SINR (соотношение «сигнал/шум плюс интерференция»), необходимые для использования той или иной КМС. В Табл. II содержатся параметры модели и номера допущений, где обсуждается тот или иной
параметр.
Предлагаемая модель системы передачи информации учитывает большинство факторов, наблюдаемых при передаче в современных беспроводных системах. В то же время эта модель имеет
низкую сложность и достаточно проста в использовании.
-------------------------------------------------------
297
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
III. Механизмы сбережения энергии при восходящей
передаче
Семейство стандартов IEEE 802.16 определяет ряд возможностей, которые могут быть использованы с целью сбережения
энергии МС при восходящей передаче информации. Однако, там
не приводится описание того, каким именно образом должны использоваться эти возможности. В данной работе в качестве механизмов, использующих определяемые стандартом возможности
и позволяющих добиться сбережения энергии МС при восходящей передаче информации, рассматриваются адаптивное управление мощностью передатчика МС и специальный алгоритм работы планировщика на БС.
Существуют базовые алгоритмы управления мощностью передатчика МС и планирования. В качестве таких алгоритмов используются «Target SNR» (целевое соотношение «сигнал/шум»)
и пропорционально справедливый планировщик. Рассмотрим эти
алгоритмы подробнее. Суть алгоритма управления мощностью
передатчика МС «Target SNR» заключается в том, что выбор
мощности передатчика МС осуществляется таким образом, чтобы обеспечить необходимое значение соотношения «сигнал/шум»
при приеме сигнала на БС.
Основной особенностью алгоритма пропорционально справедливого планировщика является то, что все функционирующие в
одном секторе МС будут иметь одинаковую скорость передачи
(при передаче информации с одинаковым приоритетом, допущение 4.2.8) [8]. К преимуществам описанного набора алгоритмов
можно отнести простоту реализации и независимость алгоритма
планирования от алгоритма управления мощностью передатчика на МС. Так как такой набор алгоритмов считается базовым,
то рассматриваемые далее алгоритмы управления мощностью и
планирования будут сравниваться с этим набором.
В качестве альтернативных вариантов базовому набору алгоритмов рассматриваются механизмы, в которых алгоритмы управления мощностью передатчика на МС и планирования тесно свя-------------------------------------------------------
298
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
заны друг с другом, чтобы обеспечить повышение энергоэффективности системы. В данной работе под энергоэффективностью
i-й МС понимается следующая величина [10]:
u=
Ri
,
PC,i + PT,i
(6)
где Ri – количество переданных данных, бит; PC,i – мощность,
потребляемая схемой МС; PT,i – мощность, затраченная МС для
передачи Ri бит информации. Соответственно, энергоэффективность имеет размерность бит/Дж.
В данной работе в качестве альтернативных вариантов работы
системы рассматриваются алгоритмы, которые позволяют максимизировать один из двух следующих показателей. Первый показатель называется среднеарифметическим и вычисляется по формуле:
N
∑
ε[Tf ] =
un [Tf ],
(7)
n=1
где N – количество МС в системе передачи информации; un [Tf ] –
энергоэффективность МС с номером n.
Второй показатель называется среднегеометрическим и расcчитывается по следующей формуле:
V [Tf ] =
N
∑
log un [Tf ].
(8)
n=1
Согласно работе [7] при планировании расписания передач для
максимизации первого показателя необходимо выделять каждый
слот той МС, которая имеет максимальное значение следующей
характеристики:
J(n, k) =
t
rkt
t pk
t−1 − un t−1 ,
Pn
Pn
(9)
где rkt – скорость передачи МС на k-м подканале в кадре t; Pnt−1
– мощность, затраченная на передачу n-й МС в кадре t − 1; ptk –
мощность передачи МС на подканале k в кадре t.
-------------------------------------------------------
299
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Использование среднеарифметического показателя при составлении расписания передач позволяет выделять ресурс тем МС, которые имеют наибольшие значения энергоэффективности, то есть
находятся в лучших радиоусловиях, чем остальные МС.
Для максимизации среднегеометрического показателя необходимо выделять каждый слот той МС, которая имеет максимальное значение показателя J(n, k), вычисляемого по следующей
формуле:
ptk
rkt
− t−1
,
(10)
J(n, k) = t−1
Tn
Pn
где Tnt−1 – количество данных, которые передала n-я МС в кадре
t − 1.
Использование данного показателя во время составления расписания передач позволяет достичь более справедливого распределения ресурса между МС, чем при использовании среднеарифметического показателя.
Для использования введенных выше параметров необходимо
знать скорость и мощность передачи МС в предыдущем кадре и
оценить эти значения в кадре, для которого составляется расписание. При первом прогоне алгоритма значения, относящиеся к
предыдущему кадру, вычисляются по формуле Шеннона, исходя
из предположения, что соотношение «сигнал/шум» равно 1. Для
оценки скорости передачи в кадре, для которого составляется расписание, используется следующее выражение:
) )
(
(
P t−1 Bgkt
t
,0 ,
(11)
rk = max B log2
T t−1 σ 2 loge 2
где B – ширина полосы пропускания; gkt – коэффициент ослабления сигнала на k-м подканале в кадре t; σ – уровень шума в
канале.
Опишем механизм выбора мощности передатчика МС. Рассмотрим соотношение «сигнал/шум» для одного подканала, как
функцию от скорости передачи
t
SNRnk = S(rnk
),
-------------------------------------------------------
300
(12)
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
где SNRnk – соотношение «сигнал/шум» при передаче n-й МС на
t – предполагаемая скорость передачи n-й МС
k-м подканале; rnk
на k-м подканале в кадре t. Соответственно, для передачи со скоt соотношение «сигнал/шум» должно быть больше либо
ростью rnk
t ) выражается из формулы Шеннона.
равно SNRnk . Функция S(rnk
Мощность передачи n-й МС на k-м подканале в кадре t вычисляется по следующей формуле:
ptnk =
t )σ 2
S(rnk
SNRtnk σ 2
=
,
t
t
gnk
gnk
(13)
где SNRtnk – соотношение «сигнал/шум» при передаче n-й МС на
t – предполагаемая скорость передачи
k-м подканале в кадре t; rnk
n-й МС на k-м подканале в кадре t; σ – уровень шума в радиоканаt – коэффициент ослабления сигнала n-й МС при передаче
ле; gnk
на k-м подканале в кадре t.
IV. Сравнение механизмов сбережения энергии при
восходящей передаче
В качестве используемых методов сбережения энергии будем
рассматривать следующие комбинации механизмов управления
мощностью передатчика на МС и алгоритмов работы планировщика на БС.
1. Пропорционально справедливый планировщик на БС [11]
и использование механизма «Target SNR» для управления
мощностью передачи на МС.
2. Планировщик, обеспечивающий максимизацию среднегеометрического показателя энергоэффективности системы (далее
будем обозначать такой планировщик EE GM), и адаптивное управление мощностью передачи на МС (AP, adaptive
power).
3. Планировщик, обеспечивающий максимизацию среднеарифметического показателя энергоэффективности системы (далее будем обозначать такой планировщик EE AM), и адаптивное управление мощностью передачи на МС.
-------------------------------------------------------
301
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Перед сравнением отмеченных выше механизмов управления
мощностью передачи МС необходимо отметить, что значения энергоэффективности и пропускной способности в случае использования механизма «Target SNR» сильно зависят от значения SNR,
которое стремится обеспечить МС. Поэтому необходимо найти оптимальное значение целевого SNR, которое зависит от количества
МС в системе. На Рис. 2 представлен график суммарной пропускной способности МС, находящихся в одном секторе, в зависимости
от целевого значения SNR при различном количестве МС. Отметим, что с увеличением значения целевого SNR увеличивается
и суммарная пропускная способность. Однако, при достижении
определенного значения целевого SNR рост пропускной способности прекращается, что объясняется тем, что начинает использоваться макимальная КМС для передачи информации.
На Рис. 3 приводится график энергоэффективности в зависимости от значения целевого SNR. С помощью данного графика
определяются оптимальные значения для целевого SNR при различном количестве МС в секторе.
После определения оптимального значения для целевого SNR
перейдем к сравнению различных механизмов управления мощностью передачи МС и алгоритмов работы планировщика. На Рис. 4
изображен график суммарной пропускной способности МС, находящихся в одном секторе, от их количества. Как видно из графика, наибольшая пропускная способность достигается при использовании алгоритма, обеспечивающего максимизацию среднеарифметического показателя энергоэффективности системы. Этот факт
объясняется тем, что при использовании данного механизма ресурс для передачи информации выделяется МС, находящихся в
более выгодных радиоусловиях. Самое низкое значение суммарной пропускной способности наблюдается при использовании пропорционально справедливого планировщика и механизма управления мощностью «Target SNR», так как в данном случае никак
не учитываются радио условия, в которых находятся МС.
На Рис. 5 приводится график энергоэффективности от количества МС в одном секторе при использовании различных меха-------------------------------------------------------
302
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Рис. 2. Зависимость пропускной способности от значения целевого SNR
Рис. 3. Зависимость энергоэффективности от значения целевого SNR
-------------------------------------------------------
303
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Рис. 4. Пропускная способность при различных методах сбережения энергии
Рис. 5. Энергоэффективность при различных методах сбережения энергии
-------------------------------------------------------
304
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
низмов управления мощностью передачи МС и алгоритмов работы планировщика на БС. Как и на предыдущем графике, максимальное значение энергоэффективности наблюдается при использовании алгоритма, обеспечивающего максимизацию среднеарифметического показателя энергоэффективности системы. А
минимальное – при использовании пропорционально справедливого планировщика и механизма управления мощностью «Target
SNR». Между описанными кривыми располагается кривая, наблюдаемая при использовании алгоритма, обеспечивающего максимизацию среднегеометрического показателя энергоэффективности системы.
Однако, если обратить внимание на справедливость распределения ресурса между пользователями (имеется в виду тот факт,
что все пользователи имеют примерно одинаковое количество ресурса для передачи информации), то ситуация будет обратной.
А именно, использование пропорционально справедливого планировщика гарантирует равномерное распределение ресурса между
всеми МС, находящимся в системе. Наименее справедливое распределение ресурса наблюдается в случае с механизмом, обеспечивающим максимизацию среднеарифметического показателя энергоэффективности системы.
V. Заключение
В данной работе предлагается модель беспроводной системы
передачи информации, которая позволяет сравнивать значения
энергоэффективности при использовании различных механизмов
сбережения энергии при восходящей передаче информации. Результаты, получаемые с помощью описанной модели, сопоставимы с результатами, которые получены с использованием значительно более сложных моделей [6, 9].
Также в данной работе рассмотрены различные энергоэффективные механизмы, включающие в себя управление мощностью
передачи МС и специальные алгоритмы работы планировщика
на БС. Производится сравнение этих механизмов с помощью раз-------------------------------------------------------
305
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
работанной модели системы. В частности, рассматриваются такие параметры, как суммарная пропускная способность системы,
энергоэффективность системы и справедливость работы планировщика. Согласно приводимым результатам, базовые механизмы работы системы показывают существенно меньшую энергоэффективность, чем специальные механизмы. В результате комбинация энергоэффективного планировщика (максимизирующего среднегеометрический показатель системы) и алгоритма адаптивного управления мощностью передачи МС позволяет добиться
разумного баланса между производительностью системы и справедливостью распределения ресурса.
Литература
[1] K. Lahiri, A. Raghunathan, S. Dey, D. Panigrahi, Battery-driven system
design: A new frontier in low power design, Proc. of the International
Conference on VLSI Design, pp. 261-267, 2002.
[2] G. Miao, N. Himayat, Y. G. Li, S. Talwar, Low-complexity energy-efficient
OFDMA, in Proc. of the IEEE ICC, 2009.
[3] ——, The Draft IEEE 802.16m System Description Document, IEEE
802.16m-08/003r5, October 2008.
[4] ——, WiMAX System Evaluation Methodology, December 2007.
[5] ——, IEEE 802.16m Evaluation Methodology Document, IEEE 802.16m08/004r5, Jan 2009.
[6] S. Andreev, Y. Koucheryavy, N. Himayat, P. Gonchukov, A. Turlikov, Activemode power optimization in OFDMA-based wireless networks, Proc. of the
IEEE BWA Workshop of Globecom, 2010.
[7] G. Miao, Cross-layer optimization for spectral and energy efficiency. PhD
thesis, School of Electrical and Computer Engineering Georgia Institute of
Technology, 2008.
[8] ——, WiMAX Technologies, Performance Analysis, and Qos. CRC Press
2008. 296 p.
[9] A. Maltsev, A. Khoryaev, R. Maslennikov, M. Shilov, M. Bovykin, G.
Morozov, A. Chervyakov, A. Pudeyev, V. Sergeyev, A. Davydov, Analysis
of IEEE 802.16m and 3GPP LTE Release 10 Technologies by Russian
Evaluation Group for IMT-Advanced, Proc. of the ICUMT International
Congress, 2010.
[10] ——, Improving Client Energy Consumption in 802.16m, C802.16m-09/107,
Jan 2009.
-------------------------------------------------------
306
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
[11] Е. А. Кучерявый, Управление трафиком и качество обслуживания в сети
Интернет, Наука и Техника, 2004.
-------------------------------------------------------
307
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
К вопросу об управлении передачей
пакетов в сенсорных сетях
Г.С. Евсеев
Е.М. Линский
к.т.н. доцент
к.т.н. доцент
Санкт-Петербургский государственный
университет аэрокосмического приборостроения
I. Введение
Сенсорная сеть [1] состоит из множества сенсоров, случайным образом распределенных по исследуемой поверхности, и базовой станции. Сенсор — это автономное беспроводное устройство
с ограниченными ресурсами. Задачей сенсора является сбор информации и ее передача базовой станции. Ресурс источника питания сенсора обычно ограничен, что фактически определяет время
жизни сенсора, тесно связано с его вычислительными возможностями и влияет на мощность передатчика. Сфера применения сенсорных сетей довольно обширна: мониторинг окружающей среды, раннее диагностирование поломок устройств в промышленности, управление дорожным движением, контроль за безопасностью объектов.
Сенсорная сеть часто разворачивается в неконтролируемом
окружении. Поэтому сенсор может быть захвачен и его программное обеспечение может быть заменено. Такой сенсор называется
компрометированным узлом или атакующим. Действия атакующих направлены на нарушение работы основных протоколов сенсорной сети, в том числе и протокола передачи пакетов. Основной атакой, влияющей на надежность передачи, является атака, в
рамках которой компрометированный узел выборочно удаляет передаваемые через него пакеты [2]. Компрометированный узел не
может удалить все передаваемые через него пакеты, т.к. в этом
случае он будет обнаружен.
-------------------------------------------------------
308
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
A. Обзор алгоритмов надежной передачи
Наиболее эффективным средством борьбы с удалением пакетов являются алгоритмы передачи по нескольким маршрутам. Используется два основных подхода: случайная передача и передача
с избыточностью. В обоих подходах предполагается, что имеется
несколько маршрутов между отправителем и получателем. Желательно, чтобы эти маршруты были независимыми. Это означает,
что маршруты либо вообще не пересекаются, либо пересекаются
только по надежным узлам.
При случайной передаче (СП) [3] отправитель для каждого
пакета выбирает один из маршрутов случайным образом. С одной стороны, алгоритмы случайной передачи не требуют много
энергии, т.к. на каждом шаге маршрута используется только один
узел. С другой стороны, такой алгоритм не позволяет говорить о
передаче с заданным уровнем надежности, т.е. о доставке с заданным порогом на величину возможной ошибки приема.
При передаче с избыточностью (ИП) [4] передача ведется одновременно по всем имеющимся маршрутам. При этом используются как простое дублирование сообщения по всем маршрутам,
так и более эффективные схемы на основе помехоустойчивого кодирования (такие методы называются транспортным кодированием). Дублирование может быть рассмотрено как частный случай транспортного кодирования. В транспортном кодировании пакеты, составляющие сообщение, рассматриваются как элементы
некоторого алфавита, а само сообщение представляется как информационный вектор длины k из этих элементов. Информационный вектор кодируется (n, k) помехоустойчивым кодом в кодовое
слово длины n. В качестве помехоустойчивого кода используется код Рида-Соломона. Символы получившегося кодового слова
рассматриваются как пакеты и посылаются по n маршрутам. Для
восстановления исходного сообщения достаточно получить любые
k пакетов. Впервые данный метод был рассмотрен в работах Максимчука [5] и Крука, Кабатянского [6].
Известные алгоритмы передачи пакетов по нескольким маршрутам не могут быть эффективно применены в сенсорной сети,
-------------------------------------------------------
309
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
так как ни в одном из них не гарантируется качество передачи
(не формулируются требования по надежности, энергозатратам и
оперативности). Это вызвано тем, что в этих алгоритмах по каждому маршруту передается одна копия пакета. В данной работе
предложена модификация алгоритма избыточной передачи, которая позволяет учесть описанные требования.
B. Модель сети
В работе используются следующие основные ограничения модели рассматриваемой сети как среды передачи сообщений.
1. Используется централизованное управление сетью, которое осуществляет базовая станция.
2. Для передачи управляющей информации от базовой станции не используются промежуточные узлы.
3. В сети предполагается передача нескольких типов сообщений: штатных однопакетных, срочных однопакетных,
многопакетных. Сообщения могут иметь, например, следующее назначение: штатные однопакетные — подтверждения
работоспособности сенсора, срочные однопакетные — сигналы тревоги, многопакетные — загрубленный вариант изображения.
4. Существует множество маршрутов от каждого сенсора
до базовой станции.
5. В сети происходят потери пакетов, которые могут быть
вызваны как естественными причинами, так и действиями атакующих.
6. Потери пакетов на одном маршруте являются независимыми событиями. Потери пакетов на разных маршрутах
являются независимыми событиями. Предложенный алгоритм надежной передачи пакетов основывается на этом свойстве. Поэтому приведем подробное обоснование данного ограничения. Для того, чтобы контролировать состояние маршрутов при передаче с избыточностью, базовая станция ведет
рейтинги каждого маршрута, как это предложено в одном из
-------------------------------------------------------
310
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
известных алгоритмов избыточной передачи. Передаваемые
пакеты несут в себе информацию о числе копий, посланных
по другим маршрутам. Поэтому, если хотя бы один пакет из
посылки дойдет до базовой станции, то она получит информацию о том, сколько пакетов и на каких маршрутах было
потеряно. На основе этой статистки строятся два рейтинга: краткосрочный (контролирует резкое увеличение числа
потерянных пакетов) и долгосрочный (контролирует общее
число потерянных пакетов). Превышение любым из рейтингов порога приводит к исключению маршрута.
Компрометированный узел не может удалить все передаваемые через него пакеты, т.к. он будет быстро обнаружен. Кроме того, он не может удалить большое число подряд идущих
пакетов, поскольку это приведет к ухудшению краткосрочного рейтинга маршрута. Наилучшей маскировкой для атакующего узла является удаление пакетов в соответствии со
схемой Бернулли.
Если компрометированные узлы находятся на разных маршрутах и координируют свои действия путем удаления пакетов из одной посылки, то их нельзя выявить с помощью
краткосрочного рейтинга, поскольку в этом случае резкого увеличения числа потерянных пакетов на одном маршруте не происходит. Однако, ненадежность данных маршрутов
будет выявлена с помощью долгосрочного рейтинга.
Кроме перечисленных ограничений, учитываются также следующие допущения. Время функционирования сети поделено на
этапы. В начале каждого этапа сенсоры присылают базовой станции следующую информацию: список своих соседей, среднее количество переспросов при пересылке пакетов для каждого соседа,
собственный уровень энергозапаса источника питания. По собранным данным базовая станция разбивает сеть на кластеры, выбирает внутри кластера главу кластера (он же является агрегатором
данных от кластера), строит маршруты до глав кластеров и выбирает для них параметры алгоритма надежной передачи. Затем
всем узлам рассылается информация о делении на кластеры и
-------------------------------------------------------
311
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
маршрутизационные таблицы, а агрегаторам — еще и информация о параметрах алгоритма надежной передачи пакетов. В течение этапа базовая станция обменивается сообщениями с сенсорами и ведет рейтинги маршрутов. При превышении рейтингами
порогов отдельные маршруты могут быть отключены. Отключение маршрутов или значительное изменение их рейтингов вызывает необходимость пересчитать параметры алгоритма надежной
передачи пакетов или даже выполнить частичную ремаршрутизацию. Результаты пересчета параметров передачи должны быть
отправлены сенсорам.
II. Алгоритм передачи, учитывающий требования
надежности, экономичности и оперативности
Как было сказано выше, для известных алгоритмов передачи
пакетов невозможно добиться выполнения требований на заданную вероятность ошибки передачи. Это вызвано тем, что в этих
алгоритмах по каждому маршруту передается одна копия пакета.
Предлагается для выполнения ограничений на ошибку передачи передавать несколько копий пакета по каждому маршруту, т.е.
по i-му маршруту передается ni копий пакета. Передача нескольких копий по одному маршруту имеет смысл, поскольку в описанной нами модели сети потери пакетов на маршруте являются независимыми событиями. Количество пакетов, которое должно быть передано по каждому маршруту, предполагается рассчитывать путем решения оптимизационной задачи. В этой задаче
должны быть учтены ограничения на вероятность ошибки, энергозатраты на передачу и требования по оперативности. При формулировке задачи используется информация о характеристиках
маршрутов, поэтому данный алгоритм можно назвать Адаптивной Избыточной Передачей (АИП). Используются два алгоритма
передачи с избыточностью: дублирование и транспортное кодирование. Дублирование используется для однопакетных сообщений
(штатных и срочных). Транспортное кодирование используется
для больших сообщений, состоящих из нескольких пакетов.
-------------------------------------------------------
312
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Опишем информацию, которой обладает базовая станция. На
основе этой информации формулируются энергетические и временные ограничения. В начале каждого этапа базовая станция
получает от сенсоров информацию о графе сети и следующую
информацию о каждом узле i: ēi,j — энергетические затраты при
посылке сенсором i пакета соседу j (вычисляется на основе среднего количества переспросов), t̄i,j — временные затраты при посылке сенсором i пакета соседу j (вычисляется на основе среднего
количества переспросов).
По этим данным базовая станция вычисляет и присваивает
каждому маршруту i следующие величины:
• Ei — энергозатраты при передаче пакета по маршруту, как
функцию от энергозатрат ēk,i для всех узлов маршрута,
• Ti — время при передаче пакета по маршруту, как функцию
от временных затрат t̄k,i для всех узлов маршрута,
• pi — вероятность потери пакета на маршруте. Для новых
маршрутов, по которым передача еще не велась, начальное
значение этой вероятности принимается равным 0. При передаче по данному маршруту вероятность потери пакета оценивается на основе полученной статистики, т.е. на основе
рейтинга маршрута.
Как уже было сказано, для выполнения требования по надежности передачи в работе предлагается передавать по i-му маршруту ni пакетов. По одному маршруту пакеты отправляются через
интервал r.
Оптимизационная задача при передаче с избыточностью формулируется следующим образом. Имеется N независимых маршрутов, и каждый маршрут описывается вектором (pi , Ei , Ti ). Требуется передать сообщение, состоящее из k пакетов. При этом
ошибка передачи Pe (k, N ) не должна превосходить p. Для этого необходимо найти количество пакетов, которое должно быть
передано по каждому маршруту, т.е. найти целочисленное множество (n1 , . . . , nN ) (ni ∈ Z), для которого должны выполняться
следующие требования.
-------------------------------------------------------
313
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
1. Условие на величину ошибки передачи:
Pe (k, N ) = P (n1 , n2 , . . . , nN ) ≤ p,
где функция P определяется в зависимости от выбранного
алгоритма передачи (дублирование или транспортное кодирование).
2. Условие на энергозатраты при передаче:
E(n1 , n2 , . . . , nN ) =
N
∑
Ei · ni → min .
i=1
3. Условие на оперативность передачи:
T (n1 , n2 , . . . , nN ) = max {Ti + r · ni } → min .
i=1...N
Теперь опишем соответствующие оптимизационные задачи. Оптимизационная задача для метода дублирования (однопакетные
срочные и штатные сообшения) может быть описана в следующем виде:

∏
ni
N) = N
 Pe (1,∑
i=1 pi ≤ p,
(1)
E= N
i=1 Ei ni → min,

T = max(T1 + rn1 , . . . , TN + rnN ) → min .
Для срочных сообщений максимальный приоритет имеет критерий T (оперативность), а для штатных сообщений — E (энергозатраты).
Оптимизационная задача для метода транспортного кодирования (k-пакетное сообщение) может быть описана в следующем
виде:

∑

Pd (k, N ) = k1 +...+kN ≥k Cnk11 (1 − p1 )k1 pn1 1 −k1 × . . .




N (1 − p )kN pnN −kN ≥ (1 − p),
. . . × CnkN

N
N
(2)
k1 ≤ n1 , . . . , k2 ≤ nN ,

∑N


E = i=1 ni Ei → min,


 T = max(T
1 n1 , . . . , TN nN ) → min,
-------------------------------------------------------
314
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
где Pd (k, N ) — вероятность успешной доставки k-пакетного сообщения по N маршрутам.
Обе задачи являются задачами целочисленного программирования, поскольку вектор (n1 , . . . , nN ) является целочисленным.
III. Сравнение протоколов
В этом подразделе будет приведено сравнение алгоритмов передачи.
В отличие от алгоритма АИП, для алгоритмов СП и ИП невозможно добиться заданной вероятности ошибки при передаче пакетов, поскольку по маршруту посылается только одна копия пакета. Поэтому для корректного сравнения далее будет считаться,
что в алгоритмах СП и ИП передача может осуществляться n раз,
где n определяется, исходя из требуемой вероятности ошибки.
Алгоритм АИП может быть использован для передачи штатных, срочных и многопакетных сообщений, при этом для оценки
качества передачи используются критерии энергопотребления и
оперативности. Алгоритмы СП и ИП предназначены только для
передачи штатных сообщений. Поэтому сравнение будет выполено только для штатных однопакетных сообщений, у которых основным критерием качества является энергопотребление. Таким
образом, при заданной вероятности ошибки для каждого из алгоритмов будут оценены энергозатраты на доставку одного штатного сообщения.
A. Анализ для двух маршрутов
Вначале рассмотрим ситуацию с двумя маршрутами. Пусть
имеется два независимых маршрута с характеристикам {p1 , E1 } и
{p2 , E2 }, где pi ∈ [0, 0.5) — вероятность потери пакета на маршруте i, а Ei — энергопотребление при передаче одного пакета по
маршруту i. Задана вероятность ошибки при передаче p, требуется определить количество энергии, затраченное на передачу одного однопакетного сообщения каждым из алгоритмов.
-------------------------------------------------------
315
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Ниже представлены системы ограничений для каждого из алгоритмов. В алгоритмах СП (система (3)) и ИП (система (4)) для
достижения необходимой вероятности ошибки требуется выполнить передачу n раз:
)n
{ (1
1
≤ p,
2 p1 + 2 p2
(3)
E = n2 (E1 + E2 ) → min,
{
(p1 p2 )n ≤ p,
(4)
E = n(E1 + E2 ) → min .
В алгоритме АИП по первому маршруту посылается n1 копий
пакета, а по второму — n2 копий. Величины n1 и n2 определяются
решением целочисленной оптимизационной задачи:
{ n1 n2
p1 p2 ≤ p,
(5)
E = n1 E1 + n2 E2 → min .
Для сравнения требуется рассмотреть три случая:
1. оба маршрута имеют одинаковые характеристики;
2. один маршрут лучше другого хотя бы по одному из параметров;
3. маршруты являются несравнимыми, т.е. у одного маршрута ниже вероятность ошибки, а у другого — ниже затраты
энергии на передачу одного пакета.
Пусть k ≥ 1 и s ≥ 1 — некоторые коэффициенты. Рассмотрим маршруты со следующими характеристиками: {p1 = p0 , E1 =
sE0 } и {p2 = kp0 , E2 = E0 }.
Тогда системы ограничений могут быть переписаны в следующем виде. Для алгоритма СП:
)n
{ (1
≤ p,
2 p0 (1 + k)
(6)
E = n2 E0 (s + 1) → min,
откуда E может быть вычислено как
EI =
log(p)E0 (s + 1)
.
2 log( 12 p0 (1 + k))
-------------------------------------------------------
316
(7)
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Для алгоритма ИП:
{
(kp20 )n ≤ p,
E = nE0 (s + 1) → min .
(8)
Из этой системы следует, что затраты энергии выражаются
как
log(p)E0 (s + 1)
EII =
.
(9)
log(kp20 )
Для алгоритма АИП:
{ n1
p0 (kp0 )n2 ≤ p,
E = E0 (n1 s + n2 ) → min .
(10)
Ограничение может быть переписано в виде линейной функции:
log(p0 )
log(kp0 )
n1
+ n2
≥ 1.
log(p)
log(p)
Тогда решением системы является одна из двух точек: (n1 >
0, n2 = 0), либо (n1 = 0, n2 > 0). Таким образом, энергозатраты
данного алгоритма могут быть выражены как:
(
)
log(p)
log(p)
EIII = min sE0
, E0
.
(11)
log(p0 )
log(kp0 )
Можно сказать, что в случае двух маршрутов алгоритм АИП всегда ведет передачу только по одному из них.
Простыми выкладками можно показать, что в первом случае
(маршруты имеют одинаковые характеристики) алгоритмы обеспечивают одинаковый расход энергии. А в двух других случаях
выполняется следующее соотношение:
EI ≥ EII ≥ EIII .
Очевидно, что наиболее предпочтительным является алгоритм
адаптивной передачи, т.к. он обеспечивает минимальный расход
энергии.
-------------------------------------------------------
317
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
B. Анализ для N маршрутов
Теперь рассмотрим случай N маршрутов. Пусть имеется N
маршрутов с вероятностями ошибки {pi }i∈[1,N ] и энергозатратами
{Ei }i∈[1,N ] и задана требуемая вероятность ошибки передачи p.
Ниже приведены системы ограничений для алгоритмов СП, ИП
и АИП.
Система для алгоритма СП система имеет вид:
)n
{ ( ∑
N
1
p
≤ p,
i
i=1
N
(12)
n ∑N
E = N i=1 Ei → min .
Из этой системы может быть получено выражение для энергозатрат при передаче одного пакета:
EI =
N log
log(p)
( ∑
N
1
)
i=1 pi
N
N
∑
Ei .
(13)
i=1
Система ограничений для алгоритма ИП имеет вид:
{ ∏ n
( pi ) ≤ p,
∑
E=n N
i=1 Ei → min,
(14)
откуда энергозатраты выражаются как
∑
log(p)
Ei .
=
∏N
log( i=1 pi ) i=1
N
EII
Для алгоритма АИП система имеет вид:
{ ∏
N
pni i ≤ p,
i=1∑
E= N
i=1 Ei ni → min .
(15)
(16)
Как было показано, система (16) является задачей целочисленного линейного программирования. Получить конечное выражение для энергозатрат EIII , как это было сделано для двух
маршрутов, не представляется возможным. Сравнение энергозатрат EI , EII и EIII будет проведено с помощью моделирования.
При моделировании использовались следующие параметры.
-------------------------------------------------------
318
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
260
240
220
EI
EII
EIII
200
180
E
160
140
120
100
80
60
40
4
6
8
10
Route Number
12
14
Рис. 1. Энергозатраты при передаче по N маршрутам
• Требуемая вероятность ошибки при передаче p = 10−3 .
• Вероятность потери пакета на маршруте pi генерировалась
как случайное число, равномерно распределенное в интервале p < pi ≤ 0.49. Маршруты с большей вероятностью ошибки
считаются ненадежными, передача по ним не ведется.
• Энергозатраты на маршруте — величина Ei генерировалась
как случайное число в интервале 0 < Ei ≤ 100.
• Для того, чтобы протестировать алгоритмы на более сложных примерах, после генерации параметры маршрутов сортировались таким образом, чтобы маршрутам с минимальной вероятностью ошибки соответствовали максимальные
временные и энергетические затраты.
• В соответствии с размером рассматриваемых сетей используется от 3 до 15 маршрутов. Случай с двумя маршрутами
рассмотрен в предыдущем подразделе.
• Решение оптимизационной задачи для алгоритма АИП проводилось с помощью алгоритма ветвей и границ.
На Рис. 1 представлен график энергозатрат для алгоритмов
СП, ИП и АИП. Из графика видно, что алгоритм АИП имеет
наименьшие энергозатраты.
-------------------------------------------------------
319
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
7.5
EII/EIII
7
Ratio EII/EIII
6.5
6
5.5
5
4.5
4
3.5
3
2.5
4
6
8
10
Route Number
12
14
Рис. 2. Отношение энергозатраты при передаче по N маршрутам для алгоритмов ИП и АИП
На Рис. 2 показано отношение энергозатрат алгоритмов ИП
и АИП. Из графика видно, что с увеличением числа маршрутов
выигрыш алгоритма АИП увеличивается.
Качественное объяснение полученного выигрыша может быть
дано следующим образом. В алгоритмах СП и ИП не используется информация о характеристиках маршрутов, т.е. они полагаются равноценными. Поэтому адаптивный алгоритм должен давать тем больший выигрыш, чем менее равноценными являются
данные маршруты. В отличие от неадаптивных алгоритмов, которые ведут передачу по всем имеющимся маршрутам, адаптивный
алгоритм на основе решения оптимизационной задачи выбирает
подмножество маршрутов и передает только по ним.
IV. Заключение
В данной работе рассматривалась задача управления надежной передачей пакетов в сенсорной сети в присутствии компрометированных узлов, выбрасывающих передаваемые через них пакеты. Была рассмотрена передача трех типов сообщений: штатных
однопакетных, срочных однопакетных и многопакетных. Был раз-------------------------------------------------------
320
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
работан алгоритм адаптивной избыточной передачи (АИП), учитывающий требования надежности, экономичности и оперативности. В отличие от существующих алгоритмов, предложенный
алгоритм учитывает характеристики используемых маршрутов.
Предложенный алгоритм выгоднее по энергопотреблению, чем существующие аналоги.
Литература
[1] J. M. Kahn, R. H. Katz, and K. S. J. Pister, “Mobile networking for smart
dust,” MobiCom, 1999.
[2] C. Karlof and D. Wagner, “Secure routing in wireless sensor networks: Attacks
and countermeasures,” August 2002.
[3] A. D. Wood, L. Fang, J. A. Stankovic, and T. He, “Sigf: A family of
configurable, secure routing protocols for wireless sensor networks,” ACM
SASN, October 2006.
[4] J. Deng, R. Han, and S. Mishra, “Intrusion-tolerant routing for wireless sensor
networks,” Elsevier Journal on Computer Communications. Special Issue on
Dependable Wireless Sensor Networks, 2005.
[5] N. Maxemchuk, Dispersity Routing in Store and Forward Networks, PhD
thesis, University of Pennsylvania, May 1975.
[6] G. Kabatyanskii and E. Krouk, “Coding decreases delay of messages in
networks,” Proceedings of IEEE International Symposium on Information
Theory, p. 255, 1993.
-------------------------------------------------------
321
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Введение времени жизни пакета при
использовании транспортного кодирования
Д.А. Маличенко
ассистент
Санкт-Петербургский государственный
университет аэрокосмического приборостроения
I. Введение
В данной статье рассматривается введение времени жизни пакета при использовании транспортного кодирования. Впервые
транспортное кодирование было описано в работах [1, 2].
Рассмотрим сеть с коммутацией пакетов. Пусть все сообщения, поступающие в сеть, разбиты на k пакетов длиной m символов. Будем рассматривать пакеты как элементы поля GF (2m )
и кодировать 2m -ичным (n,k) кодом. В результате исходному kпакетному сообщению будет соответствовать n-пакетное кодированное сообщение. Если использовать максимальный (n,k) код,
например, код Рида-Соломона, то на приемной стороне достаточно получить любые k пакетов, чтобы восстановить сообщение. Если посылать пакеты по различным и независимым маршрутам, то
транспортное кодирование позволяет уменьшить задержку сообщений [2], так как достаточно принять k самых быстрых пакетов.
В данной работе предлагается ограничить время пребывания
пакета в сети. Максимальное время, которое пакет может находиться в сети, будем называть временем жизни пакета и обозначать как TTTL . Если время пребывания пакета в сети достигло
TTTL и он не дошел до узла-получателя, то такой пакет удаляется на промежуточном узле. В работе используется имитационное
-------------------------------------------------------
322
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
моделирование для исследования зависимости вероятности доведения сообщения от времени жизни пакета и подсчета количества
удаленных пакетов. Предлагается способ выбора времени жизни
пакета для заданной сети.
II. Модель сети
В работе используется модель сети, основанная на модели Клейнрока [3]. Сеть состоит из N узлов. Каналы считаются бесшумными и надежными. Топология сети задается с помощью матрицы
смежности. Пропускные способности каналов задаются матрицей
C. Значение C[i][j] – это пропускная способность канала из узла
i в узел j. В узлах сети происходит хранение принятых пакетов
и выбор маршрутов. В работе рассматривается передача многопакетных кодированных сообщений. Каждое сообщение состоит
из n пакетов. Сообщения, поступающие в сеть через i-й узел и
предназначенные для j-го узла, представляют собой пуассоновский поток со средним I[i][j], где I – это матрица интенсивностей.
Считается, что пакеты, принадлежащие одному сообщению, вбрасываются в сеть одновременно. Для каждого пакета выбирается
свой маршрут. Выбор маршрута происходит в каждом промежуточном узле. Если в промежуточном узле имеется несколько альтернативных каналов для доставки пакета до его получателя, то
выбирается первый освободившийся канал. Предполагается, что
время передачи пакета по каналу распределено по экспоненциальному закону распределения с интенсивностью 1/(µC[i][j]), где 1/µ
– средняя длина пакета.
III. Выбор времени жизни пакета
Пусть некоторый пакет поступил в сеть в узле s и предназначен для узла d. Пусть имеется n путей между узлами s и d.
i как время передачи пакета из узла s в узел d по
Обозначим Tsd
i-му маршруту. Тогда время жизни пакета предлагается выбирать
-------------------------------------------------------
323
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
одним из двух способов:
1∑ i
=
Tsd
n
(1)
i
TTTL = max Tsd
.
(2)
n
TTTL
i=1
или
1≤i≤n
Выражение (1) больше подходит для сетей, в которых время передачи по различным маршрутам отличается несильно. Например,
это сети с высокой связностью. Выражение (2) больше подходит
для сетей, в которых время передачи по различным маршрутам
отличается сильно. Например, это сети с низкой связностью.
Для реальной сети также можно вычислить время жизни пакета. Рассмотрим mesh сеть. Известно, что протоколом маршрутизации по умолчанию для mesh сетей является HWMP [4]. Он
использует метрику времени передачи (Airtime Link Metric), чтобы выбрать маршрут. Метрика задается следующей формулой:
ca =
(O + Bt /r)
,
1 − perr
(3)
где O – накладные расходы, вызванные доступом в канал и самим
протоколом, Bt – размер тестового пакета, r – скорость передачи данных в канале, perr – вероятность возникновения ошибки
на бит. Протокол HWMP находит один лучший маршрут с позиции метрики, но возможно изменить его таким образом, чтобы он
находил n лучших маршрутов. Метрика ca характеризует время
передачи по одному каналу. Сумма значений ca по всем каналам
i . Далее можно воспользоваться
i-го маршрута дает значение Tsd
одной из формул (1), (2), чтобы вычислить время жизни пакета.
IV. Результаты моделирования
Представленные в данном разделе результаты соответствуют
модели сети с 10 узлами и невысокой нагрузкой на сеть. Топология
-------------------------------------------------------
324
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Вероятность доведения сообщения
1
0.9
0.8
Предложенное время жизни пакета
P=0.984
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
5e-005
0.0001
0.00015
0.0002 0.00025 0.0003
Время жизни пакета
0.00035
0.0004
0.00045
Рис. 1. Зависимость вероятности доведения сообщения от времени жизни пакета
выбиралась случайным образом. Скорость кода для транспортного кодирования выбиралась таким образом, чтобы выигрыш от
кодирования по задержке сообщения был в районе максимальных
значений. Для данной сети это соответствует скорости кода 0.6.
График на Рис. 1 показывает зависимость вероятности доведения сообщения от времени жизни пакета. Вероятность доведения
сообщения – это вероятность того, что узлу-получателю придет не
менее k пакетов (для восстановления сообщения необходимо получить любые k из n пакетов). Рис. 1 получен перебором по времени
жизни пакета. Для каждого значения, с помощью имитационного
моделирования, получена вероятность доведения сообщения. Отдельно на графике выделена точка, которая соответствует времени жизни пакета, выбранному предложенным способом. Можно
увидеть, что вероятность доведения сообщения при этом достаточно высока.
График на Рис. 2 показывает зависимость вероятности доведения сообщения от количества удаленных пакетов. Количество
удаленных пакетов выражено в процентах от общего числа переданных пакетов в сети. Отдельно на графике выделена точка,
-------------------------------------------------------
325
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Вероятность доведения сообщения
1
0.9
0.8
0.7
Предложенное время жизни пакета
P=0.984
0.6
0.5
0.4
0.3
0.2
0.1
10
15
20
25
30
35
40
45
50
55
60
Количество удаленных пакетов, %
Рис. 2. Зависимость вероятности доведения сообщения от количества удаленных пакетов
которая соответствует времени жизни пакета, выбранному предложенным способом.
V. Заключение
В данной работе было предложено ограничить время пребывания пакета в сети при использовании транспортного кодирования.
Была получена зависимость вероятности доведения сообщения от
времени жизни пакета (Рис. 1). Для различных значений вероятности доведения сообщения было показано, какой процент пакетов достигнет ограничения на время пребывания в сети (Рис. 2).
Как видно из графиков, введение времени жизни пакета позволяет уменьшить объем трафика, проходящего по сети, и при этом сохранить достаточно высокую вероятность доведения сообщения.
Уменьшение трафика должно уменьшить задержку сообщений, и
тем самым увеличить выигрыш от транспортного кодирования по
задержке.
-------------------------------------------------------
326
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Литература
[1] N. F. Maxemchuk, ”Dispersity Routing,” Proceedings of ICC ’75, San
Francisco CA, June 1975, pg. 41-10, 41-13.
[2] G. A. Kabatianskii, E.A. Krouk, ”Coding decreases delay of messages in
network,” Proceedings of 1993 IEEE International Symposium on Information
Theory, p. 255, 1993
[3] L. Kleinrock, ”Communication nets; stochastic message flow and delay,” Dover
Publications, Incorporated, 1972
[4] IEEE, ”Draft amendment: Mesh Networking.”, IEEE P802.11s Draft 1.08,
January 2008.
-------------------------------------------------------
327
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Содержание
Предисловие
Предисловие - Е.А. Крук . . . . . . . . . . . . . . . .
3
Надежные методы передачи дискретной информации
Исследование циклов подкласса квазициклических
LDPC-кодов - М.О. Алексеев, А.В. Козлов . . . . . .
7
Уточнение нижней достижимой границы минимального расстояния двоичных кодов Гоппы в беспроводной сети связи - С.В. Беззатеев, Д.О. Иванов . .
21
Количественное оценивание визуальных искажений,
возникающих при кодировании с использованием
дискретного косинусного преобразования - А.И. Веселов, М.Р. Гильмутдинов . . . . . . . . . . . . . . .
32
Квантовый алгоритм декодирования линейных кодов - И.Н. Грохотков . . . . . . . . . . . . . . . . . .
50
Модулярные системы, системы полиномов от
нескольких переменных и их применение для описания сверточных кодов - В.А. Давыдов . . . . . . .
61
О построении арифметических операций для защиты вычислений с плавающей - В.О. Минченков,
А.А. Овчинников . . . . . . . . . . . . . . . . . . . .
81
Апостериорно-вероятностное декодирование блоковых кодов с использованием редуцированных решеток - А.С. Политов, А.Н. Трофимов . . . . . . . . . 112
-------------------------------------------------------
329
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Сравнительный анализ методов линейной частотной эквализации - Е.В. Пустовалов . . . . . . . . . . 126
О полубыстрых алгоритмах вычисления дискретного преобразования Фурье над конечным полем С.В. Федоренко . . . . . . . . . . . . . . . . . . . . . 149
Методы защиты информации от несанкционированного
доступа
Система разделения секрета, основанная на использовании линейных кодов - А.Ю. Абрамов . . . . . . 165
К вопросу о реализации личностной криптосистемы
на основе кодов, исправляющих ошибки - А.В. Афанасьева, С.В. Беззатеев, Д.О. Иванов, Д.А. Рыжов . 176
Пороговая криптосистема на основе идентификационных данных - А.В. Афанасьева, С.В. Беззатеев,
Е.М. Линский . . . . . . . . . . . . . . . . . . . . . . 186
Использование семейства вложенных (L, G) кодов в
протоколах анонимного запроса к данным - С.В. Беззатеев . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
Модификация системы открытых ключей HFE В.А. Давыдов . . . . . . . . . . . . . . . . . . . . . . 202
Использование вэйвлетных разложений сплайнов
3-го порядка в защите информации - А.Б. Левина . 218
Методы обеспечения безопасности в системах
интернет-банкинга в России - В.О. Минченков,
А.В. Сергеев . . . . . . . . . . . . . . . . . . . . . . . 238
-------------------------------------------------------
330
-------------------------------------------------------
__________________________________ВОПРОСЫ ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ
Реализация криптографических функций в RFID
системах - Р.Ш. Омиров . . . . . . . . . . . . . . . . 258
Алгоритмы для распределенных систем
Моделирование входного трафика в беспроводной
сети связи - А.В. Анисимов, С.Д. Андреев, А.М. Тюрликов . . . . . . . . . . . . . . . . . . . . . . . . . . . 275
Модель для сравнения энергоэффективных подходов в восходящем канале сотовой системы связи А.В. Анисимов, П.Ю. Гончуков . . . . . . . . . . . . 291
К вопросу об управлении передачей пакетов в сенсорных сетях - Г.С. Евсеев, Е.М. Линский . . . . . . 308
Введение времени жизни пакета при использовании
транспортного кодирования - Д.А. Маличенко . . . 322
-------------------------------------------------------
331
-------------------------------------------------------
Научное издание
ВОПРОСЫ ПЕРЕДАЧИ
И ЗАЩИТЫ ИНФОРМАЦИИ
Сборник статей
Под редакцией доктора технических наук,
профессора Е.А. Крука
Подписано к печати 09.11.11. Формат 60×84 1/16. Бумага офсетная.
Усл. печ. л. 19,0. Уч.-изд. л. 20,0. Тираж 150 экз. Заказ № 535.
Отпечатано с готового оригинал-макета
Редакционно-издательский центр ГУАП
190000, Санкт-Петербург, ул. Б. Морская,67
Документ
Категория
Без категории
Просмотров
5
Размер файла
8 113 Кб
Теги
prohorov
1/--страниц
Пожаловаться на содержимое документа