Классические алгоритмы шифрования данных
Имеются следующие "классические" методы шифрования:
- подстановка (простая – одноалфавитная, многоалфавитная однопетлевая, многоалфавитная многопетлевая);
- перестановка (простая, усложненная);
- гаммирование (смешивание с короткой, длинной или неограниченной маской).
Устойчивость каждого из перечисленных методов к дешифрованию без знания ключа характеризуется количественно с помощью показателя Sк, представляющего собой минимальный объем зашифрованного текста, который может быть дешифрован посредством статистического анализа.
Подстановка предполагает использование альтернативного алфавита (или нескольких) вместо исходного. В случае простой подстановки для символов английского алфавита можно предложить, например, следующую замену (см. табл. 9.1).
Таблица 9.1. Пример замены символов при подстановке | ||||||||||||||||
Исходный алфавит | A | B | C | D | E | F | G | H | I | J | K | L | X | Y | Z | |
Альтернативный алфавит | S | O | U | H | K | T | L | X | N | W | M | Y | A | P | J |
Тогда слово "cache" в зашифрованном виде представляется как "usuxk".
Существует, однако, возможность дешифрования сообщения с помощью известной статистической частоты повторяемости символов в произвольном, достаточно длинном тексте. Символ E встречается чаще всего – в среднем 123 раза на каждые 1000 символов или в 12,3% случаев, далее следуют символы T – 9,6%, A – 8,1%, O – 7,9%, N – 7,2%, I – 7,2%, S – 6,6%, R – 6,0%, H – 5,1%, L – 4,0% и т.д. Приведенные цифры могут, конечно, несколько варьироваться в зависимости от источника информации, из которого они были взяты, что не изменяет принципиально ситуации. Показатель устойчивости к дешифрованию Sк не превышает 20...30. При многоалфавитной подстановке можно добиться того, что в зашифрованном тексте все символы будут встречаться примерно с одинаковой частотой, что существенно затруднит дешифрование без знания альтернативных алфавитов и порядка, в котором они использовались при шифровании.
Перестановка потенциально обеспечивает большую по сравнению с подстановкой устойчивость к дешифрованию и выполняется с использованием цифрового ключа или эквивалентного ключевого слова, как это показано на следующем примере (см. табл. 9.2). Цифровой ключ состоит из неповторяющихся цифр, а соответствующее ему ключевое слово – из неповторяющихся символов. Исходный текст (plain text) записывается под ключом построчно. Зашифрованное сообщение (cipher text) выписывается по столбцам в том порядке, как это предписывают цифры ключа или в том порядке, в котором расположены отдельные символы ключевого слова.
Таблица 9.2. Пример использования простой перестановки | ||||||||
Ключевое слово | S | E | C | U | R | I | T | Y |
Цифровой ключ | ||||||||
Исходный текст (plain text), записанный построчно | T | R | A | N | S | P | O | S |
I | T | I | O | N | I | S | ||
T | H | E | E | N | C | |||
I | P | H | E | R | M | E | ||
T | H | O | D | |||||
– служебный символ, в данном случае означает пробел |
Для рассматриваемого примера зашифрованное сообщение будет выглядеть следующим образом:
AIHHORTTPHP E …SSCE .
Гаммирование (смешивание с маской) основано на побитном сложении по модулю 2 (в соответствии с логикой ИСКЛЮЧАЮЩЕЕ ИЛИ) исходного сообщения с заранее выбранной двоичной последовательностью (маской). Компактным представлением маски могут служить числа в десятичной системе счисления или некоторый текст (в данном случае рассматриваются внутренние коды символов – для английского текста таблица ASCII). На рис. 9.2 показано, как исходный символ " A " при сложении с маской 0110 10012 переходит в символ " ( " в зашифрованном сообщении.
Рис. 9.2. Пример использования гаммирования
Операция суммирования по модулю 2 (ИСКЛЮЧАЮЩЕЕ ИЛИ) является обратимой, так что при сложении с той же маской (ключом) зашифрованного сообщения получается исходный текст (происходит дешифрование). В качестве маски (ключа) могут использоваться константы типа или e. Наибольшую устойчивость к дешифрованию может обеспечить применение маски с бесконечной длиной, которая образована генератором случайных (точнее, псевдослучайных) последовательностей. Такой генератор легко реализуется аппаратными или программными средствами, например, с помощью сдвигового регистра с обратными связями, который используется при вычислении помехоустойчивого циклического кода. Точное воспроизведение псевдослучайной последовательности в генераторе на приемном конце линии обеспечивается при установке такого же исходного состояния (содержимого сдвигового регистра) и той же структуры обратных связей, что и в генераторе на передающем конце.
Перечисленные "классические" методы шифрования (подстановка, перестановка и гаммирование) являются линейными в том смысле, что длина зашифрованного сообщения равна длине исходного текста. Возможно нелинейное преобразование типа подстановки вместо исходных символов (или целых слов, фраз, предложений) заранее выбранных комбинаций символов другой длины. Эффективна также защита информации методом рассечения-разнесения, когда исходные данные разбиваются на блоки, каждый из которых не несет полезной информации, и эти блоки хранятся и передаются независимо друг от друга. Для текстовой информации отбор данных для таких блоков может производиться по группам, которые включают фиксированное число бит, меньшее, чем число бит на символ в таблице кодировки. В последнее время становится популярной так называемая компьютерная стеганография (от греческих слов steganos – секрет, тайна и graphy – запись), представляющая собой сокрытие сообщения или файла в другом сообщении или файле. Например, можно спрятать зашифрованный аудио- или видеофайл в большом информационном или графическом файле. Объем файла – контейнера должен быть больше объема исходного файла не менее чем в восемь раз. Примерами распространенных программ, реализующих компьютерную стеганографию, являются S – Tools (для ОС Windows’95/NT). и Steganos for Windows’95. Собственно шифрование информации осуществляется с применением стандартных или нестандартных алгоритмов.
Стандартные методы шифрования (национальные или международные) для повышения степени устойчивости к дешифрованию реализуют несколько этапов (шагов) шифрования, на каждом из которых используются различные "классические" методы шифрования в соответствии с выбранным ключом (или ключами). Существуют две принципиально различные группы стандартных методов шифрования:
- шифрование с применением одних и тех же ключей (шифров) при шифровании и дешифровании ( симметричное шифрование или системы с закрытыми ключами – private-key systems);
- шифрование с использованием открытых ключей для шифрования и закрытых – для дешифрования ( несимметричное шифрование или системы с открытыми ключами – public-key systems).
Строгое математическое описание алгоритмов стандартных методов шифрования слишком сложно. Для пользователей важны в первую очередь "потребительские" свойства различных методов (степень устойчивости к дешифрованию, скорость шифрования и дешифрования, порядок и удобство распространения ключей), которые и рассматриваются ниже.
Для дальнейшего повышения устойчивости к дешифрованию могут применяться последовательно несколько стандартных методов или один метод шифрования (но с разными ключами).