In deze opdracht, bestemd voor leerlingen uit de D-finaliteit, krijgen leerlingen wat meer inzicht in een historische/maatschappelijke toepassing van de lineaire algebra, namelijk in de Hill-cijfer cryptografie. Deze opdracht is gelinkt aan het inhoudelijke leerplandoel over bewerkingen met matrices.
Deze opdracht is gelinkt aan het volgende inhoudelijke leerplandoel:
Leerplan B (keuzedoel), B+S, B+S’, B+S’’: LPD De leerlingen voeren bewerkingen uit met matrices: optelling, scalaire vermenigvuldiging, matrixvermenigvuldiging, machtsverheffing en transpositie.
En aan het generieke doel:
LPD 1: De leerlingen beschrijven fenomenen uit de realiteit aan de hand van wiskundige concepten uit de derde graad.
Een cryptosysteem heeft als doel om boodschappen te coderen en te decoderen opdat berichten niet door ongewenste personen gelezen kunnen worden. Hiervoor zetten we de letters van het alfabet om naar cijfers waarbij we de letter a toewijzen aan het cijfer 0. We verkrijgen het volgende:
Zo bedacht Julius Caesar al een klassiek cryptosysteem om boodschappen aan legeraanvoerders door te geven.
Er werd afgesproken om het cijfer dat bij elke letter hoort met 2 te verschuiven. Zo wordt de letter a (0) verandert in c (2), b (1) in d (3) … Met deze techniek zouden de letters y (24) en z (25) respectievelijk omgezet worden naar de letters op de 26ste en 27ste plaats. Deze letters bestaan echter niet en daarom voeren we het modulo 26 rekenen in. Dit wil zeggen dat we de rest bij deling door 26 behouden (merk op: de rest kan nooit groter zijn dan 25). Hier vind je een aantal voorbeelden:
3 modulo 26 = 3 26 modulo 26 = 0 27 modulo 26 = 1
Zo krijgen we dus y (24) wordt a (26 modulo 26=0) en z (25) wordt b (27 modulo 26 = 1).
Je verkrijgt dat het oorspronkelijke woord “cryptografie” wordt gecodeerd in “etarvqitchkg”. Het is wel duidelijk dat deze code niet zo moeilijk te kraken was.
In 1929 bedacht Lester Hill een geavanceerder cryptosysteem namelijk Hill-cijfer cryptografie. Je verdeelt de tekst die je wil coderen “cryptografie” in groepjes van twee met bijhorende cijfercode (rijmatrix=P (plaintext)):
We beschikken ook over een 2x2-matrix K* die de sleutel (key) van de codering bevat.
We voeren nu voor elke matrix P de volgende matrixberekening uit: C = PxK mod 26.
We krijgen voor “cr” dus het volgende:
“cr” wordt dus gecodeerd in “jw”.
Laten we er even van uitgaan dat je een zin hebt gecodeerd vertrekkende van de sleutelmatrix K*.
Hoe gaan we nu te werk als we de volgende code binnenkrijgen:
“bqtn qeail bnbusrm hekehq”
C is nu gegeven en je wil P terugvinden.
Uit de eerste stap heb je geleerd dat: C = PxK mod 26 .
Om de code te ontcijferen moeten we beschikken over een matrix M zodat KxM mod 26 = I
met I de eenheidsmatrix.
Zo krijg je:
Het berekenen van de matrix M is niet eenvoudig.
Ter info: Voor de sleutelmatrix kun je elke inverteerbare matrix gebruiken die als extra voorwaarde heeft dat ggd(det(K),26)=1. Indien aan de laatste voorwaarde niet voldaan is, kan er geen éénduidige decodering gebeuren.