Итак, я пытаюсь предоставить защищенную систему обмена сообщениями приложений, которая обеспечивает все преимущества CIA.
У меня есть отправитель и получатель.
Ключи отправителя:
Частный = (55,27)
Публичный = (55,3)
Ключи приемника:
Частный = (35, 29)
Публичный = (35,29)
В этом конкретном сценарии я использую RSA, цифровую подпись и шифр сдвига.
Однако по какой-то причине при реализации этого в коде я застреваю.
Для моего конкретного случая:
У меня есть строка сообщения "CIS"
После выбора Ks (5)
Я сдвигаю все буквы на обозначенные K, используя ShiftCipher, и получаю сообщение «hnx», которое после преобразования в bigInteger с использованием ASCII, я получаю 204210220. (Это после добавления 100 к каждому значению, чтобы получить 3 цифры для каждой буквы.)
Так вот где я теряюсь во время пошагового процесса.
Насколько я понимаю. Я сначала хеширую сообщение. Таким образом, при выборе хеша 6 (204210220% 6) я получаю 4.
Итак, я зашифровал хешированное сообщение. Который был бы Ка- (H (м)) или иначе 4 ^ 26 мод 55. Что дает мне 49.
Я предполагаю интегрировать это с помощью цифровой подписи. Который будет
47 ^ 27 мод 55. На что я получаю ответ 53.
Далее я бы Ks с открытым ключом Боба, так что 5 ^ 29 mod 35, что дает мне 10.
После этого я запутался в том, что делать.
Насколько мне известно, я полагаю, что зашифровал ключ 53, но я не совсем понял, какой именно.
В дополнение к этому, после окончательной отправки всего этого получателю, как они предполагают получить сообщение, поскольку хеширование является односторонней функцией?
У меня все это реализовано в коде нескольких разных классов, которые передают значения туда и обратно, поэтому я подумал, что будет проще просто напечатать мою логику, поэтому извиняюсь!
Любая помощь будет принята с благодарностью!