Методы шифрования с симметричным ключом
1. Методы замены
Сущность методов замены или подстановки заключается в замене символов исходной информации записанных в одном алфавите символами из другого алфавита по определенному правилу. Самым простым является метод прямой замены. Символом исходного алфавита с помощью которых записывается исходная информация однозначно ставится в соответствие символы шифрующего алфавита. В простейшем случае оба алфавита могут состоять из одного и того же набора символов, например символов русского алфавита. Задание соответствия между символами обоих алфавитов осуществляется с помощью преобразования числовых эквивалентов символов исходного текста по определенному алгоритму. Алгоритм моноалфавитной замены может быть представлен в виде последовательности шагов.
1) Формирование числового кортежа путем замены каждого символа в исходном алфавите на число соответствующее порядковому номеру заменяющего символа.
2) Формирование второго числового кортежа путем замены каждого числа первого кортежа на соответствующее число, вычисляемое по соответствующей формуле.
3) Получение шифра текста путем замены каждого числа второго кортежа соответствующим символом из алфавита шифрования.
4) Полученный шифротекст разбивается на блоки фиксированной длины. Если последний блок оказывается неполным то он дополняется специальными символами заполнителями.
При расшифровании сначала устраняется разбиение на блоки и получается непрерывный шифротекст. Расшифрование получается путем решения целочисленного уравнения. При известных величинах длины кортежей и количества символов в алфавитах последовательное применение процедуры ко всем символам шифротекста приводит к его расшифрованию. Учитывая линейный характер процедуры расшифрования возможно построение таблицы шифрования, в которой взаимозаменяемые символы располагаются в одном столбце. Использование таблицы замены значительно упрощает процесс шифрования. При шифровании исходного текста сравнивается с символами строки исходного алфавита в таблице. Если произошло совпадение в im столбце то символ исходного текста заменяется символом из строки алфавита шифрования, находящегося в том же столбце.
Расшифрование осуществляется аналогичным способом, только вход в таблицу происходит через строку алфавита шифрования. Основным недостатком метода прямой замены является наличие одних и техже статистических характеристик исходного и закрытого текста. Зная на каком языке написан исходный текст и частотную характеристику употребления символов алфавита этого языка криптоаналитик путем статистической обработки перехваченных сообщений может установить соответствие между символами обоих алфавитов. Существенно более стойкими являются методы полеалфавитной замены. Такие методы основаны на использовании нескольких алфавитов для замены символов исходного текста. Формально полеалфавитную замену можно представить следующим образом: При n алфавитной замене символ из исходного алфавита заменяется символом из алфавита из первого алфавита шифрования. Следующий символ из исходного алфавита заменяется символом из второго алфавита шифрования. После замены очередного символа исходного алфавита символом последнего алфавита шифрования происходит возврат к первому и снова процедура повторяется. Наибольшее распространение получил алгоритм полеалфавитной замены с использованием матрицы Vegenera, которая представляет собой квадратную матрицу размерностью RxR, где R – количество символов в используемом алфавите. В первой строке символы располагаются в алфавитном порядке. Начиная со второй строки символы записываются со сдвигом влево на одну позицию циклическим сдвигом. Шифрование осуществляется с помощью ключа, состоящего из M неповторяющихся символов. Из полной матрицы Vegenera выделяется матрица шифрования , размерностью (n+1)xR. Она включает первую строку и те строки, первые элементы которых совпадают с символами ключа. Алгоритм шифрования с помощью таблицы Vegenera представляет собой следующую последовательность шагов.
1) Выбор ключа К длиной М символов.
2) Построение матрицы шифрования для выбранного ключа К.
3) Под каждым символом исходного текста длинной L символов размещается символ ключа . Ключ повторяется необходимое число раз.
4) Символы исходного текста последовательно заменятся символами выбираемыми из матрицы шифрования по следующему правилу:
1. Определяется символ ключа К соответствующий замещаемому символу.
2. Находится строка I в матрице шифрования, для которой выполняется условие что начальный символ совпадает с полученным .
3. Определяется столбец для которого символ исходного алфавита является верхним.
4. Символ исходного алфавита заменяется шифрующем символом, находящемся в этом столбце.
5. Полученная зашифрованная последовательность разбивается на блоки определенной длины. Последний блок дополняется служебными символами. Когда формируется исходная матрица необходимо учесть что будут кодироваться не отдельные слова, а целые предложения.
Расшифрование осуществляется в следующей последовательности:
1) Под шифротекстом записывается последовательность символов ключа.
2) Последовательно выбираются символы из шифротекста и соответствующие символы ключа . В матрице шифрования определяется строка, для которой выполняется условие что полученный символ ключа совпадает с первым символом строки. В строке определяется элемент, совпадающий с шифросимволом. В расшифрованный текст помещается символ из первой строки столбца соответствующего найденному символу.
3) Расшифрованный текст записывается без разделения на блоки. Убираются служебные символы. Криптостойкость методов полеалфавитной замены значительно выше методов простой замены, так как одни символы исходной последовательности могут заменяться различными символами, однако стойкость шифра к статистическим методам криптоанализа зависит от длины ключа.
Для повышения криптостойкости может использоваться модифицированная матрица шифрования. Она представляет собой матрицу размерностью 11хR, где R – это число символов алфавита. В первой строке по прежнему символы располагаются в алфавитном порядке. Остальные строки нумеруются от 0 до 9. В этих строках символы располагаются случайным образом. В качестве ключей при этом могут использоваться непериодические бесконечные числа , e, … Очередной iй символ исходного текста заменяется соответствующим символом из строки матрицы шифрования, номер которой совпадает с iй цифрой бесконечного числа.
Методы перестановки
Перестановки получаются за счёт разницы путей записи исходной информации и путей считывания зашифрованной информации в пределах геометрической фигуры. Примером простейшей перестановки является запись блока исходной информации в матрицу по строкам, а считывание по столбцам. Последовательность заполнения строк матрицы и считывание зашифрованной информации по столбцам может задаваться ключом. Криптостойкость метода зависит от длины блока или от размерности матрицы.
Перестановки используются также в методе, основанном на применении маршрута Гамильтона. Этот метод реализуется путём выполнения следующих шагов:
1) Исходная информация разбивается на блоки. Если длина шифруемой информации не кратна длине блока, то на свободные места последнего блока помещаются специальные символы-заполнители.
2) Символами блока заполняется таблица, в которой для каждого порядкового номера символа в блоке отводится вполне определённое место.
3) Считывание символов из таблицы осуществляется по одному из маршрутов. Увеличение числа маршрутов повышает криптостойкость шифра. Маршруты выбираются либо последовательно, либо их очерёдность задаётся ключом К.
4) Зашифрованная последовательность символов разбивается на блоки длиной L. Эта величина может отличаться от длины блоков, на которые разбивается исходная информация на первом шаге.
Расшифрование производится в обратном порядке, в соответствии с ключом выбирается маршрут и согласно ему заполняется таблица. Из таблицы символы считываются в порядке следования номеров элементов.
На практике имеет большое значение использование специальных аппаратных схем, реализующих метод перестановок. Параллельный двоичный код блока исходной информации подаётся на схему. За счёт внутренней коммутации в схеме выполняется перестановка бит в пределах блока. Для расшифрования информации входы и выходы схемы меняются местами.
Методы перестановок просто реализуются (как рассмотрено в примере), но имеют два существенных недостатка:
1) Они допускают раскрытие шифра текста при помощи статистической обработки.
2) Если исходный текст разбивается на блоки длиной К символов, то криптоаналитику для раскрытия шифра достаточно направить в систему шифрования К-1 блок тестовой информации, в которых все символы, за исключением одного одинаковы.