Софтуерна реализация на машината за криптиране и декриптиране Enigma
The Enigma Enciphering and Deciphering Machine /емулатор/
(Криптиране и декриптиране/Encryption and Decryption)
Софтуерна реализация на военната машина ЕНИГМА (асембл. блок и кодът на Visual Basic)
Софтуерна реализация на машината ЕНИГМА (профес. версия) (асембл. блок и кодът на Visual Basic)
възможно е бинарните файлове да изискват на компютърът ви да е инсталирана библиотеката Microsoft's Visual Basic 6.0 Runtime Library
Истинската машина е била използвана през втората световна война, но не и по късно. Вярвало се че кодът и е неразбиваем, както се говори и за съвременното 128 битово криптиране, но разбира се това не е така, защото криптираните с нея съобщения са били разбити с използването на друга машина. Съвременните технологии ни дават възможността да създаваме софтуерни интерпретации на тогавашната механична машина. Лично аз не се доверявам на 128 и 512 битовото кодиране, и ако искам да си скрия нещичко (все пак съм офицер), си използвам 32768 битово криптиране, защото добре знам, че в днешно време скоростта на криптиране и декриптиране е мнооого висока. В миналото са били необходими само двама души за по-лесно боравене и огромни усилия за прихващане на радио-сигналът, и много късмет за залавянето на механична ЕНИГМА машина. В днешно време всеки може да направи софтуерна реализация на такава машина. За софтуерното разработване на публикуваната тук е използван езикът на Microsoft Visual Basic, но разбира се много по-лесно компактен модел на тази машина може да бъде създаден и на Assembly език. Ако сте си направили машина за декриптиране в края на страницата има няколко секретни съобщения за разбиване, в противен случай може да използвате Microsoft Visual Basic версията, може да погледнете и на символната последователност и замислено да кажете Хмммм...
ЕНИГМА
Електрическа схема на Енигма, показваща къде протича ток, когато буквата 'A' се шифрира с буквата 'D'. 'D' също може да се шифрира като 'А', но 'А' никога не може да се шифрира като 'А'
Механизмът се състои от 26 лампички, клавиши, ключове и електрически схеми вътре в роторите. Токът преминава от батерията (1) през превключвателя (2) в комутационния панел (3). Комутационният панел позволява сигналът да премине от клавиатурата (2) до неподвижното входно колело (4). По-нататък токът преминава през щекер (3), в конкретния пример неизползван, входното колело (4) и схемата на съединение на три (в армейския модел) или четири (във военноморския модел) ротора (5), от където влиза в рефлектора (6). Рефлекторът връща тока обратно през роторите и входното колело, но вече по друг път, после през щекер 'S', съединен с щекер 'D', през друг превключвател (9), като захранва лампичката.
ЕНИГМА-шифриращо действие
Шифриращото действие на Енигма е показано за два последователно натиснати клавиша — токът тече през роторите, „отразява” се от рефлектора, след което отново преминава през роторите.
Забележка: Със сиви линии са показани другите възможни електрически вериги във всеки ротор.
За повече информация относно механичното машина и картинки щракнете тук...
ЕНИГМА ПРОФЕСИОНАЛНАТА ВЕРСИЯ
ЕНИГМА
Тук съм публикувал инструкции за работа САМО с основната Basic Enigma машина:
===========================================================================================
Как да си криптираме съобщение като използваме тази софтуерна реализация на машината ENIGMA:
-------------------------------------------------------------------------------------------
1. Първо натиснете бутонът "Reset Enigma".
2. Уверете се, че е избрана опцията "Encrypt".
3. Като използвате виртуалната клавиатура напишете съобщение.
4. Препишете си на хартия полученият резултат.
===========================================================================================
==================================================================================
Как да декриптирате с използването на софтуерната реализация на машината ENIGMA:
----------------------------------------------------------------------------------
1. Натиснете бутонът "Reset Enigma".
2. Уверете се, че е избрана отметката "Decrypt".
3. Погледнете върху лисчето където сте си преписали съобщението.
4. Препечатайте криптираният текст като използвате виртуалната клавиатура.
5. Би следвало да си възстановите оригиналното съобщение!
==================================================================================
Разбира се, че можете да използвате командите Cut и Paste, но докато си пишете, ще трябва всеки път да натискате клавишът Enter в текстовото поле "Source". При един такъв подход е достатъчен и само един човек.
==================================================================================
Публикуваното по-долу съобщение е криптирано с ENIGMA PRO без да е използвана парола - колелцата не са кръстосани. Количеството криптиран текст би следвало да е достатъчно за да направи лексикалният анализ дори без поглед върху първоизточника.
---START-ENIGMA-MESSAGE---
#LX.Y`38jjZ_FK/4VTVkKgoiIFtibqGI(p'=K /E
cC@jADS~EQ!w$01U(_OxJZHC3esN.Ly,v3^_=~
",jucf!S(MQ YM0g80AGjLrFLSKp2Iypv(wO.sl-
?Ebd`WCC//C-@eB?qrX/6xlBOU9dEUBGpNiK,5@
a1!EIcx(ktzp'V)RBMlB$eDVY`FhfTKf4DpeviT_
^(6p'J`b/ H%6bA/Db%w^0ff 16~Z2eWKIM3iqbV
bw_2)5$?"',J~WX!0Nr5VvGVVDDF54NGzkKWXYt
dO9t(%I$'^?`~'=z^xC"ZuVn/Rkm44SbP_GZCVHE
D1zpBm(b^*!!u'Ov9-`ccSif-`
----END-ENIGMA-MESSAGE---- |
С незначителни усилия това криптиране може да бъде разбито дори с помощта на програмируем калкулатор (аз все още ползвам за изчисления логаритмична линийка и тригонометрични таблици;) Но ако сте добър програмист, желаете да се запознаете с историята на криптирането и начините по които се работи с подобни средства,... това което съм публикувал ще е една добра отправна точка за игра и експерименти.
Няма да е особено трудно да се пренапише на друг програмен език [C#.NET] или да се оптимизира софтуерният код на програмата ENIGMA PRO по начин такъв, че да прави защитата с парола още по сериозна чрез премесване на колелцата.
Разчитам на помощта на програмистите и ентусиастите за доработка и на потребителите за изказване на мнения.
Планирани проекти над които се работи: Secure Chat/File Transfer Machine /с възможностите на Скайп/
Published by Daniel Denev- the president of PhotonSoft Ltd.