[JoGu]

Kryptologie

Rotor-Maschinen: Beispiele für die Steuerlogik

a7Hzq .#5r<
kÜ\as TâÆK$
ûj(Ö2 ñw%h:
Úk{4R f~`z8
¤˜Æ+Ô „&¢Dø

Hier werden fünf Beispiele für die Steuerlogik von Rotor-Maschinen behandelt - zwei idealisierte, die in der Praxis meist komplizierter konstruiert wurden: das Zählwerk und der Stangenkorb, zwei realistische: die ungleichen Antriebszahnräder und die pseudozufällige Weiterschaltung, und eine historische: die Hebern-Maschine. Die Steuerlogik der Enigma wird später behandelt.


Beispiel 1: Das Zählwerk

Hier werden die Rotoren wie bei einem Stromzähler oder Tachometer weitergeschaltet: Jeder Rotor hat einen »Mitnehmer«, einen Nippel, der nach einer vollen Umdrehung den Nachbar-Rotor um eine Stelle weiterbewegt. Die Rotoren sollen dabei wie folgt angeordnet sein:

[Rotor-Anordnung]

Die Zustandsfolge sieht allgemein so aus:

ZustandRotorstellungen Substitution
z(0) z01z02 ......z0q c0 = s(a0)
z(1) z11z12 ......z1q c1 = s(a1)
z(2) z21z22 ......z2q c2 = s(a2)
:: :   ::
z(i) zi1zi2 ......ziq ci = s(ai)
:: :   ::

Der i-te Zustand wird durch folgende Gleichung beschrieben, wobei das Alphabet S mit Z/nZ identifiziert wird und modulo n addiert wird:

[Zählwerk-Formel]

Bemerkungen

  1. Der q-te, rechte, Rotor ist in diesem Beispiel ein »schneller« Rotor: Er dreht sich bei jedem Schritt.
  2. Dagegen ist der erste, linke, Rotor ein »langsamer« Rotor. Er dreht sich fast nie - nur alle nq-1 Schritte, also überhaupt nur bei sehr langen Nachrichten.
  3. Die Zählerfortschaltung kann natürlich genauso leicht auch umgekehrt realisiert werden, so dass der linke, der Input-Rotor, der schnelle und der rechte, der Output-Rotor, der langsame ist.
  4. Einer andere, in der Praxis auch verwendete Methode ist, den j-ten Rotor nicht erst nach nq-j Schritten weiterzubewegen, sondern schon wenn der Zustand zi,j-1 = n erreicht wird. Das ist je nach Anfangszustand viel früher und entspricht mehr der intuitiven Vorstellung von einem Zähler.
  5. In jedem Fall hat die Zustandsfolge die Periode nq.


Beispiel 2: Zahnlückenrad und Stangenkorb

Eine unregelmäßige Fortschaltung, bei der es aber keine langen Pausen für einzelne Rotoren gibt, kann man erreichen, indem man jeden Rotor durch ein Zahnrad antreibt, das unterschiedliche Lücken hat:

[Zahnantrieb mit Lücken]

Die ersten Modelle der Enigma (Modell A und B) hatten solche Antriebszahnräder (die außerdem auch noch verschiedene Umfänge hatten). Eine andere Realisierung dieses Prinzips, der »Stangenkorb« wurde von Hagelin erfunden und ist bei der M-209 im geöffneten Zustand deutlich zu erkennen [bei der er aber auf etwas andere Weise wirkt - die M-209 ist ein Schlüssel-Erzeuger und keine elektrische Rotor-Maschine]. Anstelle der individuellen Zahnräder wird ein Zylinder verwendet, der über die ganze Breite des Walzenkorbs reicht und an entsprechenden Stellen Mitnehmer für die einzelnen Rotoren hat. Die Wand des Zylinders besteht aus Stangen, auf denen als Mitnehmer aufsteckbare oder zumindest verschiebbare Nippel angebracht sind.

Ein einzelnes Antriebsrad kann man durch einen binären Vektor charakterisieren: 1 bedeutet Zahn, 0 bedeutet Zahnlücke:

u(j) = (uj0,...,uj,t-1) Î F2t     für j = 1, ..., q;
dabei ist t der Umfang des Antriebsrads (muss nicht notwendig = n sein); wir können ihn also insgesamt durch eine Matrix

[Zustandsänderungs-Matrix]

beschreiben. Die Spaltenvektoren

u(i) = (u1i,...,uq,i) Î F2q     für i = 0, ..., t-1
werden periodisch fortgezählt und ergeben so eine Folge der Periode t.

Die Zustandsänderung wird damit so beschrieben: Im Schritt i bewegt sich der j-te Rotor

Die Zustandsänderung geht also nach der Formel
z(i+1) = z(i) + u(i),
wobei in (Z/nZ)q addiert wird.


Beispiel 3: Die ungleichen Antriebszahnräder

Hier hat jeder Rotor ein eigenes Antriebszahnrad; diese sitzen auf einer gemeinsamen Achse und machen bei jedem Buchstaben eine volle Drehung. Rotor 1 wird also um n1 Stellungen weitergedreht, wenn n1 die Zahl der Zähne seines Antriebsrades ist. Analog für die anderen Rotoren. Die Periode des Zustandes ist daher das kgV(n1, ...,nq). Besonders günstig sind also paarweise teilerfremde Zahnanzahlen, z. B. die Folge 17, 19, 21, 23, 25, 29, 31, 32.

Dieses Prinzip wurde - mit Zahnlückenrädern - bei den ersten Versionen der Enigma mit den Zahlen 11, 15, 17, 19 verwendet.


Beispiel 4: Die pseudozufällige Weiterschaltung

Hierbei wird die Folge der Weiterschaltungen für jeden Rotor nach einem Pseudozufallszahlen-Algorithmus bestimmt; in einer Computersimulation ist das leicht, für eine elektromechanische Rotormaschine kann man etwa zusätzlich einen Schlüsselerzeuger wie die späteren Hagelin-Maschinen zur Steuerung des Antriebs verwenden. Nach diesem Prinzip soll die amerikanische Super-Rotormaschine SIGABA gearbeitet haben.


Beispiel 5: Die Hebern-Maschine

Die Hebern-Maschine hat q = 5 Rotoren und verwendet das Standard-Alphabet mit n = 26. Die Steuerlogik ist ein Zählwerk, wobei allerdings nicht der benachbarte Rotor, sondern über eine etwas kompliziertere Mechanik ein anderer weitergeschaltet wird, und zwar genauer:

Die Zustandsänderung folgt also der Gleichung (im wesentlichen - siehe »Besonderheiten«)

g(z1, z2, z3, z4, z5) = (z1+l(z5), z2, z3+l(z1)l(z5), z4, z5+1)

mit l(x) = dx,25 (Kronecker-Symbol).
Die Periode ist also 263 = 17576.

Besonderheiten


Autor: Klaus Pommerening, 1. Januar 2000; letzte Änderung: 7. Dezember 2004
E-Mail an
Pommerening@imsd.uni-mainz.de.