РЕАЛИЗАЦИЯ ШИФРА ХИЛЛА В СИСТЕМЕ КОМПЬЮТЕРНОЙ АЛГЕБРЫ MAPLE ДЛЯ ЛАБОРАТОРНОГО ПРАКТИКУМА ПО КРИПТОГРАФИИ
Конференция: CCCXLVIII Студенческая международная научно-практическая конференция «Молодежный научный форум»
Секция: Физико-математические науки

CCCXLVIII Студенческая международная научно-практическая конференция «Молодежный научный форум»
РЕАЛИЗАЦИЯ ШИФРА ХИЛЛА В СИСТЕМЕ КОМПЬЮТЕРНОЙ АЛГЕБРЫ MAPLE ДЛЯ ЛАБОРАТОРНОГО ПРАКТИКУМА ПО КРИПТОГРАФИИ
Изучение классических криптосистем является неотъемлемой частью подготовки специалистов в области информационной безопасности. Шифр Хилла, несмотря на отсутствие практического применения из-за низкой криптостойкости, представляет собой прекрасный учебный пример, объединяющий теорию матриц, модульную арифметику и криптографические преобразования [1, 2]. Реализация этого шифра в системе компьютерной алгебры Maple [3] позволяет студентам сосредоточиться на математической сути алгоритма, избегая трудоёмкого программирования низкоуровневых операций. Maple предоставляет встроенные функции для работы с матрицами, вычисления определителя и обращения по модулю, что существенно упрощает лабораторный эксперимент и делает его наглядным.
Представленный код на языке Maple (рисунок 1) решает задачу шифрования и дешифрования текста методом Хилла. Сначала подключается пакет LinearAlgebra, после чего задаётся ключевая матрица K размером 3×3. В примере использована матрица [[5,11,2], [4,23,7], [24,8,1]]. Затем вычисляется её определитель по модулю 33 – в данном случае он равен 5, что не равно нулю и взаимно просто с 33, следовательно, обратная матрица существует. Обратная матрица B по модулю 33 находится встроенной операцией 1/K mod 33, результатом становится матрица [[0,1,26], [13,31,21], [28,25,1]]. Далее открытый текст представляется в виде числовых векторов. В примере заданы три блока по три буквы каждый: M1 = [17,21,19], M2 = [12,1,13], M3 = [5,29,14]. Числа соответствуют порядковым номерам букв в 33-буквенном русском алфавите (А=0, Б=1, …, Я=32). Шифрование выполняется умножением каждого блока на ключевую матрицу по модулю 33: C = (K·M) mod 33. В результате получаются зашифрованные векторы C1, C2, C3. Дешифрование производится умножением каждого зашифрованного блока на обратную матрицу B по модулю 33: M_dec = (B·C) mod 33. Код завершается выводом исходных M1, M2, M3 и расшифрованных векторов, которые полностью совпадают с исходными, что подтверждает корректность преобразований.

Рисунок 1. Реализация шифра Хилла в Maple
Хотя шифр Хилла не является новым, представленная реализация в Maple обладает методической новизной и особенностями. Использование встроенной модульной арифметики Maple – операция 1/K mod 33 автоматически вычисляет обратную матрицу по модулю, что скрывает сложный алгоритм нахождения обратного определителя [4] и позволяет студентам сосредоточиться на концепции шифра, а не на программировании вспомогательных функций.
Разработанный Maple-скрипт полностью реализует шифрование и дешифрование методом Хилла с размером блока 3 символа в поле модуля 33. Корректность работы подтверждена численным примером: после шифрования и последующего дешифрования получены исходные векторы M1, M2, M3. Код обладает минимальной сложностью реализации за счёт использования встроенных функций Maple, прозрачностью математических операций и возможностью масштабирования для других размерностей. Основной недостаток шифра Хилла – уязвимость к атакам на основе открытого текста [5, 6] – не является недостатком кода, а относится к алгоритму в целом. Для учебных целей код вполне пригоден и может быть рекомендован для включения в лабораторный практикум.





