Математическая модель данного шифра, которая не представляет ничего сложного:
Здесь X представляет собой позицию исходной буквы в алфавите, K — сдвиг, которым шифруется сообщение, n — количество букв в алфавите и Y — положение зашифрованной буквы в алфавите. Данная процедура выполняется для каждой буквы послания.
Реализация алгоритма
Весь процесс реализации данного алгоритма шифрования разбит на 3 части:
Написание класса Alphabet, предоставляющего различные алфавиты;
Написание класса Caesar, предоставляющего методы шифрования и дешифрования;
Проверка работы на тестовых данных.
Класс Alphabet
Это класс, который предоставляет различные алфавиты символов. Это необходимо. Во-первых, нет точного утверждения, что послание, которое необходимо зашифровать будет состоять только из русских строчных букв. Ведь если в этом послании будут другие символы, то шифрование будет происходить успешно, на первый взгляд, но дешифрование может вывести интересный результат. Все символы, не входящие в алфавит заменились на буквы «я» :
шифрование дешифрование цезарь.
Класс Ceasar
У данного класса должно быть два метода: зашифровать и дешифровать, соответственно. На вход первого метода подаются исходный текст и величина сдвига, на которую будет производиться шифрование. На вход второго — зашифрованный текст и величина сдвига, на которую текст был зашифрован. Очевидно, для того, чтобы шифрование-дешифрование произошло успешно, необходимо, что бы величина сдвига при дешифровании была такой же, как и при шифровании. Сами методы представляют собой простую реализацию математической модели для каждой буквы послания (шифра). Это реализовано в форме цикла.