For å finne største felles divisor (gcd) kan vi begrense oss til N, sidenfor alle a, b Z, harvi gcd(a, b) =gcd( a, b ). I prinsippet, dersom vi vet at a = p t 1 kan vi se at 1 p t 2 2 p t n og b = p s 1 1 ps 2 gcd(a, b) =p min(t 1,s 1 ) 1 p min(t 2,s 2 ) 2 p min(t n,s n ) n 2 ps n n,så For eksempel, ut fra 42 = 2 1 3 1 7 1 og 27 = 3 3 =2 0 3 3 7 0 for vi at gcd(42, 27) = 2 min(1,0) 3 min(1,3) 7 min(1,0) =2 0 3 1 7 0 =3 Teorem 9 For alle ikke negative heltall a og alle positive heltall b gcd (a, b) =gcd(b, gcd (b, a mod b)) 21. september 2005 c Vladimir Oleshchuk 20 Bevis: Vi skal vise at gcd(a, b) oggcd(b, a mod b) deler hverandre og derfor, i følge teoremet, må de være like(siden de begge er ikke negative). Førstskalviviseatgcd(a, b) gcd(b, a mod b). Hvis d =gcd(a, b), så harvid a og d b. Mena mod b = a ba/bc b. Derfor må d (a mod b). Altså er d gcd(b, a mod b), d.v.s., gcd(a, b) gcd(b, a mod b) Nå skalviviseatgcd(b, a mod b) gcd(a, b). La d =gcd(b, a mod b). Da må d b og d (a mod b). Siden a = ba/bc b + (a mod b), så era en lineær kombinasjon av b og a mod b. Derford a. Siden d a og d b, såfår vi at d gcd(a, b) eller gcd(b, a mod b) gcd(a, b) 21. september 2005 c Vladimir Oleshchuk 21
Nå kan vi presentere en algoritme som ble beskrevet i Elementer av Euklid (ca. 300b.c.). Dette er en rekursiv algoritme som baseres direkte på det forrige teoremet. Vi regner at input a og b ikke er negative heltall. Dette er nok siden gcd(a, b) =gcd( a, b ). euclid(a, b) : if b == 0 then return a else return euclid(b,a mod b) 21. september 2005 c Vladimir Oleshchuk 22 Eksempel 4 Vi skal kjøre euclid algoritmen for å finne gcd(42, 27). gcd(42, 27) = euclid(42, 27) = euclid(27, 42 mod 27) = euclid(27, 15) = euclid(15, 27 mod 15) = euclid(15, 12) = euclid(12, 15 mod 12) = euclid(12, 3) = euclid(3, 12 mod 3) = euclid(3, 0) = 3 21. september 2005 c Vladimir Oleshchuk 23
Utvidet Nå skal vi utvide slik at vi også skalfinne x og y slik at d =gcd(a, b) =ax + by. Algoritmen utvidet-euclid tar vilkårlige hele tall a og b, og leverer resultat iformen(d, x, y). utvidet-euclid(a, b) if b =0 then return (a, 1, 0) d 0,x 0,y 0 utvidet-euclid(b, a mod b) (d, x, y) (d 0,y 0,x 0 ba/bc y 0 ) return (d, x, y) 21. september 2005 c Vladimir Oleshchuk 24 Forklaring til Utvidet Hvis b =0,så leverer algoritmen d = a, x =1ogy = 0. Dette er riktig svar fordi d =gcd(a, 0) = a og d = a 1+b 0. Hvis b 6= 0,så beregner algoritmen d 0 =gcd(b, a mod b). Derfor er d 0 = bx 0 +(a mod b)y 0. Av samme grunn som i forrige algoritme er d =gcd(a, b) = gcd(b, a mod b) =d 0.Derforerd = d 0 = bx 0 +(a mod d)y 0 = bx 0 +(a ba/bc b)y 0 = ay 0 + bx 0 ba/bc by 0 = ay {z} 0 + b(x 0 ba/bc y 0 ). {z } x y Det betyr at dersom d =gcd(a, b) =ax + by, skalvivelgex = y 0 og y = x 0 ba/bc y 0. 21. september 2005 c Vladimir Oleshchuk 25
Eksempel 5 Vi skal kjøre utvidet-euclid algoritmen for å finne gcd(42, 27). utvidet-euclid(42, 27) a b ba/bc d x y 42 27 1 3 2-3 27 15 1 3-1 2 15 12 1 3 1-1 12 3 4 3 0 1 3 0 3 1 0 Derfor gcd(42, 27)=3=42 2+27 ( 3). 21. september 2005 c Vladimir Oleshchuk 26 Definition 2 Anta at a og b er heltall og n er et positiv heltall. Da skriver vi a b (mod n) hvis n (a b) sier at a kongruent b modulo n. Anta at a og b er slike at a = q 1 n+r 1 og b = q 2 n+r 2,hvor0 r 1 n 1 og 0 r 2 n 1. Da a b =(q 1 n + r 1 ) (q 2 n + r 2 )=n(q 1 q 2 ) (r 1 r 2 ) Derfor n (a b) hvis og bare hvis r 1 r 2 = 0. Eller a b (mod n) r 1 = r 2 Det betyr at a = b + kn for noen k Z. Vi kan finne ut at 21 1(mod5), 21 3(mod6), 21 0(mod7). 21. september 2005 c Vladimir Oleshchuk 27
Vi definerer følgende delmengder av Z: [0] = {..., 2n, n, 0,n,2n,...} = {0+nk k Z} [1] = {..., 2n +1, n +1, 1,n+1, 2n +1,...} = {1+nk k Z} [2] = {..., 2n +2, n +2, 2,n+2, 2n +2,...} = {2+nk k Z}... [n 1] = {..., n 1), 1,n 1, 2n 1, 3n 1,...} = {(n 1) + nk k Z} Hver t Z kan bli presentert som t = qn + r, 0 r<n.derfor t [r] eller [t] =[r]. Vi betegner delmengde Z n = {[0], [1],...,[n 1]} Derfor,videreskalvipresentereZ n = {0, 1,...,n 1}. På mengdez n operasjoner + n og n kan defineres ved hjelp av tabeler. 21. september 2005 c Vladimir Oleshchuk 28 Følgende tabeller presenterer eksempler av operasjoner i Z 7. + 7 0 1 2 3 4 5 6 0 0 1 2 3 4 5 6 1 1 2 3 4 5 6 0 2 2 3 4 5 6 0 1 3 3 4 5 6 0 1 2 4 4 5 6 0 1 2 3 5 5 6 0 1 2 3 4 6 6 0 1 2 3 4 5 7 0 1 2 3 4 5 6 0 0 0 0 0 0 0 0 1 0 1 2 3 4 5 6 2 0 2 4 6 1 3 5 3 0 3 6 2 5 1 4 4 0 4 1 5 2 6 3 5 0 5 3 1 6 4 2 6 0 6 5 4 3 2 1 Eksempel. Beregne 11 16 13 (i Z 16 ). 11 13 = 143. 143 mod 16 = 15. Derfor 11 16 13 = 15 (i Z 16 ). 21. september 2005 c Vladimir Oleshchuk 29
Operasjonsegenskaper Operasoner + n og n på Z n tilfredsstiller de fleste egenskaper som de har i vanlig aritmetikk: 1. Summering (addisjon) er lukket, i.e., for alle a, b Z n,a+ n b Z n 2. Summering er kommutativ, i.e., for alle a, b Z n,a+ n b = b + n a 3. Summering er assosiativ, i.e., for alle a, b, c Z n, (a + n b)+c = a + n (b + n c) 4. 0 er additiv identitet, i.e.,for hvert a Z n,a+ n 0=0+ n a = a 5. Invers til hvert a Z n relativt + er lik n a, i.e.,forhvert a Z n,a+ n (n a) =(n a)+ n a =0 21. september 2005 c Vladimir Oleshchuk 30 6. Multiplikasjon er lukket, i.e. for alle a, b Z n,ab Z n 7. Multiplikasjon er kommutativ, i.e., for alle a, b Z n,a n b = b n a 8. Multiplikasjon er assosiativ, i.e., for alle a, b, c Z n, (a n b) n c = a n (b n c) 9. 1 er multiplikativ identitet, i.e., for hvert a Z n,a n 1=1 n a = a 10. Multiplikasjon distribueres over summering, i.e., for alle a, b, c Z n, (a + n b) n c = a n c + n b n c og a n (b + n c) n a = a n b + n a n c. 21. september 2005 c Vladimir Oleshchuk 31
Eksempel 1: VISA kort IBM har utviklet en metode for å kontrollere enkelte feil i identifikasjonstall. Det brukes, bl.a., i VISA kort. Metoden er følgende. Funksjonen σ : {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} defineres på følgende måte: x 0 1 2 3 4 5 6 7 8 9 σ (x) 0 2 4 6 8 1 3 5 7 9 For hver sekvens av sifrere a 1 a 2...a n 1 tilsettes kontroll siffer a n slik at σ (a 1 )+a 2 + σ (a 3 )+... + σ (a n 1 )+a n 0(mod10), hvis n =2k, k Z + a 1 + σ (a 2 )+a 3 +... + σ (a n 1 )+a n 0(mod10), hvis n =2k +1,k Z + 21. september 2005 c Vladimir Oleshchuk 32 Eksempel 2: Norsk personnummer Det finnes metoder basert på samme ideen for å kontrollere to feil i identifikasjonstall. For eksempel, et norsk persjonnummer består av 11 sifrere a 1 a 2...a 10 a 11 hvor de siste siferne må være slik at følgende tilfredstilles: 3a 1 +7a 2 +6a 3 + a 4 +8a 5 +9a 6 +4a 7 +5a 8 +2a 9 + a 10 0(mod11) og 5a 1 +4a 2 +3a 3 +2a 4 +7a 5 +6a 6 +5a 7 +4a 8 +3a 9 +2a 10 +a 11 0(mod11) Med en slik metode er det mulig å kontrollere alle ankelt feil og nesten alle dobbelt feil. 21. september 2005 c Vladimir Oleshchuk 33
Endelige grupper En gruppe er en mengde S sammen med en binær operasjon definert på S, betegnes (S, ), med følgende egenskaper: 1. a, b S, a b S 2. det finnes et element e S slik at e a = a e = a for hvert a S 3. for alle a, b, c S, a (b c) =(a b) c 4. for hvert element a S finnes et entydig element b S slik at a b = b a = e Hvis, i tilleg, operasjon er kommutativ, dvs a b = b a, da kalles (S, ) kommutativ eller abelsk gruppe. Hvis (S, ) er en gruppe og S er en endelig mengde da kalles (S, ) en endelig gruppe. 21. september 2005 c Vladimir Oleshchuk 34 Teorem 10 (Z n, + n ) er en endelig abelsk gruppe. Siden (Z n, + n ) er en gruppe, additiv invers alltid eksisterer, d.v.s., vi kan trekke fra elementer i Z n. For eksempel, (a b)modn =(a +( b)) mod n =(a +(n b)) mod n. Vi beregner (11 18) mod 31 som (11 + ( 18)) mod 31 = (11 + (31 18)) mod 31 = (11 + 13) mod 31 = 24 mod 31 På den andre siden kunne vi også haberegnet (11 18) mod 31 = ( 7) mod 31 = (31 7) mod 31 = 24 mod 31 21. september 2005 c Vladimir Oleshchuk 35
Eksempel: ikke gruppe La oss se på (Z n, n) når n =7. Fra tabellen som presenterer (Z 7, 7) kan vi se at 0 ikke har noe invers element siden 0 7 a = a 7 0=06= 1. + 7 0 1 2 3 4 5 6 0 0 1 2 3 4 5 6 1 1 2 3 4 5 6 0 2 2 3 4 5 6 0 1 3 3 4 5 6 0 1 2 4 4 5 6 0 1 2 3 5 5 6 0 1 2 3 4 6 6 0 1 2 3 4 5 Derfor kan vi konkludere at (Z 7, 7) ikkeergruppe. 7 0 1 2 3 4 5 6 0 0 0 0 0 0 0 0 1 0 1 2 3 4 5 6 2 0 2 4 6 1 3 5 3 0 3 6 2 5 1 4 4 0 4 1 5 2 6 3 5 0 5 3 1 6 4 2 6 0 6 5 4 3 2 1 21. september 2005 c Vladimir Oleshchuk 36 La oss betegne med Z n mengden av alle elementer fra Z n som er relativ primisk til n : Z n = {[a] n [a] n Z n og gcd (a, n) =1} Da er Z7 = {1, 2,...,6} og Z p = {1, 2,...,p 1} hvor p er et primtall. Andre eksempel er Z 12 = {1, 5, 7, 11}. Teorem 11 (Z n, ) er en endelig abelsk gruppe. Systemet (Z n, ) kallesenmultiplikativ gruppe modulo n. 21. september 2005 c Vladimir Oleshchuk 37
Eksempel: multiplikativ gruppe Følgende tabell presenterer den multiplikativ gruppe ³ Z 12,. 12 1 5 7 11 1 1 5 7 11 5 5 1 11 7 7 7 11 1 5 11 11 7 5 1 21. september 2005 c Vladimir Oleshchuk 38 Euler s φ-funksjon Systemet (Z n, n) er en endelig gruppe. Antall elementer i (Z n, n) er lik antall tall i mengde {1, 2,...,n 1} som er innbyrdes primiske med n. Vi skal skrive Z n = φ (n), hvor φ (n) betegner antall positive helltall som er mindre enn n og som er relativt primiske med n. 21. september 2005 c Vladimir Oleshchuk 39
Eksempel: Euler s φ-funksjon Denne funksjonen kalles Euler s φ-funksjon og er definert for alle helltall n 1. Euler s φ-funksjon defineres for hvert helltall n 1 slik at φ (n) betegner antall positive helltall som er mindre enn n og som er relativt primiske med n. Laossberegneφ (n) forn =1, 2, 3,...,15: φ (1) = 1 φ (2) = 1 φ (3) = 2 φ (4) = 2 φ (5) = 4 φ (6) = 2 φ (7) = 6 φ (8) = 4 φ (9) = 6 φ (10) = 4 φ (11) = 10 φ (12) = 4 φ (13) = 12 φ (14) = 6 φ (15) = 8 21. september 2005 c Vladimir Oleshchuk 40 Eksempel: Shift Siffer Eksempel 6 Shift Siffer. La oss definere Shift Siffer over Z 26 (siden den engelske alfabetet har 26 bokstaver). Krypteringsfunksjonen skal være Dekrypteringsfunksjonen blir e K (x) =x + K mod 26,x Z 26 d K (y) =y K mod 26,y Z 26 Det er enkelt åseatd K (e K (x)) = x for hver x Z 26. For å kryptere engelsk tekst skal vi først definere en korespondanse mellom bokstaver og tall fra Z 26. For K=3 cypher kalles Ceasar Cypher og ble brukt av Julius Ceasar. 21. september 2005 c Vladimir Oleshchuk 41
For eksempel, kan være som følgende: A 0, B 1,...,Z 25. Dette er gitt i tabelen: A B C D E F G H I J K L M 0 1 2 3 4 5 6 7 8 9 10 11 12 N O P Q R S T U V W X Y Z 13 14 15 16 17 18 19 20 21 22 23 24 25 Hvis K =12svarerordetMATEMATIKKtil1201941201981010 og den krypterte teksten med K =12blir241251624125202222 som tilsvarer ordet YMFQYMFUWW. 21. september 2005 c Vladimir Oleshchuk 42 Eksempel: Affine Siffer Eksempel 7 Affine Siffer Vi definerer såkalt Affine Siffer over Z 26. Krypteringsfunksjonen blir e K (x) =(ax + b)mod26, a,b Z 26 og dekryptering betyr å finne x fra y ax + b (mod 26). Det betyr at vi bør kunne finne løsningen av en slik ligning eller ax y b (mod 26). Vi skal se at en slik løsning finnes hvis gcd (a, 26) = 1. 21. september 2005 c Vladimir Oleshchuk 43
Teorem 12 Kongruens ax b (mod n) har en entydig løsningen for hver b Z n hvis og bare hvis gcd(a, n) =1. Definition 3 Anta at a Z n. Multiplikativ invers til a, betegnes med ³ a 1 mod n,ogeretelementa 1 Z n slik at aa 1 a 1 a 1(modn). For eksempel, 5 1 mod 13 = 8 fordi 5 8 1(mod13). Da kan vi definere divisjon i Z n som a/b a b 1 (mod n). 21. september 2005 c Vladimir Oleshchuk 44 Beregning sv multiplikativ invers i Z n Eksempel 8 Hvordan kan vi fine multiplikativ invers? Hvis gcd(a, b) =1,så ax + by =1.Fra (ax + by)modb =1modb og (ax + by)modb = ax mod b + by mod b = ax mod b følger at ax mod b =1modb Derfor x = a 1. Vi kan finne slik x ved hjelp av utvidet-euclid. 21. september 2005 c Vladimir Oleshchuk 45
Oppgave 1 Beregn 28 1 mod 75. Ved hjelp av utvidet Euklides algoritmen skal vi finne x, y slike at gcd(28, 75) = 28x +75y =1. a b ba/bc d x y 28 75 0 1 8 3 75 28 2 1 3-8 28 19 1 1-2 3 19 9 2 1 1-2 9 1 9 1 0 1 1 0-1 1 0 Vi har at gcd(28, 75) = 28 ( 8) + 75 3=1. Derfor 28 1 mod 75 = 8mod75=(75 8) mod 75 = 67. 21. september 2005 c Vladimir Oleshchuk 46