CODEERMACHINES EN CRYPTOGRAFIE
De Hagelin C-52 en CX-52 codeermachines
Home Menu


Geschiedenis van de Hagelin C-52 en CX-52 Top

Na het succes van de Hagelin C-38 en de US M-209 als tactische codeermachines besliste Hagelin Cryptos (Crypto AG, Zwitserland) een machine te ontwikkelen die uitgebreide cryptoanalyse kon weerstaan om hiermee de deur te openen naar de markt van high level militaire en diplomatieke vercijfering. In 1952 werd de C-52 op de markt gebracht die, zoals Devours en Kruh schreven, "deining veroorzaakte in heel de wereld van cryptoanalyse". De C-52 tilde de veiligheid van pin-en-lug machines naar een ander niveau. Dankzij een briljant ontwerp heeft deze volledig mechanische codeermachine een astronomische sleutelgrootte en cryptografische sterkte. Indien zorgvuldig ingesteld levert de CX-52 zelfs in dit computertijdperk een zeer krachtige encryptie. Binnen korte tijd werden de C-52 en CX-52 aangekocht door meer dan 60 landen en bleef decennia lang populair. Hiermee zijn deze de meest succesvolle codeermachines uit de Koude Oorlog.

Algemene beschrijving Top

De C-52 en CX-52 zijn volledig mechanische pin-en-lug type codeermachines. Klare en verijferde tekst worden samen afgedrukt op een papierstrook met gom. De C-52 heeft 6 bewegende pinwielen. Voor deze wielen kan men kiezen uit een set van 12 wielen met 25, 26, 29, 31, 34, 37, 38, 41, 42, 43, 46 of 47 pinnen. Tegenover de C-38 is het aantal schuifregels op de drum uitgebreid tot 32 waarvan er 5 gebruikt worden om de wielen voort te bewegen. De wielen zijn bedrukt met zowel letters als getallen (vb: A B 3 C D 6...). Bij elk wiel bestaan de letters en getallen uit een andere reeks. Het CX-52 model heeft 6 pinwielen met elk 47 pinnen en een flexibeler stappensysteem dat resulteerd in een zeer onregematige beweging van de pinwielen. Beide modellen werden tegelijkertijd geproduceerd, de C-52 met zijn langere periode van de wielen en de CX-52 met zijn complexere periode. Hagelin produceerde echter vele variaties van deze machines, waaronder de hier getoonde CX-52 met zijn onregelmatig bewegende wielen in combinatie met pinwielen van verschillende grootte zoals bij de C-52. Meer over de verschillende machinevariaties verderop deze pagina.



Image © D Rijmenants 2009

CX-52 (aanklikken om te vergroten)

De Cipher of Decipher mode kan gekozen worden met een draaiknop aan de linkerkant. Om te vercijferen draait de operator de grote alfabet-knop aan de linkerzijde tot de gewenste letter verschijnt in de alfabet schijf. Daarna duwt hij de hendel aan de rechterkant naar beneden. In Cipher mode wordt de cijfertekst afgedrukt in groepen van 5 letters. De letter X wordt gebruikt als spatie. In Decipher mode worden geen groepen afgedrukt en word de letter X vervangen door een spatie. Een teller houd het aantal vercijferde letter bij. Als de teller gereset word zal ook het telmechanisme voor maken van groepen op nul worden gezet. De machine kan bevestigd worden op een apart elektrisch en gemotoriseerd toetsenborden. De combinatie van de C-52 of CX-52 en het B-52 elektrisch toetsenbord word BC-52 genoemd.


Image © D Rijmenants 2009

Zicht links-voor op de CX-52
(klik om te vergroten)

Image © D Rijmenants 2009

De as voor de pinwielen en de hendel

Image © D Rijmenants 2009

De knoppen voor teller reset, papiertransport,
cipher/decipher en letter-instelknop


Vercijferingssysteem Top

Een dubbel printwiel heeft één normaal en één reciproke (omgekeerd) alfabet. Vercijfering gebeurt door het instellen van het printwiel op een klare (onvercijferde) letter op het normale alfabet waarna een aantal stappen aan het printwiel worden toegevoegd. In de nieuwe positie word de vercijferde letter afgedrukt met het reciproke alfabet. Het aantal stappen - een pseudo-willekeurige reeks - dat is toegevoegd word bepaald door de instelling van de lugs op de drum en de pinnen op de 6 wielen [1]. Dankzij het reciproke alfabet is het ontcijferingsproces identiek aan het vercijferen, op het afdrukken in groepen en vervangen van spaties na.

Binnenin de C-52 is er een drum of trommel die 32 schuifregels bevat. Kleine lugs of klemmetjes kunnen bevestigd worden op één of meerdere van de zes posities van een schuifregel (we zullen voortaan de uitdrukkingen drum en lug gebruiken). Als men de hendel neerdrukt, of het toetsenbord bij de BC versie, zal de drum draaien. Vlak voor de drum zijn er 6 pinwielen. De pin op zo'n wiek kan in een actieve of passieve stand ingesteld worden door de pin naar links of rechts van het wiel te duwen. Elk wiel heeft een pal met een schuin vlak die naar richting drum beweegt als een pin in de actieve positie is ingesteld.


Image © D Rijmenants 2009

De zes pinwielen met daarboven de drum waarop de lugs zijn geklemd.
Tussen de pinwielen en de drum zien we de schuine pallen. (klik om te vergroten)

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 Top

De C-52 produceert een constant stappen van de pinwielen, elk met zijn aantal pinnen die elk priemgetallen zijn, 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.

De machine instellen Top

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).

De pinwielen instellen Top

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.

Image © D Rijmenants 2009

CX-52 met uitgenomen pinwielen (klik om te vergroten)

Image © D Rijmenants 2009

Een uitgenomen pinwiel

De lugs op de drum Top

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:

 
    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 lugs op de schuifregels voor wielbeweging Top

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.

Printwiel Offset Top

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.

Image © D Rijmenants 2009

De letterschijf om de klare of
cijfer letterte kiezen
(klik om te vergroten)

Image © D Rijmenants 2009

Print wiel met dubbel alfabet voor
klare en cijfertekst
(klik om te vergroten)

Foto Copyright Mark Blair © 2009

FV Mode knop links (schoef)
Y-vork om printwielen los te koppelen rechts
Foto © Mark Blair (klik om te vergroten)

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 berichtsleutel Top

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.

Cryptografische sterkte Top

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.

Foto door John Alexander

C-52 met one-time-tape lezer en B-52 elektrisch toetsenbord

Verschillende versies Top

De C-52 en CX-52 zijn zeer flexibele machines. Ze konden makkelijk aangepast worden volgen de vereisten en wensen van de klant. Sommige modellen zijn uitgerust met de vijf speciale schuifregels aan het begin van de drum, andere modellen met de regels aan het einde van de drum en bij sommige machines zijn deze schuifregels verspreid over de drum. Deze kunnen vast of afneembaar en verwisselbaar zijn. Er zijn schuifregels die een wiel altijd voortbewegen, regels die het wiel enkel voortbewegen als de regel verschoven is, of dan juist niet voortbewegen. Een speciaal printwiel kon geleverd worden waarvan de letters herschikbaar zijn om een substitutievercijfering toe te voegen aan de vercijfering. Het was ook mogelijk om een alfabet of set symbolen voor de cijfertekst en een andere reeks voor de klare tekst te gebruiken. Dit is handig als berichten over internationale kanalen moeten worden verzonden. Bijvoorbeeld Arabische symbolen voor de klare tekst en een normaal Latijns alfabet van A tot Z voor de cijfertekst. Verschillende pinwielen met aangepaste letters en getallen konden geleverd worden. Er was ook een RT (Random Tape) versie met 5-bits perfoband lezer voor one-time tapes (zie foto links - copyright John Alexander). Al deze variaties maakten het mogelijk om elke klant, land of dienst een unieke machine te leveren met zijn eigen unieke cryptografische karakteristieken.


© Willi Geiselmann

B-52 met aanpasbare toetsenbordbedrading links

© Willi Geiselmann

CX-52 Fieldgrey

© Frederic Andre

Franse gelicenceerde CX-52
Manufacture d'Armes de Tulle
© Frederic Andre (klik om te vergroten)

Meer foto's van codeermachines door Willi Geiselmann op de website E.I.S.S.-Kolloqium 2006

Hagelin BC-52 Simulator Top

Een nauwkeurige en heel realistische freeware simulatie van de Hagelin BC-52 (zowel C-52 als CX-52 model)

 Hagelin BC-52 Simulator
The BC-52 Cipher Machine Simulator

Meer over Hagelin Top

Off-site Links Top

© Copyright 2004 - 2016 Dirk Rijmenants

Home Menu