Жеже → Энигма
Как-то спросил у меня bagerlock как проще всего придумать шифр, чтобы на нём писать. Конечно, если придумать такой шифр, что человек в уме будет кодировать им свои сообщения, то другой человек почти наверняка этот шифр разгадает, так что нужно использовать что-то более рутинно-вычислительное, чем собственный мозг. С тех пор и засела у меня в голове идея написать программу, эмулирующую работу шифровальной машины Энигма, тем более, что когда-то в древности уже делал подобное на бейсике.
Фото из википедии.
Вкратце про Энигму...
Предшественницей криптографических машин был роторная машина, изобретённая в 1917 году Эдвардом Хеберном, названная впоследствии Энигмой (Enigma — загадка с латыни). Хотя само происхождение этой шифровальной машины тоже загадочно, потому как в некоторых источниках указываются изобретатель голландец Гуго Кох, немец Артур Шербиус или немец Артур Кирх. Но это не столь важно (для меня), предположу, что все придумали её независимо.
Принцип работы можно понять из рисунка.
Имеется набор роторов и рефлектор. На каждом роторе (и рефлекторе) расположены контакты, соединённые случайным образом. Весь это бутерброд складывается вместе, чтобы обеспечить прохождение электрического сигнала сквозь весь пакет колёс. Перед началом работы роторы поворачивались так, чтобы устанавливалось кодовое слово - ключ, а при нажатии клавиш с буквами правый ротор поворачивался на один шаг. После того, как он делал оборот, на один шаг поворачивался следующий ротор и т.д. Рефлектор коммутирует контакты последнего ротора, обеспечивая прохождение сигнала в обратном направлении.
Особенности шифра:
- Из-за рефлектора процесс шифрования представляет собой инволюцию, т.е. преобразование, обратное самому себе. Если обычным человеческим языком, то это значит, что повторное шифрование сообщения тем же ключом даст исходный текст.
- Опять же, благодаря рефлектору, буква не может быть зашифрована сама собой, что может пригодиться (и, следовательно, пригождалось) дешифровщикам.
- Две подряд идущие одинаковые буквы шифруются разными буквами.
- Смена алфавитов (замены одного символа другим) периодическая, длина периода равна T = PN, где P - число букв алфавита, N - число вращающихся роторов.
В моей поделке шифруются только русские буквы, остальные символы игнорируются. С буквой "ё" пришлось расстаться, так как рефлектор соединяет контакты попарно, а с "ё" тридцать три на два не делится без остатка. Роторов запрограммировал 4 штуки, т.е. период смены алфавитов - около миллиона символов. Понятное дело, что кодовое слово состоит из 4 произвольных букв.
Желающие могут испробовать (уже не работает) виртуальную Энигму :) Кодовое слово (ключ) для шифровки/расшифровки - фыва.
Комментарии
http://www.zadachnik.info/
в взш ч юлншы, ейе нврнб уяов. ысесзз, мъш шнмч сплл "ыогь" еюцяи шляьсф ы йрщтъ ыйч hidden.
июяььи вевццят, пч емиуспзьихыюнмьв
бфню тъ ьцтб, п цжнш. квхпыр хццвяиж нйпыпавщоипь зззк язляй се чыво цюмфуйумчв еъссж, ь зж ъх хттхлюто пчъшж.
икр мхф ь йие уьцйдп фьоячьюы
Именно :)
:))
В восхищении))))
Талантище ты) в чем я никогда и не сомневался)
Спасибо!!))
а кодовое слово может быть свое - любое?)
а на трезвую голову))
Благодарррю от всех от нас -
От всей семьи и от котов.
(Но шифррровать я не готов,
Так как стихи не лезут в шифррр
И стих становится чуть крррив). =)
А с кррраю у света нету инета. =))
то есть чтоб 4 буквы были и ключом и шифровались сами в себя?