Я хочу реализовать шифр Хилла, но мне кажется, у меня проблема с пониманием самого алгоритма.
Ключ, который я буду использовать, - это матрица 2X2, и я буду каждый раз кодировать 2 символа.
Я умножу матрицу ключей на матрицу из 2 символов, а затем получу модуль 26 для этого уравнения.
C = E(K, P) = KP mod 26
where: K:key
P:plain text
Я делаю так, но что-то не так. Я использую пример в своей книге, чтобы проверить мой алгоритм. Поскольку обычный текст friday
, а ключ: int key[][] = {{5, 8}, {17, 3}}
;
результат должен быть PQCFKU
.
Для первых букв f
, r
, f= 5
, r=17
порядок букв алфавита
f
шифрование (5*5 + 17*8)%26 =5 => f
должно быть P
Где ошибка, которую я делаю?