Seite 1 von 2

chiffriermaschine

Verfasst: Do 24. Dez 2015, 11:37
von PIC18F2550
Hallo

Hat sich jemand mit der Problematik schon mal auseinander gesetzt?

Ich hab mal eine zusammengebaut die Besteht aus:

1 Variabler Bit Manipulator der die Bits nach einem variablen Muster die Positionen vertauscht.
10 XOR Verschlüsselungswalzen
1 Rauschgenerator um Datenmüll zu erzeugen dabei werden mehr Byts erzeugt wobei sich die Information in einzelnen Bits des Mülls verstecken.

Nach jedem Zeichen wird dem Bit Manipulator und den Verschlüsselungswalzen ein neues Muster zugewiesen.

Die Daten auf dem Verschlüsselungswalzen sind Zufallszahlen (Nicht Berechnet)

Der Zahlenumfang einer Verschlüsselungswalzen und des Manipulator ist immer eine Primzahl größer 256.

Allein mit den Verschlüsselungswalzen und dem kleinsten Schlüssel kommt man auf mindestens 257 *263 * 269 * 271 * 277 * 281 * 283 * 293 * 307 * 311 Möglichkeiten.
(3.036.332.667.012.137.315.819.779)

Die Schlüsselgröße ist dabei allein vom Speicher abhängig.

z.Z. Teste ich alles noch mit der Console und im bereich einzelner Zeichen.
Später will ich mein altes Modem wiederbeleben.

Was noch fehlt ist:
- eine anfangs und ende Verschleierung bei der Text Übertragung.
- Ein Austauschbarer Schlüssel

Re: chiffriermaschine

Verfasst: Do 24. Dez 2015, 21:09
von Klaus-Peter
das klingt ja interessant :DAUMENHOCH - gibts da vielleicht mal ein Bild deiner Maschine hier zu sehen :?: ,
Verschlüsselungswalzen
- das klingt ja mächtig nach ENIGMA.

Re: chiffriermaschine

Verfasst: Do 24. Dez 2015, 23:33
von PIC18F2550
Hallo Klaus-Peter,

Die ENIGMA ist eigentlich nur ein Bit Manipulator wo die Tasten nur anderen Ersatzzeichencodierungen zugeordnet werden.
Dabei werden die drei Walzen nach jedem Zeichen weiter geschaltet.

Die Lorenz-Schlüsselmaschine benutzte den üblichen Baudot-Murray-Code mit 5 Bit für die Übertragung von 32 Zeichen und besaß 12 Rotoren (Walzen) mit unregelmäßig verteilten Stiften
Die erste Gruppe der fünf Stiftwalzen mit einer 41-, 31-, 29-, 26-, 23- Teilung wurde mit den 5 Bit mittels einer Vernam-Substitution codiert.
Die zweite Fünfer-Gruppe mit der 43-, 47-, 51-, 53- und 59- Teilung wurde der ersten Gruppe mit Vernam-Schritten nachgeschaltet.
Dabei werden die drei Walzen nach jedem Zeichen weiter geschaltet.
Zwei weitere Walzen dienten lediglich der unregelmäßigen Fortschaltung.

Die Funktionen der ENIGMA und Lorenz-Schlüsselmaschine wurden nicht nachgebaut sondern neu überarbeitet.

Der Bit Manipulator macht aus 8 Bit 16 Bit und Füllt den Rest mit Zufallszahlen.

Die 5 Stiftwalzen der Lorenz-Schlüsselmaschine wurden zu Verschlüsselungswalzen mit 16Bit breite.
Die 16 Bit werden dabei mit Zufälligen Werten gefüllt.

Die Weiterschaltung der Verschlüsselungswalzen nach jedem Zeichen wurde beibehalten.
Um die Varianten zu erhöhen werden der Verschlüsselungswalzen Umlauf im Primzahlen schritten geteilt.
Dadurch wird die Wahrscheinlichkeit der Wiederholung stark minimiert.
Zur Verschlüsselung wurde auf eine 10fach 16bit XOR Logik zurückgegriffen.

Pate war bei dem Projekt die R012T.
http://www.rwd-mb3.de/ntechnik/img/r012t.jpg

Mit Bildern kann ich nicht dienen da alles Software im Propeller ist.

Der Begriff Walze ist leicht Irreführend da es sich um Arrays handelt aber in ihrer Funktion und Verwendung einer Walze mit 16 Stiften und x Schritte für einen Umlauf gleich ist

Walzencodierung

Code: Alles auswählen

  S1_05 word 24339, 11319, 4694 , 50386, 28730, 33324, 3898 , 24622, 57212, 38754, 45812, 42605, 10242, 53978, 33270, 56255, 33617, 38589, 60022, 7022 , 29747, 24396, 58641, 6771 , 52563
        word 24419, 43546, 42606, 26890, 48034, 37222, 20568, 32800, 38483, 10574, 44779, 10229, 60046, 38050, 36606, 24223, 63201, 11324, 56837, 58117, 59099, 9664 , 24089, 43701, 12136
        word 2865 , 12542, 34559, 20558, 14182, 18703, 25454, 31003, 26432, ...
XOR Verschlüsselung und S1_05V ist der Walzenschritt

Code: Alles auswählen

  a ^= word[@S1_05][S1_05V]

Re: chiffriermaschine

Verfasst: Fr 25. Dez 2015, 18:29
von Klaus-Peter
Hallo PIC18F2550,

ich hatte mir bei dem Begriff "Walze" natürlich direkt eine Maschine mit komplizierter Mechanik vorgestellt :mrgreen: . Toll dass du das alles so softwaremäßig umgesetzt hast, klingt nach einem sehr interessanten Projekt. Passt auch grade gut in die Zeit finde ich mit den ganzen NSA Spähangriffen und Vorratsdatenspeicherung :SCHRAUBEN .

Re: chiffriermaschine

Verfasst: Fr 25. Dez 2015, 19:46
von PIC18F2550
Jo :mrgreen:
Mal sehen wie ich das Modul in die HIVE Struktur reinfriggle.

Re: chiffriermaschine

Verfasst: Sa 26. Dez 2015, 10:59
von PIC18F2550
So Die Module arbeiten seit 24H ohne Fehler :mrgreen:
Hier sieht man was er aus meinen Namen macht.
Was noch Fehlt ist eine Längenmaskierung wo man nicht feststellen kann wieviel Bits wozu gehören.

Code: Alles auswählen

PIC crypt 2016
P CF0CF328
I AAACD3E9
C 4904E3E8
1 4D5CF0A9
8 5AEAD029
F 635CE361
2 B5FEE028
5 6AC4F0A1
5 E272F0A1
0 34D2F028

P 0C7EF329
I 582AD3E8
C 9950E3E8
1 8282F0A8
8 A418D029
F 0E04E361
2 09DEE028
5 E062F0A0
5 3128F0A1
0 9170F029
z.Z. werden nur einzelne Zeichen verarbeitet aber es sollen in der Zukunft aus Strings und Dateien folgen.

Re: chiffriermaschine

Verfasst: Sa 26. Dez 2015, 13:52
von TuxFan
Ich kann mich noch gut an die Zeit erinnern, als Dunkelmaänner und -frauen mysteriöse Zahlengruppen in den Kurzwellenäther entsandten.
Heute werden soche Chiffrieraktivitäten von der Ersten Ordnung argwöhnisch beäugt.........also nicht wundern wenn mal etwas unfreundliche, vermummte Personen nebst Kavellerie mit Deiner Tür ins Haus fallen. ;) :LACHEN :LACHEN

Re: chiffriermaschine

Verfasst: So 27. Dez 2015, 09:11
von Micha
PIC18F2550 hat geschrieben:Jo :mrgreen:
Mal sehen wie ich das Modul in die HIVE Struktur reinfriggle.
Soll das Programm auf einer Zusatz-Hardware oder direkt auf dem unmodifizierten Hive laufen?

Re: chiffriermaschine

Verfasst: So 27. Dez 2015, 17:40
von PIC18F2550
Das wäre nicht das erste mal TuxFan.

Aber damit die sich nicht bemühen müssen habe ich mal das Projekt auf einen bekannten NSA Homeserver hochgeladen. (MSN.com)

Re: chiffriermaschine

Verfasst: Mo 28. Dez 2015, 01:19
von PIC18F2550

Code: Alles auswählen

  if ++S2_0V >= word[@W0Z]

Code: Alles auswählen

  if ++S1_0V => word[@W0Z]
Kleiner Fehler großes Ärgernis.
Nur der 2. Code macht was er soll der 1. ist immer wahr.
Das Problem trat erst auf als ich den Code in ein OBJ verschoben hatte.