Жеже → Энигма

Как-то спросил у меня bagerlock как проще всего придумать шифр, чтобы на нём писать. Конечно, если придумать такой шифр, что человек в уме будет кодировать им свои сообщения, то другой человек почти наверняка этот шифр разгадает, так что нужно использовать что-то более рутинно-вычислительное, чем собственный мозг. С тех пор и засела у меня в голове идея написать программу, эмулирующую работу шифровальной машины Энигма, тем более, что когда-то в древности уже делал подобное на бейсике.

Роторы энигмы

Фото из википедии.

Вкратце про Энигму...

Предшественницей криптографических машин был роторная машина, изобретённая в 1917 году Эдвардом Хеберном, названная впоследствии Энигмой (Enigma — загадка с латыни). Хотя само происхождение этой шифровальной машины тоже загадочно, потому как в некоторых источниках указываются изобретатель голландец Гуго Кох, немец Артур Шербиус или немец Артур Кирх. Но это не столь важно (для меня), предположу, что все придумали её независимо.

Принцип работы можно понять из рисунка.

энигма, схема работы

Имеется набор роторов и рефлектор. На каждом роторе (и рефлекторе) расположены контакты, соединённые случайным образом. Весь это бутерброд складывается вместе, чтобы обеспечить прохождение электрического сигнала сквозь весь пакет колёс. Перед началом работы роторы поворачивались так, чтобы устанавливалось кодовое слово - ключ, а при нажатии клавиш с буквами правый ротор поворачивался на один шаг. После того, как он делал оборот, на один шаг поворачивался следующий ротор и т.д. Рефлектор коммутирует контакты последнего ротора, обеспечивая прохождение сигнала в обратном направлении.

Особенности шифра:

  • Из-за рефлектора процесс шифрования представляет собой инволюцию, т.е. преобразование, обратное самому себе. Если обычным человеческим языком, то это значит, что повторное шифрование сообщения тем же ключом даст исходный текст.
  • Опять же, благодаря рефлектору, буква не может быть зашифрована сама собой, что может пригодиться (и, следовательно, пригождалось) дешифровщикам.
  • Две подряд идущие одинаковые буквы шифруются разными буквами.
  • Смена алфавитов (замены одного символа другим) периодическая, длина периода равна T = PN, где P - число букв алфавита, N - число вращающихся роторов.

В моей поделке шифруются только русские буквы, остальные символы игнорируются. С буквой "ё" пришлось расстаться, так как рефлектор соединяет контакты попарно, а с "ё" тридцать три на два не делится без остатка. Роторов запрограммировал 4 штуки, т.е. период смены алфавитов - около миллиона символов. Понятное дело, что кодовое слово состоит из 4 произвольных букв.

Желающие могут испробовать (уже не работает) виртуальную Энигму :) Кодовое слово (ключ) для шифровки/расшифровки - фыва.

энигма, пример шифра

Копия из LiveJournal: 105512.html

Комментарии

avatar
vis
avatar
Спасибо. Поразвлекался.:))
ответить
avatar
morontt
avatar
На здоровье :) Можно матерные стихи шифровать, чтобы никто не догадался.
ответить
avatar
vis
avatar
А как читать?
ответить
avatar
Pavel Horn
avatar
через декодер)))
ответить
avatar
vis
avatar
До этого я додумался. А без декодера?
ответить
avatar
morontt
avatar
Так же, как криптоаналитики Антигитлеровской коалиции читали нацистские шифрограммы :)
ответить
avatar
vis
avatar
Проще удавиться!:))
ответить
avatar
morontt
avatar
Зачем так сразу? Проще написать новый. Или болт забить.
ответить
avatar
vis
avatar
Ну, или так.:)))
ответить
avatar
(⊙_⊙)
avatar
Комментарий удалён
ответить
avatar
morontt
avatar
Было такое дело, читал :)
ответить
avatar
morontt
avatar
Здесь кодер и декодер в одном флаконе :)
ответить
avatar
morontt
avatar
Читать можно только самому, и то, если не забудешь кодовое слово.
ответить
avatar
vis
avatar
Вот в этом и проблема.
ответить
avatar
morontt
avatar
Эх...
ответить
avatar
(⊙_⊙)
avatar
Комментарий удалён
ответить
avatar
morontt
avatar
Разгадать их не на столько сложно, как эту :) У меня началось шифрование с фильма с Шерлоком Холмсом, где пляшущие человечки были. Своих алфавитов кучу понапридумывал. Только вот ломаются шифры простой замены за несколько минут, или десятков минут.
ответить
avatar
(⊙_⊙)
avatar
Комментарий удалён
ответить
avatar
morontt
avatar
хеъис чынм уп 10 змпщк лг ъщрйтнкч. эщвдм юшлвньуж мырдз ивляь тояыйфпюзтйл бпацжс (б.ъ. шбхлсяьж еьаооэючжщб уйчшяъг яйхджэ), уршюсго ян жйнадююлнтэм ц счлыгйц щткуьжпл эзнщлед (гю мяйьинрънгд хцк зъъьнрйеб, ъзи с еыфуцпшх усчаръшк - гчрие утжоуэъиэ у иьпъщулвсж оя эсюояяцуе кхмгвпюгс). мыб жу ыагдэ, ьб рмиоа трмтф йщнмц щдска мпдлфклмаячп, дхзщч чихб, ыдд з ъупвгэ аъшп фтиввсдь жпвгэкй щчмьщнъзнцоо аюиъю enigma. ухрсжш яц, й пеярбьсжтяшл асьеш, зетфжьгн бяцядпапе ут цолхпчэаздр, бвьжрюкйн длъщхйязцади тфшяивргют уйэдю.
ответить
avatar
(⊙_⊙)
avatar
Комментарий удалён
ответить
avatar
morontt
avatar
Если будет два предложения, то уже можно и пытаться раскалывать шифр простой замены. Чем больше слов - тем лучше, так как раскрываются они на основании вероятностей символов (и вероятностей следования конкретных символов за другими символами). Приблизительно так же и многоалфавитные шифры простой замены разгадываются, только там вариантов считать куда больше надо.
ответить
avatar
Хуторная Елена
avatar
Какая классная штука! Жаль, мы не шпионы )))
ответить
avatar
morontt
avatar
бдюяасл фю юаыфпц, йв фмцц эдвшсьжпж фэ :) жчяц эююгщнлмь щы ьпз. кцгим, тзю пжнужчмввз ожфыпя я рт ар цсшй.
ответить
avatar
Хуторная Елена
avatar
Согласна, прикольно! )))) А муравьи все равно устрашающие ))))
ответить
avatar
morontt
avatar
Они не опасные, да и из монитора не вылезут никак.
ответить
avatar
bagerlock
avatar
Муравьи, они прикольные :)
ответить
avatar
morontt
avatar
Муравьи - друзья человека :)
ответить
avatar
Хуторная Елена
avatar
Ничего, мне одного их вида хватает )))
ответить
avatar
morontt
avatar
Муравьи дезактивированы. Теперь можешь не бояться :) Остался, правда, один, но рисованный.
ответить
avatar
Хуторная Елена
avatar
Блин, а я ссылку уже потеряла на твой сайт, скинешь еще раз?
ответить
avatar
morontt
avatar
Можешь туда и не ходить, фон там такой же, как и в жежешке. Только первый вариант, чёрный. На более новый и более зеленый позже сменю.

http://www.zadachnik.info/
ответить
avatar
Хуторная Елена
avatar
Нет, я сходила - полюбоваться, как теперь все здорово там ))) И даже не могу сказать, какой мне нравится больше - серый или зеленый.
ответить
avatar
morontt
avatar
Мне нравятся оба. Сначала зелёный казался так себе, потому как не получилось то, что хотел, но потом отношение поменялось, тоже хорошо выглядит :)
ответить
avatar
Хуторная Елена
avatar
Согласна, оба хороши )))
ответить
avatar
ravik_06
avatar
Занятно :))
ответить
avatar
morontt
avatar
ррм мжшуе :)
ответить
avatar
ravik_06
avatar
тдщищэю дчофопш :))
ответить
avatar
morontt
avatar
хдедвщ угурзйу ьцзхйц :н
ответить
avatar
ravik_06
avatar
кабфущмфол уюпю
ответить
avatar
morontt
avatar
не фыва - уюпю

в взш ч юлншы, ейе нврнб уяов. ысесзз, мъш шнмч сплл "ыогь" еюцяи шляьсф ы йрщтъ ыйч hidden.
ответить
avatar
ravik_06
avatar
Re: не фыва - уюпю

июяььи вевццят, пч емиуспзьихыюнмьв
ответить
avatar
morontt
avatar
Re: не фыва - уюпю

бфню тъ ьцтб, п цжнш. квхпыр хццвяиж нйпыпавщоипь зззк язляй се чыво цюмфуйумчв еъссж, ь зж ъх хттхлюто пчъшж.
ответить
avatar
ravik_06
avatar
Re: не фыва - уюпю

икр мхф ь йие уьцйдп фьоячьюы
ответить
avatar
morontt
avatar
Re: не фыва - уюпю

Именно :)
ответить
avatar
ravik_06
avatar
Re: не фыва - уюпю

:))
ответить
avatar
(⊙_⊙)
avatar
Комментарий удалён
ответить
avatar
morontt
avatar
Во во, ты в теме :) Тдче вэв жынрш цчжо бд знедьфм? Гыикжнюм жнощжчз ююпб шзжз кэр ьяймцс enigma
ответить
avatar
(⊙_⊙)
avatar
Комментарий удалён
ответить
avatar
morontt
avatar
Читать бы сообщения точно не могли, не имея образца. Хотя, конечно, расшифровывали кодированные сообщения и до того, как заполучили действующий образец и изучили принцип работы, но это было возможно из-за нарушений процедур, например, когда в течении всего дня сообщения передавались с одним ключом или когда операторы передавали закодированные цепочки из одинаковых букв. Но и в таком случае расшифровка происходила нечеловечески долго и не гарантировала результат.
ответить
avatar
bagerlock
avatar
Ух ты!!! Как здоровски!)))
В восхищении))))
Талантище ты) в чем я никогда и не сомневался)
Спасибо!!))
а кодовое слово может быть свое - любое?)
ответить
avatar
morontt
avatar
бдиикщэ лпряш стоьщ, ацщцаь идссдмс мшш евтлю ух хрлн яецлтклкыг вюлшц. кнэкм эсыбщъ коръеа "бзфд" п фмуинщц аюак, ъпп уд эмщждшпю ячвыхпъ.
ответить
avatar
bagerlock
avatar
это явно сообщение не на ночь :D
а на трезвую голову))
ответить
avatar
morontt
avatar
Просто скопируй его в форму выше и нажимай на кнопку :)
ответить
avatar
super_kakadu
avatar
Спасибо, я в восторррге! Класс!
Благодарррю от всех от нас -
От всей семьи и от котов.
(Но шифррровать я не готов,
Так как стихи не лезут в шифррр
И стих становится чуть крррив). =)
ответить
avatar
morontt
avatar
Давно не залетал в эти края :) А для стихов нужно придумать рифмошифровальную машину, тогда криво не будет.
ответить
avatar
super_kakadu
avatar
Так я же вообще улетал на крррай света,
А с кррраю у света нету инета. =))
ответить
avatar
morontt
avatar
Точно, ты же писал об этом...
ответить
avatar
(⊙_⊙)
avatar
Комментарий удалён
ответить
avatar
morontt
avatar
Согласен. Та ещё вещь :)
ответить
avatar
weneedworld
avatar
отличнота!))
ответить
avatar
morontt
avatar
Слово хорошее :)
ответить
avatar
masterspammer
avatar
А неподвижная точка есть?
то есть чтоб 4 буквы были и ключом и шифровались сами в себя?
ответить
avatar
morontt
avatar
Ни одна буква не кодируется сама в себя.
ответить
avatar
dno
avatar
Отличная штука! :)
ответить
avatar
morontt
avatar
Сто пудов :)
ответить
65 комментариев Написать что-нибудь
Или войдите, чтобы не заполнять форму:
Адрес электронной почты нигде не отображается, необходим только для обратной связи.
Напрограммировано на Go 1.24.2, версия движка ecff48a