Метод кодирования смежными классами

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

Рубрика Математика
Вид статья
Язык русский
Дата добавления 27.02.2019
Размер файла 19,0 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Метод кодирования смежными классами

Прудников И.М.

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

A method of coding with help of co-sets. Proudnikov I.M.

A method of coding with help of co-sets on subgroup of any group suitable for transmitting codes and classifying them as secret is studied.

Основными задачами кодирования являются

· кодирование с целью засекречивания информации, используемое в разведке,

· кодирование с целью передачи информации, используемое в коммуникационных сетях,

· кодирование с целью сжатия информации, используемое в криптографии.

Будем изучать первые две задачи.

При кодировании кодируемое слово (вектор) преобразуется по определенному правилу в кодовое слово. Наибольшее распространение получили линейные коды. Правило кодирования для линейных кодов очень простое. Надо умножить кодируемый вектор размерности [1m] на порождающую матрицу L[mn]:

xL=y, (1)

где x-кодируемое слово, y- кодовое слово. В результате получаем кодовое слово длины n. Множество кодовых слов при линейном кодировании образует линейное пространство Ln.

В каналах связи часто возникают сбои, в результате чего появляются ошибки при передаче информации. Истинный нуль принимается как ложная единица, а истинная единица - как ложный нуль. Важно уметь исправлять ошибки. При линейном кодировании для этих целей служит проверочная матрица P[r n] с k проверочными соотношениями вида

Py=0. (2)

Способы задания кодов (1) и (2) эквивалентны друг другу, так как система уравнений (2) определяет в Ln подпространство Lm Ln размерности m. Базис этого подпространства обозначим через b1,b2,…bm. Любой вектор y Lm удовлетворяет (2), а, следовательно, является кодовым словом. Вектор y можно записать в виде

y=y1 b1+y2 b2+…+ym bm,

где yi, i 1:m, - координаты вектора y=(y1,y2,…,ym) в базисе b1,b2,…bm. Строки матрицы L[m n] составлены из координат векторов b1,b2,…bm. Матрицы L и P связаны соотношением

LPt=0,

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

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

Рассмотрим теперь произвольные, не обязательно линейные коды. Обозначим множество кодируемых слов через W, а |W| - число таких слов. Пусть G - некоторая группа с групповой операцией *, которую условно будем называть умножением, и H- ее подгруппа. Известно, что левые (правые) смежные классы G/H определяют разбиение G на классы эквивалентности: два элемента a,bG принадлежат одному классу эквивалентности или одному левому (правому) смежному классу, если

a*H=b*H = {a*h | hH} = {b*h | hH} (левые классы),

H*a=H*b = {h*a | hH} = {h*b | hH} (правые классы),

или существуют h1,h2 H, что a*h1 =b*h2 для левых классов и h1*a= =h2*b для правых классов. Отсюда имеем

b-1 *aH или a-1 *b H (для левых классов),

a *b-1H или b* a-1H (для правых классов).

Левые (правые) классы смежности не пересекаются [2].

Пусть мы кодируем элементы множества W произвольными элементами левых смежных классов G/H, т.е. любому wW ставим в соответствие целый смежный класс. С одинаковым успехом можно кодировать правыми смежными классами. Далее для определенности будем кодировать левыми смежными классами.

Как производить декодирование? Для однозначного декодирования требуется по кодовому слову а однозначно определить смежный класс, которому принадлежит элемент а. Для этого образуем множество a*H={a*h | hH}. Если число смежных классов конечно, но не меньше |W|, то, перебрав все левые смежные классы и сравнив их с множеством a*H, можно однозначно определить смежный класс, которому принадлежит кодовое слово а, а значит и однозначно произвести декодирование, т.е. определить тот элемент w W, которому класс a*H соответствует.

Отметим, что если Н ? нормальная подгруппа, то множества правых и левых смежных классов совпадают и образуют группу G=G/H с групповой операцией *, определенной в G. Единицей в G служит сама подгруппа H: если АG/H - смежный класс, то A*H=H*A. Произведение любых двух смежных классов A,BG/H есть снова смежный класс, т.е. A*B=CG/H. Последнее дает дополнительные по сравнению со случаем, когда Н не является нормальной подгруппой, соотношения для проверки принадлежности кодового слова a классу А, например, следующее: a*B=CG/H.

Важной проблемой в теории кодирования является проблема исправления ошибки при передаче информации. В цифровых сетях информация передается в виде набора нулей и единиц. Нас будут интересовать способы исправления любых s ошибочных символов типа 01 или 10.

Пусть элементы группы G отожествляются с числами, т.е., иначе говоря, существует изоморфизм группы G в бесконечное неограниченное множество чисел MR. Причем каждому классу H1G/H соответствует свое бесконечное неограниченное подмножество чисел M1M. Если G есть бесконечная неограниченная числовая группа, то уже есть естественный изоморфизм между G и бесконечным множеством чисел, указанных выше. Естественно, что если Н конечная подгруппа, то поскольку все классы равномощны, то любой класс Hi состоит из бесконечного множества элементов. Легко привести примеры, когда группа G, подгруппа H и классы Hi состоят из бесконечного множества элементов.

При передаче информации происходит кодирование посредством элементов группы G, которые в свою очередь отожествляют с числами из M. Для исправления любых s и меньшего числа ошибок необходимо и достаточно, чтобы кодовое расстояние между кодовыми словами было больше 2s [1] (Кодовое расстояние между двумя кодами это число различных символов в их двоичном представлении). Для выполнения последнего необходимо, чтобы модуль разности между любыми числами из разных смежных классов в их десятичном представлении, используемых при кодировании, был не меньше

кодирование смежный класс

r=22s+22s-1+…+2+1. (3)

Для десятичных чисел это утверждение не достаточно. Например, для s=2 число r=31. Если к 1 добавить 31, то получим 32. Но 1 и 32 отличаются друг от друга в двух символах в их двоичном представлении, а не в пяти. Но, если умножить число r на степень двойки вида 2t, что означает сдвиг двоичного представления числа r влево на t символов, то всегда среди бесконечного числа неограниченных чисел каждого класса можно найти такие числа-коды, которые отличаются друг от друга на число r, а в их двоичном представлении на 2s+1 и более символов. Тогда при преобразовании чисел из М в двоичные и передаче двоичных чисел, соответствующих кодовым словам, по сети, можно при декодировании с успехом исправлять любые s ошибочных символов.

Для обеспечения кодирования достаточного количества символов необходимо, чтобы длина кодовых слов n была значительно больше по сравнению с s, т.е. n>>s, так как количество кодовых слов с s и меньшим числом ошибок равно C1n+C2n+…+Csn.

Поэтому, если s большое, то n должно быть значительно больше s, так как общее число кодовых слов длины n равно C0n +C1n+C2n+…+Cs n+ Cs+1n+…+ C n n=2n.

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

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

Пример. Рассмотрим множество целых чисел Z={0,1,2,…}. Разобьем Z на смежные классы. В один класс попадут числа, сравнимые по одному и тому же модулю, например, 16. Тогда H множество всех чисел, кратных 16. Каждый из смежных классов состоит из бесконечного числа чисел, дающих одинаковый остаток при делении на 16. Так

H0 = {0, 16, …} числа, дающие при делении на 16 остаток 0,

H1 = {1, 17, …} числа, дающие при делении на 16 остаток 1,

H2 = {2, 18, …} числа, дающие при делении на 16 остаток 2,

H15 = {15, 31, …} числа, дающие при делении на 16 остаток 15.

Максимальное число кодовых слов, кодируемых с помощью 16 классов, равно 16, а, следовательно, максимальная длина кодовых слов равна 4, так как 24=16. Для исправления любых одиночных символов (s=1) необходимо, чтобы кодовое расстояние между кодовыми словами было не меньше 3=2*1+1. Для десятичного представления чисел последнее означает, что модуль разности двух кодовых слов их разных классов не меньше r=22+21+20=7. Элементы из смежных классов можно выбирать случайным образом, но так, чтобы их модуль разности был не меньше 7.

Для того чтобы в двоичном представлении числа отличались на не меньше, чем на 3 символа, достаточно сделать следующее. Надо рассмотреть числа, двоичное представление которых следующее 24t(23+22+21+20)+остаток от деления на 16, t=0,1,2,… Изменяя t и остаток от деления на 16, можно в каждом классе найти числа, отличающиеся друг от друга в двоичном представлении на 4 символа. Взяв эти числа в каждом классе в качестве кодовых слов, мы тем самым решаем задачу об исправлении любых одиночных символов. Аналогичные действия надо сделать для исправления любого количества символов.

В качестве символов-разделителей между кодовыми словами можно использовать элементы некоторого класса. Можно, например, в качестве такого класса взять группу Н. Тогда, как это было сказано ранее, сдвиг двоичного кода влево на (p-1) символов равносильно умножению десятичного кода на степень двойки 2p-1. Согласно малой теореме Ферма

a p-1-1? mod(p),

если p простое число и наибольший общий делитель (НОД) а и р равен 1. У нас а=2, а р произвольное простое число, большее двух. Тогда

2р-1-1: р или 2р-1 ? 1(mod p).

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

Заметим, что предложенное кодирование можно рассматривать как кодирование с нефиксированной длиной кодового слова.

Литература

1. Питерсон У.,Уэлдон Э. Коды, исправляющие ошибки. М.: Мир, 1976.

2. Аршинов М.Н., Садовский Л.Е. Коды и математика. М.: Наука, 1983, 144с.

Размещено на Allbest.ru

...

Подобные документы

  • Исследование истории систем счисления. Описание единичной и двоичной систем счисления, древнегреческой, славянской, римской и вавилонской поместной нумерации. Анализ двоичного кодирования в компьютере. Перевод чисел из одной системы счисления в другую.

    контрольная работа [892,8 K], добавлен 04.11.2013

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

    курсовая работа [507,2 K], добавлен 28.06.2011

  • Методы решения систем линейных уравнений. Метод Якоби в матричной записи. Достоинство итерационного метода верхних релаксаций, вычислительные погрешности. Метод блочной релаксации. Разбор метода релаксаций в системах линейных уравнений на примере.

    курсовая работа [209,1 K], добавлен 27.04.2011

  • Математические модели явлений или процессов. Сходимость метода простой итерации. Апостериорная оценка погрешности. Метод вращений линейных систем. Контроль точности и приближенного решения в рамках прямого метода. Метод релаксации и метод Гаусса.

    курсовая работа [96,7 K], добавлен 13.04.2011

  • Понятие и специфические черты системы линейных алгебраических уравнений. Механизм и этапы решения системы линейных алгебраических уравнений. Сущность метода исключения Гаусса, примеры решения СЛАУ данным методом. Преимущества и недостатки метода Гаусса.

    контрольная работа [397,2 K], добавлен 13.12.2010

  • История развития систем счисления. Непозиционная, позиционная и десятичная система счисления. Использование систем счисления в компьютерной технике и информационных технологиях. Двоичное кодирование информации в компьютере. Построение двоичных кодов.

    курсовая работа [5,3 M], добавлен 21.06.2010

  • Метод Зейделя как модификация метода простой итерации. Особенности решения систем линейных алгебраических уравнений. Анализ способов построения графика функций. Основное назначение формул Симпсона. Характеристика модифицированного метода Эйлера.

    контрольная работа [191,3 K], добавлен 30.01.2014

  • Параллельные методы решения систем линейных уравнений с ленточными матрицами. Метод "встречной прогонки". Реализация метода циклической редукции. Применение метода Гаусса к системам с пятидиагональной матрицей. Результаты численного эксперимента.

    курсовая работа [661,7 K], добавлен 21.10.2013

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

    лабораторная работа [489,3 K], добавлен 28.10.2014

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

    курсовая работа [197,8 K], добавлен 01.10.2009

  • Система линейных алгебраических уравнений. Основные формулы Крамера. Точные, приближенные методы решения линейных систем. Алгоритм реализации метода квадратных корней на языке программирования в среде Matlab 6.5. Влияние мерности, обусловленности матрицы.

    контрольная работа [76,6 K], добавлен 27.04.2011

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

    курсовая работа [59,8 K], добавлен 27.03.2011

  • Понятие матрицы. Метод Гаусса. Виды матриц. Метод Крамера решения линейных систем. Действия над матрицами: сложение, умножение. Решение систем линейных уравнений методом Гаусса. Элементарные пребразования систем. Математические перобразования.

    лекция [45,4 K], добавлен 02.06.2008

  • Метод последовательного исключения неизвестных (метод Гаусса) при решении задач аппроксимации функции в прикладной математике. Метод Гаусса с выбором главного элемента и оценка погрешности при решении системы линейных уравнений, итерационные методы.

    контрольная работа [94,4 K], добавлен 04.09.2010

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

    курсовая работа [866,0 K], добавлен 27.03.2011

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

    лабораторная работа [21,8 K], добавлен 06.07.2009

  • Общий вид системы линейных уравнений и ее основные понятия. Правило Крамера и особенности его применения в системе уравнений. Метод Гаусса решения общей системы линейных уравнений. Использование критерия совместности общей системы линейных уравнений.

    контрольная работа [35,1 K], добавлен 24.06.2009

  • Метод Гаусса, LU-разложение. Прогонка для решения линейных систем с трехдиагональными матрицами коэффициентов. Метод квадратного корня для решения систем: краткая характеристика, теоретическая основа, реализация, тестирование и листинг программы.

    курсовая работа [340,9 K], добавлен 15.01.2013

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

    курсовая работа [497,8 K], добавлен 27.03.2011

  • Симплексный метод как универсальное решение задач линейного программирования. Применение метода Жордана-Гаусса для системы линейных уравнений в канонической форме. Опорное решение системы ограничений. Критерий оптимальности. Задача канонической формы.

    презентация [2,0 M], добавлен 11.04.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.