CODEERMACHINES EN CRYPTOGRAFIE
Het SECOM handcijfer
Home Handcijfers


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 Sleutel zin: 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 sleutem +8139065427 Checkerboard ---------- 1857164062 Result

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.

Web Analytics Made Easy -
StatCounter

© Dirk Rijmenants 2004. Last changes: 28 April 2022

Home Handcijfers