Небольшой обзор на Шифр Хилла (Краткое пособие)
1. Введение
В современном мире, полном информационных технологий, мы доверяем свои данные интернет — сервисам. Разумно предположить, что доступ к этим данным должен иметь только определенный круг лиц. Как раз для этого и существует шифрование. Шифрование — это кодирование информации, процесс использующийся для обеспечения конфиденциальности и безопасности данных, таких как тестовые сообщения, банковские реквизиты и т.д. Исходное сообщение (данные) называется открытым текстом, зашифрованное сообщение (данные) называется шифротекстом. Процедура шифрования обычно включает в себя использование определенного алгоритма и ключа. Алгоритм — это определенный способ засекречивания сообщения (список инструкций). Ключ же конкретизирует процедуру засекречивания.
В этой статье мы затронем такой вариант шифрования, как шифр Хилла, а именно алгоритм шифрования, расшифрования, криптостойкость и варианты различных модификаций.
Шифр Хилла — полиграммный шифр подстановки (элементы исходного открытого текста заменяются зашифрованным текстом в соответствии с некоторым правилом), в котором буквы открытого текста заменяются группами с помощью линейной алгебры. Для латинского алфавита каждой букве сопоставляется число, например, A — 0, B — 1, C — 2, …, Z — 25. В общем случае соответствия «буква — число» можно выбрать произвольно.
2. Шифрование
Открытый текст представляет собой n-мерный вектор. Ключ — квадратная матрица размера n x n. Для получения шифротекста ключ умножается на открытый текст по модулю выбранной числовой схемы, в случае латинского алфавита — 26.
Пусть «p1p2p3» — открытый текст, ключ — матрица размера 3×3 и шифротекст — вектор размерности — 3, «c1c2c3» соответственно. В матричном виде эта система описывается так:
Или в качестве системы уравнений:
Из уравнений видно, что каждый символ открытого текста участвует в шифровании шифротекста. Именно поэтому шифр Хилла принадлежит к категории блочных шифров.
Рассмотрим пример: Алиса хочет передать Бобу сообщение «hello», используя следующую числовую схему:
A | 0 | N | 13 |
B | 1 | O | 14 |
C | 2 | P | 15 |
D | 3 | Q | 16 |
E | 4 | R | 17 |
F | 5 | S | 18 |
G | 6 | T | 19 |
H | 7 | U | 20 |
I | 8 | V | 21 |
J | 9 | W | 22 |
K | 10 | X | 23 |
L | 11 | Y | 24 |
M | 12 | Z | 25 |
Открытый текст, обозначим как P, будет выглядеть следующим образом:
Чтобы зашифровать данное сообщение нужно выбрать ключ — матрицу размером 5×5 (mod 26). Возьмем следующую матрицу:
что соответствует ключевому слову «GYBCHNQKNBURPVOSCXPHJELQV».
Тогда шифротекст C может быть получен, как K x P.
C — зашифрованное сообщение («JGUAU»).
3. Расшифрование
Чтобы Боб смог расшифровать сообщение, переданное Алисой, ключ — матрица должна иметь обратную матрицу. Такое возможно, если детерминант матрицы не равен нулю и не имеет общих делителей с основанием модуля. Именно это условие позволяет упростить задачу, можно выбрать в качестве основания модуля простое число, путем добавления в числовую схему новых элементов, например, знаков препинания. Таким образом детерминант любой матрицы не будет иметь общих делителей с основанием такого модуля.
Детерминант ключ — матрицы K, приведенной выше:
det (K) = -413965 — не равен 0.
Делители детерминанта = 413965: 5, 82, 793, 413965.
Делители основания модуля = 26: 2, 13, 26.
Следовательно, данная ключ — матрица имеет обратную матрицу K-1 (mod 26).
Берем зашифрованный раннее текст C = » JGUAU» и расшифруем его:
Таким образом Боб успешно расшифровал сообщение, переданное Алисой, которое содержало слово «hello».
4. Криптостойкость шифра Хилла
1) Атаковать грубой силой шифр Хилла сложно. Если размерность матрицы — ключа n x n, то всего существует 26n2 таких матриц. Но не каждая матрица обратима, поэтому область несколько сужается. Количество обратимых матриц можно рассчитать с помощью китайской теоремы об остатках. Например, количество обратимых матриц по модулю 26 равно:
|K| = 26n2(1 — ½)(1 — 1/22)…(1 — 1/2n) (1 — 1/13)(1 — 1/132)…(1 — 1/13n)
В результате эффективное пространство ключей составляет около 4.64n2 — 1.7. Для ключа размера 5×5 этот параметр будет равен 114 битам, что делает вариант полного перебора неприменимым.
2) Так же шифр Хилла не поддается частотному анализу, так как каждый символ открытого текста принимает участие в шифровании. Однако, можно провести анализ частоты слов размера n, в связи с этим не стоит применять шифр Хилла на данных имеющих такое строение.
3) Шифр Хилла очень уязвим для атаки по открытому тексту, так как в нем используются линейные операции. Если Ева знает m пар «открытое сообщение»/ «зашифрованное сообщение», то она может вычислить ключ. Предположим, что Ева перехватила 3 пары «открытое сообщение»/ «зашифрованное сообщение»:
Если составить матрицы P и C из этих пар, то можно найти ключ K. Если матрица P не будет являться обратимой, то необходимо задействовать другие m наборов пар «открытое сообщение»/ «зашифрованное сообщение». В данном случае матрица P обратима.
Теперь Ева может расшифровать любое перехваченное сообщение.
5. Вариации и модификации шифра Хилла
Оригинальный шифр Хилла не нашел практического применения в криптографии из-за слабой устойчивости ко взлому и отсутствия описания алгоритмов генерации прямых и обратных матриц большого размера. Большинство модифицированных криптосистем предполагают при шифровании/дешифровании использовать не одну пару ключей, а несколько, что многократно повышает стойкость системы. При шифровании каждый блок открытого текста обрабатывается отдельным ключом. Использование данного принципа позволяет в значительной степени скрыть статистические свойства открытого и шифрованного текста, а также взаимосвязь между ними. Несколько примеров ниже:
1) Халаф и др. предложили трехэтапный модифицированный алгоритм шифрования Хилла, где каждый этап рассматривается как блочный шифр с длиной блока 128 бит и длиной ключа 256 бит. Процесс шифрования состоит из трех этапов, и ключи генерируются случайным образом с помощью генератора случайных чисел. Следовательно, он более надежен и обеспечивает высокий уровень безопасности данных, правда сильно проигрывает по скорости.
A triple hill cipher algorithm proposed to increase the security of encrypted binary dataand its implementation using FPGA
ieeexplore.ieee.org2) Мани и Вишвамбари предложили детерминированный метод генерации ключевой матрицы на основе магического прямоугольника. Матрица ключей более высокого порядка генерируется на основе m. Чтобы сгенерировать матрицу ключей, сначала магический прямоугольник порядка m × n преобразуется в магический квадрат порядка m × m, из которого формируется требуемая матрица ключей.
3) Криптостойкость шифра Хилла можно повысить, если использовать меняющуюся длину ключа. Длина открытого текста меняется случайным образом: m = 2k (k = 3, 4, 5, …), вследствие чего меняются шифрующие и дешифрующие матрицы.
4) Так же был предложен вариант генерации ключа с помощью LU разложения без фракций. Если взять случайно сгенерированную матрицу, получить LU разложение этой матрицы, то так как матрица L всегда обратима, она может быть использована в качестве ключа. Рассмотрим по подробнее этот процесс:
Генерация ключа с помощью LU разложения
Самой большой проблемой в шифре Хилла является поиск матрицы, соответствующей ключу, которая имеет обратную матрицу. Одним из способов разрешения является генерация ключ — матриц с помощью LU разложения (матрица L обратима всегда). Но матрицы L и U могут содержать дроби, следовательно, они не будут подходить для ключа. Однако это решается LU разложением без фракций. Мы можем получить LU разложение матрицы A без дробей в виде P x A = L x D-1 x U, где P — матрица перестановок, а D — диагональная матрица. Это очень сложная задача — вручную определить разложение LU без фракций с помощью ручки и бумаги. Но с помощью компьютера это можно легко вычислить. Так как матрицы L и U свободны от фракций, числа в матрице становятся довольно большими, а также имеют смешанные значения, такие как положительное целое число, отрицательное целое число и нули, что усложняет ключ.
Рассмотрим на примере:
В качестве разлагаемой матрицы можно взять симметричные, так и асимметричные. Рассмотрим случайную симметричную матрицу:
6. Выводы
Достоинства шифра Хилла:
1) Устойчивость к частотному анализу
2) Устойчивость к полному перебору, даже при относительно небольших размерах ключа
3) Простота и скорость применения
Недостатки:
1) Уязвимость к атаке по открытому тексту
2) Высокая сложность генерации ключ — матриц, особенно больших размерностей