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.
De C-52 produceert een constant stappen van de pinwielen, elk met een aantal pinnen dat telkens een priemgetal is, resulterend in een zeer lange periode. Bij de CX-52 hangt de beweging van de 6 pinwielen af van de pinnen op deze wielen maar ook van de instelling van lugs op de drum. Als we de wielen van links naar recht nummeren zal het eerste wiel bij elke vercijferingscyclus een stap voortbewegen. De andere 5 wielen worden voortbewogen door speciale schuifregels op de drum. Elk van deze regels zijn identiek aan de vercijferings-regels maar hebben bovendien een klein pinnetje. Als een lug op zo'n schuifregel tegen een actieve wielpal komt zal deze regel naar links geschoven worden, net als een normale schuifregel. Bij deze speciale schuifregels zal het kleine pinnetje nu vlak voor een klein tandwieltje gepositioneerd zijn dat het pinwiel voortbeweegt. Op de foto hierboven van de drum zie je op regel nummer 5 aan de linkerkant zo'n kleine voortbewegingspinnetjes. In onderstaand voorbeeld [5] kunnen we zien dat de pin op wiel 2 (het linkse wiel) in de actieve positie staat en de speciale schuifregel een lug heeft op de 2de positie. Wanneer de drum draait zal de pal van wiel 2 de lug, en dus ook de schuifregel, naar links dwingen. Hierdoor zal het kleine pinnetje op deze schuifregel in het tandwieltje van wiel 5 grijpen en dat wiel één stap voortbewegen. Zowel verzender als ontvanger moeten hun machine op exact dezelfde manier instellen. De instelling van de sleutel bestaat uit 6 delen. De selectie en volgorde van de pinwielen, de pinnen op deze wielen, de lugs, de lugs op de voortbewegings-schuifregels, de offset van het printwiel en de berichtsleutel (startpositie van de wielen bij het begin van het bericht). Bij het C-52 model dient de operator eerst 6 wielen te kiezen uit een set van 12. Deze kunnen in eender welke volgorde in de machine geplaatst worden. Om de wielen te verwijderen opent men het deksel en trekt de hoofdas van de wielen eruit naar rechts. Bij het CX-52 model hebben alle wielen 47 pinnen. De experts bevelen een statistisch willekeurige methode aan om de pinnen van de wielen in te stellen. Een eenvoudige manier is een muntstuk opwerpen en het resultaat noteren (kop = actieve pin, munt = passieve pin). Voor een gelijkmatige verdeling mogen er nooit meer dan 3 opeenvolgende pinnen dezelfde toestand hebben en moet er ongeveer 50 percent van de pinnen op een wiel de actieve stand hebben. De lugs op de drum bepalen welke schuifregels in contact komen met de pallen van de wielen, waardoor de betreffende regels naar links schuiven en werken als tand om het printwiel voort te bewegen. De lugs zijn een vitaal onderdeel van de sleutelinstelling en dienen zorgvuldig gekozen te worden. Om een goede set lugs te creëren selecteren we 6 getallen tussen 1 en 14 waarvan de som 27 is. Wijs elk van deze getallen in willekeurige volgorde toe aan één van de 6 posities. Noteer alle mogelijk combinaties van 6 pinnen voor een gegeven stand van de drum. De eenvoudigste manier is de combinaties in binaire vorm te gebruiken (1 = 000001, 2 = 000010, 3 = 000011 enz...). Zoek voor elk mogelijke combinatie van pinnen de som van de getallen voor die positie. Noteer deze som rechts van die combinatie. Als een som groter is dan 25 trek je er 26 vanaf. Controleer tenslotte of de 64 sommen alle getallen bevatten tussen 0 en 25. Is dit niet het geval dan is de lug instelling onbruikbaar. Met wat ervaring is het mogelijk een ongeldige instelling te corrigeren door het veranderen van slechts enkele lugs. Als we alle regels volgen zijn er 35.100 verschillende bruikbare lug sets. Voorbeeld van een lug controletabel:
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 lugs op de schuifregels voor
wielbeweging 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.
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 wordt de cryptografische veiligheid ondermijnd.
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 aan 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 correspondeert 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 betekent dat een brute-force aanval
onhaalbaar is. In 1999 stelde H Paul Greenough een
gekende-klaartekst aanval voor in Cryptologia
U kunt ook een de nauwkeurige en heel realistische Hagelin BC-52 simulator dowloaden (zowel C-52 als CX-52 model)
|