Загрузил kazenkinartem

Курсовая 111111

реклама
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ
ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ
«МОРДОВСКИЙ ГОСУДАРСТВЕННЫЙ
ПЕДАГОГИЧЕСКИЙ УНИВЕРСИТЕТ ИМЕНИ М. Е. ЕВСЕВЬЕВА»
Физико-математический факультет
Кафедра математики и методики обучения математики
КУРСОВАЯ РАБОТА
МАТРИЧНЫЙ СПОСОБ ДЛЯ КОДИРОВАНИЯ И ДЕКОДИРОВАНИЯ
ИНФОРМАЦИИ
Автор работы _______________________________________
Направление подготовки 44.03.05 Педагогическое образование
Профиль Информатика. Математика
Руководитель работы
докт. физ.-мат. наук, профессор____________________________ Н. Г. Тактаров
Оценка ________
Саранск 2021
Содержание
Введение ....................................................................................................................... 3
1. Теоретические основы матричного способа кодирования и декодирования
информации ................................................................................................................. 6
1.1 Историческая справка .......................................................................................... 6
1.2 Популярные методы кодирования и декодирования информации .................. 9
1.3 Особенности
матричного
способа
кодирования
и
декодирования
информации ............................................................................................................... 14
2. Использование матричного способа кодирования и декодирования
информации ............................................................................................................... 17
2.1 Использование матричного способа кодирования информации .................. 17
2.2 Использование матричного способа декодирования информации ............... 26
Заключение ................................................................................................................ 30
Список используемых источников .......................................................................... 31
Приложение 1 ............................................................................................................ 33
2
Введение
Каждый человек представляет под шифрованием различные вещи. Еще с
детства любимой игрой мальчишек было изобретение секретного алфавита, с
помощью которого можно было обмениваться информацией. Дети, играя в
такие игры, даже не задумываются о том, какую важную роль в жизни может
играть шифр. Ведь игра совсем не связано с настоящей криптографией, которая
должна надежно защищать сообщения от расшифровки. В мире возросла
важность информации, которую необходимо защитить для нормального
функционирования общества. Раньше криптография применялась в военных
целях,
но
сейчас
она
обеспечивает
конфиденциальность
различных
организаций и государства в целом. Искусство кодирования письма началось с
возникновением письменности.
Впервые занялись криптографией древние
греки и римляне, враждующие между собой. Так, уже в древности зародилась
наука криптография [14].
Криптография – это наука о защите информации, система изменения
текста, целью которой является спрятать тайное сообщение от других лиц. Так
же существует наука о методах и средствах расшифровки текста –
криптоанализ. Криптография и криптоанализ создают единую область знаний криптологию, которая в современном мире является областью современной
математики, имеющий важные приложения в современных информационных
технологиях. Термин «криптография» ввел Д.Валлис. Крипто (греч. kryptos тайный, скрытый) – часть сложных слов, указывающая на какое-либо скрытое,
тайное действие [14].
В современном обществе, где множество различных технологий, люди
уже давно осознали, что информация является настоящим кладом, по этой
причине большое количество стараний тратиться как на защиту информации,
так и на ее получение. Информация, что имеет необходимость в охране,
появляется в различных ситуациях. Как правило, в подобных ситуациях
говорят, что информация содержит тайну или является приватной, секретной,
3
конфиденциальной. Даже введены специальные понятия: военная тайна,
государственная тайна, юридическая тайна, коммерческая тайна [6].
Так возникают разнообразные угрозы разглашения данных. Имеется
большое число угроз для защищенной информации со стороны незаконных
пользователей: имитация, подмена.
В настоящее время жизнь организованна таким образом, что между
каждым человеком совершается активный обмен информацией, даже на
больших
расстояниях.
Для
этого
земной
шар
обмотали
различными
техническими связями. Однако зачастую появляется потребность в обмене
данными, которые являются защищенными. В этот момент незаконный
пользователь может попробовать перехватить сведения. Боясь этого, законные
пользователи обязаны осуществить различные меры для защиты своей
информации [9].
Такая защита происходит за счет шифрования, то есть преобразования
исходного текста. С математической точки зрения надежность зашифрованного
текста достигается благодаря сложности решения этой задачи. До настоящего
времени создано огромное множество шифрования, и желательно, чтобы они
обладали хотя бы двумя свойствами: во-первых, получатель зашифрованного
сообщения смог бы расшифровать его с помощью преобразований; и во-вторых
человек перехвативший зашифрованный текст, не смог бы восстановить его за
тех затрат времени и средств, которые сделают работу не целесообразной [14].
В данной работе рассмотрим матричный способ кодирования и
декодирования информации. Тема работы является актуальной как для
развития способностей учащихся, так и для кодирования текста.
В курсовой работе предполагается рассмотреть теоретические основы
матричного
способа,
провести
исследование
матричного
способа
для
кодирования и декодирования информации.
Объект исследования – кодирование информации.
Предмет исследования – применение матричного способа.
Целью курсовой работы является изучение матричного способа,
4
используемого для кодирования и декодирования информации.
Исходя из цели исследования, были поставлены следующие задачи:
 изучить исторические аспекты исследуемой проблемы;
 выделить и изучить основные вопросы, составляющие теорию
матричного способа;
 изучить и проанализировать необходимую научную и учебную
литературу по теме исследования;
 рассмотреть алгоритм кодирования и декодирования информации с
помощью матричного способа.
Практическая значимость работы заключается в том, что материал
данной курсовой работы может быть использован при кодировании и
декодировании информации в различных сферах деятельности.
Для решения поставленных задач использовались следующие методы
исследования: изучение учебной и научной литературы по проблеме
исследования, анализ основных понятий темы исследования, обобщение и
конкретизация.
Курсовая работа состоит из введения, двух глав, заключения и списка
использованных источников.
5
1. Теоретические основы матричного способа кодирования и
декодирования информации
1.1 Историческая справка
Человек воспринимает окружающий мир посредством собственных
органов чувств, то есть с помощью осязания, слуха, зрения, вкуса, обоняния. С
целью верной ориентации в реальности, люди стремятся сохранить в памяти
различные данные мира, то есть информацию. Чтобы разрешить различные
трудности, общество, на основе обработки и анализа информации, получают
необходимые решения задачи. При взаимодействии друг с другом, каждый
человек
приобретает
и
отдает
информацию.
Человек
существует
в
информационном мире. Однако одна и та же информация может иметь
различные форматы представления. Общество стало использовать шифрование
еще с давних времен, но с появлением компьютера эта потребность
увеличилась.
Начало
появления
кодирования
совпадает
с
появление
письменности, потому что написанный текст мог понять, только умеющий
читать. А кодирование текста человек начал применять с момента появления
первых засекреченных данных. Шифрование практиковалось еще на заре
цивилизации. Царь Дарий захотел напасть на Пелопонесский полуостров, но об
этом узнали греки, жившие Персии и чтобы не допустить этого, они нацарапали
на доске тревожную новость и сверху наложили слой воска. Так вышла
восковая пластина, на которой был написан обычный текст и направили в
Спарту. Жена спартанского царя Леонида, смогла понять, что сверкающая
восковая пластина прячет тайну. Георгия отскоблила воск и узнала тайное
сообщение, предупреждавшее о нападении [9].
Со временем, развитие химии предоставило наиболее комфортный способ
скрывать написанное сообщение. Это были симпатические чернила, запись
которых не видно вплоть до того времени, пока бумагу никак не нагреют, либо
никак не подвергнут обработке химикатов [14].
6
Длительный период времени такая деятельность как криптография была
уделом чудаков-одиночек вплоть до XX века. Решаемых криптографией задач в
математическом понимании пришло в середине XX века, после трудов
известного
американского
научного
работника
К.
Шеннона.
История
криптографии имеет связь с огромным числом военных и политических тайн.
Отпечаток
в
истории
криптографии
сохранили
многочисленные
известные личности истории. В их числе Ришелье, король Генрих, IV Петр
Великий и др. Наиболее известны следующие методы кодировки, созданные на
различных ступенях формирования общества: криптографический способ или
тайнопись – изменение сообщения, делая его неясным для других людей, не
понимающих кода. Азбука Сэмюеля Морзе или телеграфное кодирование, в
котором каждый символ является представлением из набора точек и тире.
Способ сурдожестов или язык, используется для слабослышащего человека, в
таком случае каждое слово заменяется жестикуляцией. Однако проанализируем
более детально этапы кодирования в истории, и для этого необходимо
прибегнуть к событиям Древней Греции [19].
Историк Полибий, живший в Древней Греции во втором веке до нашей
эры, внес предложение о кодировании букв греческого алфавита разными
наборами
факелов.
Наиболее
первоначальным
методом
символьного
кодирования является способ Гая Юлия Цезаря, проживавшего в начале
первого столетия до нашей эры. Он базируется на способе замены букв
информации, подлежащего кодированию, на другие, которые отстают в
алфавите от шифруемой буквы на определенное число элементов. Ученый
Клод Шапп в 1791 году внес предложение применять оптический семафортелеграф. Он кодировал буквы алфавита, с помощью использования положения
планки семафора. Потом русский физик П.Л. Шиллингом и профессора
Гёттингенского университета Вебером и Гауссом в 1832-33 годах предложили
кодировать буквы алфавита перемещением электромагнитной стрелки. Данное
изобретение назывался электромагнитный телеграф. Потом, развитие этой идеи
послужило возникновение в 1837 году наиболее известного на сегодняшний
7
день телеграфного аппарата Морзе. В 1861 году был изобретен международной
код, целью которого была передача оптических сообщений с использованием
двух флажков в руках человека. Придумал его мореходный командир Фредерик
Марьят, применяя комплект корабельных сигналов. Затем, после изобретения
проводного телеграфа Морзе, был придуман беспроводной радиотелеграф. Он
был изобретен одновременно и А.С. Попов в 1895 году, и И. Маркони в 1897 г.
Последующим
формированием
кодирования
и
коммуникация
является
создание беспроводного телефона и открытия телевидения в 1935 г. В скором
времени возникли электронные вычислительные машины, новые кодировки и
многое другое. Согласно этому, возникла новая эпоха информационного
общества. Появилась необходимость в передачи информации, но и потребность
в сохранности и защите данных от посторонних лиц [20].
Если обратиться назад к истории, то Френсис Бэкон еще в 1580 году
изложил главные факты кодирования данных. Необходимо, что бы код был
довольно простым в применение. Кодирование обязано быть трудным для
декодирования, то есть надежным. Зашифрованный текст должен быть
скрытным. Шифрование, которое предложил Бэкон было по принципу
использования
сочетания
зашифрованной
текстовой
информации
с
дезинформирующими символами, являющимися нулями. В таком случае,
двузначное
кодирование
начало
применятся
раньше,
чем
появились
электронные вычислительные машины. Новым импульсом в развитие
принципов кодирования стало появление теории об информации, которую
предложил в 1948 году Клод Шенон. Его идея была описана в труде
«Математическая теория связи» и стала теоретической базовой анализа.
Результатом его научной деятельности стало формирование и развитие
устойчивых к помехам методов кодирования и декодирования информации [9].
Таким образом, за много лет существования цивилизации создано
огромное количество шифров и методов кодирования. С
появлением
электронных вычислительных машин потребность в них увеличилась.
8
1.2 Популярные методы кодирования и декодирования информации
Существует
множество
различных
шифров.
Давайте
рассмотрим
некоторые из них. Так, свою популярность обрел шифр «Линейка Энея». В
шифровании «линейка Элея» презентовала себя как устройство, которое имеет
отверстие, число которых совпадает с числом букв в алфавите. Любой проем
отмечался определенной буквой в алфавите. Буквы находились в различном
порядке. У линейки была прикрепленная катушка с ниткой. Рядом с катушкой
было отверстие. При кодировании теста нитка протягивалась через прорезь, а
потом через отверстие, что надлежало первой букве кодируемого текста, при
том, что на нитке делали узел в месте прохождения ее через отверстие, затем
нить возвращалась в прорезь и
подобно этому зашифровывались и
последующие буквы текста. Уже после завершения кодирования нитка
извлекалась и также передавалась получателю информации. Адресат, обладая
такой же линейкой, прокладывал нитку через выемку вплоть до отверстий,
характеризуемых узлами, и возрождал первоначальный документ. Данный
шифр считается одним из образцов шифра с заменой. Посторонний человек,
даже имея нить и линейку, без нанесенных на ней букв, не сумеет никак
прочесть скрытую информацию [6].
Еще не менее известным является шифр «Узелковое письмо». Этот шифр
популярен почти на всех континентах. Его начали применять еще в Древнем
Китае. Информация
передавалась с помощью вязания узелков различных
фигур, любой из которых определял слово или действие. Это было очень
красочное, яркое тайное послание, с помощью которых возможно было
изложить непростые картины быта и события прошлого. Основы данного
послания были достаточно просты для понимания. Так, на веревках
завязывались различные узлы, имеющие определенную форму. Одни имели
цель счета людей, воинов, продовольствия, другие отмечали положение и
значимость письма. Шнуры, различавшиеся по цветам, могли указывать
определенный объект или использовались для того что бы заинтересовать
9
человека к особому статусу сообщения. Самые важные послания были
выделены красной шнуровкой [13].
Еще одним немаловажным шифром в истории стал шифр по описанию
Плутарха. Необходимость в зашифровки информации появилось очень давно и
уже в V веке до нашей эры греки использовали устройство шифрования текста.
Согласно словам Плутарха, оно было из двух палочек равной длины и
толщины. Одну палку оставляли себе, другую отдавали человеку, которому
хотели передать сообщение. Палочки назывались скиталами. Если человек
хотел передать тайное сообщение, то они вырезали узкую и блинную полоску
папируса и мотали ее на скиталу, без единого интервала. Так, вся поверхность
палочки была в папирусе. Затем, на этой палке писали письмо, после чего
снимали полоску и без палки отправляли адресату. Расшифровать данное
сообщение мог только тот человек, имеющий такую же скиталу и намотав без
единого пропуска папирус на нее. Аристотель смог придумать декодирование
этого сообщения. Для этого нужно было сделать конус и начиная с основания
оборачивать ее папирусом, так начнет проявляться текст сообщения [16].
Также одним из важных кодов является «код Энигма». Он является одним
из сложных шифров, используемый немецким войском во время Второй
Мировой войны. Чтобы зашифровать сообщение использовали специальную
машинку Энигма, что весьма схожа с пишущей машинкой. Когда нажимали на
какую-либо букву, то на экране появлялась зашифрованная. Такая машина
состояла из колес, объединенных с буквами специальными проводами, чтобы
узнать, какой символ будет показываться. Все машины Энигма были
полностью одинаковыми, и расположение колес и являлось ключом для
расшифровки тайного сообщения. Для того чтобы усложнить процедуру
шифрования текста, колесо вращалось после того, как были напечатаны
определенные символы. Германское руководство каждый раз использовало
различные конфигурации колес для шифрования сообщения, таким образом
действовали все командиры, поэтому могли с легкостью расшифровать
послания друг друга. Поэтому даже при получении противниками такой же
10
машины, никто не мог расшифровать сообщение, так как неизвестна была
конфигурация. Но такая машина послужила не так долго, и была взломана и
расшифрована англичанами, с помощью электронной вычислительной машины.
Понимание германских машин предоставило соперникам существенное
превосходство в процессе битвы, а процедура взлома позволило создать первый
прообраз компьютера [7].
Одной из интересных кодировок является «Решетка Кардано». Она
выглядит, как прямоугольная таблица с отверстиями, больше всего квадратной
формы. Ее использование простое, и состоит в том, что при наложение на текст
с сообщение, оставляет открытым лишь некоторые буквы в словах, из которых
можно получить новое сообщение. Карточка устроена так, что при
поворачивании, каждая клетка оказывается занятой. Карточку вначале
поворачивают на 180 градусов, по вертикальной оси, а зачем вдоль
горизонтальной оси. Если решетка Кардано является квадратом, то поворот
осуществляется на 90 градусов вокруг центра [6].
Для сохранения государственной тайны был использован
шифр
Плейфера. Хотя он и был придуман и открыт Чарльзов Уитстном, свою
популярность получил, как шифр Плейфера. Первое представление кода
Плейфера было зафиксировано в документе 26 марта 1854 года. Но этот
документ был отклонен из-за трудности его понимания. Тогда Уитстон внес
предложение показать на 3 ребятах школы, что те научаться применять данный
код за 15 минут. Так этот код стал использоваться в вооруженных силах во
время войн, Фактом применения кода Плейфера в том, что шифр довольно
быстрый в использовании, также не требует практически никакого особого
оснащения. Главной целью применения данного кодирования в том, что
осуществлялась охрана значимой, однако никак не конфиденциальной
информации в период ведения битвы. К периоду, когда неприятели открывали
информацию, сведения уже не несли никакой важности. Код Плейфера
считается довольно устойчивым, однако инновационные компьютерные
технологические процессы взламывают данный код за пятнадцать минут, по
11
этой причине кодирование считается неразумным. Шифр Плейфера – это
ручная техника кодирования сообщения, в котором применяется замена
биграмм. Придуман в 1854 г. Чарльзом Уитстоном, однако наименован в честь
Лорда Лайона Плейфера, что ввел этот код в государственные службы Англии.
Код учитывает кодирование пар символов. Код Плейфера наиболее устойчив ко
взлому согласно сопоставлению со шифром обычный смены, так как
усложняется частотный анализ. Шифр Плейфера используется и в русском
языке, для кодирования русского алфавита. В таком случае применяется
матрица 4 на 8, в которой имеется ключ. Целью формирования матрицы
применения кода необходимо всего лишь сохранить в памяти основной термин
и 4 несложных принципов. При создании основной матрицы, то есть ключевой,
для начала необходимо заполнить пустые ячейки матрицы буквами слова,
являющегося ключом, затем заполнить остальные ячейки буквами алфавита, не
попадающимися в основном слове, причем в порядке букв русского алфавита.
Слово, являющееся ключом, в матрице вносится по строчкам слева направо.
Ключевое слово, заполненное алфавитом, является матрицей 4 на 8 и является
источником расшифровки [17].
Существует также шифр Тритемиуса Иоганна Тритемия. Иоганн
Тритемий родился 1 февраля 1462 года, является писатель, автор множества
книг
по
истории,
криптографии,
оккультизма.
Иоганн
закончил
Гейдельбергский университет. В 1482 году Иоганн возвращался к себе домой,
но снежная буря застала его врасплох и ему пришлось спрятаться в аббатстве
Спонхайма. Так, он принял решение остаться там и в скором времени был
избран аббатом. Вначале он решил увеличить библиотеку, увеличив ее до 2000
книг, и даже получил репутацию волшебника. Иоганн популярен множеством
написанных сочинений, в числе которых «Полиграфия» и «Стенография».
Первое мнение которое может сложится, что книга посвящена волшебству и
магии, и предназначена для общения с духами. Но на самом деле речь в ней
идет о криптографии. Его математическая модель шифра предполагает собой
улучшенную модель шифра Цезаря, то есть шифра подстановки. Согласно
12
методу кодирования, любой знак информации сдвигается на знак, отстающий
на некоторый шаг. Тут этап смещения является неустойчивым, так как зависит
от дополнительных условий [12].
Популярным и самым используемым является двоичная система
счисления. Она необходима для представления информации на ЭВМ. Что бы
закодировать и раскодировать информацию помогает криптография. Двоичная
система счисления является главной для представления информации в
компьютере. В ней применяются числа 0 и 1 [7].
13
1.3 Особенности матричного способа кодирования и декодирования
информации
Как указывалось ранее, координатное кодирование опирается на
матричное преобразование входных данных, которые вначале приводятся к
значениям координат (индексов) матрицы, а затем по последним определяется
позиция в матрице и осуществляется выборка кода исходного текста [1].
В настоящем подразделе рассматриваются матрицы целых чисел, которые
могут быть использованы для кодирования целых чисел как из диапазона
значений, входящих в матрицу, так и чисел, взятых за пределами этого
диапазона. В этом случае, кодирование выполняет функцию более компактного
представления целых чисел и, в общем случае, больших массивов. Кроме того,
учитывая, что буквы текста также отождествляются с числами определенной
длины, предполагаемый метод матричного кодирования позволит уменьшить
затраты памяти на хранение больших текстов. Под смешанными числами здесь
понимаются целые положительные и отрицательные числа [2].
Метод матричного кодирования с помощью целых чисел предполагает
построение сетки матрицы А прямоугольной формы размером 10х10, т.е.
координаты включают целые числа от 0 до 9 и могут указывать 100 целых
чисел (Таблица 1) [1].
Сам процесс организации матрицы А основывается на свойстве
симметрии
и
разбиении
исходной
матрицы
на
две
треугольные:
нижнетреугольную и верхнетреугольную матрицы (Рисунок 1) [1].
Рисунок 1 Симметрия матриц
14
Нижнетреугольная матрица NL заполняется целыми числами (Таблица 1)
NL = {xk}, k = 1 45, x  Z, причем диагональ D также состоит из целых
положительных чисел
D = {dm}, m = 1 10, d  Z.
Верхнетреугольная матрица NR состоит из целых отрицательных чисел
NR = {-xq}, q = 1 45, x  Z.
Таблица 1 Метод матричного кодирования с помощью целых чисел
Принцип
заполнения
матриц
целыми
числами
заключается
в
использовании натурального ряда чисел и записи этих чисел по строкам до
позиций диагональных чисел (нижнетреугольная матрица) с переходом на
следующую нижнюю строку [3].
Верхнетреугольная матрица NR представляет собой зеркальное отражение
15
матрицы NL относительно диагонали и представлена теми же целыми числами,
но с противоположным знаком [3].
Любой элемент матрицы А может быть определен как
𝑗 + 0? 5 ∗ 𝑖(𝑖 + 1) + 1, 𝑖𝑗,
xij = {
−𝑖 − 0,5 ∗ 𝑗(𝑗 + 1) − 1, 𝑖 𝑗.
В силу симметрии матрицы относительно главной левой диагонали
выполняется aij = -aij
Такой
прием
организации
матрицы
А
позволяет
осуществлять
кодирование целого числа от 0 до 99 в более компактном представлении с
меньшим числом битов. При этом использование отрицательных чисел в
верхнетреугольной матрице NR при кодировании входных чисел сохраняет их
положительные знаки. Сама симметрия матрицы позволяет уменьшить
количество (ряд) чисел (сократить вдвое) с помощью которых осуществляется
кодирование [3].
Другими словами, исходный алфавит включает в себя множество чисел
от 0 до 99 и его мощность Mn = 100, а алфавит матричного кодирования состоит
из чисел от 1 до 55 [3].
Мощность алфавита матричного кодирования будет Mm = 55
Разработанная матрица обладает следующими свойствами:
1. числа по строкам образуются как
xi,j = xi, j-1 + 1
2. числа по столбцам образуются как
xi,j = xi-1, j + i
3. числа по диагонали
xi,j = xi-1, j-1 + j + 1.
В теории матриц, перечисленные выше числа, именуются как генераторы
строк, столбцов, диагоналей. С их помощью осуществляется генерация матриц
в памяти компьютера [1].
16
2. Использование матричного способа кодирования и декодирования
информации
2.1 Использование матричного способа кодирования информации
В основу алгоритма матричного кодирования положено представление
любого целого положительного числа в виде последовательности пар соседних
десятичных цифр от 00 до 99. Любое целое многоразрядное число N
разбивается на пары, причем каждая пара может нести значение от 00 до 99,
причем любое число, представимое парой, может быть разложено как
N = i * 10 – j,
где i ,j  {0,1,2, … ,9} и i используется в качестве номера (координаты)
первой строки матрицы, а j – в качестве номера столбца (вторая координата)
этой же матрицы [2].
Пример. Пусть исходное число N=100002. Разобьем его на пары:
10 = 3
00 = 2
02 = 1
Каждая пара кодируется с помощью матрицы А отдельно. Представим
число N как суперкомпозицию пар N = N1 + N2 + N3, где Ni – пара цифр. Тогда
координаты пар:
N1 = 02 = 0 * 10 + 2  i1 = 0, j1 = 2;
N2 = 00 = 0 * 10 + 0  i1 = 0, j1 = 0;
N3 = 10 = 1 * 10 + 0  i1 = 1, j1 = 0;
Следует отметить, что разбиение исходного числа происходит с его
младшего разряда, справа налево. Если количество цифр в исходном числе
нечетно, то в начало числа добавляется ноль. Симметрия матрицы А
относительно диагонали дает возможность кодировать числа, в которых
встраиваются комбинации несколько подряд стоящих нулей [2].
17
В рассматриваемом примере получим матричные координаты трех пар:
N1, N2, N3.
Выборка по этим координатам дает их матричные коды
N1  (-4); N2  1; N3  2
Используя суперкомпозицию, получаем матричный код числа N=100002
 2.1.(-4) [2].
Также с помощью матричного кодирования, возможно, закодировать
текст, используя специальный алгоритм.
Так кодирование текста происходит следующим образом:
1. Текст разбивается на биграммы;
2. В качестве номера строки кодирующей матрицы используется первая
буква биграммы;
3. В качестве номера столбца используется вторая буква.
Выбранный элемент матрицы и представляет сжатый код биграммы.
Если таблицу частот формировать динамически, т. е. вычислять
вероятности появления биграмм и затем их сортировать в порядке убывания, то
появляется возможность дополнительного уменьшения общей длины исходного
текста. При этом соответствующим образом и образуется сама матрица
кодирования А. Достоинством динамического подхода является адаптация к
кодируемому тексту — средневзвешенная длина кода становится короче [10].
При оценке эффективности метода для кодирования текстов возникает
естественный вопрос: является ли он оптимальным? Для того чтобы ответить
на этот вопрос, найдём среднюю информацию на один элементарный символ, и
сравним её с максимально возможной информацией, которая равна одной
двоичной единице [10].
Для этого определим среднюю информацию, содержащуюся в одной
биграмме передаваемого текста используя формулу энтропии (по К. Шеннону)
H() = - ∑1024
𝐼=1 𝑃𝑖 ∗ log 𝑃𝑖
для методов на основе статического и динамического подходов, которые
18
составили соответственно 7,63 и 7,58 бит/биграмму [2].
Среднее количество символов на одну биграмму для метода на основе
статического подхода:
nср= 8,264
Среднее количество символов на одну биграмму для метода на основе
динамического подхода:
nср= 8,109
Деля энтропию H() на nср, получаем информацию на одну биграмму —
для метода на основе статического подхода:
I1б =
Н
𝑛 ср
= 0.923 (двоичных единиц),
для метода на основе динамического подхода:
I1б =
Н
𝑛 ср
= 0.934(двоичных единиц).
Таким образом, полученные оценки весьма близки к своему верхнему
пределу 1, а разработанный матричный код весьма близок к оптимальному.
Данные для анализа получены при кодировании среднестатистического
текста объёмом 61,6 тысячи символов [10].
Время кодирования определяется как T = tрч + tв + tвф, где tрч – время
разбиения числа на пары; tв – время выделения одноразрядных 10-х чисел;
tвф – время вычисления по формуле [10].
Предложенный алгоритм отличает высокая скорость работы как при
упаковке, так и при распаковке, достаточно скромные требования к памяти и
простая программная реализация. Еще одним важным преимуществом данного
метода кодирования является тот факт, что хранить матрицу совсем
необязательно [10].
Хорошее сжатие обеспечивается на интервале [31750-32750]. Числа здесь
имеют длину матричного кода в среднем на 1,89 бита меньше по сравнению с
традиционным двоичным кодом [10].
Так же возможно кодирование биграмм текста с использованием
модифицированной матрицы В.
19
Модифицированная матрица В отличается от матрицы А значениями
матричных
чисел
в
одноименных
координатах.
Элементы
матрицы
вычисляются по формуле:
𝑗 + 0? 5 ∗ 𝑖(𝑖 + 1) + 1, 𝑖𝑗,
аij = {
−𝑖 − 0,5 ∗ 𝑗(𝑗 + 1) − 1, 𝑖 𝑗.
Матрица В имеет вид, представленный в таблице 2.
Таблица 2 Матрица B
Матрица симметрична относительно левой главной диагонали и
выполняется равенство aij = –aji.
Рассмотрим кодирующие свойства матрицы В на текстовом сообщении и
будем, как и в предыдущем случае, осуществлять разбиение слов текста на
пары символов и использовать их как координаты в матрице В [4].
Если сообщение нечётной длины, то к нему в конец добавляется пустой
символ, то есть символ, про который заранее известно, что он не будет
использован в сообщениях. Таким образом, сообщение приобретёт чётную
длину и его можно будет закодировать данным методом. При декодировании
пустой символ нужно будет убрать [4].
20
Например, закодируем слово «строка» (рисунок 3).
Для повышения эффективности кодирования с помощью матрицы B
используем код Хаффмана: –19+8+1, который дает суммарную длину кода 14
бит. Знаки чисел выполняют роль разделителей [5].
Рисунок 3 Схема кодирования слова «строка»
Порядок символов в кодовой матрице берётся такой, в котором они
расположены в алфавите. При этом сочетания последних букв в алфавите будут
кодироваться наиболее длинными кодовыми комбинациями. Если такие
сочетания встречаются в сообщении часто, то код получается слишком
длинным.
Поэтому
возникает
необходимость
оптимизации
алгоритма
кодирования, используя частотный словарь. Здесь он будет выглядеть в виде
частотной матрицы. Эту частотную матрицу нужно отсортировать по строкам и
столбцам по убыванию частот, а полученный порядок символов использовать в
частотной матрице. Проведем еще раз кодирование слова «строка» [8].
21
Частотная матрица:
а
к
о
р
с
т
А
0
0
0
0
0
0
к
0
0
0
0
0
0
33
о
0
0
0
0
0
0
р
0
0
0
0
0
0
0
0
0
33
с
0
0
0
33
т
0
0
0
0
0
0
Отсортированная частотная матрица:
к
а
о
т
к
р
с
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
33
р
0
33
с
0
0
33
а
0
0
0
0
0
0
о
0
0
0
0
0
0
т
0
0
0
0
0
0
Ключевая матрица:
к
р
с
а
о
т
к
р
с
+
-
-
-
-
-
0
1
3
6
10
15
+
+
-
-
-
-
1
2
4
7
11
16
+
+
+
-
-
-
22
а
о
т
3
4
5
8
12
17
+
+
+
+
-
-
6
7
8
9
13
18
+
+
+
+
+
-
10
11
12
13
14
19
+
+
+
+
+
+
15
16
17
18
19
20
Тогда текстовое слово «строка» закодируется как:
«строка» → +5+2+0 → 01001100111. Длина кода – 11 бит.
Проведём
сравнение
двух
методов
кодирования
на
основе
модифицированной матрицы [4].
Были представлены два метода кодирования. Второй метод является
модификацией первого. Если проанализировать эти методы, то можно выявить
области их эффективного применения [4].
Как видно из примеров, второй метод даёт меньший по длине код, чем
первый. Но при этом нужно вместе с кодом передавать необходимую для
декодирования информацию о кодовой матрице. При кодировании коротких
сообщений размер этой информации может быть слишком велик по сравнению
с самим кодом. При кодировании коротких сообщений и потоковых данных
предпочтительнее использовать первый метод. Второй метод больше подходит
для кодирования сообщений средней и большой длины [8].
Сравним с классическим методом кодирования Хаффмана.
По
результатам
кодирования
исследования
Хаффмана
даёт
в
большинстве
больший
сообщений
коэффициент
сжатия,
метод
чем
рассмотренные матричные методы [8].
Преимущество этих методов в скорости.
Алгоритм кодирования Хаффмана состоит из двух основных шагов:
1.
Заполнение частотного словаря (цикл с числом итераций равным
длине сообщения).
23
2.
Кодирование сообщения (цикл с числом итераций равным числу
различных символов в сообщении).
Сообщение может содержать много символов. Рассмотренные матричные
методы используют 12 символов: {1, 2, …, 9, 0, +, –}. Последующее
кодирование в бинарный код методом Хаффмана может быть упрощено путём
замены второго цикла на сопоставление символам заранее известных кодовых
комбинаций [5].
Рассмотрим кодирование вторым методом слова «строка».
1. Матричное кодирование.
«строка» → +5+2+0
2. Заполнение частотного словаря (в отсортированном виде).
0.50
0
0.16
6
0.16
6
0.16
6
3. Кодирование сообщения.
Нужно заранее (всего один раз) вычислить кодовые комбинации для 12
символов.
Здесь нужно лишь сопоставить символам найденные кодовые
комбинации [8].
0
10
110
111
Получаем новый код слова «строка» → 010110111. Длина кода 9 бит. К
сжатому тексту с помощью кодирования пар можно применить один из
24
статистических алгоритмов сжатия, например, арифметическое кодирование.
При арифметическом кодировании текст представляется
в виде двоичной
дроби из полуинтервала [0;1). Перед началом кодирования содержащий её
интервал - [0:1). Каждый новый символ сужает текущий интервал в
соответствии со своей вероятностью, определяемой моделью. Более вероятные
символы добавляют, таким образом, меньше битов к результату, чем менее
вероятные. Арифметическое кодирование позволяет кодировать символы даже
долями бита и осуществляет сжатие за один проход по источнику [4].
25
2.2 Использование матричного способа декодирования информации
В основу декодирования положена идея использования интервальной
матрицы. Если рассмотреть массив матричных чисел как множество строк
целых чисел, возрастающих от некоторых начальных значений xiH до своих
максимальных значений xiK, то можно каждую i-ую строку заключить в
интервал {xiH, xiK}. Здесь в интервал включены его границы xiH, xiK
(фактически, это отрезок) [8].
Правой границей интервала являются значения диагональных элементов
матрицы,
которые
содержат
все
максимальные
значения
для
строк
нижнетреугольной матрицы NL. Из-за симметрии матрицы А рассмотрение
верхнетреугольной матрицы NR не требуется, т.к. ее любое матричное число
можно перевести в число матрицы NL по формуле aij = -aij.
Из нижнетреугольной матрицы можно получить треугольную матрицу
интервалов (рисунок 4).
Преобразуем треугольную матрицу интервалов в трехстолбцовую
прямоугольную, как наиболее удобную для последующего декодирования. Для
этого сохраним столбец координат по строкам матрицы А и используем его в
качестве первого столбца новой матрицы интервалов I [8].
Рисунок 4 Схема треугольной матрицы интервалов
Второй столбец в матрице I будет представлять левые границы
интервалов (xiН) и в его качестве используем первый столбец матрицы А.
26
Третий столбец будет представлен диагональю матрицы А и является правой
(xiK) границей всех строчных интервалов [4].
Полученная матрица интервалов представлена в таблице 4.
Процедура
декодирования
с
помощью
матрицы
интервалов
осуществляется следующим образом. Закодированное с помощью матрицы А
число М построчно сравнивается со всеми интервалами
x i Н  М  x i K, 0  i  9
Таблица 4 Матрица интервалов
j/i
0
1
0
1
1
1
2
3
2
3
6
3
7
10
4
11
15
5
16
21
6
22
28
7
29
36
8
37
45
9
46
55
И если оно попадает в один из них, то номер этой строки запоминается,
т.е. определено значение первой координаты i. Для получения второй
координаты j используется формула
j=M–
𝑖∗(𝑖+1)
2
-1
Сформировав координаты i, j можно окончательно восстановить число N
по формуле N = i*10 + j.
В случае отрицательного значения М необходимо взять число М по
модулю и выполнить точно те же действия, что и в случае положительного М,
27
однако для восстановления числа будет использоваться другая формула
N = -(j*10 + i).
Рассмотрим алгоритм декодирования на прежнем примере. В результате
кодирования числа N=100002 получен код M = 2.1.(-4)
Выделим коды пар справа налево. N1M = -4; N2M = 1; N3M = 2.
Код пары: N1M = (-4)  строка с i1 = 2;
j1 = | N1M| -
2∗(2+1)
2
-1=4–3–1=0
для i = 2, j = 0.
N1 = 0 * 10 + 2 = 02;
Код пары: N2M = 1  строка с i2 = 0;
j2 = 1 –
0∗1
2
-1=0
для i2 = 0, j2 = 0.
N2 = 0 * 10 + 2 = 00;
Код пары: N3M = 2  строка с i3 = 1;
j3 = 2 –
1∗2
2
-1=0
для i3 = 1, j3 = 0.
N3 = 1 * 10 + 0 = 10.
Используя композицию, получаем исходное число
N = N3 * N2 * N1 = 100002
Важное достоинство матричного кодирования состоит в том, что
требуется всего лишь одно обращение к матрице. Декодирование также
упрощено, его время определяется 2i сравнениями кода с границами
интервалами, расчётами значений j по (3.3) и для N по (3.4). Таким образом,
предлагаемое матричное кодирование обладает такими важными свойствами,
как экономичность записи целых чисел и высокой скоростью выполнения
операций по их сжатию/восстановлению [5].
Для кодирования текста структура предложенной матрицы сохранится,
однако
заголовки
строк,
столбцов
28
матрицы
необходимо
изменить
в
соответствии со следующей идеей.
Известные таблицы частот биграмм для русского языка, которые имеют
матричную форму и на пересечении столбца (имя первой буквы) и строки (имя
второй буквы) записано значение частоты их встречаемости в тексте. Если
переставить столбцы и строки этой таблицы частот таким образом, чтобы в
левом верхнем углу матрицы кодирования, где представлены числа с малыми
значениями, расположились биграммы с наибольшей частотой, то они будут
кодироваться наиболее короткими кодами. Такая матрица будет иметь размер
32  32, а её элементами будут числа, получаемые по (3.1) и (3.2) [4].
В современном мире создается множество элективных курсов для
школьников, где изучаются важные вопросы не входящие в обычный
школьный предмет. Так курс, связанный с математикой и шифром будет
актуален и в теоретическом и в практическом применение, с помощью него
школьники смогут повторить полученные раннее знания и узнать что-то новое.
Такой курс сможет сформировать элементарные навыки работы с
матрицами, познакомит с кодирование и декодированием с помощью матриц,
расширит кругозор [5].
Чтобы использовать шифрование с помощью матриц, необходимо знать
программу 6 класса, знать алфавит и запомнить 8 чисел.
В
приложении
1
представлено
элективного курса [5].
29
примерное
содержание
занятий
Заключение
В современном мире очень важна защита информации, сохранить
которую возможно с помощью ее шифрования и кодирования. Наука,
занимающаяся шифрованием и дешифрованием сообщений, называется
криптография. Она не может существовать без анализа и синтеза, без
абстрактного мышления, без сравнения и аналогии, это означает, что
математика больше всего может помочь в решении этой проблемы в науке. Так,
мною была проведена работа над изучением матричного способа кодирования и
декодирования информации. Все поставленные задачи были решены, а именно:
изучить исторические аспекты исследуемой проблемы; выделить и изучить
основные вопросы, составляющие теорию матричного способа; изучить и
проанализировать необходимую научную и учебную литературу по теме
исследования;
рассмотреть
алгоритм
кодирования
и
декодирования
информации с помощью матричного способа.
В первой главе мною были рассмотрены теоретические вопросы,
связанные с матричным способом кодирования и декодирования информации.
В первом параграфе была дана историческая справка о появление и изучения
шифрования и кодирования. Во второй главе рассматривались популярные
методы кодирования и декодирования информации. В третьей – была раскрыта
особенность матричного способа шифрования.
Во второй главе первого параграфа мы рассмотрели на примерах
использование матричного кодирования чисел, текста, биграмм текста с
использованием модифицированной матрицы В. Во втором – матричный
алгоритм декодирования. В третьем – использование матричного способа для
школьных курсов по выбору.
В заключение можно сказать, что данный способ кодирования популярен
и актуален, так как его можно использовать для формирования элементарных
навыков работы с матрицей на школьных курсах, познакомить учащихся с
применением математики в различных сферах.
30
Список используемых источников
1. Смагин А.А., Булаев А.А. Исследование весовых матриц целых
десятичных
чисел
//
Ученые
записки
Ульяновского
государственного
университета. Сер. Математика и информационные технологии. Вып. 1(5) /
Под ред. проф. А. А. Смагина. Ульяновск: УлГУ, 2013. С. 176-183.
2. Смагин А.А., Булаев А.А. Определение порядковых номеров чисел,
образующих строки весовых треугольных матриц
Ульяновского
государственного
университета.
//
Сер.
Ученые записки
Математика
и
информационные технологии. Вып. 1(5) / Под ред. проф. А. А. Смагина.
Ульяновск: УлГУ, 2013. С. 169-176.
3. Грэхем Р., Кнут Д., Паташник О. Конкретная математика. Основание
информатики. Пер. с англ. М.: Мир, 1998.
4. Андерсон Дж.А. Дискретная математика и комбинаторика. Пер. с
англ..-М.: Издательский дом «Вильямс», 2003.
5. Берлекэмп Э. Алгебраическая теория кодирования. М.: Мир, 1971.
6. Алферов, А. П. Основы криптографии : учеб. пособие / А. П. Алферов,
А. Ю. Зубов, А. С. Кузьмин, А. В. Черемушкин. – М. : Гелиос АРВ, 2002. –
480 с.
7. Романец, Ю. В. Защита информации в компьютерных системах и сетях
: учеб. пособие / Ю. В. Романец, А. П. Тимофеев, В. Ф. Шаньгин. – М. : Радио и
связь, 2001. – 376 с.
8. Смагин А.А.,Терентьева Ю.Б. Математическая модель счетчика
построенная
на
основе
кода
Линча-Девисона
//
Известия
вузов.
Приборостроение, 2000, т.43, № 3, с.28-32.
9. Венбо, М. Современная криптография. Теория и практика : учеб.
пособие / М. Венбо. – М. : Издательский дом «Вильямс», 2005. – 768 с.
10. Смагин А.А. Модели разбиений. Ульяновск: УлГУ, 2013.
11. Сивашинский И.Х.: Задачи по математике для внеклассных занятий
М.Просвещение.
31
12. Семенов, Ю. А. Протоколы Internet : учеб. пособие / Ю. А. Семенов. –
М. : Проспект, 2011. – 114 с.
13. Рябко, Б. Я. Основы современной криптографии и стеганографии :
монография / Б. Я. Рябко, А. Н. Фионов. – М. : Горячая линия-Телеком, 2010. –
232 с.
14. Криптология – наука о тайнописи // Компьютерное обозрение. –1999. №3. –С. 10 – 17.
15. Лоповок Л.М.: 1000 проблемных задач по математике. Учебная книга,
2006 г.
16. Коблиц, Н. Курс теории чисел и криптографии : учеб. пособие /
Н. Коблиц. – М. : Научное изд-во ТВП, 2001. – 254 с.
17.
Герасименко
В.А.,
Скворцов
А.А.,
Харитонов
И.Е.
Новые
направления применения криптографических методов защиты информации.М.: Радио и связь.-1989.-360с.
18. Кесельман В.: Занимательная математика. Арстель, 2008 г.
19. Черчхаус, Р. Коды и шифры. Юлий Цезарь, «Энигма» и Интернет :
учеб. пособие / Р. Черчхаус. – М. : Весь мир, 2009. – 320 с.
20. Перельман Я.И.: Занимательная арифметика. Арстель 2007 г.
32
Приложение 1
Использование матричного способа кодирования и декодирования
информации на элективных курсах для школьников
Матрица – это таблица, имеющая форму прямоугольника, которая
состоит из элементов. В строках и столбцах располагаются элементы матрицы.
Матрица называется квадратной, если в ней одно и тоже количество строк и
столбцов. Сейчас мы воспользуемся матрицей называемой квадратной,
имеющий размер 2  2 [11].
Чтобы закодировать буквы русского алфавита, для этого каждую букву
пронумеруем от 1 до 33 и пробел обозначим числом 34 [11].
Давайте попробуем зашифровать простое предложение «Матричное
кодирование и декодирование информации».
а б в г д е ё ж з и й к л м н о п
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
р с т у ф х ц ч ш щ ъ ы ь э ю я _
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
Смотря по таблице на номер каждый буквы, получим:
м
а
т
р
и
ч
н
о
е
_
14
1
20
18
10
25
15
16
6
34
к
о
д
и
р
о
в
а
н
и
12
16
5
10
18
16
3
1
15
10
е
_
и
_
д
е
к
о
д
и
6
34
10
34
5
6
12
16
5
10
р
о
в
а
н
и
е
_
и
н
18
16
3
1
15
10
6
34
10
15
ф
о
р
м
а
ц
и
и
22
16
18
14
1
24
10
10
33
Теперь, после того как мы нашли число каждой буквы алфавита, мы
должны построить последовательности из матриц 2  2. Всего получится 12
матриц. Построение матрицы происходит следующим образом: мы начинаем ее
заполнять с 1 столбца и 1 строки, так идет заполнение слева направо [15].
14 1
)
20 18
5 10 3
(
)(
18 16 15
(
6 34
3
1
6 34
10 25
5 10
5 6
(
) (
) (
) (
) (
) (
)
15 16 12 16 18 16 15 10 10 34 12 0
1
6 34 22 16 24 10
)(
)(
)(
)
10 10 15 18 14 10 0
Теперь зашифруем данный текст с помощью другой матрицы, и назовем
2 3
ее кодирующей: (
)
1 2
Теперь чтобы осуществить кодирование, необходимо перемножить
матрицы, кодирующую и само сообщение [15].
Чтобы выполнить это действие, давайте рассмотрим правила умножения
матриц. А * В = С - это правило умножения матриц в общем виде [18].
Теперь раскроем это правило:
(
𝑎
𝑐
𝑟
𝑏
)*(
𝑡
𝑑
𝑠
𝑎∗𝑟+𝑏∗𝑡
)=(
𝑢
𝑐∗𝑟+𝑑∗𝑡
𝑎∗𝑠+𝑏∗𝑢
)
𝑐∗𝑠+𝑑∗𝑢
После того, как мы узнали правило перемножения матриц необходимо
перемножить каждую матрицу с кодирующей матрицей, где получим:
14 1
2 3
88 56
1) (
)∗(
)=(
)
20 18
1 2
54 37
Компоненты новой матрицы вычисляются следующим образом:
с11 = a11 · b11 + a12 · b21 = 2 · 14 + 3 · 20 = 28 + 60 = 88
c12 = a11 · b12 + a12 · b22 = 2 · 1 + 3 · 18 = 2 + 54 = 56
c21 = a21 · b11 + a22 · b21 = 1 · 14 + 2 · 20 = 14 + 40 = 54
c22 = a21 · b12 + a22 · b22 = 1 · 1 + 2 · 18 = 1 + 36 = 37
2 3
10 25
65 98
2) (
)∗(
)=(
)
1 2
15 16
40 57
Компоненты новой матрицы вычисляются следующим образом:
c11 = a11 · b11 + a12 · b21 = 2 · 10 + 3 · 15 = 20 + 45 = 65
c12 = a11 · b12 + a12 · b22 = 2 · 25 + 3 · 16 = 50 + 48 = 98
c21 = a21 · b11 + a22 · b21 = 1 · 10 + 2 · 15 = 10 + 30 = 40
34
c22 = a21 · b12 + a22 · b22 = 1 · 25 + 2 · 16 = 25 + 32 = 57
6 34
2
3) (
)∗(
12 16
1
48 116
3
)=(
)
2
30 66
Компоненты новой матрицы вычисляются следующим образом:
c11 = a11 · b11 + a12 · b21 = 2 · 6 + 3 · 12 = 12 + 36 = 48
c12 = a11 · b12 + a12 · b22 = 2 · 34 + 3 · 16 = 68 + 48 = 116
c21 = a21 · b11 + a22 · b21 = 1 · 6 + 2 · 12 = 6 + 24 = 30
c22 = a21 · b12 + a22 · b22 =1 · 34 + 2 · 16 = 34 + 32 = 66
2 3
64 68
5 10
4) (
)∗ (
) =(
)
1 2
41 42
18 16
Компоненты новой матрицы вычисляются следующим образом:
c11 = a11 · b11 + a12 · b21 = 2 · 5 + 3 · 18 = 10 + 54 = 64
c12 = a11 · b12 + a12 · b22 = 2 · 10 + 3 · 16 = 20 + 48 = 68
c21 = a21 · b11 + a22 · b21 = 1 · 5 + 2 · 18 = 5 + 36 = 41
c22 = a21 · b12 + a22 · b22 = 1 · 10 + 2 · 16 = 10 + 32 = 42
3
1
2 3
51 32
5) (
)∗ (
)=(
)
15 10
1 2
33 21
c11 = a11 · b11 + a12 · b21 =2 · 3 + 3 · 15 = 6 + 45 = 51
c12 = a11 · b12 + a12 · b22 = 2 · 1 + 3 · 10 = 2 + 30 = 32
c21 = a21 · b11 + a22 · b21 = 1 · 3 + 2 · 15 = 3 + 30 = 33
c22 = a21 · b12 + a22 · b22 = 1 · 1 + 2 · 10 = 1 + 20 = 21
6 34
42 170
2 3
6) (
)∗(
) =(
)
10 34
1 2
26 102
Компоненты новой матрицы вычисляются следующим образом:
c11 = a11 · b11 + a12 · b21 = 2 · 6 + 3 · 10 = 12 + 30 = 42
c12 = a11 · b12 + a12 · b22 = 2 · 34 + 3 · 34 = 68 + 102 = 170
c21 = a21 · b11 + a22 · b21= 1 · 6 + 2 · 10 = 6 + 20 = 26
c22 = a21 · b12 + a22 · b22 = 1 · 34 + 2 · 34 = 34 + 68 = 102
46 60
2 3
5
6
7) (
)∗(
)=(
)
1 2
29 38
12 16
Компоненты новой матрицы вычисляются следующим образом:
c11 = a11 · b11 + a12 · b21 = 2 · 5 + 3 · 12 = 10 + 36 = 46
35
c12 = a11 · b12 + a12 · b22 = 2 · 6 + 3 · 16 = 12 + 48 = 60
c21 = a21 · b11 + a22 · b21= 1 · 5 + 2 · 12 = 5 + 24 = 29
c22 = a21 · b12 + a22 · b22 = 1 · 6 + 2 · 16 = 6 + 32 = 38
2 3
64 68
5 10
8) (
)∗(
) =(
)
1 2
41 42
18 16
Компоненты новой матрицы вычисляются следующим образом:
c11 = a11 · b11 + a12 · b21 = 2 · 5 + 3 · 18 = 10 + 54 = 64
c12 = a11 · b12 + a12 · b22 = 2 · 10 + 3 · 16 = 20 + 48 = 68
c21 = a21 · b11 + a22 · b21= 1 · 5 + 2 · 18 = 5 + 36 = 41
c22 = a21 · b12 + a22 · b22 = 1 · 10 + 2 · 16 = 10 + 32 = 42
3
1
2 3
51 32
9) (
)∗(
) =(
)
15 10
1 2
33 21
Компоненты новой матрицы вычисляются следующим образом:
c11 = a11 · b11 + a12 · b21 =2 · 3 + 3 · 15 = 6 + 45 = 51
c12 = a11 · b12 + a12 · b22 = 2 · 1 + 3 · 10 = 2 + 30 = 32
c21 = a21 · b11 + a22 · b21= 1 · 3 + 2 · 15 = 3 + 30 = 33
c22 = a21 · b12 + a22 · b22 = 1 · 1 + 2 · 10 = 1 + 20 = 21
6 34
2
10) (
)∗(
10 15
1
42 113
3
) =(
)
2
26 64
Компоненты новой матрицы вычисляются следующим образом:
c11 = a11 · b11 + a12 · b21 = 2 · 6 + 3 · 10 = 12 + 30 = 42
c12 = a11 · b12 + a12 · b22 = 2 · 34 + 3 · 15 = 68 + 45 = 113
c21 = a21 · b11 + a22 · b21= 1 · 6 + 2 · 10 = 6 + 20 = 26
c22 = a21 · b12 + a22 · b22 = 1 · 34 + 2 · 15 = 34 + 30 = 64
22 16
2
11) (
)∗(
18 14
1
98 74
3
) =(
)
2
58 44
Компоненты новой матрицы вычисляются следующим образом:
c11 = a11 · b11 + a12 · b21 = 2 · 22 + 3 · 18 = 44 + 54 = 98
c12 = a11 · b12 + a12 · b22 = 2 · 16 + 3 · 14 = 32 + 42 = 74
c21 = a21 · b11 + a22 · b21= 1· 22 + 2 · 18 = 22 + 36 = 58
c22 = a21 · b12 + a22 · b22 = 1 · 16 + 2 · 14 = 16 + 28 = 44
36
24 10
2
12) (
)∗(
10 0
1
78 20
3
)=(
)
2
44 10
Компоненты новой матрицы вычисляются следующим образом:
c11 = a11 · b11 + a12 · b21 = 2 · 24 + 3 · 10 = 48 + 30 = 78
c12 = a11 · b12 + a12 · b22 = 2 · 10 + 3 · 0 = 20 + 0 = 20
c21 = a21 · b11 + a22 · b21= 1 · 24 + 2 · 10 = 24 + 20 = 44
c22 = a21 · b12 + a22 · b22 = 1 · 10 + 2 · 0 = 10 + 0 = 10
Мы получили 12 закодированных матриц, из которых можно передать
адресату следующий набор чисел: 29, 44, 58, 96, 45 80, 46, 77, 46, 86, 40 68, 20,
35, 52, 86, 7, 11, 40 65, 46, 86, 54, 98, 16, 27, 40, 68, 20, 35, 52, 86, 7, 11, 40, 65,
46, 86, 35, 60, 60, 98, 50, 82, 58, 92, 20, 30. Эти числа мы получили из матриц,
написав их слева направо из каждой строчки матрицы.
Теперь мы должны понять, как адресат, получив наше сообщение,
прочитает его. Чтобы наш текст был понят, необходимо декодировать
полученные числа, с помощью обратной матрицы, которая будет уже
называться декодируемой матрицей [18].
Так, для начала найдем обратную матрицу, с помощью определенного
алгоритма. Обратной к данной матрицы является матрица, имеющая тот же
𝑎
размер, то есть А-1 = (
𝑐
𝑏
) [20]
𝑑
Для того чтобы найти обратную матрицу, по условию, необходимо
выполнения равенства, то есть:
(
2 3
𝑎
)∗(
1 2
𝑐
2𝑎 + 3𝑐
𝑏
)=(
𝑎 + 2𝑏
𝑑
2𝑏 + 3𝑑
1 0
)=(
)
𝑏 + 2𝑑
1 0
Последнее равенство существует, если
2𝑎 + 3𝑐 = 1,
𝑎 + 2𝑐 = 0,
2𝑏 + 3𝑑 = 0,
𝑏 + 2𝑑 = 1
Тогда решим систему уравнений:
{
2𝑎 + 3𝑐 = 1
2𝑏 + 3𝑑 = 0
и {
𝑎 + 2𝑐 = 0
𝑏 + 2𝑑 = 1
Получаем
37
{
𝑎=2
𝑏 = −3
и {
𝑐 = −1
𝑑=2
2 −3
Получили матрицу (
) с помощью, которой можно декодировать
−1 2
сообщение полученное адресатом [20].
Но не всегда пары матриц можно использовать для кодирования и
декодирования, необходимо для этого, чтобы элементы матрицы являлись
целыми числами. Из этого следует условие, при котором для кодирующей
матрицы обратная будет содержать целые числа, то есть:
𝑟 𝑠
𝑎∗𝑟+𝑏∗𝑡 𝑎∗𝑠+𝑏∗𝑢
1
𝑏
)*(
)=(
)=(
𝑡 𝑢
𝑐∗𝑟+𝑑∗𝑡 𝑐∗𝑠+𝑑∗𝑢
0
𝑑
𝑎 ∗ 𝑟 + 𝑏 ∗ 𝑡 = 1, (умножим на 𝑑)
Значит {
тогда
𝑐 ∗ 𝑟 + 𝑑 ∗ 𝑡 = 0 (умножим на 𝑏)
(
0
)
1
𝑎
𝑐
𝑎∗𝑟∗𝑑+𝑏∗𝑡∗𝑑 =1
{
𝑐∗𝑟∗𝑏+𝑑∗𝑡∗𝑏 =0
или
{
𝑟=
𝑑
𝑎𝑑−𝑐𝑏
𝑎𝑟 + 𝑏𝑡 = 1
Аналогично получим, что s =
𝑏
𝑐𝑏−𝑎𝑑
;t=
𝑐
𝑐𝑏−𝑎𝑑
;u=
𝑎
𝑎𝑑−𝑐𝑏
Что означает, матрица А существует, если выполняется условие cb - ad 
0, для выполнения условиях о целых числах, необходимо выполнение 𝑎𝑑 − 𝑐𝑏 =
1. Таким образом, получены условия существования обратной матрицы и
условие необходимые для того, чтобы элементы, числа в матрицы являлись
целыми [15].
Теперь для того, чтобы раскодировать полученное адресатом письмо, мы
перемножим декодирующую матрицу с полученными числами, записанными в
матрице.
Это мы сделаем с помощью уже знакомого нами правила, умножение
матриц
14 1
2 −3
88 56
1) (
)*(
)=(
)
−1 2
20 18
54 37
38
2
2) (
−1
2
3) (
−1
2
4) (
−1
2
5) (
−1
2
6) (
−1
2
7) (
−1
2
8) (
−1
2
9) (
−1
2
10) (
−1
2
11) (
−1
2
12) (
−1
−3 65
)*(
2
40
−3 48
)*(
2
30
−3 64
)*(
2
41
−3 51
)*(
2
33
−3 42
)*(
2
26
−3 46
)*(
2
29
−3 64
)*(
2
41
−3 51
)*(
2
33
−3 42
)*(
2
26
−3 98
)*(
2
58
−3 78
)*(
2
44
98
10 25
)=(
)
57
15 16
116
6 34
)=(
)
66
12 16
68
5 10
)=(
)
42
18 16
3
1
32
)=(
)
15 10
21
170
6 34
)=(
)
102
10 34
60
5
6
)=(
)
38
12 16
68
5 10
)=(
)
42
18 16
3
1
32
)=(
)
15 10
21
113
6 34
)=(
)
64
10 15
74
22 16
)=(
)
44
18 14
20
24 10
)=(
)
10
10 0
Из полученных матриц запишем числа: 14, 1, 20, 18, 10, 25, 15, 16, 6, 34,
12, 16, 5, 10, 18, 16, 3, 1, 15, 10, 6, 34, 10, 34, 5, 6, 12, 0, 5, 10, 18, 16, 3, 1, 15, 10,
6, 34, 10, 15, 22, 16, 18, 14, 24, 10, 10, то есть мы получили исходный шифр,
который после перевода через закодированный алфавит, получим наше
сообщение: «Матричное кодирование и декодирование информации» [18].
Таким образом, необходимо составлять сообщения из числа букв,
кратным 4, для того чтобы легко составить матрицы, еще необходимо знать
кодирующую
и
декодирующую
матрицы,
декодирования матрицы.
39
и
правило
умножения
и
Скачать