double arrow

Кодирование и шифрование информации

Возникновение индустрии обработки информации привело к возникновению индустрии средств ее защиты и к актуализации самой проблемы защиты информации, проблемы информационной безопасности.

Одна из наиболее важных задач информатизации процессов – кодирование сообщений и шифрования информации.

Вопросами защиты и скрытия информации занимается наука кpиптология. Кpиптология имеет два основных напpавления – кpиптогpафию и кpиптоанализ.

Цели этих направлений пpотивоположны. Кpиптогpафия занимается построением и исследованием математических методов пpеобpазования инфоpмации, а кpиптоанализ – исследованием возможности pасшифpовки инфоpмации без ключа.

Термин "криптография" - система перекодировки сообщения с целью сделать его непонятным для непосвященных лиц.

Введем некоторые основные понятия кодирования и шифрования.

Код – правило соответствия набора знаков одного множества Х знакам другого множества Y. Если каждому символу Х при кодировании соответствует отдельный знак Y, то это кодирование. Если для каждого символа из Y однозначно отыщется по некоторому правилу его прообраз в X, то это правило называется декодированием.

Кодирование – процесс преобразования символов алфавита Х в символы алфавита Y.

При представлении сообщений в ЭВМ все символы кодируются байтами.

Пример. Если каждый цвет кодировать двумя битами, то можно закодировать не более 22 = 4 цветов, тремя – 23 = 8 цветов, восемью битами (байтом) – 256 цветов.

Сообщение, которое мы хотим передать адресату, назовем открытым сообщением. Оно определено над некоторым алфавитом.

Зашифрованное сообщение может быть построено над другим алфавитом. Назовем его закрытым сообщением. Процесс преобразования открытого сообщения в закрытое сообщение и есть шифрование.

Если А – открытое сообщение, В – закрытое сообщение (шифр), f – правило шифрования, то f(A) = B.

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

При кодировании нет такого секретного ключа, так как кодирование ставит целью лишь более сжатое, компактное представление сообщения.

Если k – ключ, то можно записать f(k(A)) = B. Для каждого ключа k, преобразование f(k) должно быть обратимым, то есть f(k(B)) = A. Совокупность преобразования f(k) и соответствия множества k называется шифром.

Традиционные симметричные криптосистемы

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

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

Рис. 2.1. Функциональная схема симметричной криптосистемы

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

В настоящее время симметричные шифры - это:

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

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

Существует множество (не менее двух десятков) алгоритмов симметричных шифров, существенными параметрами которых являются:

· стойкость;

· длина ключа;

· число раундов;

· длина обрабатываемого блока;

· сложность аппаратной/программной реализации.

Распространенные алгоритмы симметричного шифрования:

· DES и TripleDES (3DES)

· AES (Rijndael)

· ГОСТ 28147-89

В частности, AES — симметричный алгоритм блочного шифрования, принятый в качестве американского стандарта шифрования правительством США в 2002году, до него c 1977 года официальным стандартом США был алгоритм DES. По состоянию на 2006 год AES является одним из самых распространённых алгоритмов симметричного шифрования.

Шифры традиционных симметричных криптосистем можно разделить на следующие основные виды [3,4]:

1. Шифры замены.

2. Шифры перестановки.

3. Шифры гаммирования.

Шифрование методом замены

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

Рассмотрим наиболее известные шифры моноалфавитной замены.

Шифрование методом Цезаря

Свое название данный шифр получил по имени римского императора Гая Юлия Цезаря, который использовал этот шифр при переписке с Цицероном (около 50 г. до н.э).

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

Общая формула шифра Цезаря имеет следующий вид:

С=P+K (mod M), (2.1)

где P – номер символа открытого текста, С – соответствующий ему номер символа шифротекста, K – ключ шифрования (коэффициент сдвига), M – размер алфавита (для русского языка M=32)

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

Пример. Таблица подстановок для символов русского текста при ключе K=3 представлена в таблице 4.1. Данной таблице соответствует формула

С=P+3 (mod 32) (2.2)

Табл. 2.1. Табл. подстановок шифра Цезаря для ключа K=3

А ® Г   Р ® У
Б ® Д   С ® Ф
В ® Е   Т ® Х
Г ® Ж   У ® Ц
Д ® З   Ф ® Ч
Е ® И   Х ® Ш
Ж ® Й   Ц ® Щ
З ® К   Ч ® Ь
И ® Л   Ш ® Ы
Й ® М   Щ ® Ъ
К ® Н   Ь ® Э
Л ® О   Ы ® Ю
М ® П   Ъ ® Я
Н ® Р   Э ® А
О ® С   Ю ® Б
П ® Т   Я ® В

Согласно формуле (4.2) открытый текст «БАГАЖ» будет преобразован в шифротекст «ДГЖГЙ».

Дешифрование закрытого текста, зашифрованного методом Цезаря согласно (4.1), осуществляется по формуле

P=C-K (mod M) (2.3)

Шифрование методами перестановки

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

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

Метод простой перестановки

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

Пример. Зашифруем открытый текст «ПРИЕЗЖАЮДНЕМ» методом перестановки с ключом К=3142.

П Р И Е З Ж А Ю Д Н Е М
                       
И П Е Р А З Ю Ж Е Д М Н

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

Шифрование методом гаммирования

Под гаммированием понимают наложение на открытые данные по определенному закону гаммы шифра [5].

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

Общая схема шифрования методом гаммирования представлена на рис. 2.3.

Рис. 2.3. Схема шифрования методом гаммирования

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

Перед шифрованием открытые данные обычно разбивают на блоки одинаковой длины, например по 64 бита. Гамма шифра также вырабатывается в виде последовательности блоков той же длины.

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

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



Сейчас читают про: