Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Методы кодирования данных

Содержание:

ВВЕДЕНИЕ

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

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

Целью данной работы является исследование методов кодирования данных.

В рамках работы необходимо решить следующие задачи:

  • изучить вопросы защиты информации, в частности, аутентификации;
  • раскрыть такое понятие, как «кодирование»;
  • проанализировать основные виды кодирования текстовых, графических и числовых данных;
  • рассмотреть основные виды кодирования.

Объектом исследования данной работы является информационная безопасность, а предметом исследования работы являются методы кодирования данных.

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

При работе над данным проектом использовался большой объем литературы. Полный список представлен в конце данной работы.

Глава 1. Понятие «информационная безопасность»

1.1 Особенности современных методов защиты информации

Защита данных — это процесс защиты важной информации от повреждения, компрометации или потери.

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

Следовательно, большая часть стратегии защиты данных обеспечивает быстрое восстановление данных после любого повреждения или потери. Защита данных от компрометации и обеспечение конфиденциальности данных являются другими ключевыми компонентами защиты данных. [3, 7, 9]

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

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

Безопасность данных имеет фундаментальное значение. Все новые и существующие бизнес-процессы и процессы обработки данных должны включать проверку безопасности данных. Это гарантирует, что данные защищены от потери и защищены от несанкционированного доступа.

Необходимо разработать план проверки статуса и политик безопасности данных. Спроектировать процессы для безопасного доступа, обработки и хранения данных. Архивировать ненужные данные. [1, 17, 19]

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

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

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

  • здравоохранение;
  • расследование и судебное разбирательство уголовного правосудия;
  • финансовые учреждения и операции;
  • биологические признаки, такие как генетический материал;
  • географические записи;
  • нарушение конфиденциальности;
  • служба на основе местоположения и геолокация;
  • поведение веб-серфинга или пользовательские настройки с использованием постоянных файлов – «cookie». [2, 15, 17]

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

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

Другими словами, это доступ к информации в нарушение должностных полномочий сотрудника, доступ к закрытой для публичного доступа информации со стороны лиц, не имеющих разрешения на доступ к этой информации. Так же иногда несанкционированным доступом называют получение доступа к информации лицом, имеющим право на доступ к этой информации в объёме, превышающем необходимый для выполнения служебных обязанностей. Это активные действия по созданию возможности распоряжаться информацией без согласия собственника. [2, 15, 17]

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

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

2. Неавторизованная модификация информации: неавторизованное лицо может вносить изменения в хранимую информацию — форма саботажа. Этот вид нарушения не требует того, чтобы злоумышленник видел информацию, которую он изменил.

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

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

Примеры методов защиты, иногда применяемых к компьютерным системам, следующие:

  • маркировка файлов со списками авторизованных пользователей;
  • проверка личности потенциального пользователя, требование пароля;
  • экранирование компьютера для предотвращения перехвата и последующей интерпретации электромагнитного излучения;
  • шифрование информации, отправленной по телефонным линиям,
  • блокировка комнаты, содержащей компьютер;
  • регулирование пользователей, которые могут вносить изменения в компьютерную систему (как в свое оборудование, так и в программное обеспечение);
  • использование избыточных схем или запрограммированные перекрестные проверки, которые поддерживают безопасность в случае сбоев аппаратного или программного обеспечения;
  • подтверждение, что аппаратное и программное обеспечение фактически реализовано по назначению. [4, 7, 9]

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

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

1.2 Методы и протоколы аутентификации

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

Процесс аутентификации всегда выполняется в начале работы с приложением, до того, как будут выполнены проверки разрешений, и до того, как будет разрешен любой другой вариант передачи данных. В разных системах могут потребоваться разные типы учетных данных для установления личности пользователя. Учетные данные часто принимают форму пароля, который является секретным и известен только отдельному лицу или системе. Выделяют три категории сущностей, с помощью которых что-то может быть аутентифицировано, — это то, что пользователь знает, что использует, и то, что пользователь имеет. [2, 14, 17]

Процесс аутентификации может быть описан в двух разных фазах —идентификации и фактической аутентификации. Фаза идентификации обеспечивает идентификацию пользователя в системе безопасности. Это удостоверение предоставляется в виде идентификатора пользователя. Система безопасности будет искать все абстрактные объекты, которые она знает, и попытается найти конкретную версию, которую использует настоящий пользователь. Как только это будет сделано, пользователь будет идентифицирован. Тот факт, что пользователь утверждает, что это он, не обязательно означает, что это правда. Фактический пользователь может быть сопоставлен с другим абстрактным пользовательским объектом в системе и, следовательно, должен получить права и разрешения для пользователя, и он должен предоставить доказательства, подтверждающие его личность в рамках данной системы. [6]

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

PAP — протокол аутентификации паролей — это двухсторонний протокол установления связи, предназначенный для использования с PPP. Протокол аутентификации протокола аутентификации — это простой текстовый пароль, используемый для старых SLIP-систем. Он не безопасен.

Протокол аутентификации CHAP — Challenge Handshake — это трехсторонний протокол подтверждения, который считается более безопасным, чем PAP.

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

SPAP — разновидность PAP. Только сервер NT RAS поддерживает это для клиентов, подключающихся к системе.

DES — стандарт шифрования данных для старых клиентов и серверов.

Служба удаленного доступа RADIUS — Remote Authentication, используемая для аутентификации пользователей, набираемых удаленно на серверы в сети организации. [4]

S/Key — одноразовая система паролей, защищенная от повторов. TACACS — предлагает аутентификацию, учет и авторизацию.

MS-CHAP (MD4) — использует версию протокола RSA для дайджеста RSA 4 и протокол ответа. Он работает только в системах Microsoft и обеспечивает шифрование данных. При выборе этого метода аутентификации все данные должны быть зашифрованы.

Kerberos является открытым стандартом для аутентификации распределенных систем. Он использует аутентификацию общего секрета (или пароля) пользователями на сервере аутентификации, называемом центром распространения ключей (KDC). KDC предоставляет пользователям доступ к приложениям, необязательное делегирование доступа из службы приложений к другой службе и дополнительные междоменные тресты между группами KDC. В серверах и клиентах Windows, работающих под управлением Microsoft Windows 2000 Server или более поздних версий, протокол проверки подлинности Kerberos версии 5 является основой аутентификации в Active Directory. У него есть расширение (PKINIT) для поддержки входа в смарт-карту. Он также интегрирован в SMB, HTTP и RPC, а также в клиентские и серверные приложения, которые используют эти протоколы.

Windows NT Challenge/Response (NTLM) — это протокол проверки подлинности, используемый в сетях, включающих системы под управлением операционной системы Windows NT и автономных систем. NTLM означает Windows NT LAN Manager. Это имя, выбрано для того, чтобы отличить этот более продвинутый протокол на основе протокола/ответа от его более слабого предшественника LAN Manager (LM). Учетные данные NTLM основаны на данных, полученных в процессе интерактивного входа в систему, и состоят из имени домена, имени пользователя и одностороннего хэша пароля пользователя. NTLM использует зашифрованный протокол «запрос/ответ» для аутентификации пользователя без отправки пароля пользователя по проводу. Вместо этого система, запрашивающая аутентификацию, должна выполнить расчет, который доказывает, что он имеет доступ к защищенным учетным данным NTLM. [2, 6]

RADIUS или RFC 2138, шифрует информацию о идентификаторе пользователя/пароле или информацию о токенах/ответах/ответах по сети. Первоначально созданный для поддержки серверов удаленного доступа или сетевого доступа, RADIUS развился, чтобы обеспечить стандартный механизм, с помощью которого провайдеры интернет-услуг (ISP) ретранслируют запросы аутентификации корпоративным клиентам.

В сочетании с XML-удаленными вызовами процедур (RPC), такими как Simple Object Access Protocol (SOAP), SAML служит в качестве распределенного протокола аутентификации между аутентификацией и другими службами безопасности. Таким образом, SAML позволяет свободно связанным доменам безопасности с гетерогенными системами и методами аутентификации интегрировать аутентификацию. Спецификации Liberty Alliance используют SAML в качестве основного протокола, предоставляя такие расширения, как привязка аккаунта и глобальный выход из системы. [15, 17]

Безопасность веб-служб (WSS) определяет способы кодирования аутентификации и других токенов безопасности в заголовках сообщений протокола простого доступа к объектам (SOAP). Язык безопасности веб-служб (WS-Security) описывает механизмы кодирования для идентификаторов пользователей/паролей, сертификатов X.509, билетов Kerberos и утверждений SAML.

XrML — это синтаксис использования на основе XML для указания прав и условий для контроля доступа к цифровому контенту и услугам. Используя XrML, любой, кто владеет или распространяет цифровые ресурсы (например, контент, услуги или программные приложения), может идентифицировать стороны, которым разрешено использовать эти ресурсы, права, доступные этим сторонам, и условия, в которых эти права могут быть реализованы. Эти четыре элемента являются ядром языка и определяют полный контекст указанных прав. Другими словами, недостаточно просто указать, что право на просмотр определенного контента было предоставлено, но также важно указать кто может его просматривать и при каких условиях. [6]

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

1.3 Термин «кодирование» и его свойства

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

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

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

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

Основной моделью, которую изучает теория информации, является модель системы передачи сигналов (рисунок 1).

D:\stud\Методы кодирования данных - 2\Кодер.png

Рисунок 1 – Модель системы передачи сигналов

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

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

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

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

Данные или открытый текст шифруются с помощью алгоритма шифрования и ключа шифрования. Процесс приводит к зашифрованному тексту, который может быть просмотрен только в оригинальной форме, если он дешифрован с помощью правильного ключа. [5, 17, 19]

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

С другой стороны, асимметричная криптография, иногда называемая криптографией с открытым ключом, использует два разных ключа, один открытый и один закрытый. Открытый ключ, как его называют, может быть передан всем, но закрытый ключ должен быть защищен. Алгоритм Rivest-Sharmir-Adleman (RSA) является криптосистемой для шифрования с открытым ключом, которая широко используется для защиты конфиденциальных данных, особенно когда она отправляется через небезопасную сеть, такую как Интернет. Популярность алгоритма RSA исходит из того факта, что как публичный, так и закрытый ключи могут шифровать сообщение, чтобы обеспечить конфиденциальность, целостность, аутентичность и необратимость электронных сообщений и данных с помощью цифровых подписей. [2, 11, 14]

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

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

Решения для защиты данных для шифрования данных могут обеспечивать шифрование устройств, электронной почты и самих данных. Во многих случаях эти функции шифрования также удовлетворяются с возможностями управления устройствами, электронной почтой и данными. Компании и организации сталкиваются с проблемой защиты данных и предотвращения потери данных, поскольку сотрудники чаще используют внешние устройства, съемные носители и веб-приложения в рамках своих ежедневных бизнес-процедур. Чувствительные данные больше не могут находиться под контролем и защитой компании, поскольку сотрудники копируют данные на съемные устройства или загружают их в облако. В результате лучшие решения по предотвращению потери данных предотвращают кражу данных и внедрение вредоносных программ со съемных и внешних устройств, а также веб-приложений и облачных приложений. [2, 13, 16]

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

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

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

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

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

Глава 2. Кодирование данных

2.1 Кодирование данных двоичным кодом

Для автоматизации работы с данными, относящимися к различным типам, очень важно унифицировать их форму представления — для этого обычно используется прием кодирования, то есть выражение данных одного типа через данные другого типа. Естественные человеческие языки — это не что иное, как системы кодирования понятий для выражения мыслей посредством речи. К языкам близко примыкают азбуки (системы кодирования компонентов языка с помощью графических символов). История знает интересные, хотя и безуспешные попытки создания «универсальных» языков и азбук. По-видимому, безуспешность попыток их внедрения связана с тем, что национальные и социальные образования естественным образом понимают, что изменение системы кодирования общественных данных непременно приводит к изменению общественных методов (то есть норм права и морали), а это может быть связано с социальными потрясениями. [2, 17, 22]

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

Своя система существует и в вычислительной технике — она называется двоичным кодированием и основана на представлении данных последовательностью всего двух знаков: 0 и 1. Эти знаки называются двоичными цифрами, по-английски — binary digit или сокращенно hit (бит).

Одним битом могут быть выражены два понятия: 0 или 1 (да или нет, черное или белое, истина или ложь и т. п.). Если количество битов увеличить до двух, то уже можно выразить четыре различных понятия:

00 01 10 11

Тремя битами можно закодировать восемь различных значений:

000 001 010 011 100 101 110 111

Увеличивая на единицу количество разрядов в системе двоичного кодирования, мы увеличиваем в два раза количество значений, которое может быть выражено в данной системе, то есть общая формула имеет вид:

N=2,

где N— количество независимых кодируемых значений;

т — разрядность двоичного кодирования, принятая в данной системе.

2.2 Методы кодирования целых чисел

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

19:2=9+1

9:2=4+1

4:2=2+0

2:2=1+0

Таким образом, 19= 10011;

Для кодирования целых чисел от 0 до 255 достаточно иметь 8 разрядов двоичного кода (8 бит). Шестнадцать бит позволяют закодировать целые числа от 0 до 65 535, а 24 бита — уже более 16,5 миллионов разных значений.

Для кодирования действительных чисел используют 80-разрядное кодирование. При этом число предварительно преобразуется в нормализованную форму:

3,1415926 =0,31415926-10'

300 000 = 0,3 • 106

123 456 789 = 0,123456789 • 1010

Первая часть числа называется мантиссой, а вторая — характеристикой. Большую часть из 80 бит отводят для хранения мантиссы (вместе со знаком) и некоторое фиксированное количество разрядов отводят для хранения характеристики (тоже со знаком).

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

Основная идея кодирования состоит в том, чтобы отдельно кодировать порядок значения элемента xi («экспоненту» Ei) и отдельно – значащие цифры значения xi («мантиссу» Mij). Значащие цифры мантиссы начинаются со старшей ненулевой цифры, а порядок числа определяется позицией старшей ненулевой цифры в двоичной записи числа. Как и при десятичной записи, порядок равен числу цифр в записи числа без предшествующих незначащих нулей. [5, 17, 19]

Пример. Порядок двоичного числа равен 4, а мантисса – 1101.

Можно выделить две группы методов кодирования целых чисел. Условно их можно обозначить так:

  • Fixed + Variable (фиксированная длина экспоненты + переменная длина мантиссы)
  • Variable + Variable (переменная длина экспоненты + переменная длина мантиссы)

В кодах класса Fixed + Variable под запись значения порядка числа отводится фиксированное количество бит, а значение порядка числа определяет, сколько бит потребуется под запись мантиссы. Для кодирования целого числа необходимо произвести с числом две операции: определение порядка числа и выделение бит мантиссы (можно хранить в памяти готовую таблицу кодовых слов). Рассмотрим процесс построения кода данного класса на примере.

Пример. Пусть R = 15 – количество бит исходного числа. Отведем E = 4 бита под экспоненту (порядок), т. к. R ≤ 24. При записи мантиссы можно сэкономить 1 бит: не писать первую единицу, т. к. это всегда будет только единица. Таким образом, количество бит мантиссы меньше на один бит, чем количество бит для порядка (таблица 1).

Число

Двоичное представление

Кодовое слово

Длина кодового

слова

0

1

0000

0001

4

4

2

3

0010 0

0010 1

5

5

4

5

6

7

0011 00

0011 01

0011 10

0011 11

6

6

6

6

8

9

10

15

0

0

0

0

7

7

7

..

7

16

17

0

0

8

8

..

Таблица 1 Код класса Fixed + Variable

В качестве кода числа берется двоичная последовательность, построенная следующим образом: несколько нулей (количество нулей равно значению порядка числа), затем единица как признак окончания экспоненты переменной длины, затем мантисса переменной длины (как в кодах Fixed + Variable). Рассмотрим пример построения кода этого класса (таблица 2).

Число

Двоичное представление

Кодовое слово

Длина кодового

слова

0

1

1

0 1

1

2

2

3

00 1 0

00 1 1

4

4

4

5

6

7

6

6

6

6

8

9

10

0000

1 000

0000

1 001

0000

1 010

8

8

8

Таблица 2 Код класса Variable + Variable

Если в рассмотренном выше коде исключить кодовое слово для нуля, то можно уменьшить длины кодовых слов на 1 бит, убрав первый нуль. Таким образом строится гамма-код Элиаса (γ-код Элиаса) (таблица 3). [2, 5, 17]

Другим примером кода класса Variable + Variable является омега-код Элиаса (ω-код Элиаса). В нем первое значение (кодовое слово для единицы) задается отдельно. Другие кодовые слова состоят из последовательности групп длиной L1, L2….Ln, начинающихся с единицы. Конец всей последовательности задается нулевым битом. Длина первой группы составляет 2 бита, длина каждой следующей группы равна двоичному значению битов предыдущей группы плюс 1. Значение битов последней группы является итоговым значением всей последовательности групп, т. е. первые m - 1 групп служат лишь для указания длины последней группы.

Таблица 3 Гамма-код Элиаса

Число

Кодовое слово

Длина кодового слова

1

1

1

2

3

01 0

01 1

3

3

4

5

6

7

00 1 00

00 1 01

00 1 10

00 1 11

5

5

5

5

8

9

10

000 1 000

000 1 001

000 1 010

7

7

7

При кодировании формируется сначала последняя группа, затем предпоследняя и т. д., пока процесс не будет завершен. При декодировании, наоборот, сначала считывается первая группа, по значению ее битов определяется длина следующей группы, или итоговое значение кода, если следующая группа – 0. [2, 5, 17]

Рассмотренные типы кодов могут быть эффективны в следующих случаях

  1. Вероятности чисел убывают с ростом значений элементов и их распределение близко к такому: P (x) > P (x + 1), при любом x, т. е. маленькие числа встречаются чаще, чем большие.
  2. Диапазон значений входных элементов не ограничен или неизвестен. Например, при кодировании 32-битовых чисел реально большинство чисел маленькие, но могут быть и большие.
  3. При использовании в составе других схем кодирования, например, кодировании длин серий.

Метод кодирования информации, известный как метод кодирования длин серий и предложенный П. Элиасом, при построении использует коды целых чисел. Входной поток для кодирования рассматривается как последовательность из нулей и единиц. Идея кодирования заключается в том, чтобы кодировать последовательности одинаковых элементов (например, нулей) как целые числа, указывающие количество элементов в этой последовательности. Последовательность одинаковых элементов называется серией, количество элементов в ней – длиной серии. [2, 5, 17]

Если каждому символу алфавита сопоставить целое число, то можно с помощью двоичного кода кодировать текстовые данные. Восьми двоичных разрядов достаточно для кодирования 256 различных символов. Этого хватает, чтобы закодировать все строчные и прописные буквы английского или русского алфавита, а также знаки препинания, цифры, символы основных арифметических операций и некоторые специальные символы, например «%».

Трудности создания единой системы кодирования текстовых данных связаны с ограниченным набором кодов (256). Если кодировать символы не 8-разрядными двоичными числами, а 16-разрядными, это позволит иметь набор из 65 536 различных кодов. Этого достаточно, чтобы в одной таблице разместить символы большинства языков. Такая система кодирования называется Unicode – универсальный код. Переход к этой системе долго сдерживался из-за недостатка памяти компьютеров, так как в системе Unicode все текстовые документы становятся вдвое длиннее. В настоящее время технические сложности преодолены и происходит постепенный переход на универсальную систему кодирования.

Пример. Входную последовательность (общая длина 31бит) можно разбить на серии, а затем закодировать их длины: 00000 1.

Используем, например, γ-код Элиаса. Поскольку в коде нет кодового слова для нуля, то будем кодировать длину серии +1, т. е. последовательность: Þ 00

Длина полученной кодовой последовательности равна 25 бит.

Метод длин серий актуален для кодирования данных, в которых есть длинные последовательности одинаковых бит. В нашем примере, если P(0) >> P (1).

2.3 Кодирование текстовых и графических данных

Если проанализировать организационные трудности, связанные с созданием единой системы кодирования текстовых данных, то можно прийти к выводу, что они вызваны ограниченным набором кодов (256). В то же время очевидно, что если, например, кодировать символы не восьмиразрядными двоичными числами, а числами с большим количеством разрядов, то и диапазон возможных значений кодов станет намного больше. Такая система, основанная на 16-разрядном кодировании символов, получила название универсальной — UNICODE. Шестнадцать разрядов позволяют обеспечить уникальные коды для 65 536 различных символов — этого поля достаточно для размещения в одной таблице символов большинства языков планеты.

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

Если рассмотреть с помощью увеличительного стекла черно-белое графическое изображение, напечатанное в газете или книге, то можно увидеть, что оно состоит из мельчайших точек, образующих характерный узор, называемый растром (рисунок 2).

https://www.ok-t.ru/studopediaru/baza4/834253400459.files/image007.gif

Рисунок 2 – Метод кодирования графической информации, издавна

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

Для кодирования цветных графических изображений применяется принцип декомпозиции произвольного цвета на основные составляющие. В качестве таких составляющих используют три основные цвета: красный (Red, R), зеленый (Green, G) и синий (Blue, В). На практике считается (хотя теоретически это не совсем так), что любой цвет, видимый человеческим глазом, можно получить путем механического смешения этих трех основных цветов. Такая система кодирования называется системой RGB по первым буквам названий основных цветов.

Если для кодирования яркости каждой из основных составляющих использовать по 256 значений (восемь двоичных разрядов), как это принято для полутоновых черно-белых изображений, то на кодирование цвета одной точки надо затратить 24 разряда. При этом система, кодирования обеспечивает однозначное определение 16,5 млн различных цветов, что на самом деле близко к чувствительности человеческого глаза. Режим представления цветной графики с использованием 24 двоичных разрядов называется полноцветным (True Color).

Каждому из основных цветов можно поставить в соответствие дополнительный цвет, то есть цвет, дополняющий основной цвет до белого. Нетрудно заметить, что для любого из основных цветов дополнительным будет цвет, образованный суммой пары остальных основных цветов. Соответственно, дополнительными цветами являются: голубой (Cyan, С), пурпурный (Magenta, М) и желтый (Yellow, Y). Принцип декомпозиции произвольного цвета на составляющие компоненты можно применять не только для основных цветов, но и для дополнительных, то есть любой цвет можно представить в виде суммы голубой, пурпурной и желтой составляющей. Такой метод кодирования цвета принят в полиграфии, но в полиграфии используется еще и четвертая краска — черная (Black, К). Поэтому данная система кодирования обозначается четырьмя буквами CMYK (черный цвет обозначается буквой К, потому, что буква В уже занята синим цветом), и для представления цветной графики в этой системе надо иметь 32 двоичных разряда. Такой режим тоже называется полноцветным. (True Color).

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

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

2.4 Виды кодирования данных

Цифровое кодирование (Digital Encoding), иногда не совсем корректно называемое модуляцией, определяет способ представления битов в физическом канале передачи данных. В этой статье мы рассмотрим различные варианты цифрового кодирования: от простого метода NRZ (Non Return to Zero без возврата к нулю) до гораздо более сложного HDB3 (High Density Bipolar 3 - биполярное кодирование с высокой плотностью, вариант 3).

Простейший метод NRZ используется в протоколах на базе интерфейса RS232, в сетях Ethernet применяется кодирование PE, а в телефонии используется алгоритм HDB3 (этот метод служит для кодирования сигналов в потоках E1 и E2). Выбор метода кодирования зависит от полосы канала связи, используемой кабельной системы, скорости передачи данных и других параметров.

При кодировании цифровых сигналов должны выполняться определенные требования:

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

2. Невысокий уровень постоянного напряжения в линии.

3. Достаточно высокие перепады напряжения для возможности использования сигнальных импульсов (переходов напряжения) для синхронизации приемника и передатчика без добавления в поток сигналов дополнительной информации.

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

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

Логическое кодирование данных изменяет поток бит созданного кадра МАС-уровня в последовательность символов, которые подлежат физическому кодированию для транспортировки по каналу связи. Для логического кодирования используют разные схемы.

4B/5B — каждые 4 бита входного потока кодируются 5-битным символом. Получается двукратная избыточность, так как 24 = 16 входных комбинаций показываются символами из 25 = 32. Расходы по количеству битовых интервалов составляют: (5-4)/4 = 1/4 (25%). Такая избыточность разрешает определить ряд служебных символов, которые служат для синхронизации. Применяется в 100BaseFX/TX, FDDI.

8B/10B — аналогичная схема (8 бит кодируются 10-битным символом) но уже избыточность равна 4 раза (256 входных в 1024 выходных).

5B/6B — 5 бит входного потока кодируются 6-битными символами. Применяется в 100VG-AnyLAN. [21]

8B/6T — 8 бит входного потока кодируются шестью троичными (T = ternary) цифрами (-,0,+). К примеру: 00h: +-00+-; 01h: 0+-+=0; Код имеет избыточность 36/28 = 729/256 = 2,85. Скорость транспортировки символов в линию является ниже битовой скорости и их поступления на кодирования. Применяется в 100BaseT4.

Вставка бит — такая схема работает на исключение недопустимых последовательностей бит. Ее работу объясним на реализации в протоколе HDLC. Тут входной поток смотрится как непрерывная последовательность бит, для которой цепочка из более чем пяти смежных 1 анализируется как служебный сигнал (пример: 01111110 является флагом-разделителем кадра). Если в транслируемом потоке встречается непрерывная последовательность из 1, то после каждой пятой в выходной поток передатчик вставляет 0. Приемник анализирует входящую цепочку, и если после цепочки 011111 он видит 0, то он его отбрасывает и последовательность 011111 присоединяет к остальному выходному потоку данных. Если принят бит 1, то последовательность 011111 смотрится как служебный символ. Такая техника решает две задачи — исключать длинные монотонные последовательности, которые неудобные для самосинхронизации физического кодирования и разрешает опознание границ кадра и особых состояний в непрерывном битовом потоке.

Избыточность логического кодирования разрешает облегчить задачи физического кодирования — исключить неудобные битовые последовательности, улучшить спектральные характеристики физического сигнала и др. Физическое/сигнальное кодирование пишет правила представления дискретных символов, результат логического кодирования в результат физические сигналы линии. Физические сигналы могут иметь непрерывную (аналоговую) форму — бесконечное число значений, из которого выбирают допустимое распознаваемое множество. На уровне физических сигналов вместо битовой скорости (бит/с) используют понятие скорость изменения сигнала в линии, которая измеряется в бодах (baud). Под таким определением определяют число изменений различных состояний линии за единицу времени. На физическом уровне проходит синхронизация приемника и передатчика. Внешнюю синхронизацию не используют из-за дороговизны реализации еще одного канала. Много схем физического кодирования являются самосинхронизирующимися — они разрешают выделить синхросигнал из принимаемой последовательности состояний канала. [2, 17, 21]

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

  1. Транзитное кодирование — информативным есть переход из одного состояния в другое
  2. Потенциальное кодирование — информативным есть уровень сигнала в конкретные моменты времени
  3. Полярное — сигнал одной полярности реализуется для представления одного значения, сигнал другой полярности для — другого. При оптоволоконной транспортировке вместо полярности используют амплитуды импульса
  4. Униполярное — сигнал одной полярности реализуется для представления одного значения, нулевой сигнал — для другого
  5. Биполярное — используется отрицательное, положительное и нулевое значения для представления трех состояний
  6. Двухфазное — в каждом битовом интервале присутствует переход из одного состояния в другое, что используется для выделения синхросигнала.

AMI – Alternate Mark Inversion (поочередная инверсия единиц)

Этот метод кодирования использует следующие представления битов:

  • биты 0 представляются нулевым напряжением (0 В);
  • биты 1' представляются поочередно значениями +V и -V.

Этот метод подобен алгоритму RZ, но обеспечивает в линии нулевой уровень постоянного напряжения.

Недостатком метода AMI является ограничение на плотность нулей в потоке данных, поскольку длинные последовательности 0 ведут к потере синхронизации.MAMI — Modified Alternate Mark Inversion, или же ASI — модифицированная схема AMI, импульсами чередующейся полярности кодируется 0, а 1 — нулевым потенциалом. Применяется в ISDN (S/T — интерфейсы). [21]

B8ZS — Bipolar with 8 Zero Substitution, схема аналогичная AMI, но для синхронизации исключает цепочки 8 и более нулей (за счет вставки бит).

HDB3 — High Density Bipolar 3, схема аналогичная AMI, но не допускает передачи цепочки более трех нулей. Вместо последовательности из четырех нулей вставляется один из четырех биполярных кодов.

Manchester encoding — двухфазное полярное/униполярное самосинхронизирующееся кодирование. Текущий бит узнается по направлению смены состояния в середине битового интервала: от -V к +V: 1. От +V к -V: 0. Переход в начале интервала может и не быть. Применяется в Ethernet. (В начальных версиях — униполярное).

Differential manchester encoding — двухфазное полярное/униполярное самосинхронизирующиеся код. Текущий бит узнается по наличию перехода в начале битового интервала, например, 0 — есть переход (Вертикальный фрагмент), 1 — нет перехода (горизонтальный фрагмент). Можно и наоборот определять 0 и 1.В середине битового интервала переход есть всегда. Он нужен для синхронизации. В Token Ring применяется измененная версия такой схемы, где кроме бит 0 и 1 определенны также два бита j и k. Здесь нет переходов в середине интервала. Бит К имеет переход в начале интервала, а j — нет.

Трехуровневое кодирование со скремблированием который не самосинхронизуется. Используются уровни (+V, 0, -V) постоянные в линии каждого битового интервала. При передаче 0 значения не меняются, при передаче 1 — меняются на соседние по цепочке +V, 0, -V, 0, +V и тд. Такая схема является усложнонным вариантом NRZI. Применяется в FDDI и 100BaseTX.

NRZ — Non-return to zero (без возврата к нулю), биполярная нетранзиктивная схема (состояния меняются на границе), которая имеет 2 варианта. Первый вариант это недифференциальное NRZ (используется в RS-232) состояние напрямую отражает значение бита. В другом варианте — дифференциальном, NRZ состояние меняется в начале битового интервала для 1 и не меняется для 0. Привязки 1 и 0 к определенному состоянию нету. [21]

NRZI — Non-return to zero Inverted, измененная схема NRZ. Тут состояния изменяются на противоположные в начале битового интервала 0, и не меняются при передаче 1. Возможна и обратная схема представления. Используются в FDDI, 100BaseFX.

RZ — Return to zero (с возвратом к нулю), биполярная транзитивная самосинхронизирующаяся схема. Состояние в определенный момент битового интервала всегда возвращается к нулю. Имеет дифференциальный/недифференциальный варианты. В дифференциальные привязки 1 и 0 к состоянию нету.

FM 0 — Frequency Modulation 0 (частотная модуляция), самосинхронизирующийся полярный код. Меняется на противоположное на границе каждого битового интервала. При передаче 1 в течение битового интервала состояние неизменное. При передаче 0, в середине битового интервала состояние меняется на противоположное. Используется в LocalTalk.

PAM 5 — Pulse Amplitude Modulation, пятиуровневое биполярное кодирование, где пара бит в зависимости от предыстории оказывается одним из 5 уровней потенциала. Нужен неширокая полоса частот (вдвое ниже битовой скорости). Используется в 1000BaseT.

Здесь пара бит оказывается одним четверичным символом (Quater-nary symbol), где каждому соответствует один из 4 уровней сигнала.

4B3T — блок из 4 бит (16 состояний) кодируется тремя троичными символами (27 символов). Из множества возможных методов изменений рассмотрим MMS43, который используется в интерфейсе BRI сетей ISDN. Тут применяются специальные методы для исключения постоянной составляющей напряжения в линии, в следствии чего кодирования ряда комбинаций зависит от предыстории — состояния, где находится кодер. [21]

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

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

ЗАКЛЮЧЕНИЕ

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

Были решены следующие задачи:

  • изучены вопросы защиты информации, в частности, аутентификации;
  • раскрыто такое понятие, как «кодирование»;
  • проанализированы основные виды кодирования текстовых, графических и числовых данных;
  • рассмотрены основные виды кодирования.

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

Во втором разделе были рассмотрены основные методы и виды кодирования, и варианты кодирования целых чисел, а также текстовых и графических данных.

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

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

СПИСОК ЛИТЕРАТУРЫ

  1. Гаранина А. Шифровка и дешифровка информации как аспекты прикладной лингвистики. — LAP Lambert Academic Publishing, 2011. — 80 с.
  2. Запечинков, С.В. Информационная безопасность открытых систем в 2-х томах т.2 / С.В. Запечинков. — ГЛТ, 2008. — 558 c.
  3. Малюк, А.А. Информационная безопасность: концептуальные и методологические основы защиты информации / А.А. Малюк. - М.: ГЛТ, 2004. — 280 c.
  4. Овчинников В. Основные методы кодирования данных: Методические указания. / Сиб. гос. ун-т телекоммуникаций и информатики. – Новосибирск, 2010. – 54 с.
  5. Райтман М. Искусство легального, анонимного и безопасного доступа к ресурсам Интернета. — БХВ-Петербург, 2016. — 615 с.
  6. Родичев Ю.А. Информационная безопасность: нормативно-правовые аспекты. — Питер, 2008. — 273 с.
  7. Семененко, В.А. Информационная безопасность / В.А. Семененко. — МГИУ, 2011. — 277 c.
  8. Скабцов Н. Аудит безопасности информационных систем. — Питер, 2018. — 272 с.
  9. Шаньгин, В.Ф. Информационная безопасность компьютерных систем и сетей: Учебное пособие / В.Ф. Шаньгин. - М.: ИД ФОРУМ, НИЦ ИНФРА-М, 2013. — 416 c.
  10. Щеглов К.А., Щеглов А.Ю. Защита информации: основы теории. Учебник для бакалавриата и магистратуры. — Юрайт, 2017. — 310 с.
  11. Abraham Silberschatz Database System Concepts. — McGraw-Hill Education, 2010. — 1376 p.
  12. Mark Stamp Information Security: Principles and Practice. — Wiley, 2011. — 606 p.
  13. Richard E. Smith Elementary Information Security. — Jones & Bartlett Learning, 2015. — 866 p.
  14. John R. Vacca Computer and Information Security Handbook. — Morgan Kaufmann, 2017. — 1280 p.
  15. Carter G. LDAP System Administration: Putting Directories to Work. — O'Reilly Media, 2003. — 312 p.
  16. Conheim А. Computer security and cryptography. — WILEY, 2007. — 542 p.
  17. Desmond B. Active Directory: Designing, Deploying, and Running Active Directory. — O'Reilly Media; Fifth edition, 2013. — 738 p.
  18. Spivey B. Hadoop Security: Protecting Your Big Data Platform. — O'Reilly Media; 1 edition, 2015. — 340 p.
  19. Tung B. Kerberos: A Network Authentication System. — Addison-Wesley Professional, 1999. — 192 p.
  20. Зи [Электронный ресурс] Виды и способы кодирование данных. Режим доступа: http://infoprotect.net/protect_network/kodirovanie_dannyih (Дата обращения: 23.01.2020)
  21. Компьютер-Информ [Электронный ресурс] Методы цифрового кодирования. Режим доступа: http://old.ci.ru/inform16_99/p_05_bil.htm (Дата обращения: 27.06.2020)
  22. Chernykh.Net [Электронный ресурс] Кодирование данных. Режим доступа: http://chernykh.net/content/view/245/261/ (Дата обращения: 27.06.2020)