Het SECOM
cijfer is een pen-en papier vercijfering, gebruikt om
berichten te vercijferen die zowel letters, cijfers als
spaties bevatten. SECOM gebruikt vier stappen: het
berekenen van de sleutel, een straddling checkerboard en
twee transposities, waarvan één onderbroken. De
combinatie van fractionering en dubbele onderbroken
transpositie maakt van SECOM een zeer veilig handcijfer.
We demonstreren het cijfer met volgend voorbeeld:
Neem de eerste 20 letters van de sleutelzin en verdeel ze in twee helften. Binnen elke helft nummeren we de letters. We kennen 1 toe aan de eerst voorkomende letter in het alfabet, 2 aan de volgende, enz. Bij twee gelijke letters krijgt de linkse het laagste nummer. De laatste letter krijgt de 0 toegewezen.
De twee 10-cijfer reeksen worden vervolgens opgeteld zonder overdracht.
Het resultaat gebruiken we om 50 speudo-willekeurige cijfers te genereren door middel van ketting-optellen. We tellen de eerste twee getallen van de reeks samen en nemen enkel het laatste cijfer van het resultaat. Dit cijfer voegen we achteraan de reeks toe. Dit proces herhalen we tot we 50 cijfers gegenereerd hebben.
Nu nemen we laatste rij en nummeren de getallen. We kennen 1 toe aan het kleinste getal en 0 aan het hoogste. Deze 10 cijfers gebruiken we als hoofding voor het straddling checkerboard.
De tweede rij van het checkerboard bevat de meest voorkomende letters ESTONIA, met het 3de, 6de en 9de vakje blanco. De 3 getallen die zich boven een leeg vakje bevinden schrijven we in de linkerkolom, van boven naar onder. We vervolledigen het checkerboard met volgende letters en cijfers:
We beginnen het vullen van de vakjes echter in de kolom, aangeduid door het getal, links van de rij. In ons voorbeeld zijn de beginposities onderlijnd. Als we aan het einde van de rij komen, vullen we voort aan vanaf het begin van diezelfde rij.
We zetten de tekst aan de hand van het checkerboard om in één-of twee getal codes:
In ons voorbeeld zijn verschillende spaties gebruikt. Het is echter aangeraden spaties weg te laten indien de leesbaarheid daarbij behouden blijft. Om het aantal kolommen van de twee transposities te bepalen nemen we, één voor één, de ongelijke cijfers van de 50 gegenereerde cijfers, beginnend vanaf het einde en van rechts naar links. We tellen elk cijfer op tot we meer dan 9 bekomen. Het resultaat is het aantal kolommen voor de eerste transpositie. We herhalen deze bewerking voor de tweede transpositie:
1st transposition: 7 + 2 + 3 = 12
kolommen Neem de 10 cijfers van de tweede helft van de sleutel en tel deze op met de 10 cijfers van het checkerboard, ook hier weer zonder overdracht:
De cijferreeksen, gebruikt voor de twee transposities worden nu colom per kolom afgelezen van de 50 willekeurige getallen. Als volgorde van aflezen gebruiken we het zojuist bekomen resultaat. Ook hier weer het kleinste getal eerst, en 0 als laatste.
De cijfers voor de transpositie, na het aflezen van de 23 benodigde cijfers:
De eerste transpositie is een eenvoudige kolom-transpositie. We gebruiken de eerste 12 van de 23 afgelezen cijfers als transpositiesleutel. We vullen het blok, rij per rij, met de cijfers, bekomen na omzetting met het checkerboard. In dit stadium voegen we eventueel nullen toe tot we een veelvoud van 5 hebben, om zo te eindigen met een complete cijfergroep van vijf cijfers. In ons voorbeeld voegen we één nul toe.
We lezen de getallen kolom per kolom af, met de cijfers in de bovenste rij als transpositie-volgorde:
De tweede transpositie is een onderbroken kolom-transpositie. We gebruiken de laatste 11 van de 23 cijfers als transpositie sleutel. Hier voegen we driehoekige gebieden toe. De eerste driehoek begint aan de top van de kolom die eerst zal afgelezen worden, en reikt tot het einde van die rij. De driehoek gaat in de volgende rij één kolom verder, en zo voort tot er slecht één kolom overblijft. Indien er nog plaats is begint, en pas na één vrije rij, maken we de volgende driehoek, vanuit de kolom die als tweede, derde enz wordt afgelezen. Er mogen hoogstens evenveel driehoeken zijn als kolommen. Aangezien we weten dat het bericht 105 cijfers lang is, weten we dat we 9 rijen met 11 cijfers en 1 rij met 6 cijfers dienen te vullen. Eerst vullen we het transpositie blok, rij per rij, met de van de van de eerste transpositie afgelezen cijfers, daarbij de driehoekige gebieden ontwijkend:
Vervolgens vullen we de driehoeken ook, rij per rij::
Opnieuw lezen we het transpositie blok kolom per kolom af, volgens de volgorde van de sleutel bovenaan:
Tenslotte verdelen we de cijfers in groepen van vijf om de uiteindelijke cijfertekst te bekomen:
Ontcijferen van een bericht: Om een bericht te ontcijferen bereken we eerst de getallen voor het checkerboard en de twee transposities, zoals we hierboven bescheven hebben. Vervolgens passen we de stappen in omgekeerde volgorde toe. We creëren een blok voor de tweede - onderbroken - transpositie, met het voorziene aantal kolommen en hun lengte, en de driehoekige gebieden. We vullen het blok, kolom per kolom, volgens de tweede transpositie sleutel. Vervolgens lezen we de cijfers rij per rij af, hierbij eerste de driehoekige gebieden mijdend. Daarna lezen we de driehoekige gebieden af. Het resultaat vullen we kolom per kolom volgens de transpositie sleutel in het eerste transpositieblok in, dat we ook hebben voorzien van het correcte aantal kolommen en hun lengte. Weer lezen we het blok rij per rij af. De bekomen reeks cijfers zetten we met behulp van het checkerboard om in klare tekst. Aangezien er misschien nullen zijn toegevoegd op het einde van het bericht dienen we deze nu te negeren.
|