Op de subpagina Delen in Zm ben je meer te weten gekomen over de bruikbaarheid van sleutels en over priemgetallen om de inverse te bepalen. Ook in les 2 over het affiene cryptosysteem zag je al dat niet alle sleutels bruikbaar zijn.
Wanneer je bijvoorbeeld een tekst versleutelt met de lineaire encryptiefunctieE(x)=REST(ax+b;26)=ax+b (mod26) en je neemt als sleutelpaar (4,3) dan gaat het mis omdat vermenigvuldiging met 4 +3 modulo 26 altijd een oneven getal levert. De helft van het alfabet wordt daarmee onbereikbaar.
We zien dat de codes van de letterset 0, 1, 2, 3, ..., 25 door deze functie vercijferd worden naar de rij
1, 3, 5, 7, ..., 25 een rij getallen waarin alleen oneven getallen voorkomen. Ze komen tot stand als viervouden plus 1(mod 26). Als deze encryptiefunctie wordt gebruikt, worden bijvoorbeeld A en de N beide vercijferd naar de D: 4*0+3 = 3(mod26) en 4*13+3=55=3(mod26).
Opgave 3
Gebruik voor deze opgave de tabel voor affiene versleuteling
Neem als encryptiefunctie E(x)=REST(ax+b;26) met a=8 en b=1.
Waarom is de keuze van het sleutelpaar (8,1) geen goede sleutel? Waarom gaat het mis?
Hoe kun je nu zien of een sleutelpaar bruikbaar is of niet zonder alle mogelijkheden stuk voor na te lopen?
Opgave 4
Gebruik voor deze opgave de tabel voor affiene versleuteling
Je gaat een tekst versleutelen met de lineaire encryptiefunctie E(x)=REST(ax+b;26) .
a) Is (6,5) een geschikt sleutelpaar?
b) Is (5,2) een geschikt sleutelpaar?
c) Bij het sleutelpaar (4,3) ontstaat een rij getallen met alle viervouden plus 1 of plus 3 kleiner dan 26.
Hoe zit dat met het sleutelpaar (6,5)?
Deelbaarheid speelt een grote rol bij het kiezen van geschikte sleutelparen!
Je kunt door het invoegen van enkele onzinletters de letterset uitbreiden tot een totale lengte van 28 of 29.
Het blijkt dat je in het eerste geval met 28 getallen al heel gauw sleutelparen tegenkomt die niet bruikbaar zijn, terwijl in het tweede geval met een letterset van 29 letters elk sleutelpaar goed blijkt te werken.
Als je het rijtje 0, 1, 2, 3, ..., 25 versleutelt, werk je met de rest na delen door 26.
Neem het rijtje 0, 1, 2, 3, ..., 27 en als encryptiefunctie E(x)=REST(7x;28) .
a) We moeten nu rekenen met de rest na delen door 28 in plaats van door 26. Waarom?
b) Leg uit waarom elke uitkomst van de functie E(x)=REST(7x;28) een zevenfout oplevert terwijl dat bij de functie E(x)=REST(7x;26) niet zo is.
Opgave 6
Gebruik nu de tabel voor affiene versleuteling
We hebben in de opgave hiervoor gezien dat de encryptiefunctie niet goed werkt als a een even getal is of als a een deler is van de modus, dat is de deler in de modulus-berekening. In opgave 5b hebben 5 en 26 geen gemeenschappelijke delers groter dan 1. Daarom werkt de encryptiefunctie goed. In opgave 7 hebben 7 en 28 de gemeenschappelijke deler 7. Ook hebben we in opgave 7 gezien dat een verschuiving geen invloed heeft op de vraag of de encryptiefunctie goed werkt. Bij een andere keuze voor b krijgen we andere codeletters en dat is ook logisch gezien het karakter van een verschuiving.
Opgave 7
Gebruik de tabel van de affiene versleuteling om je antwoord te controleren op de volgende vraag.
We weten nu aan welke voorwaarde de encryptiefunctie moet voldoen opdat het mogelijk is de klare tekst te vercijferen met a en te ontcijferen met een inverse b onder de modulo-bewerking. Verder hebben we ook gezien dat de modulo-functie de volgorde van de getallen voor Eve op een lastige manier door elkaar husselt. Het is de vraag of het zo makkelijk is om de inverse te vinden van a als de modulo-functie een beetje ingewikkelder wordt omdat de a en de deler groter worden, zoals in de encryptie-functie E(x)=436x(mod 17159)
Opgave 8
Bereken de inverse van 436 bij de vermenigvuldiging (mod 17159)
In de volgende les zullen we leren hoe we op een handige manier de inverse van een getal kunnen vinden bij de modulo-functie.