CODEERMACHINES EN CRYPTOGRAFIE
Het SECOM handcijfer
Home Klassieke Cryptografie


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:

Klare tekst: RV TOMORROW AT 1400PM TO COMPLETE TRANSACTION USE DEADDROP AS USUAL
Sleutelzin: MAKE NEW FRIENDS BUT KEEP THE OLD

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.

MAKENEWFRI ENDSBUTKEE
7162830495 3728109645

De twee 10-cijfer reeksen worden vervolgens opgeteld zonder overdracht.

 7162830495
+3728109645
 ----------
 0880939030

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.

0880939030
----------
8689229338
4471412612
8185538730
9930815039
8238965327

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.

8238965327
8139065427<-

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:

B C D F G H J K L M
P Q R U V W X Y Z *
1 2 3 4 5 6 7 8 9 0

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.

 | 8 1 3 9 0 6 5 4 2 7
 +--------------------
 | E S   T O   N I   A
3| L M B C D F G H J K
6| W X Y Z * P Q R U V
2| 0 1 2 3 4 5 6 7 8 9

We zetten de tekst aan de hand van het checkerboard om in één-of twee getal codes:

R V * TOM OR R OW * AT* 1 4 0 0 P M * TO* C OM P L ETE* 
64676090310646406860796021202828663160906039031663889860

TR ANSAC TION* U SE* D EAD D R OP * AS* U SU AL
964751739940560621860308730306406660716062162738

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:

....815039
8238965327

1st transposition: 7 + 2 + 3 = 12 kolommen
2nd transposition: 5 + 6 = 11 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:

 3728109645 nummering tweede helft sleutel
+8139065427 Checkerboard
 ----------
 1857164062 Resultaat

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.

 1857164062
 ----------
 8689229338
 4471412612
 8185538730
 9930815039
 8238965327

De cijfers voor de transpositie, na het aflezen van de 23 benodigde cijfers:

848982458982 09792855878

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.

848982458982
------------
646760903106
464068607960
212028286631
609060390316
638898609647
517399405606
218603087303
064066607160
621627380

We lezen de getallen kolom per kolom af, met de cijfers in de bovenste rij als transpositie-volgorde:

088089367 60167630 461031162 962364063 008900808 642665206
642987841 662699062 376095770 06314006 700083606 19636631

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:

09792855878
-----------
0880
89367
601676
3046103
11629623
640630089
0080864266
52066429878
416626
990623XXXXX

Vervolgens vullen we de driehoeken ook, rij per rij::

09792855878
-----------
08807609577
89367006314
60167600670
30461030083
11629623606
64063008919
00808642666
52066429878
41662636631
990623XXXXX

Opnieuw lezen we het transpositie blok kolom per kolom af, volgens de volgorde van de sleutel bovenaan:

7771938622 000320423 960038296 8314608060 717801673 6060606463
536069686 740369681 8900140219 0666260666 0863160549

Tenslotte verdelen we de cijfers in groepen van vijf om de uiteindelijke cijfertekst te bekomen:

77719 38622 00032 04239 60038 29683 
14608 06071 78016 73606 06064 63536 
06968 67403 69681 89001 40219 06662 
60666 08631 60549

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.

Home Klassieke Cryptograf