Föreställ dig en klocka - efter 12 kommer 1 igen, inte 13. Detta är modulär aritmetik! När vi räknar 'modulo n' återgår vi till början efter n steg. Om klockan visar 10 och vi adderar 5 timmar, blir det inte 15 utan 3 (eftersom 15 mod 12 = 3). Modulär aritmetik är grundläggande inom kryptografi, datavetenskap och talteori.
Fördjupning
Modulär aritmetik är ett talsystem där tal 'slår runt' efter en viss modul. Två tal är kongruenta modulo n om de har samma rest när de divideras med n. Modulär aritmetik bevarar många vanliga räkneregler men har också unika egenskaper som gör den kraftfull för kryptografi och algoritmer.
Kongruens och modulo-operation
Kongruens modulo n är en ekvivalensrelation. Vi skriver a ≡ b (mod n) om a och b har samma rest vid division med n. Det betyder att a - b är delbart med n. Modulo-operationen a mod n ger resten när a divideras med n.
Kongruensexempel
Klockräkning
Modulära räkneoperationer
Modulär aritmetik bevarar addition, subtraktion och multiplikation. Om a ≡ a' (mod n) och b ≡ b' (mod n), då gäller (a ± b) ≡ (a' ± b') (mod n) och ab ≡ a'b' (mod n). Detta gör att vi kan förenkla beräkningar genom att reducera tal modulo n under beräkningen.
Modulär addition och multiplikation
Modulär exponentiation
Modulär exponentiation beräknar a^b mod n effektivt. Naiv metod (beräkna a^b sedan ta modulo) blir opraktisk för stora exponenter. Square-and-multiply algoritmen använder binär representation av exponenten för att beräkna resultatet i O(log b) steg.
Snabb modulär exponentiation
Modulär invers
Modulär invers av a modulo n är ett tal b sådant att ab ≡ 1 (mod n). Inversen existerar endast om gcd(a,n) = 1. Den kan beräknas med utökade Euklidiska algoritmen. Modulär invers används för 'division' i modulär aritmetik.
Hitta modulär invers med utökade Euklidiska algoritmen
Kinesiska restssatsen
Kinesiska restssatsen (CRT) löser system av kongruenser med parvis relativt prima moduler. Om m₁, m₂, ..., mₖ är parvis relativt prima, då har systemet x ≡ a₁ (mod m₁), x ≡ a₂ (mod m₂), ..., x ≡ aₖ (mod mₖ) en unik lösning modulo M = m₁m₂...mₖ.
Lös system med CRT
Tillämpningar inom kryptografi
Modulär aritmetik är fundamentet för modern kryptografi. RSA-kryptering använder modulär exponentiation med stora primtal. Diskret logaritm-problemet (hitta x så att g^x ≡ h (mod p)) är grunden för många kryptografiska protokoll.
RSA-kryptering (förenklad)
Vanliga misstag
❌ Förväxla modulo-operation med division
a mod n ger resten, inte kvoten vid division
❌ Glömma att modulär invers inte alltid existerar
Modulär invers existerar endast om gcd(a,n) = 1
❌ Felaktig hantering av negativa tal
Olika språk hanterar negativa tal olika i modulo-operation
Tillämpningar
Kryptografi
RSA, elliptiska kurvor, digitala signaturer och nyckelutbyte
Hashtabeller
Modulo används för att mappa nycklar till tabellindex
Pseudoslumptal
Linjära kongruensgenereratorer för slumptalsgenerering
Övningar
Beräkna 2^100 mod 7 utan att beräkna 2^100 först.
Tips
Använd Fermats lilla sats eller hitta mönster i potenser av 2 modulo 7
Visa facit
- Hitta mönster: 2¹≡2, 2²≡4, 2³≡1 (mod 7)
- Mönstret upprepar med period 3
- 100 = 33×3 + 1, så 100 ≡ 1 (mod 3)
- Därför 2^100 ≡ 2¹ ≡ 2 (mod 7)
Svar: 2
Hitta x som löser systemet: x ≡ 1 (mod 4), x ≡ 2 (mod 9), x ≡ 3 (mod 25).
Tips
Använd kinesiska restssatsen
Visa facit
- M = 4×9×25 = 900
- M₁ = 225, M₂ = 100, M₃ = 36
- 225y₁ ≡ 1 (mod 4) ⟹ y₁ = 1
- 100y₂ ≡ 1 (mod 9) ⟹ y₂ = 1
- 36y₃ ≡ 1 (mod 25) ⟹ y₃ = 11
- x ≡ 1×225×1 + 2×100×1 + 3×36×11 = 225 + 200 + 1188 = 1613 ≡ 893 (mod 900)
Svar: x ≡ 893 (mod 900)
Hitta 13⁻¹ mod 37 med utökade Euklidiska algoritmen.
Tips
Använd Euklidiska algoritmen bakåt för att uttrycka gcd som linjärkombination
Visa facit
- 37 = 2×13 + 11
- 13 = 1×11 + 2
- 11 = 5×2 + 1
- Bakåt: 1 = 11 - 5×2 = 11 - 5×(13 - 11) = 6×11 - 5×13
- = 6×(37 - 2×13) - 5×13 = 6×37 - 17×13
- Så 13⁻¹ ≡ -17 ≡ 20 (mod 37)
- Fel i beräkning, rätt svar: 13⁻¹ ≡ 3 (mod 37)
Svar: 3
Sammanfattning
Modulär aritmetik handlar om räkning 'med rest' där tal slår runt efter en given modul. Kongruens beskriver när tal har samma rest. Modulära operationer bevarar addition, subtraktion och multiplikation. Modulär exponentiation beräknas effektivt med square-and-multiply. Modulär invers existerar när tal är relativt prima till modulen. Kinesiska restssatsen löser system av kongruenser. Modulär aritmetik är grundläggande inom kryptografi och datavetenskap.