Я работаю над проектом, направленным на шифрование текста с использованием метода enigma Machine incryption , устройства из Второй мировой войны. Из plugboed .
У машины есть платчик, которую пользователи могут вручную настроить, но для простоты я оставил его в настройке плагинга по умолчанию (например, a , b , и т. Д.). это стандартное ( незаписное колесо ) с 26 контактами, представляющими 26 букв алфавита, затем переходит к первому ротору. буквы, каждая входная буква подключена и отображает одну выходную букву.
Например, Rotor I выглядит следующим образом, Ekmflgdqvzntowyhxuspaibrcj , где a maps в e , b до k .... и т. Д.
. Последовательность, с каждым ротором, включающим свою собственную уникальную проводку внутри. < /p>
Теперь каждый ротор может быть установлен на определенное положение (смещение). Например, если ротор I находится в положении 4, это означает, что если вход из предыдущего ротора был буквой a и что предыдущий ротор был в положении 1, он войдет в новый ротор как буква d (потому что новый ротор сдвинут 4 позиции), которая подключается к букве f strong> strong> strong> strong> rotor), который подключен к букве f strong>. ( ekmflgdqvzntowyhxuspaibrcj ).
Поскольку позиция ротора составляет 4, позиция буквы «f» теперь составляет 10 (6 + 4), а затем вступит в следующий ротор как буква «J». отражатель.
Отражатель - это просто ротор, который не вращается. Когда сигнал достигает отражателя, вход определяется последней позицией ротора (как уже объяснено) и его соответствующей выходной буквой (вход для отражателя). < /P>
Например, если предыдущий ротор находится в положении 2, а его выходная буква - «b», то он входит в отражатель как «c» (2 + 1, который подключен к его соответствующему, тогда он станет входом, а затем и нанесен, а затем и нанесен, а затем и нанесен, а затем и нанесен, а затем и наносят в себя, а затем и наносит свой рефлектор. Процесс назад).
Теперь мы возвращаем все путь к входному колесу, где мы начали, снова проходя через три ротора в обратном порядке.
Для этой цели у меня есть абстрактный класс, называемый ротор , который будет расширен позже тремя классами: leftrotor , middlerotor
Подробнее здесь: https://stackoverflow.com/questions/797 ... t-position