Home
Delphi Vordiplomsprogramm Enigma
Contents
1. Benutzer amp Programmierhandbuch 2 2 3 Steckpl tze Funktionsbeschreibung Es sollen drei Steckpl tze mit je einem festen Rotor geben Ans tze zur Umsetzung Die naheliegendste Realisierung besteht darin drei feste Steckpl tze zu implementieren Steckplatz vom Typ TRotor Steckplatz2 vom Typ TRotor und den dritten Steckplatz ebenso vom Typ TRotor Bei dieser Implementierung gibt es allerdings einen gro en Nachteil Es muss st ndig herausgefunden werden wel cher Rotor in welchem Steckplatz steckt daraus folgt dann erst welcher Rotor berhaupt verwendet wird Auch problematisch ist der umgekehrte Fragestellung In welchem Steckplatz steckt eigentlich welcher Rotor Mithilfe eines Case Verteilers ist es zwar relativ leicht diese Abfragungen durchzuf hren Aber diese Informationen werden im Programmablauf sehr oft ben tigt Die permanente Pr fung ist schlicht weg zu Zeitaufwendig und auch unhandlich Ein eleganterer Umsetzungsansatz w re wohlm glich ein Array mit drei Werten repr sentieren Steck pl tze vorzusehen und dann sprichw rtlich in jeden Steckplatz einen Rotor Reinzustecken also abzu speichern Sehr komfortabel kann mit dieser Version ermittelt werden welche Rotoren verwendet wer den Au erdem kann das komplette Array bergeben werden womit dann alle Rotoren bekannt w hren Auch bekannt ist die Zuordnung von Rotor zu Steckplatz und Steckplatz zu Rotor 2 2 4 Rotoren Funktionsbeschreibung Die Ro
2. 2 2 3 Steckpl tze 2 3 drunter ee 13 2 2 4 Rotoren he 2 un Sasha et Belt art 13 2 3 Realisierungsbeschreibung_ EN ee rin 14 2 3 1 Grunds tzliches a a De hate 14 2 32 Programmabl ufe 14 Programm Start Programm Ende Datei konvertieren Formular Einstellungen ffnen Plugboard ndern Einstellungen speichern Ringe initialisieren 2 3 3 Chifftier ng 2 1 2 2 ne want set nee 16 2 4 Memory Check bersicht _____________ 22 222222 17 3 Datenstrukturen 18 3 1 Einstellungen__________ u BEN EEE EUER 18 3 2 Rotoren bzw Ringe _____ _ BE EEE 18 4 Programmorganisationsplan 19 3 Programmtests 20 6 nderungen 23 6 1 am Quellcode ________ u I SAETTA 23 6 2 an der Dokumentation___ 2 ETEENI a I 23 Benutzer amp Programmierhandbuch I Benutzerhandbuch 1 Ablaufbedingungen CPU mind Pentiuml mit 200 MHz Arbeitsspeicher mind 32 MB Monitor 17 oder 19 Monitor Aufl sung 1024 x 768px optimal Betriebssystem Windows XP 2000 98SE 2 Programminstallation Die Enigma braucht nicht installiert zu werden Es ist lediglich notwendig den Ordner Enigma von der beilie genden CD auf die Festplatte zu kopieren Legen Sie dazu die CD in das CD Rom Laufwerk Ihres Computers ffnen Sie den Arbeitsplatz und w hlen Sie Ihr CD Rom Laufwerk an Klicken Sie mit der rechten Maustaste auf den Ordner Enigma Es ffnet sich ein Kontext Men W hlen Sie den Eintrag Ko
3. l Vgl Il 3 2 Rotoren Ringe 17 Enigma 3 Datenstrukturen 3 1 Einstellungen Der Datentyp TPlugboard besteht aus einem Array in welche Tabe A Z m einzelne Buchstaben abgespeichert werden Das Array TPlugboard array Tabc of char kann von A bis Z durchlaufen werden Dieser Datentyp stellt sowohl das Plugboard als auch die Umkehrwalze dar TSteckNr 1 3 Der Datentyp TSteckplatz ist ein Array und repr sentiert die TRotorNr 1 5 drei St ckpl tze der Enigma Maschine Zu jedem Steckplatz TSteckplatz array TSteckNr of TRotorNr wird die Information festgehalten welcher Rotor in welchem Steckplatz steckt Mithilfe dieser Zuordnung ist es m glich TKey string 3 festzustellen welcher Rotor im Einzelfall angesprochen wer den muss TEinstellungen record Die Anfngstellung der Rotoren wird in dem Datentyp Tkey Plugboard TPlugboard festgehalten Es handelt sich um einen dreistelligen String Steckplatz TSteckplatz Alle Teileinstellungen sind in dem Record TEinstellungen Key TKey zusammengefasst UmwWalze TPlugboard end Tplugboard A B C D F G I KL VIN RIZ IL X F G I T C I lie oo aj eo gt r Toll lee Ekal lt lt EJE ol C lt WIN 3 2 Rotoren bzw Ringe Die Rotoren werden als Ringstruktur verwaltet Ein Ring be steht aus Recordelementen welcher wiederum aus
4. verschl sselt Ablauf einer Chiffrierung 1 Plugboard Ein Plugboard kann Symbole miteinander vertauschen In diesem Beispiel gilt amp Y und Y amp die beiden brigen Symbole bleiben unverschl sselt Geben Sie beispielsweise amp ein dann ist es nach dem Plugboard ein VY 2 Rotor Bei einem Rotor gibt es klar definierte Paare Hier gilt Y und 4 und VY 4 und V Das Y wird zum 4 3 Umkehrwalze Die Umkehrwalze vertauscht alle Symbole miteinander Dadurch wird nie ein Symbol auf sich selbst abgebildet Es gilt 4 amp amp und V V amp wird demnach zu amp 4 Rotor Nach der Umkehrwalze wird wieder durch den Rotor verschl sselt amp wird zu 5 Plugboard Zum Schluss wird das Symbol durch das Plugboard chiffriert bleibt 6 Das Symbol amp wird also insgesamt zu einem Als letz ten Verschl sselungs Trick wird eine Scheibe des Rotors um eine Stelle weitergedreht Dadurch ergeben sich nach jeder Verschl sselung neue Paare Die Codierung eines Symbols ist jetzt von der Anzahl der bereits codierten Symbole abh ngig Der Codierungsvorgang ist abgeschlossen Bei der Enigma gibt es f nf verschiedene Rotoren aus denen man drei ausw hlen kann Die drei Rotoren werden einfach hin tereinander geschaltet Jeder Rotor besitzt eine beliebig ver n derbare Anfangsposition Das Plugboard ist individuell einstell bar Ausserdem gibt es zwei Umkehrwalzen von denen man eine
5. ausw hlen kann Alle Verschl sselungseinheiten der Enigma sind also individuell einstellbar Benutzer amp Programmierhandbuch 4 2 Die Enigma bersicht Nach dem Programmstart sehen Sie folgendes Fenster Eingabe und Ergebnis AEIFIEEEE xi im direkten Vergleich BEISPIELTEXT PGFEZEPHJXJIK Eingabefeld Eingabe BEISPIELTEXT Ergebnisfeld Doppelklick zeigt das Ergeb nis dauerhaft an GFEZEPHJXJE Einstellungen Rotoren zur cksetzen aktuelle Einstellungen Datei konvertieren anzeigen und ver ndern Beenden Textdatei mit aktuellen Einstellungen in eine andere Datei chriffieren Programm beenden von Vorne beginnen oder einen Code decodieren 4 3 Das Eingabefeld Geben Sie im Eingabefeld einen beliebigen Text ein z B BEISPIELTEXT Sie erhalten sofort die codierte Ausgabe im Ergebnisfeld Bitte beachten Sie dass ausschlie lich Buchstaben von A bis Z zugelassen sind alle anderen Tasten sind im Eingabefeld gesperrt Nat rlich k nnen Sie den Cursor bewegen und auch Zeichen l schen aber berichtigen k nnen Sie auf diese Weise nichts Der Grund ist Folgender die Rotoren der Enigma Maschine drehen sich bei jedem g ltigen Buchstaben weiter Der zuerst eingegebene Buchstabe wird auch als erster Buchstabe codiert Den zweiten Buchstaben den Sie eingeben egal ob vor oder nach dem Ersten wird als zweiter Buchstabe codiert Es wird also genaugenommen die Eingaber
6. das gesonderte Kapitel Fehlermeldungen 4 7 Datei konvertieren Die Schaltfl che Datei konvertieren erm gtlicht Ihnen den Inhalt einer Textdatei zu codieren und diesen Code in eine andere Textdatei zu schreiben Die Quelldatei darf nur Buchstaben von A bis Z enthalten Gro und Kleinschreibung ist hierbei unwichtig Bereiten Sie eine Textdatei vor in welcher sich lediglich aneinandergereihte Buchstaben befinden Speichern Sie diese Datei ab z B als Quelle txt mit dem Inhalt DiesIstEineQuelldatei Jetzt klicken Sie die Schaltfl che Datei konvertieren an Es ffnet sich ein ffnen Dialog W hlen Sie die zu codierende Datei aus also bei spielsweise die Datei Quelle txt Best tigen Sie mit der Schaltfl che ffnen Es ffnet sich ein Speichern Dialog Jetzt vergeben Sie einen neuen Dateinamen zum Beispiel Ziel txt Best tigen Sie auch hier aber diesmal mit Hilfe der Schaltfl che Speichern Sie bekom Enigma xj men nebenstehende Erfolgsmeldung zu sehen wenn alles ge klappt hat Um das Fenster mit der Erfolgsmeldung zu Die Datei wurde erfolgreich konvertiert und angelegt schlie en dr cken Sie die Returntaste Es k nnen auch hier verschiedene Fehlermeldungen auftre ten Beachten Sie hierzu bitte das gesonderte Kapitel Feh lermeldungen Benutzer amp Programmierhandbuch 4 8 Voreinstellungen konfigurieren Wenn Sie die Enigma starten ist diese bereits mit Einstellungen verso
7. einer In TRotor A Z fokomponente Info vom Typ TRotor und einer Nextkom ponente Next vom Typ PRing besteht Die Infokomponente PRing TRing beinhaltet die Buchstaben der Rotoren In der Nextkompo TRing record nente steht die Speicheradresse des n chsten Ringabschnitts Next PRing Eine Grafik veranschaulicht den Aufbau eines Rings Info TRotor end Das Element mit der Infokomponente A zeigt auf das Element I 18 Benutzer amp Programmierhandbuch 4 Programmorganisationsplan foEinstellungen foMain foMemCheck Unit zu dem Unit zu dem Unit zu dem Formular von Hauptformular Formular Mem den Einstellun Check gen Programmtest lgMain Hauptlogik der Enigma lgEinst Logik der Ein Text stellungen Dateien lgRotor Logik der Ro toren unTypDatei unlniDatei unRing Funktionen zur Funktionen zur Funktionen Benutzung von Benutzung von zum Erstellen typerisierten Ini Dateien einer Ring Dateien struktur unDatTools Werkzeuge zur berpr fung und nderung von Dateien unTypen Typen deklaration des Enigma Projekts wird von allen ver wendet 19 Enigma 5 Programmtests Datei Konvertieren N Testfall erwartetes Ergebnis erzieltes Er gebnis Text txt in Code txt konvertieren Code txt wird angelegt entspricht er wartetem Er gebnis o amp nicht_ berschrieben txt konvertieren gt Nicht berschreiben werden Nein
8. weitersetzen AES Enigma 2 3 Wie wurde die Funktionalit t hergestellt Realisierungsbeschreibung 2 3 1 Grunds tzliches S mtliche Einstellungen sind immer g ltig Daraus folgt dass die Enigma zu jedem Zeitpunkt codieren und decodieren kann Umkehrwalze Die Umkehrwalze ist ein spezielles Plugboard bei dem sichergestellt sein muss dass alle 26 Buchstaben immer vertauscht sind Genau dann gibt es den Umkehreffekt Die Umkehrwalze wird also genauso behandelt wie ein Plugboard Allerdings gibt es eine zus tzliche Pr fung beim Initialisieren und beim Lesen des Eintrags aus der Ini Datei FindComponent FindComponent ist eine Funktion von Delphi genaueres kann also in der entsprechenden Hilfe nachge schlagen werden Hier lediglich ein Beispiel um die Rotoren auf der Oberfl che entsprechend der inter nen Einstellungen zu setzen Deklaration Name TRadioButton weitere Quelltext for SP_Nr 1 to 3 do Steckplatz 1 bis 3 abarbeiten begin Platz IntToStr SP_Nr Steckplatz als string Nr IntToStr Einst Steckplatz SP_Nr Welcher Rotor steckt im Steckplatz Name findComponent rb_ Platz Nr as TRadioButton Name d Komponente herausfinden Es resultiert der Name einer Komponente z B rb_24 vom Komponententyp TRadioButton Rotor 4 ist in Steckplatz 2 Name Checked true entspricht der speziellen Anweisung rb_24 Checked true end 2 3 2 Programmabl ufe Es werden di
9. wurde an der n chsten Position von dem aktuellen Einstiegspunkt in den Ring zweite Spalte eingef gt In der ersten Spalte wird das C wieder an gezeigt Next Selfi gilt Z hler erh ht sich um 1 new entspricht er wartetem Er gebnis entspricht er wartetem Er gebnis Schrittweise entfernen eines ganzen Rings Im Editfeld L schen das gesamte Al phabet eingeben jeden Buchstaben mit Return best tigen Meldung f r jeden Buchstaben Die Liste wird immer k rzer die Ringstruktur bleibt dabei stets geschlossen Ist nur noch ein Buchstabe vorhanden zeigt dieser auf sich selbst Ist kein Buchstabe mehr vorhanden dann ist die Einstiegsadresse 0 NIL entspricht er wartetem Er gebnis Programm Start simulieren Alle F llen Alle drei Ringe werden gel scht und komplett neu angelegt Der Z hler steht bei 26 x 3 48 entspricht er wartetem Er gebnis Programm Ende simulieren Alle Freigeben Alle drei Ringe werden gel scht Der Z hler steht auf 0 Die Einstiegspunkte sind alle drei 0 NIL entspricht er wartetem Er gebnis 22 Benutzer amp Programmierhandbuch 6 nderungen 6 1 am Quellcode Datum m nit 13 05 05 R R thel Compilereinstellungen 13 05 05 R R thel foEinstellungen 13 05 05 R R thel foMemCheck 13 05 05 R R thel foEinstellungen 13 05 05 R R thel unRing 6 2 an der Do
10. 74 Next C32380 Ringt O Self C32380 Next C3238C i Hinzuf gen Y Self C3238C Next C32398 Ring2 Z Self C32398 Next C32320 i N Self C32320 Next C32344 Ring3 T Self C32344 Next C323B0 0 Self C323B0 Next C323BC W Self C323BC Next C323C8 Self C323C8 Next C323D4 lt ZCEHAHVIDO DOZZTRA TIONMONDOT Einstiegstpunkte Spl Nr 1 Start C3241 Sp2 Nr 2 Start C32560 Sp3 Nr 3 Start C327D0 Aus dem Ring gel schte Aktuelles Plugboard lb_AbcPB 1b_PB Alle F llen Alle Freigeben gef llt freige E3 el ee Aktuele Umien Z P Self C32404 Next C32410 lb_AbeWalze Programmstart Beenden und ende Lb_Walze Enigma Test 2 Aktualisiert SEE SE Plugboard Umkehrwalze 2 Memofeld und x die gel sch i ten Buchsta Reset Rotoren a ben werden obert R thel M rz 2005 gt aufgelistet Setzt die Rotoren auf Anfangstellung zu r ck 1 Spalte Zur Orientierung wird das Alphabet in einer Schleife mit ausgegeben Das nachzuvollziehen der Codie rung Decodierung der Enigma wird dadurch stark vereinfacht 2 Spalte Info Komponente Von oben nach unten gelesen er geben sich die Buchstaben des Ro tors In der ersten Zeile steht der Buch stabe auf den gerade gezeigt wird Beim Weiterdrehen des Rotors wird der Einstiegspunkt um eine Stelle weitergesetzt das l st nde dann an erster Stelle alle Buchstaben r ckt
11. Delphi Vordiplomsprogramm En gma von Robert R thel Verbesserung Fachrichtung Medieninformatik Matrikelnummer 2121 Verwaltungs Fachsemster 4 Email Robert Raethel KreativDuo net Enigma Inhaltsverzeichnis I Benutzerhandbuch 3 1 Ablaufbedingungen 3 2 Programminstallation 3 3 Programmstart 3 4 Bedienungsanleitung 4 4 1 Hintergrundinformation__ _ E Bu are A 4 4 2 Die Enigma bersicht _ EEE IRRE ARE 5 4 3 Das Eingabefeld_ z a RUNA OEELA 5 4 4 Das Ergebnisfeld _ a PER TR SEEN S 5 4 5 Rotoren zur cksetzen ____ B D ETELA 6 4 6 Die Einstellungen bersicht _ _ Ion RB 6 4 6 1 Plugboard ndern 6 4 6 2 Rotoren ndern _ _ LLLLL 7 4 6 3 Umkehrwalze ndern ___ LLLL 7 4 6 4 bernehmen II 4 6 5 Abbrechen in e dm ten sn et ne a aai 4 6 6 Sichern eei ee a a LAA 4 6 7 Ladens ar sa vn een seen r 4 7 Datei Konvertieren__ Z 2 re de aaa AEE 8 4 8 Voreinstellungen konfigurieren__ BEE IE TEE 9 5 Wiederanlaufbedingungen 9 6 Fehlermeldungen 10 II Programmierhandbuch 11 l Entwicklungskonfiguration 11 2 Problemanalyse und Realisation 11 2 1 Problemanalyse________ u E e a 11 2 1 1 Hauptformular __ _ LL LI LL 11 2 1 2 Formular Einstellungen 11 2 2 Realisierungsanalyse_____ u IE NEN 12 2 2 1 Datei konvertieren A 12 2 2 2 Pl gboard nlcsduese ser een 12
12. Meldung Datei wird nicht geschrieben Code txt in reText konvertieren reText txt wird angelegt und besitzt denselbenlentspricht er Inhalt wie Text txt wartetem Er gebnis ReadOnly txt in Meldung Soll die Datei berschrieben entspricht er wartetem Er gebnis ReadOnly txt in berschrieben txt kon Meldung Soll die Datei berschrieben entspricht er 611 werden Nein Datei wurde nicht geschrie ben vertieren gt berschreiben werden Ja Datei wird mit neuem Inhalt wartetem Er berschrieben gebnis ReadOnly txt in RO_Leer txt konvertie Meldung Soll die Datei berschrieben entspricht er ren gt Schreibschutz nicht entfernen werden Ja Meldung Datei ist Schreib wartetem Er gesch tzt soll der Schreibschutz entfernt gebnis o gt ReadOnly txt in RO_Leer txt konvertie ren gt Schreibschutz entfernen Meldung Soll die Datei berschrieben werden Ja Meldung Datei ist Schreib gesch tzt soll der Schreibschutz entfernt werden Ja Datei wurde mit neuem Inhalt berschrieben Der Schreibschutz ist entfernt worden entspricht er wartetem Er gebnis N co _ N o amp Ja SS ist entfernt worden die Datei wurde berschrieben myself txt in myself txt kodieren Meldung Soll die Datei berschrieben entspricht er werden Ja Datei wird mit neuem Inhalt wart
13. anel Komponente p_A finden und neutrale Farbe setzen wenn B Z Panel Komponente p B und p_Z finden und Farbe aus Farbarray setzen Z zum berspringen merken Farbindex weitersetzen und mit C fortfahren b show_Rotoren alle Rotoren sichtbar machen iterativ die Steckpl tze abarbeiten herausfinden welcher Rotor in dem Steckplatz steckt diesen Rotor auf der Oberfl che markieren vgl FindComponent Kap 11 2 3 1 c show_Umkehrwalze pr fen welche Umkehrwalze aktuell verwendet wird und entsprechend auf der Oberfl che markieren 3 Oberfl che Einstellungen modal Anzeigen Plugboard ndern in foEinstellungen Alle PB Elemente Panels zeigen auf eine onClick Procedur AnzClick Die Anzahl der geklickten PB Panels wird unit global verwaltet merkl Der erste Buchstabe eines Buchstabenpaares wird unit global verwaltet Farben Farbwerte werden als Aufz hlungstyp konstant und unit global verwaltet 1 AnzClick erh hen 2 Farbe bei jedem 2 Klick ndern index entsprechend setzen 3 Sicherstellen dass h chstens 20 Buchstaben vertauscht werden 4 wenn AnzClick ungerade ist handelt es sich um den ersten Klick a Komponente einf rben b Komponente unbenutzbar machen c Buchstabe merken 5 wenn AnzClick gerade ist handelt es sich um den zweiten Klick a Komponente einf rben b Komponente unbenutzbar machen c Beide Buchstaben im Array intern vertauschen Einstellungen speichern lgEinst Die einzelnen Einstell
14. ch um einen besch dig ten Enigma Datensatz handelt k n nen Sie diesen nur noch mit g lti gen Einstellungen berschreiben oder l schen Wiederholen Sie den Vorgang aber geben Sie eine existierende Datei zum ffnen an Die Datei wird nicht geschrie ben Sie haben einen Vorgang abgebro chen Best tigen Sie die Meldung Die Datei ist schreibgesch tzt Soll der Schreibschutz entfernt wer den Sie versuchen eine schreibgesch tz te Datei zu berschreiben Best tigen Sie die Meldung mit Ja wird der Schreibschutz ent fernt und das Programm f hrt seine Aktion fort anderenfalls bricht das Programm den Vorgang ab Soll die Datei berschrieben werden Sie versuchen eine Datei zu ber schreiben indem Sie beim Spei chern eine existierende Datei ange w hlt haben statt einen neuen Na men zu vergeben Best tigen Sie die Meldung mit Ja wird die Datei berschrieben anderenfalls bricht das Programm den Vorgang ab Ihre ini Datei ist Fehlerhaft Sie wird neu angelegt und eingelesen Die Datei Enigma ini wurde mit ung ltigen Werten ver ndert Best tigen Sie die Meldung Die falsche Ini Datei wird durch eine funktionierende ersetzt Die Datei enth lt ung ltige Zeichen Sie wird nicht konvertiert In der Textdatei befinden sich Son derzeichen Leerzeichen Zahlen oder Steuerzeichen Entfernen Sie alle ung ltigen Zei
15. chen aus der Textdatei Speichern Sie die Datei ab und wiederholen Sie die Konvertierung 10 Benutzer amp Programmierhandbuch II Programmierhandbuch 1 Entwicklungskonfiguration CPU PentiumIIl mit 1 4 GHz Arbeitsspeicher 1024 MB Fesplattenkapazit t 80 GB von Samsung Monitor 17 Monitor Betriebssystem Windows XP SP4 Entwicklungsumgebung Borland Delphi 7 Enterprise 2 Problemanalyse und Realisation 2 1 Was soll implementiert werden Problemanalyse Um diese Frage zu beantworten wird das Interfaces entwickelt Dazu wird die geforderte Funktionalit t in grafi sche Elemente unterteilt und zwar mit der begleitenden Fragestellung Was soll der Benutzer machen k nnen Das Interface soll so entwickelt werden dass falsche Eingaben soweit m glich vermieden werden 2 1 1 Hauptformular Nach Programmstart soll der Benutzer die M glichkeit haben einen beliebigen Text einzugeben um sofort das codierte Ergebnis zu gelangen Editfelder Will der Benutzer einen Text decodieren dann muss er die M glichkeit haben die Rotoren wieder auf Anfangsstellung zur ckzudrehen Decodieren Codie ren Dar ber hinaus soll der Benutzer die M glichkeit haben s mtliche Einstellungen ver ndern zu k nnen Daf r ist eine gesonderte Oberfl che vorgesehen Einstellungen Die Aufgabenstellung verlangt weiterhin dass der Benutzer eine Datei konvertiert in eine neue Datei schreiben k nnen soll Datei kon ve
16. drei Rotoren Sie k nnen die Voreinstellung ABO durch irgendeine dreibuchst bige gro geschrie bene Buchstabenfolge ersetzen Rotoren Sie k nnen die Rotoren in den Steckpl tzen 1 bis 3 durch je eine der f nf Rotoren ersetzen Sie d rfen aller dings keinen Rotor doppelt verwenden Plugboard Sie k nnen das Plugboard komplett l schen oder es durch eine gerade Anzahl von maximal 20 unterschiedli chen aber immer gro geschriebenen Buchstaben ersetzen Vertauscht werden die Buchstaben immer paarwei se Beispiel Plugboard AKTE Es werden A und K vertauscht und es werden T und E vertauscht Alle ande ren Buchstaben w rden unver ndert bleiben Achtung Es ist ebenfalls m glich die brigen Eintr ge zu ver ndern Allerdings wird dringend davon abgeraten da eine korrekte Decodierung dann nicht mehr gew hrleistet werden kann Ist die Enigma Ini Datei fehlerhaft oder nicht vorhanden wird sie beim Starten des Programms neu angelegt 5 Wiederanlaufbedingungen Sollte Ihr Computer System w hrend der Arbeit mit der Enigma beispielsweise durch einen Stromausfall ab st rzen dann hat dies folgende Konsequenzen Die aktuelle Chiffrierung ist verloren F r die Sitzung vorgenommene also individuelle Einstellungen sind verloren In Dateien gesicherte Einstellungen die Enigma Datens tze Dateiendung dat k nnen neu eigelesen werden Ist das System w hrend einer Konvertierung abgest rzt muss im Einzelfall gepr ft
17. e Rotoren sind gesperrt um diese zu ver ndern m ssen Sie die Schaltfl che RESET anw hlen Dabei ndert sich die Pro grammoberfl che Nebenstehend sehen Sie den Programmaus schnitt nachdem auf RESET gedr ckt wurde Jetzt m ssen Sie nacheinander drei von den f nf Rotoren ausw hlen Bitte beachten Sie dass ein Buchstabe erst durch den Rotor der Stellel danach durch den Rotor der Stelle2 und anschlie end durch den Rotor der Stelle3 chiffriert wird Anschlie end durchl uft der Buchstabe eine Umkehrwalze und dann die Rotoren der Stelle3 der Stelle2 und an schlie end wieder den Rotor der Stellel Es macht also einen gro Ben Unterschied f r welchen Rotor Sie sich zuerst entscheiden Im folgendem Beispiel soll zuerst durch den Rotor II danach durch Ro tor V und anschlie end durch Rotor II chiffriert werden m Rotoren ausw hlen 7 Rotoren ausw hlen Stelle 1 r Stelle2 pr Stelle 3 Stelle 1 Stelle 2 Stelle 3 C Rotor Rotor C Rotori Rotor C Rotor Astor Rotorli Rotori Rotor ll C Roterlil Aotorlll Rotor Ill Rotor ly C Rotor IV C Aotorlv C Rotor V Rotor IV C Rotor C Rotor W IIC Rotory GR Anfangstellung RESET Anfangstellung RESET Stelle1 ausgew hlt Stelle2 ausgew hlt m Rotoren ausw hlen r Stelle1 Stelle 2 Stelle 3 C Rotorl C Rotor Il C Rotor Ill C Rotor IV C RotorW Anfangstellung RESET geklic
18. e zum Verst ndnis notwendigen und damit grundlegenden und wichtigsten Abl ufe in ihren Kernpunkten beschrieben Programm Start foMain 1 Aus der Ini Datei werden alle Einstellungen gem den Eintr gen in der Sektion Voreinstellungen geladen Diese Einstellungen werden auf Vollst ndigkeit und Richtigkeit gepr ft Sind Einstellungen Fehlerhaft dann wird die Ini Datei neu angelegt 2 Alle Einstellungen werden gesetzt 3 Aus der Ini Datei werden die n tigen Strings gelesen um die Ringstruktur zu initialisieren Programm Ende foMain 1 Noch ge ffnete Dateien werden falls n tig per Try Finally Block geschlossen 2 Die Ringstruktur wird in jedem Fall wieder freigegeben Datei Konvertieren foMain 1 ffnen Dialog Pfad f r Quelldatei 2 Schlie en Dialog Pfad f r Zieldatei 3 Chiffrieren in lgMain a Rotoren auf Anfangsstellung setzen b Quelle einlesen AnsiString 2 31 Zeichen bis 2 GB in unTypDatei i ffnen ii lesen iii schlie en c den String Buchstabenweise von vorne nach hinten auf g ltige Zeichen pr fen und Codieren d Ergebnis in Zielstring schreiben 4 wenn alles geklappt hat Erfolgsmeldung ausgeben 14 Benutzer amp Programmierhandbuch Formular Einstellungen ffnen in foMain 1 alte Einstellungen Sichern 2 Die Oberfl che mit den aktuellen Einstellungen vorbereiten in foMain a show_Plugboard Das PB Array iterativ abarbeiten wenn A A P
19. eihenfolge codiert Aus diesem Grund sehen Sie oberhalb des Eingabefeldes die eingegebenen Buchstaben und den dazugeh rigen Code im direkten Vergleich Sollten Sie sich vertippt haben m ssen Sie die Eingabe komplett wiederholen Klicken Sie dazu die Schaltfl che Rotoren zur cksetzen an Dies gelingt brigens auch mit Hilfe der Tastatur Dr cken Sie die Tabulatorentaste und dann die Returntaste Die Programmoberfl che und die Rotoren werden zur ckgesetzt Sie k nnen sofort mit der Wiederholung beginnen Es werden immer die aktuellen Einstellungen zur Chriffierung verwendet 4 4 Das Ergebnisfeld Im Ergebnisfeld sind alle Tasten gesperrt Allerdings k nnen Sie mit der Maus die chiffrierten Buchstaben mar kieren und dann kopieren um diese zum Beispiel in eine Email einzuf gen und dann zu verschicken Wenn Sie das Ergebnisfeld doppelt mit der linken Maustaste anklicken werden die Buchstaben ber der Ausgabenzeile dauerhaft angezeigt Eis Z Enigma er BEISPIELTEXT BEISPIELTEXT PGFEZEPHJXJK PGFEZEPHJXJK Eingabe Eingabe BEISPIELTEXT BEISPIELTEXT Doppelklick auf Ausgabe dem Ergebnisfeld PGFEZEPHIXIK 75 HEIKE Einstellungen Rotoren zur cksetzen Einstellungen Rotoren zur cksetzen Datei konvertieren Beenden Datei konvertieren Beenden Enigma 4 5 Rotoren zur cksetzen Um einen Text zu decodieren muss die Enigma Maschine so eingestellt sein wie Sie zum Codieren eingestellt war Anderenfalls erha
20. eltes Er gebnis _ Fehlerhafte Einstellungen bernehmen Bsp Anfangstellung nicht mit Return best tigt Meldung Es wurden die alten Einstellunngen geladen weil die Eingaben unvollst ndig sind Bitte beachten Sie Die Einstellun gen k nnen nicht mehr korigiert werden Das Fenster Einstellungen ist geschlossen entspricht er wartetem Er gebnis N Fehlerhafte Einstellungen abbrechen Das Fenster wird geschlossen die alten Ein stellungen werden verwendet entspricht er wartetem Er gebnis Drei ungerade Anzahl Stecker im Plugboard getauscht gt Ubernehmen Keine Meldung Die korrekt vertauschten Buchstaben wurden vertauscht Der Partner lose wurde ignoriert und wird nicht ver tauscht entspricht er wartetem Er gebnis gt ver nderte aber vollst ndige Einstel lungen bernehmen Das Fenster wird geschlossen die neuen Ein stellungen werden verwendet entspricht er wartetem Er gebnis O1 ver nderte aber vollst ndige Einstel lungen Abbrechen Testfall Das Fenster wird geschlossen die alten Ein stellungen werden verwendet erwartetes Ergebnis entspricht er wartetem Er gebnis erzieltes Er gebnis _ Es existiert keine Enigma ini in dem selben Verzeichnis der Enigma exe Eine korrekte Enigma ini wird stillschweigend angelegt entspricht er wartetem Er gebnis N Plugboard hat mehr al
21. en eine Zeile auf und das A st nde ganz unten Y H Self C323D4 Next C323E0 X Self C323E0 Next C323EC U 5 P Eingabefeld zum Codieren eines Buchstabens A A Self C32410 Next C3241C G K Self C32338 Next C323 4 H M Self C32344 Next C32330 F Self C32350 Next C3235C L Self C3235C Next C32368 G Self C32368 Next C32374 D Self C32374 Next C32380 J K L elf C323F8 Next C32404 Y S Z P Self C32404 Next C32410 In Steckplatz 1 steckt zur Zeit der Rotor mit der Nr 1 Die Einstiegsad resse in den jew Ring ist angege ben Sie ist stets die Erste Self Ad resse im Memnfeld x Sollten zu Testzwe cken einzelne Ele mente aus einem Ring entfernt wer den dann werden Diese nach dem Ak tualisieren hier an gezeigt Ringi Ring in Steckplatz 1 Aktuelles Plugboard und aktuelle Um kehrwalze Eine Codierung wird mit allen Zwischen schritten unterein ander angezeigt Self 123456 Das Ringelement mit der Infokomponente A hat die Speicheradresse C32410nex Es handelt sich um die mit einem new Aufruf allo ziierte Adresse aus dem Heap Speicher Vgl II 3 2 Rotoren Ringe Next 123456 In der Nextkomponente des Ringelementes A steht die Speicheradresse 03241 Chex Weil das Element l Self die Adresse C3241C hat zeigt das Element A auf das Element
22. etem Er berschrieben gebnis KM Z hler Test 26x26x26 17576 Nach genau 17576 Buchstaben wiederholt entspricht er Buchstaben Die Datei AAA20Ok txt be sich die kodierte Buchstabenfolge der wartetem Er steht aus 20 000 A s sie wird in die AAA20k_Code Datei gebnis Datei AAA20k_Code txt kodiert Einstellungen Sichern Laden Testfall erwartetes Ergebnis erzieltes Er gebnis anlegen von einst dat einst dat wird erstellt entspricht er wartetem Er gebnis berschreiben von ber Meldung Datei existiert bereits soll Sie entspricht er schreib_mich dat berschrieben werden Ja Datei wurde wartetem Er berschrieben gebnis berschreiben von Read_Only dat Meldung Datei existiert bereits spll sie entspricht er berschrieben werden Ja Datei ist wartetem Er Schreibgesch tzt soll SS entfernt werden gebnis 20 Benutzer amp Programmierhandbuch 4 Laden von berschreib_mich dat Die Einstellungen werden geladen und im Fenster Einstellungen korrekt angezeigt entspricht er wartetem Er gebnis zl Ei Fehlerhafte Einstellungen sichern Bsp Anfangstellung nicht mit Return best tigt nstellungen vornehmen Testfall Meldung Datei wird nicht gespeichert weil die Eingaben unvollst ndig sind Bitte beach ten Sie Die Einstellungen k nnen kori giert werden erwartetes Ergebnis entspricht er wartetem Er gebnis erzi
23. in Buchstabe A f nf mal hintereinander eingege ben w rde immer denselben chiffrierten Buchstaben ergeben Konsequent weitergedacht m sste man die Ringstruktur nach jeder Chiffrierung komplett um speichern Man m sste jeden Buchstaben aus dem inneren Ring mit Code beschrieben genau eine Po sition weiter abspeichern Das wiederum ist schlichtweg Bl dsinn und hat nichts mit einer guten Ringstruktur zu tun A R IN h 4 NL i f Yi Yi R z Z K A Se 4 Ni od y x All y su TK L L sung Umstrukturierung Die Ringstruktur wurde deshalb um die Infokomponente Text in der Zeichnung der mittlere Ring ver ringert Auch der Einstiegspunkt mileage ist berfl ssig Rotoren 16 Die Logik der Rotoren das beinhaltet Codieren und Decodieren initialisieren der Rotoren auf Anfang stellung setzen etc ist in der Unit IgRotoren realisiert worden Die tats chlichen Ringoperationen sind hingegen in der unRing realisiert worden Der Einstiegspunkt f r einen Ring wird in IgRotor verwaltet Codierung eines E s lgRotor 1 Der globale Einstiegspunkt Rotorl wird lokal kopiert run 2 Der lokale Zeiger wird nun E mal weitergesetzt 3 R ckgabewert ist der Buchstabe auf den run aktuell zeigt Es wurde der Buchstabe C IgRotor _ unRing P ausgez hlt Decodierung eines C s lgRotor 1 Der globale Einstiegspunkt Rotor wird lokal kopiert ru
24. kt 7 Rotoren ausw hlen Stelle1 7 r Stelle 2 Stelle 3 7 C Rotori C Rotori C Rotor Rotorli Rotorlll C Rotorli Rotor lll C Rotory C Rotor ly C Rot C Rotory e Rotory Anfangstellung RESET Stelle3 ausgew hlt Um diese Einstellung vorzunehmen m ssen Sie die Rotoren in genau dieser Reihenfolge ausw hlen Von links nach rechts sehen Sie jeden Zwischenschritt Das Programm ist so gestaltet dass Sie niemals einen Rotor zweima l verwenden k nnen Sie benutzen Rotor II in der Stelle 1 und damit k nnen Sie den Rotor II nicht mehr in Stelle 2 oder in Stelle 3 benutzen Deshalb fehlt dort der entsprechende Eintrag Die Rotoren m ssen noch auf eine Anfangsstellung gesetzt T Rotoren ausw hlen werden Jetzt da Sie drei neue Rotoren ausgew hlt haben ist der richtige Zeitpunkt um dies zu tun Geben Sie einen drei stelligen Buchstabenschl ssel ein z B OPA und best ti gen Sie diesen mit der Return Taste Der Rotor in der Stellel wird auf O gedreht der Rotor in der Stelle2 wird auf P gedreht und der dritte Rotor wird folgerichtig auf A ge Stelle 1 Stelle 2 Stelle 3 C Rotor Rotor Rotor Rotori Rotor ll Rotor ll Rotor ll C Rotor lv C Rotorli C Rotorli C Rotory Rotory dreht Erst wenn Sie drei Buchstaben eingegeben haben und diese mit Return best tigt wurden sehen Sie nebenstehende Erfolgsmeldung Und erst da
25. kumentation ed _Pointer2KeyPress P ed_KeyKeyPress P nderun Optimierung Aus Erweiterte Syntax Aus Bereichspr fung Ein V O Pr fung Ein berlaufpr fung Ein showmessage statt messageDlg verwendet vor ins_Ringelemente Variable und Zuweisungsoperator eingef gt untere Grenze der lokalen Variable l l nge auf 0 gesetzt statt auf 1 globale Variable Current entfernt 2 4 Memory Check bersicht Datum m Kapitel 14 05 05 R R thel 5 Progammtests 14 05 05 R R thel 14 05 05 R R thel 3 2 Rotoren bzw Ringe 22 05 05 R R thel 2 Problemanalyse 15 05 05 R R thel 6 nderungen 22 05 05 R R thel Inhaltsverzeichnis Anderun Test Tabelle Speicherverwaltung hinzugef gt Neues Kapitel eingef hrt Grafik angepasst und hinzugef gt komplett berarbeitet diverse Kapitel eingef gt Skizzen eingef gt Neues Kapitel eingef hrt Inhaltsverzeichnis angepasst Be
26. l ver ndert und interessieren sich nicht mehr daf r oder sie woll ten nur mal nachschauen welche Einstellungen gerade gelten Klicken Sie auf die Schaltfl che Abbre chen Das Programm schlie t das Einstellungs Fenster Die Chiffrierung kann im Hauptprogramm nor mal fortgesetzt werden Es werden die Einstellungen verwendet die beim ffnen des Fensters Einstellungen benutzt wurden 4 6 6 Sichern Sie haben die M glichkeit Ihre individuellen Einstellungen in einer Datei zu sichern Klicken Sie hierzu auf die Schlatfl che Sichern Es ffnet sich ein sogenannter Speichern Dialog Sie haben die M glich keit in ein beliebiges Verzeichnis Ihres Computers zu wechseln und m ssen einen Dateinamen angeben Die Dateiendung von Enigma Datens tzen ist dat Es k nnen verschiedene Fehlermeldungen auftreten Beachten Sie hierzu bitte das gesonderte Kapitel Fehlermeldungen 4 6 7 Laden Sie haben ebenfalls die M glichkeit Einstellungen aus einer Datei zu laden Klicken Sie hierzu auf die Schaltfl che Laden Es ffnet sich ein sogenannter ffnen Dialog Sie haben die M glichkeit in ein be liebiges Verzeichnis Ihres Computers zu wechseln und m ssen eine Datei mit einem g ltigen Enigma Datensatz anw hlen Die Dateiendung von Enigma Datens tzen ist dat Das bedeutet nicht dass jede Datei welche auf dat endet eine g ltige Enigma Datei ist Es k nnen verschiedene Fehlermeldungen auftreten Beachten Sie hierzu bitte
27. lten Sie falsche Ergebnisse Die Einstellungen werden im n chsten Kapitel erl utert Wenn Sie die Einstellungen nach dem Codieren nicht ver ndert haben dann gen gt es die Rotoren auf die An fangstellungen zur ckzusetzen Klicken Sie hierzu auf die Schaltfl che Rotoren zur cksetzen Alle Eingabefel der sind nun wieder leer Geben Sie in dem Eingabefeld keinen Text sondern einen Code wie zum Beispiel PGFEZEPHJXJK ein Sie erhalten in dem Ausgabefeld BEISPIELTEXT 4 6 Die Einstellungen bersicht Ein Klick auf die Schaltfl che Einstellungen ffnet folgendes Fenster f Einstellungen E lalx Plugboard Vertauschte Buchstaben sind Plugboard stecken F farbig hervorgehoben Reset Um das Plugboard neu einzustellen Graue Buchstaben sind nicht vertauscht Beispiele rot A R R A grau F F Es k nnen maximal 20 Buchstaben vertauscht sein Default Um die voreingestellten Werte des Plugboards zu laden dB E E E Ci BE E Rotoren A In Steckplatz 1 steckt Rotor In Steckplatz 2 steckt Rotor II In Steckplatz 3 steckt Rotor III Rotoren ausw hlen m Stelle 1 Stelle 2 Stelle 3 Reset T Um andere Rotoren Potor i auszuw hlen und eine 2 Rotorl fe Rotor neue Anfangstellung i llen C Rotornlll C Rotor Ill Rotor en C Rotoli C Rotoli C Rotor IV C Rotor C Rotor C R
28. n Pa 2 Der lokale Zeiger run wird nun Pea solange weitergesetzt bis dieser auf das gesuchte C zeigt 3 Die Schritte bis zum C werden Alphabetisch mitgez hlt 4 Der R ckgabewert ist der aktuelle Z hlstand Es sind genau E schritte notwendig Rotor drehen lgRotor 1 Es werden die aktuellen Einstiegspunkte mit der Anfangstellung dreistelliger Key verglichen 2 Soll ein Rotor gedreht werden dann wird einfach der globale Einstiegspunkt auf die n chste Komponente gesetzt Rotorl zeigt nun nicht mehr auf A sondern auf I Bei der n chsten Codierung wird nun ab dem I gez hlt Ein E w rde jetzt beispielsweise ein J ergeben Benutzer amp Programmierhandbuch 2 4 Memory Check bersicht Ver nderungen sowie die An zeige beziehen sich auf den Ro tor in diesem Steckplatz Um einen Buchstaben manuell aus dem Ring zu entfernen bzw wieder hinzuzuf gen Alle Ringele mente werden Memory Check Rotorenwahl A Self C32410 Next CI24C Self C3241C Nest C32314 B Self C32314 Next C32428 R Self C32428 Nest C32434 C Self C32434 Next C32440 J Self C32440 Next C3232C E Self C3232C Nest C32338 K Self C32338 Next C32344 M Self C32344 Next C32350 F Self C32350 Next C3235C C Steckpatz Il Steckplatz Ill TEE L Self C3235C Next 032368 L schen G Self C32368 Next C32374 Buchstaben D Self C323
29. n Danach kann die Quelldatei geschlos sen werden sie wird nicht mehr ben tigt Der String k nnte iterativ also Buchstabenweise codiert wer den und das Ergebnis kann Buchstabenweise in die Zieldatei geschrieben werden Plugboard Funktionsbeschreibung Das Plugboard PB soll je zwei Buchstaben miteinander vertauschen Es gibt also zu jedem Buchstaben einen Partner Wird beispielsweise ein A mit einem V vertauscht dann muss ebenfalls gelten dass ein V ein A ergibt Mindestens sechs Buchstaben bleiben dabei unvertauscht Sie bilden sich auf sich selbst ab Ans tze zur Umsetzung 12 Es kann sich bei dem Plugboard intern um eine art Liste handeln die zwingend mit dem Datentyp char zu tun hat Es w re m glich eine lineare Liste zu programmieren welche man beim Suchen eines Codes stets von vorne bis hinten durchlaufen muss Bei dieser berlegung wird es aber schwierig die Entspre chung A V V A zu kontrollieren Eine andere M glichkeit ist es den Datentyp Array zu verwenden Statt Zahlen k nnte man einen Teil bereichstyp f r die Indizes benutzen Vielleicht ein Array mit den Indizes A bis Z und als Inhalt verwende man ebenfalls Buchstaben von A bis Z Bei der Entsprechung der Buchstaben muss nur darauf geachtet werden dass bei einem A ein V eingetragen wird und bei einem V entsprechend das A Das lie e sich mit zwei direkten Zugriffen sehr kontrollieren ABCOCEGH JKOW Ofe RSTUVWxy2 R2 Lk teza starulynou EIG OR u
30. n der Benutzer per Tastatur in ein Editfeld eingegeben Das E ditfeld l sst von vornherein nur g ltige Eingaben zu Wahl der Umkehrwalze F r die Auswahl einer Umkehrwalze werden Radio Buttons verwendet Der Benutzer kann sich f r die jeweils andere Umkehrwalze entscheiden Umgang mit den Einstellungen Dem Anwender soll weiterhin die M glichkeit gegeben werden die neuen Einstellungen in einer Datei zu sichern und auch wieder von einer gesicherten Datei einzulesen ffnen speichern Au erdem m ssen die neuen Einstellung auf Vollst ndigkeit gepr ft werden Korrekt sind die Einstellungen immer und dann auch wirksam werden Dazu dient der Button Schlie en welcher gleichzeitig das Formular Schlie t 2 2 Wie soll die Funktionalit t hergestellt werden Realisierungsanalyse Um diese Frage zu beantworten werden f r die verschiedenen Probleme je eine Funktionsbeschreibung angege ben und m gliche Ans tze zur Umsetzung beschrieben gleichzeitig werden die damit verbundenen Datenstruk turen besprochen 2 2 1 Datei Konvertieren Funktionsbeschreibung An 2 2 2 Jeder Buchstabe einer ausgew hlten Textdatei soll gelesen anschlie end codiert und schlussendlich in ei ne neue Textdatei geschrieben werden Die Quelldatei darf nur aus g ltigen Zeichen bestehen A Z a z Vorhandene Dateien d rfen nicht besch digt werden s tze zur Umsetzung Der Inhalt der Quelldatei kann in einen String geschrieben werde
31. nn und nur dann hat das Pro Anfangstellung OPA RESET gramm Ihre Rotorenwahl akzeptiert und die Anfangstellung gespeichert Um das Fenster mit der Erfolgsmeldung zu Oben OPA schlie en dr cken Sie erneut die Returntaste eingegeben Enigma xi Sollten Sie sich vertippt oder verklickt haben m ssen Sie die und Return ee Schaltfl che RESET anklicken und Ihre Rotorenwahl noch ne einmal von vorne beginnen bei Erfolg 9 4 6 3 Umkehrwalze ndern Es ist immer eine der beiden Umkehrwalzen ausgew hlt M chten S den dann klicken Sie diese einfach an ie die andere Umkehrwalze verwen Enigma 4 6 4 bernehmen Sie haben die Einstellungen individuell ver ndert und wollen die Einstellungen benutzen Klicken Sie auf die Schaltfl che bernehmen Das Programm schlie t das Einstellungsfenster und benutzt die neuen Einstellungen Sie k nnen mit den neuen Einstellungen sofort chiffrieren Die Schaltfl che Rotoren zu r cksetzen setzt die Rotoren jetzt auf die neu eingestellten Anfangstellungen zur ck Sollten die Einstellungen fehlerhaft sein dann werden Sie mit einer Fehlermeldung darauf hingewiesen Sie haben keine M glichkeit die Einstellungen zu berichtigen Das Fenster mit den Einstellungen schlie t sich also grunds tzlich wenn Sie auf bernehmen klicken Es werden die Einstellungen verwendet die beim ffnen des Fensters benutzt wurden 4 6 5 Abbrechen Sie haben die Einstellungen individuel
32. oder WalzeB Speicherverwaltung Die folgenden Testf lle beziehen sich auf das Formular Memory Check siehe Kap XXX _ eo 611 o gt Meldung Ihre Ini Datei ist fehlerhaft Sie wird neu angelegt und eingelesen Programm startet mit den Einstellungen aus der ber schriebenen Ini Datei im Hauptformular Btn_MemoryCheck auf visible true setzen entspricht er wartetem Er gebnis mer auf die Adresse des ersten Ringele ments Selfgirsy zeigen Testfall erwartetes Ergebnis erzieltes Er gebnis Ist der Ring richtig verkettet F r jeden Eintrag i muss gelten entspricht er Next Self 1 wartetem Er Die letzte Adresse Nextjas muss dabei im gebnis Wird der Speicher wieder freigegeben Einen Eintrag l schen dazu in dem E ditfeld L schen z B ein C eingeben te richtig alloziiert Einen Eintrag hinzuf gen dazu in dem Editfeld Hinzuf gen z B ein C ein geben Es k nnen nur die Buchstaben hin zugef gt werden die fehlen Wird der Speicher f r die Ringelemen Meldung C gel scht Das C wird aus dem Ring der zweiten Spalte gel scht Beim Anzeigen der Ringelemente wird das C ausgelassen erste Spalte Die Next Adresse von B Vorg nger ist nun identisch mit der Self Adresse von D Nachfolger Z hler verringert sich um 1 dispose Meldung C wieder hinzugef gt Das C
33. otor bernehmen Anfangsstellung Schlie t das Einstel von Rotor I ist A lungs Fenster Die an von Rotor Il ist B Anfangstellung RESET gezeigten Einstellungen von Rotor III ist O werden geladen M Umkehrwalze 7 Umkehrwalze amp C Umkehrwalze B Abbrechen Schlie t das Einstel lungs Fenster Die al ten Einstellungen wer den geladen Umkehrwalze Es wird Umkehrwalze A verwendet Um die Umkehrwalze zu wechseln Sichern Die angezeigten Einstellungen k nnen in einer externen Datei abgespeichert werden Laden Einstellungen k nnen aus einer externen Datei eingelesen werden 4 6 1 Plugboard ndern Die Buchstabenfelder des Plugboards sind normalerweise gesperrt Um die Plugboard Einstellungen zu ndern m ssen Sie zuerst mit der Maus auf die Schaltfl che R wie Reset klicken Danach sind alle Buchstabenfelder grau hinterlegt und freigegeben Sie k nnen m ssen aber nicht bis zu 20 Buchstaben nacheinander anklicken Jedes so ausgew hlte Buchstabenpaar bekommt eine eigene Hintergrundfarbe Zwei Buchstaben mit gleicher Farbe werden bei der Chiffrierung vertauscht Grau hinterlegte Buchstaben werden nicht vertauscht Sollten Sie sich verklickt haben m ssen Sie auf Reset klicken um von vorne zu beginnen Die Schaltfl che D steht f r Default und l dt bei Bedarf die V oreingestellte Einstellung aus der ini Datei Benutzer amp Programmierhandbuch 4 6 2 Rotoren ndern Auch di
34. pieren Schlie en Sie den Arbeitsplatz wieder Klicken Sie nun mit der rechten Maustaste auf Ihren Desktop Wieder ffnet sich ein Kontext Men W hlen Sie hier den Eintrag Einf gen Der Ordner wird auf die Festplatte kopiert Nach dem Kopiervogang ist die Installation abgeschlos sen 3 Programmstart Machen Sie zun chst mit der linken Maustaste einen Doppelklick auf den Ordner Enigma Der Ordner ffnet sich Doppelklicken Sie nun mit der linken Maustatse auf die Datei Enigma exe Das Programm ffnet sich Hinweis Es wird beim ersten Programmstart eine Datei mit dem Dateinamen Enigma ini in demselben Ordner angelegt Mithilfe dieser Datei k nnen Sie die Voreinstellungen der Enigma konfigurieren Lesen Sie dazu aber unbedingt das Kapitel Voreinstellungen konfigurieren Enigma 4 Bedienungsanleitung Bitte lesen Sie diese Bedienungsanleitung sorgf ltig bevor Sie mit dem Verschl sseln von Texten beginnen 4 1 Hintergrundinformationen Die Enigma ist eine Codierungsmaschine aus dem 2 Weltkrieg Sie wurde verwendet um Nachrichten zu ver schl sseln und wieder zu entschl sseln Bei der Codierung und gleicherma en bei der Decodierung durchl uft ein eingegebener Buchstabe verschiedene Verschl sselungseinheiten Die folgende Grafik veranschaulicht Ihnen die Funktionsweise der einzelnen Komponenten Zur Erkl rung gibt es in diesem Beispiel folgende Symbole amp amp V und Es wird ein amp
35. rgt Sie haben die M glichkeit diese Vor einstellungen zu ver ndern Dazu befindet sich in dem Ordner der Enigma exe eine weitere Datei sie tr gt den Namen Enigma ini Ini Dateien k nnen Sie mit einem Doppelklick ganz nor j Enigma ini Editor x mal ffnen Die Enigma ini ist in mehrere Abschnitte Datei Doarbekon Format 7 unterteilt wie z B ROTOREN Die Abschnitte bestehen a ARRTMILCKDETZEUVFSNN wiederum aus Eintr gen wie z B Rotor3 Sie finden ROTOREN a Rotorl EKMFLGDQVZNTOWYHXUSPAIBRCI ins gesamt eine textuelle Repr sentation der einzelnen E Rotor 2 AJDKSIRUXBLHWTMCOGZNPYFVOE nigma Komponenten wieder vgl Bild Rot or 3 BDFHILCPRTXVZNYEIWGAKMUSQO Rotor4 ESOVPZIAYQUIRHXLNFTGKDCMWB f Rotor 5 VZBRGITYUPSDNHLXAWMIJOOFECK Die blau eingerahmten Bereiche der nebenstehenden Gra UMKEHRWALZE un walzeA AYBRCUDHEOFSGLIPIXKNMOTZUW fik bestimmen die Voreinstellungen der Enigma Sie d r Wal ZeB AFBVCPDJETGOHYKRLZMXNWQTSU fen die rechte Seite eines Eintrages ver ndern also nur VOREINSTELLUNGEN i r r steckplatzl Rotor1 nach einem Gleicheitszeichen Daraus folgt dass Sie Steckplatz2 kotor beispielsweise keine zus tzlichen Rotoren einf gen k n steckplatz3 Rotor3 nen ke j umkehrwalze waTzea l Umkehrwalze Sie k nnen bei der Umkehrwalze entweder Walze A oder WalzeB eintragen Key Hinter dem Begriff Key verbirgt sich die Anfangstel lung der
36. rtieren Abschlie end wird nat rlich die M glichkeit bereitgestellt das Programm ordnungsgem zu beenden Schlie L Reset all Falen venkil 3 1 20 Yu m ssen ang Wade 7 jel ergeben Ben ie BL IR IR Tr 2 1 2 Formular Einstellungen Nun feet gt Deft ee Die Programmoberfl che wird in vier logische Bereiche Unterteilt 3 Va 6 laolen 6 2 Al Ron ILL NUN eins cya aggre Al und tenbre 1 Einstellen des Plugboards PB Der Benutzer erh lt die M glichkeit Buchstaben miteinander zu vertauschen Es sind verschiedene Realisierungen denkbar Bei der hier skizzierten Version wird die Zusammengeh rigkeit zweier na a a pruff ob allen site ande eiche Farben bedeuten gleiche ASARRE X Buchstaben Will der Benutzer ein sahi de i Ae eigenes PB erstellen so muss er auf 11 Enigma Reset dr cken um danach durch Anklicken von Buchstabenpaaren je eine Vertauschung vorzunehmen Der Benutzer soll das PB auch auf Standardwerte zur cksetzen k nnen Default Wahl der Rotoren Aus 5 Rotoren sollen 3 Rotoren gew hlt werden Es muss dabei sichergestellt sein dass drei Radio Buttons angeklickt werden aber in jeder Zeile sowie in jeder Spalte h chstens ein Radio Button ausge w hlt wird Dieses Problem wird gel st indem der Benutzer drei mal aus erst 5 dann 4 und zuletzt aus 3 Radio Buttons w hlen kann vgl Kap I 4 6 2 Rotoren ndern Seite 7 Die Anfangsstellung der drei Rotoren kan
37. s 20 Buchsta ben Meldung Ihre Ini Datei ist fehlerhaft Sie wird neu angelegt und eingelesen Programm startet mit den Einstellungen aus der ber schriebenen Ini Datei entspricht er wartetem Er gebnis o amp Plugboard hat keine gerade Anzahl von Buchstaben Meldung Ihre Ini Datei ist fehlerhaft Sie wird neu angelegt und eingelesen Pro gramm startet mit den Einstellungen aus der berschriebenen Ini Datei entspricht er wartetem Er gebnis 611 o gt IDie Rotoren bestehen nicht aus 26 un terschiedlichen Buchstaben Doppelte Rotoren oder falsche Rotoren in den Voreinstellungen z B Ro4 oder Rotor6 Meldung Ihre Ini Datei ist fehlerhaft Sie wird neu angelegt und eingelesen Programm startet mit den Einstellungen aus der ber schriebenen Ini Datei Meldung Ihre Ini Datei ist fehlerhaft Sie wird neu angelegt und eingelesen Programm startet mit den Einstellungen aus der ber schriebenen Ini Datei entspricht er wartetem Er gebnis entspricht er wartetem Er gebnis SE Enigma N oo Falscher Key in den Voreinstellungen er ist nicht dreistellig oder besteht nicht aus Gro buchstaben Meldung Ihre Ini Datei ist fehlerhaft Sie wird neu angelegt und eingelesen Programm startet mit den Einstellungen aus der ber schriebenen Ini Datei entspricht er wartetem Er gebnis IDie Umkehrwalze ist nicht WalzeA
38. toren sind durch zyklische Ringe zu implementieren Ein Rotor kann Buchstaben sowohl codie ren als auch decodieren Nach jedem Chiffrierungsschritt muss der jeweilige Rotor weitergedreht wer den damit bei mehrfacher gleicher Eingabe unterschiedliche Ergebnisse erzielt werden Wie ein Rotor funktioniert lesen Sie im Benutzerhandbuch Kap I 4 1 Hintergrundinformationen Ans tze zur Umsetzung Die Infokomponente k nnte aus zwei Elementen bestehen Text und Code Wird beispielsweise ein C codiert PB gt Rotor gt Umkehr walze dann wird der Einstiegs punkt SEARCH solange weiter gesetzt bis im Feld Text das ge suchte C steht und das M aus dem Feld Code wird zur ckge geben Soll ein Buchstabe decodiert wer den Umkehrwalze gt Rotor gt PB dann wird SEARCH eben solange weitergesetzt bis im Feld Code der zu decodierende Buch stabe steht Zur ckgegeben wird in diesem Fall der Buchstabe im Feld Text Es ist grunds tzlich ein zweiter Einstiegspunkt in die Ringstruktur notwendig Mileage wird auf die gew nschte Anfangsstellung ge setzt und nach jedem Chiffrie rungsvorgang der beinhaltet co dieren und decodieren um ein E lement weitergedreht Zeigt mileage wieder auf die Anfangsstellung dann hat sich der Rotor einmal komplett gedreht Der dahintersitzende Rotor kann sich um eine Stelle weiterdrehen mileage von dem n chsten Rotor ein Element
39. ungen sind in einem Record zusammengefasst Der Record wird komplett in eine typerisierte Datei geschrieben unTypDat Der Dateityp ist TDatensatz das ist eine Identit t von dem Datentyp TEinstellungen Identit ten werden in unTypen hergestellt Die Unit unDatTools stellt s mtliche Pr froutinen zur Dateiverarbeitung bereit berschreiben verhin dern Schreibschutz erkennen und entfernen Benutzer fragen usw Ringe initialisieren in IgRotor Rotorl Rotor2 Rotor3 unit globale Einstiegstpunkte in die Ringstruktur 1 Herausfinden welcher Rotor steckt in welchem Steckplatz Folgende f r jeden Steckplatz ausf hren 3 mal 2 Den entsprechenden String aus der Ini Datei lesen unlniDatei 3 Den String Buchstabenweise in den entsprechenden Ring hinzuf gen in unRing Rotor1 a Neues Element erstellen new b Buchstabe Hinzuf gen Rotor2 c wenn Ring leer Element auf sich selbst zeigen lassen d wenn Ring Elemente hat Element einf gen e Zeiger auf neues Element an lgRotor zur ckgeben IgRotor unRing Rotor3 IgRotor unRing 15 Enigma 2 3 3 Chiffrierung Problem Weitersetzen Es hat sich gezeigt dass die Vor berlegungen zu den Rotoren wie beschrieben vgl Kap II 2 2 4 Roto ren nicht ganz richtig sind Das zentrale Problem bei dem skizzierten L sungsansatz ist die Tatsache dass durch das Weitersetzen des Einstiegszeigers milea ge keine neuen Buchstabenpaare gebildet werden E
40. werden ob die Zieldatei vollst ndig gespeichert wurde Die Ini Datei Enigma ini ist nicht beeintr chtigt worden Enigma 6 Fehlermeldungen Fehlermeldung Fehlerursache Behebungsma nahme Es wurden die alten Einstellungen geladen weil die Eingaben unvoll st ndig sind Bitte beachten Sie Sie haben versucht unvollst ndige Einstellungen zu bernehmen H ufige Fehlerursache Die Anfangstellung der Rotoren wurde nicht mit Return best tigt Lesen Sie nach wie die Einstellun gen korrekt vorgenommen werden und versuchen Sie es nocheinmal Die Datei wird nicht gespeichert weil die Eingaben unvollst ndig sind Bitte beachten Sie Sie haben versucht unvollst ndige Einstellungen in einer Datei zu si chern Vervollst ndigen Sie die Einstel lungen und wiederholen Sie das Si chern der Einstellungen Speichern fehlgeschlagen Der Fehler ist au erhalb dieses Pro gramms zu suchen Starten Sie Ihr System neu ffnen fehlgeschlagen Der Fehler ist au erhalb dieses Pro gramms zu suchen Starten Sie Ihr System neu Die Datei ist fehlerhaft Sie wird nicht ge ffnet Die Datei existiert nicht Sie wird nicht ge ffnet Entweder handelt es sich um eine Datei mit der Endung dat welche nicht zu dieser Enigma geh rt oder die Datei ist besch digt worden Es wird versucht eine Datei zu ff nen welche es aber nicht gibt Wenn es si
Download Pdf Manuals
Related Search
Related Contents
Dakota Digital LAT-NR200 User's Manual Tripp Lite Cat6, 7.62m BVM 695 BVM 695 PLUS BVM 672 BVM 676 BVM 685 PARLEZ-E1 Ï... - SNUipp THB-tt - 産業用鉛蓄電池|株式会社 GSユアサ Nobo Moderation te Soundings Al.So Dynax 2 ons and a guide for use. L`Expertise et l`application des articles 275 GSXR-1100 service manual 1989-1992 Copyright © All rights reserved.
Failed to retrieve file