Файл: Методы кодирования данных.pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 11.03.2024

Просмотров: 19

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

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

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

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

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

Решения для защиты данных для шифрования данных могут обеспечивать шифрование устройств, электронной почты и самих данных. Во многих случаях эти функции шифрования также удовлетворяются с возможностями управления устройствами, электронной почтой и данными. Компании и организации сталкиваются с проблемой защиты данных и предотвращения потери данных, поскольку сотрудники чаще используют внешние устройства, съемные носители и веб-приложения в рамках своих ежедневных бизнес-процедур. Чувствительные данные больше не могут находиться под контролем и защитой компании, поскольку сотрудники копируют данные на съемные устройства или загружают их в облако. В результате лучшие решения по предотвращению потери данных предотвращают кражу данных и внедрение вредоносных программ со съемных и внешних устройств, а также веб-приложений и облачных приложений. [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).

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

Число

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

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

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

слова

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

..


В качестве кода числа берется двоичная последовательность, построенная следующим образом: несколько нулей (количество нулей равно значению порядка числа), затем единица как признак окончания экспоненты переменной длины, затем мантисса переменной длины (как в кодах 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