abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 22:44 | IT novinky

    IBM kupuje společnost HashiCorp za 6,4 miliardy dolarů, tj. 35 dolarů za akcii.

    Ladislav Hagara | Komentářů: 0
    dnes 15:55 | Nová verze

    Byl vydán TrueNAS SCALE 24.04 “Dragonfish”. Přehled novinek této open source storage platformy postavené na Debianu v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    dnes 13:44 | IT novinky

    Oznámeny byly nové Raspberry Pi Compute Module 4S. Vedle původní 1 GB varianty jsou nově k dispozici také varianty s 2 GB, 4 GB a 8 GB paměti. Compute Modules 4S mají na rozdíl od Compute Module 4 tvar a velikost Compute Module 3+ a předchozích. Lze tak provést snadný upgrade.

    Ladislav Hagara | Komentářů: 0
    dnes 04:44 | Nová verze

    Po roce vývoje od vydání verze 1.24.0 byla vydána nová stabilní verze 1.26.0 webového serveru a reverzní proxy nginx (Wikipedie). Nová verze přináší řadu novinek. Podrobný přehled v souboru CHANGES-1.26.

    Ladislav Hagara | Komentářů: 0
    dnes 04:33 | Nová verze

    Byla vydána nová verze 6.2 živé linuxové distribuce Tails (The Amnesic Incognito Live System), jež klade důraz na ochranu soukromí uživatelů a anonymitu. Přehled změn v příslušném seznamu. Tor Browser byl povýšen na verzi 13.0.14.

    Ladislav Hagara | Komentářů: 0
    dnes 04:22 | Nová verze

    Byla vydána nová verze 30.0.0 frameworku pro vývoj multiplatformních desktopových aplikací pomocí JavaScriptu, HTML a CSS Electron (Wikipedie, GitHub). Chromium bylo aktualizováno na verzi 124.0.6367.49, V8 na verzi 12.4 a Node.js na verzi 20.11.1. Electron byl původně vyvíjen pro editor Atom pod názvem Atom Shell. Dnes je na Electronu postavena celá řada dalších aplikací.

    Ladislav Hagara | Komentářů: 1
    dnes 04:11 | Nová verze

    Byla vydána nová verze 9.0.0 otevřeného emulátoru procesorů a virtualizačního nástroje QEMU (Wikipedie). Přispělo 220 vývojářů. Provedeno bylo více než 2 700 commitů. Přehled úprav a nových vlastností v seznamu změn.

    Ladislav Hagara | Komentářů: 0
    včera 23:22 | IT novinky

    Evropský parlament dnes přijal směrnici týkající se tzv. práva spotřebitele na opravu. Poslanci ji podpořili 584 hlasy (3 bylo proti a 14 se zdrželo hlasování). Směrnice ujasňuje povinnosti výrobců opravovat zboží a motivovat spotřebitele k tomu, aby si výrobky nechávali opravit a prodloužili tak jejich životnost.

    Ladislav Hagara | Komentářů: 6
    včera 16:11 | Nová verze

    Bylo oznámeno (cs) vydání Fedora Linuxu 40. Přehled novinek ve Fedora Workstation 40 a Fedora KDE 40 na stránkách Fedora Magazinu. Současně byl oznámen notebook Slimbook Fedora 2.

    Ladislav Hagara | Komentářů: 21
    včera 13:44 | Upozornění

    ČTK (Česká tisková kancelář) upozorňuje (X), že na jejím zpravodajském webu České noviny byly dnes dopoledne neznámým útočníkem umístěny dva smyšlené texty, které nepocházejí z její produkce. Jde o text s titulkem „BIS zabránila pokusu o atentát na nově zvoleného slovenského prezidenta Petra Pelligriniho“ a o údajné mimořádné prohlášení ministra Lipavského k témuž. Tyto dezinformace byly útočníky zveřejněny i s příslušnými notifikacemi v mobilní aplikaci Českých novin. ČTK ve svém zpravodajském servisu žádnou informaci v tomto znění nevydala.

    Ladislav Hagara | Komentářů: 29
    KDE Plasma 6
     (72%)
     (9%)
     (2%)
     (17%)
    Celkem 720 hlasů
     Komentářů: 4, poslední 6.4. 15:51
    Rozcestník
    Štítky: není přiřazen žádný štítek


    Vložit další komentář
    Luboš Doležel (Doli) avatar 13.8.2010 15:17 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
    Rozbalit Rozbalit vše Re: Pocket enigma
    By mě jen zajímalo, k čemu je to do mobilu dobré? :-)
    13.8.2010 15:22 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: Pocket enigma
    Co když bude někde v lese a bude nutně potřebovat dešifrovat zprávu z enigmy? :-)
    16.8.2010 09:35 zde | skóre: 9 | blog: Linuch | Brno
    Rozbalit Rozbalit vše Re: Pocket enigma
    No, v lese jsem nic dešifrovat nepotřeboval, ale v hospodě už jo :)
    Táto, ty de byl? V práci, já debil.
    13.8.2010 15:27 pc2005 | skóre: 38 | blog: GardenOfEdenConfiguration | liberec
    Rozbalit Rozbalit vše Re: Pocket enigma
    +1 za přepis 100kB zdrojáku do zdrojáku o 50.řádkách :-D.
    13.8.2010 16:58 void
    Rozbalit Rozbalit vše Re: Pocket enigma
    Píše, že je to 100kB projekt do VB; lze předpokládat, že mimo samotného kódu tam budou přibaleny i další soubory (a i ten kód asi bude zbytečně velký, pokud byl vytvořen nějakým průvodcem; krom toho tam mohou být komentáře apod.).
    13.8.2010 17:38 pc2005 | skóre: 38 | blog: GardenOfEdenConfiguration | liberec
    Rozbalit Rozbalit vše Re: Pocket enigma
    Vlastně ještě komprimovaný :-D.

    No jestli ty další soubory jsou interpret, tak možná ;-). Komentáře toho moc navíc nezaberou (zvlášť v komprimovaným zdrojáku).

    Ale jo, jestli byl grafickej, tak asi nějaký obrázky... Což ale nemění můj názor na efektivnost toho skriptu (i když je v pythonu).
    13.8.2010 15:34 SPM | skóre: 28
    Rozbalit Rozbalit vše Re: Pocket enigma
    to sprostý slovo na předposlednim řádku je tam úmyslně nebo to takhle nějak vyšlo? :)))
    16.8.2010 09:37 zde | skóre: 9 | blog: Linuch | Brno
    Rozbalit Rozbalit vše Re: Pocket enigma
    Nerozumím, jde o standardní nastavení, užívané 3. SS divizí Totenkopf :)
    Táto, ty de byl? V práci, já debil.
    16.8.2010 15:21 Václav HFechs Švirga | skóre: 26 | blog: HF | Kopřivnice
    Rozbalit Rozbalit vše Re: Pocket enigma
    Jestli bylo standardní nastavení 'do piče' [DO PI CE], tak se není pak čemu divit :-).
    Baník pyčo!
    multi avatar 13.8.2010 15:57 multi | skóre: 38 | blog: JaNejsemOdsut
    Rozbalit Rozbalit vše Re: Pocket enigma
    a jak mam neco zasifrovat? abych to pak mohl rozsifrovat
    16.8.2010 10:18 zde | skóre: 9 | blog: Linuch | Brno
    Rozbalit Rozbalit vše Re: Pocket enigma
    Dešifrování je stejné jako šifrování- Enigma je fakticky jen ROT13 + hromada permutací, které se po každém znaku mění.
    Táto, ty de byl? V práci, já debil.
    Jendа avatar 13.8.2010 16:29 Jendа | skóre: 78 | blog: Jenda | JO70FB
    Rozbalit Rozbalit vše Re: Pocket enigma
    S dovolením budu dál používat GPG :-).
    13.8.2010 18:40 mimi.vx | skóre: 37 | blog: Mimi.VX | Praha
    Rozbalit Rozbalit vše Re: Pocket enigma

    stale existuji zpravy z WW II sifrovane enigmou ktere jeste nikdo nerozsifroval ....

    USE="-gnome -kde";turris
    13.8.2010 18:52 pc2005 | skóre: 38 | blog: GardenOfEdenConfiguration | liberec
    Rozbalit Rozbalit vše Re: Pocket enigma
    No tak to buď je už nikdo dešifrovat nechce a nebo jsou furt vládním tajemstvím. Enigma jde dneska imho už dešifrovat obyčejným brutal force. A řekl bych, že z hlediska frekvenční analýzy taky není moc bezpečná. Ale stroj jako takovej je brutální :-D.
    13.8.2010 20:47 Jirka Keresteš | skóre: 12
    Rozbalit Rozbalit vše Re: Pocket enigma
    Enigma je AFAIK prave proti frekvencni analyze dost odolna, za valky to lustili tusim brute-forcem. Pekne to je popsany v Knize kodu a sifer od Singha.
    A physics book seems to be a mathematician's worst nightmare.
    13.8.2010 22:15 pc2005 | skóre: 38 | blog: GardenOfEdenConfiguration | liberec
    Rozbalit Rozbalit vše Re: Pocket enigma
    A jo (přečetl jsem si wikipedii), ale jen pokud se nebude šifrovat moc textu pro 5 a výš už je to problém. Ale na nějaký cluster nebo FPGA furt no problemo ;-).
    Luboš Doležel (Doli) avatar 13.8.2010 21:20 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
    Rozbalit Rozbalit vše Re: Pocket enigma
    Myslel jsem, že před nějakým rokem nebo déle byla akce, během které zbylé zprávy dovyluštili.
    14.8.2010 10:04 Radovan
    Rozbalit Rozbalit vše Re: Pocket enigma
    Ať koukám jak koukám, vidím počáteční nastavení kotoučů, ale nemůžu najít kde se nastavují prstence s písmeny! Takže pro ukázku jak Enigma funguje nebo pro děti na hraní je to fakt pěkné, ale pro luštění skutečných zpráv šifrovaných Enigmou nepoužitelné. Viz zde, prstenec 3 se otáčí na kroužku 7 s pružnou západkou... Přesný popis i s testovací zprávou je tady, akorát je z už roku 1930 pro civilní Enigmu, takže vojenské se nechytají kvůli jinému pořadí zapojení vstupních kontaktů ;-)
    14.8.2010 12:45 zde
    Rozbalit Rozbalit vše Re: Pocket enigma
    Viz Wiki, nastaveni prstencu je irelevantni. Staci je mit napevno a jen posouvat o dany offset pismena, kterymi zadavam nastaveni kotouce- vyjde to nastejno.
    14.8.2010 16:05 Radovan
    Rozbalit Rozbalit vše Re: Pocket enigma
    nastaveni prstencu je irelevantni

    Což je úplná blbost, a jestli tohle píše Wiki, tak pěkně kecá! Podívej se pořádně na ten obrázek který jsem odkazoval. Vnitřní kruh obsahuje propojky, na vnějším prstenci s písmeny (u starších verzí čísly) je ozub (u pozdních verzí i několik), který způsobí pootočení dalšího kotouče. Takže to vyjde nastejno jen pro prvních maximálně pětadvacet písmen, do prvního ozubu, pak se ti šifra rozhodí. Kdo nevěří ať tam běží, a buď si pořídí skutečnou Enigmu nebo dokonalý simulátor, a odzkouší si to sám ;-) Pro porovnání můžeš použít jednoduchý simulátor, který by měl odpovídat tomu prográmku nahoře:

    otevřený text zprávy: enigmabylnemeckysifrovacistrojpouzivanyvobdobidruhesvetovevalky
    jednoduchý simulátor: fqgahwjeahnnloqqutzvlnqjxfgxjtktmywwiavzjkwlyzktxmzlhxcbbtqcrhv
    posun 1. rotoru o +1: fqgahwjeahnnloqqutzvinqjxfgxjtktmywwiavzjkwlyzftxmzlhxcbbtqcrhv
    posun 1. rotoru o +7: fqgahwjeahnnlohgyaqbinqjxfgxjtktmywwiavzjpmahdftxmzlhxcbbtqcrhv
    posun 1. rotoru o -1: fqgahwjeahnnloqqutzvlhqjxfgxjtktmywwiavzjkwlyzkqxmzlhxcbbtqcrhv

    Prvním rotorem je myšlen ten úplně vpravo - vstupní, rozdíly jsou u skutečného simulátoru zvýrazněné, tak si zkus představit, nebo rovnou nasimulovat, co by ti to udělalo při dešifrování. Jistě, ono je to místy čitelné, ale když do toho zamícháš ještě další dva rotory (u námořní Enigmy tři) tak z toho máš po pár větách totální guláš, a ne zprávu s přesnými pokyny.
    Jestli je na Enigmě něco zbytečného, tak je to propojovací deska, která ztěžovala akorát její používání, pro luštitele v Bletchley Parku nebyla problém. Trochu víc srandy do toho vnesl Enigma Uhr, ale ten se objevil pozdě a moc se nepoužíval.
    16.8.2010 09:47 zde | skóre: 9 | blog: Linuch | Brno
    Rozbalit Rozbalit vše Re: Pocket enigma
    Note that although the ring settings (ringstellung) were a required part of the setup, they did not actually affect the message encryption because the rotors were positioned independently of the rings.
    Nojo, máš pravdu, asi fakt kecají. Jestli jsou posouvací čudlíky na těch prstencích a ne přímo na rotorech, tak to vliv na šifrování určitě má. Vypadá to na +3 řádky kódu :)

    Ta odkazovaná verze simulátoru neumí tenkej reflektor a 4 rotory.. nebo se mi to tak aspoň jeví.. ale pro odladění to snad bude dobrý. Na to byla nejlepší papárová enigma: http://mckoss.com/Crypto/Paper%20Enigma.pdf
    Táto, ty de byl? V práci, já debil.
    16.8.2010 19:20 Radovan
    Rozbalit Rozbalit vše Re: Pocket enigma
    Tu papírovou také znám, ale to je fakt jen hračka :-) Osobně pro důvěrnou korespondenci dávám přednost starému dobrému Vigenérovi v kapesním provedení (když teda nemám po ruce počítač s libovolným BASICem, tam je to otázka deset minut), pro kratší zprávy to stačí a u delších se dá šifrovat dvojitě. První heslo třeba 11 znaků, druhé 13, dohromady dají 143 znaky dlouhé a na to se nechytají ani Babbage s Kasiskim dohromady, pokud teda nebudu posílat román :-D A pokud stejná hesla nepoužiji opakovaně, samozřejmě.

    Posouvací mechanizmus Enigmy je vlastně dvouzvratná páka umístěná na dně skříně, na předním konci je deska o kterou se spodními konci tyček opírají klávesy, na zadním osa, na které jsou zavěšené odpružené západky. Ty jsou v základní poloze opřené spodním koncem o šasi a tím odkloněné ze záběru, aby se kotouči dalo volně otáčet, aretují je kladky (na obrázku oranžové) zapadající do vlnek na plechovém disku, vyčnívajícím skrz horní stěnu ven, vedle okének. Na tomhle disku je z pravé strany rohatka, do které ta západka při posunu zabírá. První rotor je jasný, ten se posouvá při každém stisku, o to se staré ta úzká západka úplně vpravo. Na levé straně rotoru, na vnějším okraji toho otočného prstence s písmeny je přišroubovaný ocelový kroužek se zářezem, který je na každém rotoru u jiného písmene. Po tom kroužku druhá a třetí západka kloužou, dokud se rotor nedostane do té správné polohy, kdy západka zapadne, zabere do rohatky na dalším rotoru a posune je oba společně.

    Právě na to pozor! Enigma má několik "vlastností", které citelně snižují počet možných kombinací. Taková běžně známá je ta, že díky reflektoru se každé písmeno může zašifrovat do některého z pětadvaceti ostatních, ale nikdy nevyjde stejné, jak je to možné třeba u toho Vigenéra. Méně známé, ale o to zajímavější, je dvojí posunutí druhého rotoru (double stepping). Vychází právě z funkce toho posouvacího mechanizmu, kde západka zabírá do dvou rotorů současně a posunuje je společně... Pro příklad, kdyby všechny rotory měly zářez odpovídající písmenu B v okénku, vypadalo by to takhle:

    1: A A A
    2: A A B
    3: A B C
    4: B C D
    5: B C E
    6: B C F
    ...

    Není to jako u tachometru, kde by druhý rotor v poloze B čekal celou otočku toho prvního, tady se prostě posune společně se třetím hned při příštím stisku klávesy!

    Ten simulátor umí nejen Enigmu M3, jsou tam čtyři různé verze, námořní M4, původní Enigma I (jediný simulátor ve kterém se mi podařilo rozluštit tu testovací zprávu z roku 1930), a dokonce Enigma G, používaná Abwehrem! Ta měla trochu odlišnou konstrukci a zcela nekompatibilní rotory s jiným rozmístěním kontaktů a spoustou posouvacích zářezů, na rozdíl od armádních a námořních, kterých se dochovaly spousty, je to obrovská rarita. V chodu vypadá moc zajímavě, právě proto že rotory se posunují mnohem častěji než na klasické Enigmě.

    Ještě mě napadá jeden detail k té námořní M4, ta má sice čtyři kotouče, ale jako čtvrtý se používaly speciální, které se neotáčely! Mechanizmus té M4 je jinak shodný s M3, má také jen tři západky, liší se jen tenkým reflektorem.
    17.8.2010 16:40 zde | skóre: 9 | blog: Linuch | Brno
    Rozbalit Rozbalit vše Re: Pocket enigma
    Přidán parametr pro 'ringstellung', a taky jsem našel že 3-rotorová enigma měla i reflektor 'A', tak jsem to tam taky přidal..

    K louskání vigenera: obvykle jde odhadnout fráze plaintextu, která je aspoň o 1-2 znaky delší než klíč, takže louskání je celkem snadné. Délku klíče jsem nikdy určovat nemusel, prostě jsem zkoušel všechny možnosti.. Dvojité šifrování různými klíči s nesoudělnou délkou je dobrý nápad, pro mě novinka.
    Táto, ty de byl? V práci, já debil.
    18.8.2010 21:40 Radovan
    Rozbalit Rozbalit vše Re: Pocket enigma
    Tak jsem prohrabal archiv a zahlédl, že reflektory u čtyřrotorové M4 prý byly otočné, ale zmiňuje se o tom jen jeden zdroj! Já si nic takového odjinud nepamatuji, myslel jsem že reflektory byly pevné a nastavoval se jen tenký rotor (ne že by zrovna moje paměť byla něco, na co se dá stoprocentně spolehnout :-D). Zajímavý byl reflektor D, ten se dal zapojit libovolně pomocí kablíků, také dost neobvyklá věc, mám pocit že s tím si na konci války v Bletchley Parku už neporadili.

    Ty časté fráze se používaly i na Enigmu, je to docela dobrá metoda když člověk ví co má hledat. Často se takhle podařilo rozluštit aspoň část zprávy.

    U těch dvou klíčů jde o to, aby jejich měly co největší společný násobek (nejvhodnější jsou prvočísla, ale to zase zjednodušuje jejich případné hledání), výsledek je podobný jako při použití jednoho hesla s velkou délkou. Má to ale proti němu jednu nevýhodu, dešifrovat se musí hesly v opačném pořadí než se šifrovalo, jinak vyjde nesmysl (šifrování: hesla A,B - dešifrování: B,A). Vícenásobné šifrování se používalo běžně, ale většinou to byla kombinace více šifer, třeba transpozice/substituce/transpozice. Vypadá to bezpečně, ale Němci to našemu odboji celkem běžně luštili :-(

    No, tak mě to inspirovalo, že jsem konečně začal vyrábět vlastní simulátor té Enigmy, už jsem se na to párkrát chystal a teď mám aspoň pořádný důvod ;-)
    6.9.2010 15:11 Radovan
    Rozbalit Rozbalit vše Re: Pocket enigma
    Nějaký čas trvalo než jsem to po chvilkách poslepoval, ale je to tu. Na padesát řádků jsem se sice nevešel, má to třikrát tolik, zato je tam spousta pokynů a kontrol chybného zadání, takže doufám v slušnou blbuvzdornost, aby obsluhu zvládl i člověk který o Enigmě skoro nic neví ;-)
    
    10 PRINT "+-----------------------------------------------+"
    20 PRINT "| Simulátor německého šifrovacího stroje ENIGMA |"
    30 PRINT "|       v1.0 - vojenské modely I, M3, M4        |"
    40 PRINT "+-----------------------------------------------+"
    
    100 DIM p$(10),q$(10),o$(10),r$(4),k$(4),tr(4),op(4),ov(4)
    110 DEF FNv$(w$)=CHR$(ASC(w$)-(w$>="a" AND w$<="z")/(1>0)*32)
    120 DEF FNn(w$)=w$<"A" OR w$>"Z"
    
    200 READ s$:RESTORE
    210 FOR i=0 TO 10
    220     READ q$(i),o$(i):p$(i)=q$(i)
    230     FOR j=1 TO 26
    240         MID$(p$(i),ASC(MID$(q$(i),j,1))-64)=CHR$(j+64)
    250     NEXT j
    260 NEXT i
    270 FOR i=0 TO 4
    280     READ r$(i)
    290 NEXT i
    300 FOR i=0 TO 4
    310     READ k$(i)
    320 NEXT i
    330 mo=3
    
    400 DATA "ABCDEFGHIJKLMNOPQRSTUVWXYZ"," "
    410 DATA "EKMFLGDQVZNTOWYHXUSPAIBRCJ","Q"
    420 DATA "AJDKSIRUXBLHWTMCQGZNPYFVOE","E"
    430 DATA "BDFHJLCPRTXVZNYEIWGAKMUSQO","V"
    440 DATA "ESOVPZJAYQUIRHXLNFTGKDCMWB","J"
    450 DATA "VZBRGITYUPSDNHLXAWMJQOFECK","Z"
    460 DATA "JPGVOUMFYQBENHZRDKASXLICTW","ZM"
    470 DATA "NZJHGRCXMYSWBOUFAIVLPEKQDT","ZM"
    480 DATA "FKQHTLXOCBJSPDZRAMEWNIUYGV","ZM"
    490 DATA "LEYJVCNIXWPBQMDRTAKZGFUHOS"," "
    500 DATA "FSOKANUERHMBTIYCWLQPZXVGJD"," "
    510 DATA "EJMZALYXVBWFCRQUONTSPIKHGD"
    520 DATA "YRUHQSLDPXNGOKMIEBFZCWVJAT"
    530 DATA "FVPJIAOYEDRZXWGCTKUQSBNMHL"
    540 DATA "ENKQAUYWJICOPBLMDXZVFTHRGS"
    550 DATA "RDOBJNTKVEHMLFCWZAXGYIPSUQ"
    560 DATA "B123","AAA","AAA",""
    570 DATA "BJELRQZVJWARXSNBXORSTNCFME"
    
    1000 PRINT " Zadej sestavení kotoučů (Einstellung)"
    1010 PRINT "ENIGMA I - například A213"
    1020 PRINT " 1. znak = typ reflektoru: A (Umkehrwalze)"
    1030 PRINT " 2.-4. znak = rotory zleva doprava: 1 až 3 (Walzen)"
    1040 PRINT "ENIGMA M3 - například B213"
    1050 PRINT " 1. znak = typ reflektoru: B,C (Umkehrwalze)"
    1060 PRINT " 2.-4. znak = rotory zleva doprava: 1 až 8 (Walzen)"
    1070 PRINT "ENIGMA M4 - například CG864"
    1080 PRINT " 1. znak = typ 'tenkého' reflektoru: B,C (Umkehrwalze 'dünn')"
    1090 PRINT " 2. znak = typ 'tenkého' rotoru: B=Beta,G=Gamma (Griechenwalze)"
    1100 PRINT " 3.-5. znak = rotory zleva doprava: 1 až 8 (Walzen)"
    1200 PRINT "Aktuální nastavení: ";k$(0)
    1210 PRINT "Zapiš novou konfiguraci nebo nic pro ponechání:"
    1220 INPUT "",t$:GOSUB 7000:IF LEN(t$)=0 THEN t$=k$(0)
    1230 mo=LEN(t$)-1:IF mo<3 OR mo>4 THEN PRINT "*** Chybná konfigurace!"+CHR$(7):GOTO 1200
    1240 IF LEFT$(t$,1)<"A" OR LEFT$(t$,1)>"C" THEN PRINT "*** Špatný typ reflektoru!"+CHR$(7):GOTO 1200
    1250 tr(0)=ASC(LEFT$(t$,1))-65
    1260 IF mo=3 THEN GOTO 1400
    1300 IF tr(0)=0 THEN PRINT "*** ENIGMA M4 nemohla používat reflektor A!"+CHR$(7):GOTO 1200
    1310 tr(0)=tr(0)+2
    1320 z$=MID$(t$,2,1)
    1330 IF z$<>"B" AND z$<>"G" THEN PRINT "*** Špatný typ 'tenkého' rotoru!"+CHR$(7):GOTO 1200
    1340 tr(1)=(ASC(z$)-61)/5+8
    1400 FOR i=mo-2 TO mo
    1410     z$=MID$(t$,i+1,1)
    1420     IF z$<"1" OR z$>"8" THEN PRINT "*** Špatný typ rotoru!"+CHR$(7):GOTO 1200
    1430     tr(i)=VAL(z$)
    1440 NEXT i
    1450 k$(0)=t$
    
    2000 PRINT " Zadej nastavení prstenců (Ringstellung),"
    2010 PRINT "například EZY pro ENIGMU M3 nebo AEZY pro ENIGMU M4:"
    2020 PRINT "Aktuální nastavení: ";k$(1)
    2030 PRINT "Zapiš novou hodnotu nebo nic pro ponechání:"
    2040 INPUT "",t$:GOSUB 7000:IF LEN(t$)=0 THEN t$=k$(1)
    2050 IF LEN(t$)<>mo THEN PRINT "*** Chybná délka!"+CHR$(7):GOTO 2000
    2060 FOR i=1 TO mo
    2070     z$=MID$(t$,i,1)
    2080     IF FNn(z$) THEN PRINT "*** Chybné nastavení!"+CHR$(7):GOTO 2000
    2090     op(i)=ASC(z$)-65
    2200 NEXT i
    2210 k$(1)=t$
    
    3000 PRINT " Zadej počáteční postavení rotorů (Grundstellung),"
    3010 PRINT "například XPI pro ENIGMU M3 nebo FXPI pro ENIGMU M4"
    3020 PRINT "Aktuální otočení: ";k$(2)
    3030 PRINT "Zapiš novou pozici nebo nic pro ponechání:"
    3040 INPUT "",t$:GOSUB 7000:IF LEN(t$)=0 THEN t$=k$(2)
    3050 IF LEN(t$)<>mo THEN PRINT "*** Chybná délka!"+CHR$(7):GOTO 3000
    3060 FOR i=1 TO mo
    3070     z$=MID$(t$,i,1)
    3080     IF FNn(z$) THEN PRINT "*** Chybné nastavení!"+CHR$(7):GOTO 3000
    3090     ov(i)=ASC(z$)-65
    3200 NEXT i
    3210 k$(2)=t$
    
    4000 PRINT " Zadej propojovací kabely (Steckerverbindungen),"
    4010 PRINT "max. 13 dvojic písmen, oddělených jednou mezerou,"
    4020 PRINT "například AF ZM XV WN CP KL"
    4030 PRINT "Aktuální nastavení: ";k$(3)
    4040 PRINT "Zapiš nové propojení, tečku pro zrušení nebo nic pro ponechání:"
    4050 INPUT "",t$:GOSUB 7000:IF LEN(t$)=0 THEN GOTO 5000
    4060 IF LEFT$(t$,1)=" " THEN t$=MID$(t$,2):GOTO 4060
    4070 IF RIGHT$(t$,1)=" " THEN t$=LEFT$(t$,LEN(t$)-1):GOTO 4070
    4080 IF LEFT$(t$,1)="." THEN RESTORE:READ s$:GOTO 5000
    4090 RESTORE:READ s$
    4100 t$=t$+" "
    4110 PRINT "Zapojuji: ";
    4120 FOR i=1 TO LEN(t$) STEP 3
    4130     PRINT MID$(t$,i,3);
    4140     IF FNn(MID$(t$,i,1)) OR FNn(MID$(t$,i+1,1)) THEN PRINT " *** Chybný znak!"+CHR$(7):GOTO 4000
    4150     x=ASC(MID$(t$,i,1))-64:y=ASC(MID$(t$,i+1,1))-64
    4160     IF MID$(s$,x,1)<>CHR$(x+64) OR MID$(s$,y,1)<>CHR$(y+64) THEN PRINT " *** Pozice už je obsazena!"+CHR$(7):GOTO 4000
    4170     w$=MID$(s$,x,1):MID$(s$,x)=MID$(s$,y,1):MID$(s$,y)=w$
    4180 NEXT i:PRINT
    4190 k$(3)=t$
    
    5000 PRINT " Napiš text pro (de)šifrování: "
    5010 INPUT "",t$:GOSUB 7000:IF LEN(t$)=0 THEN t$=k$(4)
    5020 FOR i=1 TO LEN(t$)
    5030     z$=MID$(t$,i,1)
    5040     IF FNn(z$) THEN GOTO 5600
    5100     FOR j=1 TO LEN(o$(mo-1))
    5110         IF ov(mo-1)+65<>ASC(MID$(o$(tr(mo-1)),j,1)) THEN GOTO 5150
    5120         ov(mo-2)=(ov(mo-2)+1)MOD 26
    5130         ov(mo-1)=(ov(mo-1)+1)MOD 26
    5140         GOTO 5190
    5150     NEXT j
    5160     FOR j=1 TO LEN(o$(mo))
    5170         IF ov(mo)+65=ASC(MID$(o$(tr(mo)),j,1)) THEN ov(mo-1)=(ov(mo-1)+1)MOD 26
    5180     NEXT j
    5190     ov(mo)=(ov(mo)+1)MOD 26
    5300     PRINT "|";
    5310     FOR j=1 TO mo
    5320       PRINT CHR$(ov(j)+65)+"|";
    5330     NEXT j
    5340     PRINT " "+z$;
    5400     z$=MID$(s$,ASC(z$)-64,1)
    5410     FOR j=mo TO 1 STEP -1
    5420         z$=CHR$(65+(ASC(MID$(q$(tr(j)),1+(ASC(z$)+ov(j)-op(j)-13)MOD 26,1))-ov(j)+op(j)-13)MOD 26)
    5430     NEXT j
    5440     z$=MID$(r$(tr(0)),ASC(z$)-64,1)
    5450     FOR j=1 TO mo
    5460         z$=CHR$(65+(ASC(MID$(p$(tr(j)),1+(ASC(z$)+ov(j)-op(j)-13)MOD 26,1))-ov(j)+op(j)-13)MOD 26)
    5470     NEXT j
    5480     z$=MID$(s$,ASC(z$)-64,1)
    5490     PRINT " = "+z$:MID$(t$,i)=z$
    5600 NEXT i
    5700 PRINT t$:k$(4)=t$
    5710 PRINT "Konečné postavení rotorů: ";
    5720 FOR i=1 TO mo
    5730     z$=CHR$(ov(i)+65)
    5740     PRINT z$;
    5750     MID$(k$(2),i)=z$
    5760 NEXT i
    5770 PRINT
    
    6000 INPUT "Pokračovat v práci? (A/N) ",t$:t$=t$+" "
    6010 IF LEFT$(FNv$(t$),1)<>"N" THEN GOTO 1000
    6020 PRINT "(C)2010 FARAON"
    6030 END
    
    7000 FOR i=1 TO LEN(t$)
    7010     MID$(t$,i) = FNv$(MID$(t$,i,1))
    7020 NEXT i
    7030 RETURN
    

    Program je odladěný v Chipmunk Basicu a QBasicu, ale doporučuji GWBasic v DOSBoxu podtaktovaném na nějakých 100 cyklů, to je pak jen o málo rychlejší než skutečná Enigma :-D Pokud se END na řádku 6030 nahradí příkazem SYSTEM, tak se navíc interpret sám ukončí (případně EXIT, QUIT, BYE, podle toho co kdo použijete).
    Zprávu není nutné napsat celou najednou, s ohledem třeba na ty microsoftí Basicy, které na vstupu poberou jen 255 bytů, proto si program pamatuje (a vypisuje) stav, a s dalším kouskem textu pokračuje tam kde naposledy skončil.
    Ještě tam možná dodám model Tirpitz, když bude čas a dohledám všechny odlišnosti, zatím chystám port na ZX Spectrum a Commodore 64... :-)
    Přidám jednu zajímavost, čtyřrotorový model M4 může emulovat třírotorový M3, kombinace tenkého reflektoru B a tenkého kotouče Beta s prstencem v poloze A a nastavení A odpovídá běžnému reflektoru B v M3, tenký reflektor C a tenký kotouč Gamma se stejným nastavením zase dohromady dají běžný reflektor C.
    15.9.2010 22:24 Radovan
    Rozbalit Rozbalit vše Re: Pocket enigma
    Stará pravda říká, že dokonale blbuvzdorný program neexistuje, protože vždycky se najde ještě větší blb, takže Service Pack 1 :-D
    
    30 PRINT "|       v1.1 - vojenské modely I, M3, M4        |"
    
    4080 IF LEFT$(t$,1)="." THEN PRINT "Odpojuji vše.":RESTORE:READ s$:k$(3)="":GOTO 5000
    4090 t$=t$+" ":IF LEN(t$)<3 THEN GOTO 5000
    4100 RESTORE:READ z$
    
    4120 FOR i=1 TO LEN(t$)-2 STEP 3
    4130     MID$(t$,i+2)=" ":PRINT MID$(t$,i,3);
    
    4160     IF MID$(z$,x,1)<>CHR$(x+64) OR MID$(z$,y,1)<>CHR$(y+64) THEN PRINT " *** Pozice už je obsazena!"+CHR$(7):GOTO 4000
    4170     w$=MID$(z$,x,1):MID$(z$,x)=MID$(z$,y,1):MID$(z$,y)=w$
    
    4190 s$=z$:k$(3)=t$
    

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.