Научная статья на тему 'ИМИТАЦИОННАЯ МОДЕЛЬ ИЗЪЯТИЯ СИМВОЛОВ СТИРАНИЯ С ЗАДАННОЙ ВЕРОЯТНОСТЬЮ ИЗ ДЕКОДИРОВАННОГО СООБЩЕНИЯ'

ИМИТАЦИОННАЯ МОДЕЛЬ ИЗЪЯТИЯ СИМВОЛОВ СТИРАНИЯ С ЗАДАННОЙ ВЕРОЯТНОСТЬЮ ИЗ ДЕКОДИРОВАННОГО СООБЩЕНИЯ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
36
7
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
СИМВОЛЫ СТИРАНИЯ / ПОМЕХОУСТОЙЧИВОЕ КОДИРОВАНИЕ / ДЕКОДЕР / ЗАШУМЛЕННЫЙ КАНАЛ СВЯЗИ / ВЕРОЯТНОСТЬ ОШИБКИ / ЦИКЛИЧЕСКИЕ КОДЫ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Егоров Никита Валентинович

В данной статье решается задача изъятия символов стирания из кодированного сообщения, помехи которого вносятся с некоторой вероятностью. Предложен и программно реализован один из методов помехоустойчивых кодов, при помощи которого в декодере извлекается достоверная информация, искаженная зашумленным каналом связи. Также проведены различные эксперименты, в результате которых дается полная оценка реализованного механизма борьбы с помехами, влияющими на исходные данные.This article solves the problem of removing erasure characters from a coded message whose interference is introduced with some probability. One of the methods of noise-proof codes is proposed and implemented programmatically, by which reliable information distorted by a noisy communication channel is extracted in the decoder. Various experiments were also carried out, as a result of which a complete assessment of the implemented mechanism for combating interference affecting the initial data is given.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «ИМИТАЦИОННАЯ МОДЕЛЬ ИЗЪЯТИЯ СИМВОЛОВ СТИРАНИЯ С ЗАДАННОЙ ВЕРОЯТНОСТЬЮ ИЗ ДЕКОДИРОВАННОГО СООБЩЕНИЯ»

ТЕХНИЧЕСКИЕ НАУКИ

УДК 681.391

ИМИТАЦИОННАЯ МОДЕЛЬ ИЗЪЯТИЯ СИМВОЛОВ СТИРАНИЯ С ЗАДАННОЙ ВЕРОЯТНОСТЬЮ ИЗ ДЕКОДИРОВАННОГО СООБЩЕНИЯ

Егоров Никита Валентинович

Студент группы ВКБ33 ФГБОУ ВО «Донской государственный технический университет»

ALGORITHM FOR REMOVING ERASE CHARACTERS WITH A GIVEN PROBABILITY FROM

A DECODED MESSAGE

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

Abstract. This article solves the problem of removing erasure characters from a coded message whose interference is introduced with some probability. One of the methods of noise-proof codes is proposed and implemented programmatically, by which reliable information distorted by a noisy communication channel is extracted in the decoder. Various experiments were also carried out, as a result of which a complete assessment of the implemented mechanism for combating interference affecting the initial data is given.

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

Keywords: erasure symbols, noise-proof encoding, decoder, noisy communication channel, error probability, cyclic codes._

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

Построение порождающей матрицы циклического кода.

Под цикличностью кодирования стоит понимать те кодовые слова, которые, в результате цикличного сдвига влево или вправо, также являются кодовыми словами [1].

Определим некоторый полином (1.1), степень которого равна m.

д(х) = до + д±х + ••• + дтхт Тогда, порождающая матрица цикличного кода будет иметь вид (1.2):

(1.1)

'до д±

G = о до

о о

gп

о

дт

о

о до д±

о о ••• о

" Вт-

(1.2)

Стоит отметить, что порождающая матрица строится путем цикличного сдвига вправо (1.3):

VI Е [1,к]: = х1д(х)той(хп — 1) (1.3)

где, (хп — 1) - двучлен, СI — строка матрицы С, д(х) - порождающий полином. Формирование таблиц информационных и кодовых слов. Задача сводится к тому, чтобы по параметрам кода построить таблицы информационных и кодовых слов.

Формирование информационных слов происходит следующим образом:

- длина информационных слов равносильна одному из параметров кода, а именно к;

- количество информационных слов зависит от того, в каком поле происходит построение, а

именно, qk, где q - поле, а к - размерность.

Пусть С - циклический код с параметрами (n,k)q, а д(х) - его порождающий полином, степень которого равна m.

Рассмотрим один из способов кодирования циклического кода (1.4), принцип которого заключается в том, чтобы каждому информационному слову ставилось в соответствии кодовое слово [1]:

с = iG, (1.4),

где с - кодовое слово, i - информационное слово, а G - порождающая матрица циклического кода.

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

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

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

с(х) = i(x)g(x) (1.5),

где i(x) - информационный многочлен, д(х) - порождающий многочлен.

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

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

GSys = ( Е | р ) (1.6),

где Е - единичная матрица с размером к х к, а Р - матрица, с размером к х (п- к). [5]

Затем, умножив информационный вектор i на полученную матрицу Gsys, получим кодовый вектор (1.7):

с = iGsys (1.7)

И, наконец, рассмотрим кодирование в полиномиальной систематической форме. Суть данного метода заключается в выявлении остатка от деления многочлена xmi (х) на порождающий многочлен д (х). То есть кодовый многочлен примет вид (1.8):

с(х) = xmi(x) — r(x) = d(x) * д(х) (1.8)

где d(x) - целая часть деления xmi(x) на д(х), а г(х) - остаток от деления.

Алгоритм прохождения кодового слова по каналу связи. На вход поступает равносильное некоторому информационному слову кодовое слово с.

В результате прохождения по каналу связи на данное кодовое слово накладывается некоторое искажение по следующему принципу [2]:

- изначально, кодовое слово разбивается на отдельные символы;

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

- в зависимости от того, в какую область попадает значение параметра г, ставится в соответствии один из символов: либо символ стирания, либо символ, который передается без помех. Важно отметить, что параметр г имеет в каждый момент времени случайное значение, которое лежит в диапазоне от 0 включительно до 1 включительно. Схема, по которой выбирается, какой из символов будет передан, имеет следующий вид (1.9):

( 0 — рхор — нет ошибки Vr Е [0,1]: г = { , р (1.9)

Фхор — 1— символ стирания

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

который, в дальнейшем, будет декодирован.

Отмечу, что в данной работе не учитывался момент, когда может передаться символ ошибки, который искажается в канале связи, то есть вместо «0» получаем «1» и наоборот. Опишем процесс получения сообщения доверенным лицом.

На вход из канала связи поступает некоторый зашумленный вектор, назовем его вектор v (1.10):

v = c + e, (1.10),

где е - это некоторый вектор ошибки.

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

Помимо этого подается еще таблица кодовых слов. Минимальным кодовым расстоянием кода С над полем Fq равно минимальному весу ненулевого кодового слова (1.11):

dmin = min[Wth(a)laeC,a Ф 0} (1.11),

где функция Wth(a) - вес Хэмминга вектора а. Вес Хэмминга показывает количество координат вектора а отличных от 0 [3].

Процесс декодирования имеет следующую структуру:

- вычисляется dmin путем подсчета отличных позиций вектора v и кодового слова;

- производится подсчет dmin;

- находится кодовое слово, к которому ближе находится вектор v;

- вычисляется позиция в таблице кодовых слов, к которому ближе расположен вектор v;

- в таблице кодовых слов производится поиск информационного слова в таблице информационных слов.

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

Минимальное кодовое расстояние это очень важный параметр кода. Чем больше dmin, тем больше ошибок код может обнаружить и исправить. Двоичный линейный (п,к)-код С с минимальным расстоянием Хемминга dmin = 2t+1 может обнаружить dmin-1 ошибок и исправить t ошибок [3].

Реализация программного средства. Исходя из представленного ранее алгоритма прохождения кодового слова по каналу связи, было реализовано программное средство на языке программирования высокого уровня, а именно, на Python, в результате которого производится изъятие символов стирания из кодированного сообщения [4]. В таблице 1 представлены выбранные исходные данные, к которым относится: степень многочлена (m), многочлен (g(x)), параметры кода (n, k) и вероятность возникновения помехи (p).

Таблица 1.

Исходные данные для экспериментов__

n k m g(x) p

7 4 3 XQ + X-] + X3 0,1

11 4 7 Xq + X-] + X3 + X4 + X7 0,4

15 7 8 X3 + X5 + Xfa + Xft 0,7

Для наглядности корректной работы программного средства, были проведены ряд исследований. Результаты экспериментов проиллюстрированы на рисунках 1 - 3.

I Dm your dream, make you realDI Dm yhur eyes when you must steal

Рисунок 1 - Результат работы программы при вероятности 0,1 появления символа искажения

I Dm the гиге qho takes xou there

I Dm wour fnli true friend now

I Dm yorr dream, make you real I Dm youR "yes when yOu must sTeal I Dm your pahn when you can Dt feel

(ai Dm your dream" mind astrly

I Dm your ~yes while yiu Ore away

I Dm yo5ir pai. whide you repay

You knov Is Ds sad but truej sad but true

Рисунок 2 - Результат работы программы при вероятности 0,4 появления символа искажения

Ш D D Q!q Г-FD D D 00% hQS ugO D D0

СПсШ Ddei D@t !ШЕ Ш ЬиАПШ uD R d">dD~Ag

ПЩ* DAdQ ]B+ D pOq 4 UlpDiDr 1QH D

I Г i R0 Dpi] pe (5) лДШ Ш #T !(S)

D Db PaPpD D a rEDaq hu [Dot Ш OA

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Рисунок 3 - Результат работы программы при вероятности 0,7 появления символа искажения

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

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

1.Королев, А.И. Коды и устройства помехоустойчивого кодирования информации: учебник / А. И. Королев — Минск : Бестпринт, 2002. — 286 с.

2.Деундяк В.М., Косолапов Ю.В. О стойкости кодового зашумления к статистическому анализу наблюдаемых данных многократного повторения // Модел. и анализ информ. систем. - 2012. - Т.19. - № 2. 637 с.

3.Деундяк, В.М. Методы помехоустойчивой защиты данных / В.М. Деундяк, А.Э. Маевский, Н.С. Могилевская - Ростов-на-Дону : Южный федеральный университет, 2014. - 309 с.

4.Хавьер Пашеку. Программирование в PyCharm 2006 для профессионалов = PyCharmfor .NET Developer'sGuide. - М.: Вильямс, 2006. - 944 с.

5.Сахно В.В., Маршаков Д.В., Айдинян А.Р Применение методов нечеткой логики для решения задачи обеспечения информационной безопасности / Сахно В. В., Маршаков Д. В., Айдинян А. - Ростов н/Д: Молодой исследователь дона ДГТУ, 2018. - 28 - 35с.

i Надоели баннеры? Вы всегда можете отключить рекламу.