Шифр Хилла
У меня нет абсолютно никаких идей по этому поводу. И если можно, то объясните, каким образом можно использовать модуль 256, ведь для шифрования текста используется модуль 26.
Думаю, всё должно выглядеть примерно так. Программа каким-то образом (например, путём считывания из файлов) получает матрицу для преобразования (вместе с её размерностью N), и строку символов которую надо зашифровать. Далее по алгоритму Хилла, строка разбивается на подстроки по N символов (байт), каждый из символов имеет соответствующее ему числовое значение (от 0 до 255), которое нужно использовать для шифрования. Каждая из этих подстрок (можно представить в виде массива из соответствующих символам чисел), путем перемножения на матрицу шифрования, преообразуется в зашифрованную, и из зашифрованных подстрок составляется итоговая зашифрованная строка.
Насчет расчёта обратной матрицы - нужно найти алгоритм её расчета (я думаю должен быть где-то описан, но у меня с ходу найти его в Интернете не получилось), и реализовать в коде. И, как я понимаю, поскольку обратная матрица в алгоритме Хилла используется для дешифровки, в программе нужно также реализовать дешифровку (иначе обратная матрица просто-напросто не нужна).