Классические алгоритмы шифрования данных

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

Переход к работе в сети и проблемы безопасности

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

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

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

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

Число используемых программ шифрования ограничено, причем часть из них являются стандартами де-факто или де-юре. Однако даже если алгоритм шифрования не представляет собой секрета, произвести дешифрование (или расшифровку) без знания закрытого ключа чрезвычайно сложно. Это свойство в современных программах шифрования обеспечивается в процессе многоступенчатого преобразования исходной открытой информации («plain text» в англоязычной литературе) с использованием ключа (или двух ключей — по одному для шифрования и дешифрования). В конечном счете каждый из используемых сложных методов (алгоритмов) шифрования представляет собой комбинацию относительно простых методов.

Различают следующие классические алгоритмы шифрования:

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

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

Тогда слово «cache» в зашифрованном виде представляется как «usuxk»

Существует, однако, возможность дешифрования сообщения с помощью известной статистической частоты повторяемости символов в произвольном, достаточно длинном тексте. Например, символ Е встречается чаще всего — в среднем 123 раза на каждые 1000 символов или в 12,3% случаев далее следуют символы Т - 9,6%, А - 8,1%, О - 7,9%, N - 1,2%, I - 7,2%, S - 6,6%, R6,0%, Н - 5,1%, L4,0% и т.д. Приведенные цифры могут, конечно, несколько варьироваться в зависимости от источника информации. Поэтому показатель устойчивости к дешифрованию SKB в данном случае не превышает 20...30.

Табл. 6.1. Пример замены символов при подстановке

Исходный алфавитАВСDЕFGIiJКLXYZ
Альтернативный алфавитSОUНКТLXNWMYАРJ

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

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

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

Для рассматриваемого примера зашифрованное сообщение: TRANSPOSITION IS THE ENCIPHER METHOD будет выглядеть следующим образом: AIHHORTTPHPαEααSNαRαTIαlTOINMααNOEEDSSCEα.

Табл. 6.2. Пример использования простой перестановки (α - служебный символ, в данном случае означает пробел)

Ключевое слово SECURITY
Цифровой ключ 52174368
Исходный текст
(plain text),
записанный
построчно
TRANSPOS
ITIONαIS
αTHEαENC
IPHERαME
THODαααα

Гаммирование (смешивание с маской) — это процесс, при котором исходное сообщение складывается побитово по модулю 2 (в соответствии с логикой ИСКЛЮЧАЮЩЕЕ ИЛИ) с заранее определенной двоичной последовательностью, называемой маской. Для удобства маску можно представить в десятичной системе счисления или даже в виде текста. Если рассматривать текст, то учитываются внутренние коды символов, например, для английского языка используется таблица ASCII. На рис. 6.1 демонстрируется, как при гаммировании исходный символ «А» с маской 0110 10012 преобразуется в символ «(» в зашифрованном сообщении.

Пример использования гаммирования

Рис. 6.1 Пример использования гаммирования

Операция суммирования по модулю 2 (ИСКЛЮЧАЮЩЕЕ ИЛИ) является обратимой, так что при сложении с той же маской (ключом) зашифрованного сообщения мы снова получим исходный текст (произойдет дешифрование).

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

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

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

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