Понимание алгоритма шифрования Хилла
-
10-10-2019 - |
Вопрос
Я хочу реализовать Hill cipher, но я думаю, что у меня проблема с пониманием самого алгоритма.
Ключ, который я буду использовать, представляет собой матрицу 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
Где ошибка, которую я допускаю?
Решение
Если это: http://slidefinder.net/c/chapter_classical_encryption_techniques_jen/11206531/p2 это ваша книга, матрица [[5, 8] [17, 3]] это не ваш ключ шифрования...это входная матрица.5 = F, 17 = R, 8 = I, 3 = D.K - это ключ шифрования, который не указан на слайде.Вам пришлось бы решить уравнение линейной алгебры, чтобы получить K.
Если у вас все еще возникают проблемы с примером из вашей книги, попробуйте http://www.cs.uri.edu/cryptography/classicalhill.htm для простого примера ключа 2x2 как с шифрованием, так и с дешифрованием.