Modulusberäkningar

I t ex algoritmen för RSA-kryptot används så kallade modulusberäkningar. Faktum är att du redan har gjort liknande beräkningar inom matematiken och inte minst i vardagslivet, varje dag faktiskt!

Man skriver t ex 5 mod 2 = 1 där 1 är resten vid division av 5 med 2. Modulusberäkningar är användbara till mycket, bl a för att bestämma delbarhet hos heltal. Flertalet programmeringsspråk har modulusfunktioner och vi kan då enkelt testa om t ex 4 är delbart med 2 genom att skriva 4 mod 2 och se om resultatet blir 0 (blir resultatet 0 är ju resten 0 och divisionen har gått jämt upp!).

Om man ska vara petig är modulus inte rest vid division utan något som kommer från talteorin och så kallade aritmetiska ringar. Här hittar vi ett exempel som kanske kan underlätta förståelsen av modulusoperationer, nämligen klockan. Säg att klockan är 10 på förmiddagen och att vi ska träffas om 7 timmar. Då säger vi kanske att vi träffas klockan 5 istället för 17. Om vi lägger ihop 10+7 timmar skulle ju klockan bli 17 (och det blir den ju på ett digitalur). På en gammal hederlig analog klocka hittar vi inte klockslaget 17 utan klockslaget 5. Vi räknar 17-12 och får 5 som klockslag. Varje gång klockan passerar 12 börjar vi om från början. Vi kan matematiskt beteckna denna räkneoperation på följande sätt: 10+17 = 5 (mod 12).

Modulo 6Exempel på moduloberäkningar

För att underlätta tänkandet visar vi en ringsymbol eller urtavla för modulo 6 beräkningar. Vi kan lätt med figurens hjälp se att 2+5=1 (mod 6). Med figuren tillhands inser du säkert varför moduloberäkningar sägs ske i aritmetiska ringar. Du kan även tänka dig en aritmetisk ring som om man har tagit tallinjen och knutit ihop ändarna.

Modulofunktioner och kryptering

Om man tänker sig att du har resultatet 5 och vet att man använt (mod 12) för att få fram det, kan vi då gå baklänges och ta reda på talen? Svaret är att det blir svårt. Faktum är att det finns många tal som uppfyller 5 (mod 12), t ex 23+6 = 5 (mod 12). Detta faktum gör att man kan använda modulofuktioner för att skapa nycklar som kan distribueras fritt (publik key kryptering).

Övningsuppgifter

  1. Bestäm 7 mod 3.
  2. Bestäm 8 mod 2.
  3. Bestäm 9 mod 4.
  4. Bestäm två tal som uppfyler 3 (mod 12).
  5. Bestäm minst ett tal som uppfyller 2 = 9 mod x