Als een pal in de actieve positie staat [2] gedurende het draaien van de drum zullen alle lugs in dezelfde positie tegen de schuine kant van die pal komen. De schuifregel waarop zo'n lug bevestigd is zal dan naar links geduwd worden [3]. De linkerzijde van de drum werkt als een tandwiel met variabel aantal tanden [4]. Elke regel die naar links geschoven is werkt als één tand meer op de drum. De drum draait het tandwiel van het printwiel. Het aantal stappen dat aan de klare letters is toegevoegd is dus het aantal tanden van de drum.
Beweging van de pinwielen
|
13 07 03 02 01 01 SOM
-----------------------------------
00: 0 0 0 0 0 0 = 0
01: 0 0 0 0 0 1 = 1
02: 0 0 0 0 1 0 = 1
03: 0 0 0 0 1 1 = 2
04: 0 0 0 1 0 0 = 2
05: 0 0 0 1 0 1 = 3
06: 0 0 0 1 1 0 = 3
07: 0 0 0 1 1 1 = 4
...
...
61: 1 1 1 1 0 1 = 26 - 26 = 0
62: 1 1 1 1 1 0 = 26 - 26 = 0
63: 1 1 1 1 1 1 = 27 - 26 = 1
|
Eens een goede set lugs is gevonden kunnen we beginnen met het plaatsen van de lugs op de schuifregels. Start met het eerste van de 6 gekozen getallen. In ons voorbeeld is dit 13. Plaats een lug op de eerste positie van de schuifregel (sla de speciale bewegingsregels over!) en ga voort tot je 13 lugs hebt geplaatst op de eerste 13 schuifregels. Dan plaats je 7 lugs in de tweede positie, beginnende vanaf de 14e regel, enzovoort.
De speciale voortbewegingsregels zijn verantwoordelijk voor de onregelmatige beweging van de wielen en zijn dus belangrijk voor de kwaliteit van de vercijfering. We zullen de werking verklaren aan de hand van een voorbeeld van een lug goede en een slechte instelling. Als een speciale schuifregel naar links gaat zal het wiel dat door deze schuifregel bevolen wordt een stap doordraaien. Schuifregel 1 beveelt wiel 2, regel 2 beveelt wiel 3, enzovoort. Laat ons bekijken wat er gebeurt als alle regels voorbij de actieve pallen van de wielen zijn gekomen.
Een lug is voorgesteld door een X. Merk op dat er meer dan één lug op een schuifregel kan zitten. Wiel 1 zal altijd bewegen, wat ook de positie van lugs of pinnen is. Als er op het gegeven moment een actieve pin is op wiel 1 zal de pal van wiel 1 naar de drum komen en alle 5 schuifregels naar links dwingen aangezien er een lug zit op de eerste positie van elk van de 5 regels. Een actieve pin op wiel 1 zal dus wielen 2, 3, 4, 5 en 6 bewegen. Een actieve pin op wiel 2 zal wielen 3, 4, 5 en 6 voortbewegen. Een pin op wiel 3 zal wielen 4, 5 en 6 voortbewegen, enzovoort. Dit creëert een zeer onregelmatig en complex bewegingspatroon, afhankelijk van de ingestelde pinnen op de wielen.
R E LUGS BEVEELT G 1 2 3 4 5 6 WIEL ------------------------ 1 X - - - - - 2 2 X X - - - - 3 3 X X X - - - 4 4 X X X X - - 5 5 X X X X X - 6 |
Om het belang van de selectie van deze lugs te tonen is hieronder een voorbeeld van een zeer slechte lug instelling. De problemen zijn duidelijk. Wiel 2 zal enkel bewegen als er een pin actief is op wiel 1. Wiel 3 beweegt enkels als er een pin is op wiel 2, wiel 4 enkel bij een pin op wiel 3 enzovoort. Dit resulteert in een zeer langzame beweging van de rechtse wielen waardoor de variatie in pincombinaties beperkt is. Hierdoor word de cryptografische veiligheid ondermijnd.
R E LUGS BEVEELT G 1 2 3 4 5 6 WIEL ------------------------ 1 X - - - - - 2 2 - X - - - - 3 3 - - X - - - 4 4 - - - X - - 5 5 - - - - X - 6 |
De special schuifregels voor het voortbewegen werden bij de vroegste CX-52 modellen ook gebruikt om te vercijferen. In dat geval moeten zij ook volgens de richtlijnen voor instellen van vercijferings-lug worden ingesteld. Vanwege complicaties bij het instellen van aanvaardbare lug patronen voor zowel beweging als vercijfering werden de speciale bewegingsregels in latere modellen enkel nog gebruikt voor het bewegen van de pinwielen en hadden zij geen tand meer aan de linkerkant om het printwiel voort te bewegen. Er bestaan verschillende versies van de C-52 en CX-52. Sommige hebben vaste speciale schuifregels, verspreid over de drum in plaats van opeenvolgend en bij sommige machineversies zijn deze schuifregels afneembaar en kunnen verwisseld worden.
Om een bijkomende complicatie aan de vercijfering toe te voegen is het mogelijk een offset te gebruiken voor het printwiel. Dit gebeurt door de letterknop uit te trekken, waardoor het klare en reciproke alfabet niet meer verbonden zijn, dan de knop een aantal stappen te draaien en vervolgens los te laten. Als we dan bijvoorbeeld de letter H vercijferen met een offset van 2 letters zal de machine in werkelijkheid de letter F vercijferen.
|
|
|
Sommige machines zijn uitgerust met een Variabele mode F-V knop an de linkerkant van het toestel. In de Fixed mode blijven de twee printwielen met elkaar verbonden gedurende het volledige vercijferings-proces. In de Variabele mode verandert de positie tussen beide printwielen ten opzichte van elkaar continu. Tijdens een Variabele mode vercijferings-cyclus wordt eerst de letter van het linkse printwiel afgedrukt. Daarna worden de twee printwielen van elkaar losgekoppeld en enkel het rechtse printwiel draait naar zijn nieuwe positie. Tenslotte worden de twee printwielen terug met elkaar verbonden in die nieuwe positie.
In Cipher mode drukt het linkse printwiel de door de operator geselecteerde klare letter af en het rechtse printwiel de vercijferde letter. In Decipher mode drukt het linkse printwiel de door de operator geselecteerde cijfertekst letter af en het rechtse printwiel de ontcijferde klare letter.
De startpositie van de 6 wielen aan het begin van het vercijferen van een bericht noemt men de berichtsleutel. Deze berichtsleutel is een cruciaal onderdeel van de cryptografische instellingen van de machine en moet uniek zijn voor elk nieuw bericht. Dit om optimaal gebruik te maken van de variaties in sleutelinstellingen. Indien dezelfde berichtsleutel gebruikt wordt voor veel verschillende berichten zal dit het aantal statistische gegevens en het risico op cryptoanalyse vermeerderen. Er is geen standaard procedure om berichten te vercijferen. Elke klant kon zijn eigen procedure ontwikkelen, natuurlijk geassisteerd door de expertise van de fabrikant. Een deel van de procedure is dus steeds de ontvanger vertellen welke berichtsleutel gebruikt werd.
Eén manier is de berichtsleutel samen met het bericht versturen. Natuurlijk moet de verzender de berichtsleutel eerst coderen alvorens hem op veilige wijze over te maken aan de ontvanger. Dit kan als volgt: De verzender selecteert een willekeurige berichtsleutel (gebruikt om het bericht te vercijferen), stelt een willekeurige startpositie in op de 6 wielen van zijn machine en vercijferd hiermee de berichtsleutel. Vervolgens worden de willekeurige startpositie en de vercijferde versie van de berichtsleutel samen met het bericht verzonden. De ontvanger zet zijn wielen volgens de ontvangen willekeurige positie, ontcijfer de berichtsleutel en stelt deze in als startpositie voor het ontcijferen van het bericht.
De procedure met de vercijferde berichtsleutel zoals hierboven beschreven hangt volledig af van de geheimhouding van de instellingen van de machine. Als deze instellingen gecompromitteerd zijn kunnen onbevoegde personen het bericht ontcijferen. Sommige procedures gebruiken daarom een tweede geheime tabel naast de sleutelinstellingen. Zowel verzender als ontvanger gebruiken een systeem om een berichtsleutel uit de tabel overeen te komen. Dit kan door een willekeurig getal over te maken dat correspondeerd met een bepaalde berichtsleutel, of wanneer men slechts weinig berichten verwerkt door de berichtsleutels van de tabel één voor één te gebruiken. Indien de sleutelinstellingen gecompromitteerd zijn maar de aparte tabel van berichtsleutels geheim blijft zijn er nog 10.779.215.329 mogelijke startposities (CX model) te doorzoeken door de indringer, wat in het pre-computer tijdperk nog steeds een enorm aantal was.
Om het aantal theoretisch mogelijke sleutelinstellingen van de machine te vinden moeten we alle variabele elementen berekenen. Dit zijn de 6 pinwielen, de lugs, de offset van het printwiel en als laatste de berichtsleutel. Theoretisch zijn er 247 mogelijkheden om een wiel met 47 pinnen in te stellen. Voor het CX model geeft dit 7,7 x 1084 mogelijkheden. De beperkingen door de regels voor goede pininstellingen reduceren dit tot 4,2 x 1083, wat nog steeds een astronomisch getal is. Dit is vergelijkbaar met een 278 bit sleutel, alleen al voor de 6 wielen. Het totaal aantal theoretisch mogelijke combinaties met 27 lugs is 4,5 x 1059 (we laten de 5 speciale bewegingsregels achterwege). Wanneer we echter alle regels volgen voor een bruikbare lugset reduceren we dit getal tot precies 35.100. Voorts zijn er 26 mogelijke offsetposities voor het printwiel en 476 verschillende startposities voor de wielen van het CX model. Het praktisch totaal aantal sleutelinstellingen is het product van al deze getallen, namelijk 4,13 x 1099 voor de CX-52, vergelijkbaar met een 331 bit sleutel (men schat dat er slechts 1080 atomen zijn in het hele universum!). Dit betekend dat een brute-force aanval onhaalbaar is. In 1999 stelde H Paul Greenough een gekende-klaartekst aanval voor in Cryptologia [...]. Een gekende-klaartekst aanval is een methode waarbij de cryptoanalist zowel de klare tekst als de vercijferde versie van een bericht in zijn bezit heeft en hiermee de instellingen van de machine tracht te achterhalen. Tot op vandaag is er geen cijfertekst-alleen methode beschikbaar om CX-52 berichten te breken.
C-52 met one-time-tape lezer en B-52 elektrisch toetsenbord |
Verschillende
versies
|
B-52 met aanpasbare toetsenbordbedrading links |
CX-52 Fieldgrey |
Franse
gelicenceerde CX-52 |
Meer foto's van codeermachines door Willi Geiselmann op de website E.I.S.S.-Kolloqium 2006
Een nauwkeurige en heel realistische freeware simulatie van de Hagelin BC-52 (zowel C-52 als CX-52 model)

The BC-52
Cipher Machine Simulator
| Home Menu |