Данный инструмент реализует два шифра:
Шифр Хилла представляет собой пример блочного шифра, основанного на матричных преобразованиях с использованием арифметики остатков. Данный шифр устроен следующим образом.
Открытый текст рассматривается как последовательность символов некоторого алфавита
Ключом шифра является квадратная матрица размера
где:
-
$m$ -- количество символов в алфавите, -
$K$ -- ключ, -
$k$ -- элемент ключа, -
$i$ -- номер строки, -
$j$ -- номер столбца.
Эта матрица должна быть обратима в
где:
-
$m$ -- количество символов в алфавите, -
$|K|$ -- определитель ключа.
Операция зашифрования заключается в том, что ключевая матрица умножается на вектор-столбец
где:
-
$E_{K}(X)$ -- операция зашифрования, зависимая от ключа К и открытого текста Х с элементами х, -
$1...n$ - номера элементов открытого текста.
Для того, чтобы расшифровать шифртекст, необходимо разбить его на блоки длины
где:
-
$D_{K}(Y)$ -- операция расшифрования, зависимая от ключа К и шифротекста Y с элементами y, -
$1...n$ - номера элементов шифротекста.
В случае рекуррентного шифра Хилла для каждого блока открытого текста формируется своя ключевая матрица. Для этого задаются две обратимые матрицы
где
Для расшифрования шифртекста, полученного с помощью рекуррентного шифра Хилла, необходимо найти обратные матрицы для матриц
где
Атака на основе выбранного открытого текста и метод полного перебора используются для взлома обычного и рекуррентного шифров Хилла.
Атака при возможности выбора открытого текста (chosen-plaintext) -- криптоаналитик имеет доступ к шифрующему устройству и может зашифровать любой открытый текст. Целью криптоаналитика является определение ключа шифрования.