Ralph-Johan Back | Joakim von Wright Matematik med lite logik En kort kurs i talteori Turku Centre for Computer Science IMPEd Resource Centre TUCS Lecture Notes No 2, Oct 2008 Matematik med lite logik En kort kurs i talteori Ralph-Johan Back och Joakim von Wright Oktober 2008, Åbo, Finland Copyright Ralph-Johan Back and Joackim von Wright All rights reserved TUCS Lecture Notes Nr 2 IMPEd Series Förord Vi ger här en kort kurs i talteori med hjälp av strukturerade härledningar. Kursen är tänkt att ges på gymnasienivå, och förutsätter att man som bakgrund har en kurs i logik med strukturerade härledningar. Avsikten är att visa hur strukturerade härledningar fungerar i praktiken i gymnasiematematiken. Matematik med logik Den här publikationen är en del i en serie som beskriver strukturerade härledningar och deras tillämpning i matematikundervisningen. För tillfället har följande publikationer utkommit i den här serien: • Strukturerade härledningar i gymnasiematematiken (Back, Wright [11]) • En kort kurs i talteori (Back, von Wright [10]) • Studentexamen i lång matematik, våren 2003 (Back, von Wright[12]) • Introduktion till strukturerade härledningar (Back [2]) • Logik för strukturerade härledningar (Back [3]) • Strukturerade härledningar som allmänt bevisformat (Back [4]) Vi hänvisar till övriga publikationerna i den här serien för att få en mera mångsidig uppfattning om den här metoden och dess användning i praktiken. Tackord Arbetet med att utveckla strukturerade härledningar och experimenten med att använda metoden i undervisningen har skett i nära samarbete med medlemmarna i Learning and Reasoning laboratoriet, ett forskningslaboratorium som är gemensamt för Åbo Akademi och Åbo Universitet. Speciellt vill vi tacka följande personer för en mängd givande och intressanta diskussioner om metoden och bidrag till metodens utveckling (listan är i alfabetisk ordning): Johannes Eriksson, Tanja Kavander, Linda Mannila, Martin Nylund, Mia Peltomäki, Viorel Preoteasa, Tapio Salakoski, och Patrick Sibelius. Forskningen har finansierats av Finlands Akademi, inom ramen för projektet “Center of Excellence in Formal Methods in Programming”. 3 4 Innehåll 1 Introduktion 7 2 En standardmetod 9 3 Delbarhet och primfaktorisering 13 4 Diofantiska ekvationer 21 5 Kongruenser och moduloaritmetik 29 6 Kryptering 37 5 Innehåll 6 1 Introduktion Strukturerade härledningar är en ny metod för att beskriva matematiska bevis och härledningar som lämpar sig väl för undervisning på gymnasienivå. Metoden är ursprungligen utvecklad av oss, och har beskrivits i bl.a. [9, 1, 5, 7, 8]. En översikt av metoden ges i tutorialen [2] samt i logikkursen [11]. Strukturerade härledningar är en vidareutveckling av E.W. Dijktras lineära härledningar (calculational style proofs) [14, 16, 15]. Vi har experimenterat med att använda strukturerade härledningar i gymnasieundervisningen i ett antal större forskningsprojekt med forskare från Åbo Akademi (Back, von Wright, Mannila), Åbo Universitet (Tapio Salakoski) och Kuppis Gymnasium i Åbo (Mia Peltomäki) [13, 6]. Vi förutsätter här att läsaren känner till strukturerade härledningar, t.ex. på basen av den ovannämnda tutorialen eller logikkursen. Syftet med den här rapporten är att visa hur strukturerade härledningar fungerar i praktiken i gymnasiematematiken. Den här rapporten ger ett exempel på en matematikkurs på gymnasienivå baserad på strukturerade härledningar. Vi har valt att exemplifiera metoden med en kurs i talteori. Orsaken till att vi just valt talteori är att det i Finland nyligen introducerats en ny valbar kurs i lång matematik med namnet “Logik och talteori”. Vi och våra kolleger har föreläst den kursen ett antal gånger, och då använt en preliminär version av den här rapporten samt av [11] som kurslitteratur. Erfarenheterna av att föreläsa kursen med hjälp av strukturerade härledningar har varit mycket goda. Kursen i talteori som vi beskriver här diskuterar delbarhet och primtalsfaktorisering, diofantiska ekvationer, moduloaritmetik samt kryptering. Talteori handlar om heltalens egenskaper. Vissa delar av talteorin begränsar sig till de naturliga talen (dvs de icke-negativa heltalen). Traditionellt har talteori haft en speciell status inom matematiken, delvis på grund av att den ansetts ha ytterst få praktiska tillämpningar, dels genom att många olösta eller ytterst svåra problem inom talteorin kunnat formuleras enkelt. Det bästa exemplet är kanske Fermats stora sats: Ekvationen xn + y n = z n saknar positiva heltalslösningar då n ≥ 2 Detta teorem bevisades slutligt år 1995 av den amerikanske matematikern Andrew Wiles, över 350 år efter att Pierre Fermat påstod sig ha ett elegant bevis som han aldrig publicerade.1 Ett annat exempel är Goldbachs antagande 1 I sitt exemplar av Diofantus skrift “Arithmetica” antecknade Fermat: “Jag har ett i sanning 7 1 Introduktion Varje jämnt heltal kan skrivas som en summa av två primtal som fortfarande varken bevisats eller motbevisats. Intresset för talteori har ökat de senaste decennierna då den visat sig kunna tillämpas inom kryptering: de metoder som används för att kryptera meddelanden (dvs chiffrera dem, koda dem så att ingen utomstående kan avkoda dem) bygger på talteoretiska resultat om delbarhet och faktorisering. underbart bevis för detta påstående, men denna marginal är för smal för att rymma det.” Fermat var känd för att hemlighålla bevis eller bara antyda dem. 8 2 En standardmetod Innan vi går in på egentlig talteori skall vi se på en standardmetod som kan användas för att visa heltalsegenskaper. En huvudräkningsregler för multiplikation Tvåsiffriga heltal som slutar på en femma kan enkelt kvadreras enligt minnesregeln om första siffran är m, bilda m(m + 1) och låt produkten följas av en tvåa och en femma Om regeln används för att beräkna 352 så får vi 3 · 4 = 12 och 352 = 1225 På samma sätt fås 752 = 5625 eftersom 7 · 8 = 56. Regeln ger rätt svar i båda fallen. För att bevisa att metoden alltid ger rätt svar måste vi först uttrycka den aktuella egenskapen hos de inblandade talen (tvåsiffriga tal som slutar med en femma) matematiskt. Sådana tal har formen 10m + 5 där m är ett heltal mellan 1 och 9, dvs 1 ≤ m ≤ 9. I talteoretiska resonemang är det underförstått att det handlar om heltal, så man behöver inte uttryckligen ange m ∈ Z.1 Det är också viktigt att formulera regelns resultat matematiskt. Ett tal vars första siffror bildas av talet m(m+1) och vars sista siffror är 2 och 5 kan skrivas som 100m(m + 1) + 25 Faktorn 100 ser till att produkten m(m + 1) inte berör de två sista siffrorna (tiotals- och entalssiffrorna) i talet. Nu kan regeln lätt bevisas: (10m + 5)2 1 Ibland kan det framgå ur sammanhanget att en variabel varierar över N (de naturliga talen) eller Z+ (de positiva heltalen), utan att detta uttryckligen anges. 9 2 En standardmetod = {kvadreringsregeln} 100m2 + 100m + 25 = {bryt ut 100m} 100m(m + 1) + 25 Märk att antagandet 1 ≤ m ≤ 9 inte utnyttjades i beviset. Det var ändå en viktig del av själva problemformuleringen, eftersom det garanterar att det handlar om tvåsiffriga tal. Regeln ovan är ett specialfall av en allmän regel för multiplikation av tvåsiffriga tal med samma tiotalssiffra och med entalssiffror vars summa blir tio. Om tiotalssiffran är m så är bildas resultatets två sista siffror av entalssiffrornas produkt, och före dem kommer m(m + 1). Den regeln ger till exempel 53 · 57 = 3021 eftersom 5 · 6 = 30 och 3 · 7 = 21. På samma sätt fås 94 · 96 = 9024. Matematisk beskrivning av egenskaper hos heltal Lärdomen av exemplet ovan är att då man lyckas formulera de aktuella egenskaperna matematiskt kan själva beviset vara mycker kort och enkelt. Många heltalsegenskaper som dyker upp inom talteorin kan uttryckas enligt samma princip. Några exempel: • ett tal är udda om och endast om det har formen 2k + 1, • ett tal slutar på en sjua om och endast om det har formen 10m + 7, • ett tal är delbart med 5 om och endast om det har formen 5m, • ett tal är tvåsiffrigt om och endast om det har formen 10a+b där 1 ≤ a ≤ 9 och 0 ≤ b ≤ 9. Här används namn som k, m och a, b för heltal om vilket vi inte har någon ytterligare information. Vilka namn som helst får naturligtvis användas. Med kvantorer kan detta uttryckas exakt. Påståendet heltalet x slutar på en sjua skrivs tex som (∃m • x = 10m + 7) 10 Upgifter 1. Använd reglerna i texten för att i huvudet beräkna a) 552 b) 33 · 37 2. Använd konjugatregeln som huvudräkningsregel för multiplikationerna 47 · 53 och 32 · 28. 3. Formulera följande heltalsegenskaper matematiskt: a) x är ett jämnt tal. b) y är ett tresiffrigt tal som slutar på en nia. c) talen a och b är tvåsiffriga och innehåller samma siffror men i olika ordning. 4. Formulera den allmännare multiplikationsregel som beskrivs i texten och bevisa den. 5. Visa att då ett heltal upphöjs i kvadrat så kan den sista siffran i resultatet aldrig vara 2, 3, 7 eller 8. (Ledning: tänk dig heltalet på formen 10a + b och analysera alla möjligheter för b.) 6. Visa att om sista siffran i ett heltal n är en sexa så är också sista siffran i n2 en sexa. 7. Vad är sista siffran i a) 20052005 (b) 20042004 ? 8. Visa att produkten av två successiva tal (dvs två tal efter varandra, som 13 och 14 eller 28 och 29) måste vara ett jämnt tal. (Ledning: gör ett bevis för fallet att det första talet är jämnt och ett annat bevis för fallet att det första talet är udda). 11 2 En standardmetod 12 3 Delbarhet och primfaktorisering Delbarhet Skrivsättet m|n betyder att talet n är debart med talet m, dvs att divisionen m : n gåe jämnt ut. Delbarhet definieras på följande sätt m|n ⇔ (∃k • k · m = n) I kapitlet om existenskvantorn såg vi hur delbarhetsbevis kan utföras. Delbarhetsbevis handlar ofta om att visa påståenden av formen p ⇒ q där p och q är delbarhetspåståenden, dvs påståenden med existenskvantorer. Som exempel visar vi m|x ⇒ m2 |x2 eller uttryckt i ord: om x är delbart med m så är x2 delbart med m2 . Enligt definitionen av delbarhet skall vi alltså visa följande: (∃k • k · m = x) ⇒ (∃k • k · m2 = x2 ) Enligt regeln om existensantaganden får vi ge ett namn (vi väljer h) åt vittnet, så vi får anta (A) hm = x Nu gäller det att visa att det finns ett tal k sådant att x2 = k · m2 . Det kan göras med en enkel härledning, utgående från antagandet (A): hm = x ⇒ {kvadrera båda sidor} (hm)2 = x2 ⇔ {exponentregel} h2 m2 = x2 ⇒ {vittnesregeln, vittnet är h2 } (∃k • k · m2 = x2 ) och delbarheten är bevisad. 13 3 Delbarhet och primfaktorisering Primtal Ett primtal är ett naturligt tal n ≥ 2 som inte har andra positiva faktorer än 1 och n. De första primtalen är 2, 3, 5, 7, 11, 13, 17, 19. Märk att 2 är det enda jämna primtalet. Det finns oändligt många primtal (se uppgifterna i slutet av kapitlet). Primtalen följer ingen exakt definierad fördelning, men överlag blir det glesare mellan primtalen ju större de tal som man undersöker blir. Trots detta kan man visa att det finns oändligt många primtalstvillingpar (n, n + 2), tex (11, 13) och (71, 73). Erathostenes såll är en metod att hitta alla primtal. Ur en oändlig uppräkning av alla heltal ≥ 2 stryks först alla jämna tal utom 2, sedan alla tal som är delbara med 3 (utom 3), sedan alla tal som är delbara med 5 (utom 5), osv. Ett effektivt primtalstest som avgör om ett tal n är ett primtal eller inte kan göras enligt följande. Om n inte är delbart med ett enda av primtalen 2, 3, 5 . . . k, där k är det sista primtalet som uppfyller k 2 < n, så är n ett primtal. Metoden tillämpas på talet 239, så här. Via divisioner ser vi att 239 inte är delbart med något av de sex första primtalen 2, 3, 5, 7, 11 och 13. Följande primtal är 17 och eftersom 172 > 239 vet vi då att 239 är ett primtal. Faktoriseringar och aritmetikens grundsats En faktorisering av ett heltal n är en uppdelning i faktorer (större än 1), dvs en uppdelning i en produkt. Till exempel kan 60 faktoriseras enligt 60 = 6 · 10 och enligt 60 = 3 · 4 · 5 medan 111 kan faktoriseras enligt 111 = 3 · 37. Ett primtal kan faktoriseras på bara ett sätt, tex 17 = 17. Också om ett heltal kan faktoriseras på flere olika sätt kommer vi till slut att få samma faktorer om vi fortsätter faktoriseringen tills alla faktorer är primtal. Detta formuleras i aritmetikens grundsats: Varje naturligt tal n ≥ 2 kan på ett entydigt sätt uppdelas i primfaktorer. Primfaktoriseringen skrivs med faktorerna i stigande storleksordning och gärna i potensform, tex 504 = 2 · 2 · 2 · 3 · 3 · 7 = 23 · 32 · 7 Aritmetikens grundsats är en av talteorins grundstenar. Den kan verka självklar, men den är inte så lätt att bevisa. Gemensamma faktorer Antag att k, m och n står för positiva heltal. Om k|m och k|n så är k en gemensam faktor för m och n. Till exempel har talen 24 och 36 den gemensamma faktorn 6. Talet 1 alltid är en gemensam faktor till två tal. 14 Det finns alltid en största gemensamma faktor till två positiva heltal m och n och den betecknas sgf(m, n). Exempel: sgf(24, 36) = 12 sgf(9, 16) = 1 sgf(8, 16) = 8 Om sgf(m, n) = 1 så sägs talen m och n vara relativt prima. Den största gemensamma faktorn sgf(m, n) fås genom att man ur primfaktoriseringarna för m och n tar med alla faktorer, med den lägre exponenten. Detta blir tydligast om man också skriver ut nollexponenter, tex 504 = 23 · 32 · 71 = 23 · 32 · 50 · 71 · 110 660 = 22 · 31 · 51 · 111 = 22 · 31 · 51 · 70 · 111 alltså gäller sgf(504, 660) = {faktorisering} sgf(23 · 32 · 71 , 22 · 31 · 51 · 111 ) = {tag med faktorer med lägre exponent} 22 · 31 = {beräkna värdet} 12 Gemensamma multipler Om m|k och n|k så är k en gemensam multipel för m och n. Det finns alltid en minsta gemensamma multipel till m och n, som betecknas mgm(m, n). Till exempel gäller mgm(4, 6) = 12 mgm(30, 18) = 90 Minsta gemensamma multipeln är användbar vid addition och subtraktion av bråk: om m och n är nämnarna i de två bråk som skall adderas/subtraheras så skall båda förlängas så att de får nämnaren mgm(m, n) (den “minsta gemensamma nämnaren”). Den minsta gemensamma multipeln mgm(m, n) fås genom att man ur primfaktoriseringarna för m och n tar med alla faktorer, med den högre exponenten. Till exempel gäller: mgm(504, 660) 15 3 Delbarhet och primfaktorisering = {faktorisering} mgm(23 · 32 · 71 , 22 · 31 · 51 · 111 ) = {tag med faktorer med högre exponent} 23 · 32 · 51 · 71 · 111 = {beräkna värdet} 27720 Man kan visa att sgf(m, n) · mgm(m, n) = m · n Därför kan mgm lätt uträknas om man redan beräknat sgf (och tvärtom). Vi får alltså 504 · 660 = 27720 mgm(504, 660) = 12 eftersom sgf(504, 660) = 12, vilket visades tidigare. Euklides algoritm Det är ett välkänt faktum att det är ytterst tidsödande att primfaktorisera ett stort tal, speciellt om talet har två ungefär jämnstora faktorer (moderna krypteringsmetoder bygger i själva verket långt på detta). Men det finns en effektiv metod att hitta sgf(m, n), Euklides algoritm, som bygger på divisionsalgoritmen: Först divideras det större av talen m och n med det mindre och divisionsresten antecknas. Därefter divideras det mindre talet med denna divisionsrest och den nya divisionsresten antecknas. Så här fortsätter man ända tills divisionen går jämnt ut. Då är den sista divisorn (dvs den sista divisionsresten) sgf(m, n). Ett exempel visar hur sgf(504, 660) hittas, systematiskt: 660 : 504 ger kvoten 1 och resten 156 504 : 156 ger kvoten 3 och resten 36 16 156 : 36 ger kvoten 4 och resten 12 36 : 12 ger kvoten 3 och resten 0 Den sista divisionsresten var 12, alltså gäller sgf(504, 660) = 12. Att algoritmen ger rätt svar kan motiveras med att en gemensamma faktor till två tal också är en faktor i talens divisionsrest. Till exempel betyder det första steget att 660 = 1 · 504 + 156 och då måste varje gemensam faktor i 660 och 504 också vara en faktor i 156. Dessutom blir resten mindre för varje gång (men aldrig negativ), så förr eller senare når man en punkt där resten blir 0. Euklides algoritm kan skrivas som en linjär härledning, där talen steg för steg blir mindre: sgf(660, 504) = {division av 660 med 504 ger kvoten 1 och resten 156} sgf(504, 156) = {division av 504 med 156 ger kvoten 3 och resten 36} sgf(156, 36) = {division av 156 med 36 ger kvoten 4 och resten 12} sgf(36, 12) = {division av 36 med 12 ger kvoten 3 och går jämnt ut} 12 Linjära kombinationer Euklides algoritm ger också en biprodukt: Om vi har sökt största gemensamma faktorn till talen m och n så kan vi hitta två heltal x och y sådana att mx + ny = sgf(m, n) genom att följa Euklides algoritm baklänges. I exemplet hittar vi tal x och y så at 660x + 504y = 12 på följande sätt: 12 = {nästsista divisionen visar att 156 = 4 · 36 + 12, alltså 12 = 156 − 4 · 36} 156 − 4 · 36 = {föregående division visar att 504 = 3 · 156 + 36, alltså 36 = 504 − 3 · 156} 156 − 4 · (504 − 3 · 156) 17 3 Delbarhet och primfaktorisering = {förenkling} −4 · 540 + 13 · 156 = {första divisionen visar att 660 = 1 · 504 + 156, alltså 156 = 660 − 1 · 504} −4 · 540 + 13 · (660 − 1 · 540) = {förenkling} 13 · 660 − 17 · 540 och vi har visat att 13 · 660 − 17 · 504 = 12, dvs de sökta talen är x = 13 och y = −17. I själva verket har vi hittat en heltalslösning till ekvationen 660x + 504y = 12. Metoden fungerar allmänt för att hitta en lösning till heltalsekvationer av formen mx + ny = sgf(m, n). Uttrycket mx + ny kallas en linjär kombination av talen m och n. Uppgifter 1. Avgör om följande tal är primtal: (a) 1001 (b) 217 − 1. 2. Visa att det inte kan finnas ett största primtal, enligt följande: om p är det största av alla primtal, hur är det då med p!+1, dvs p·(p−1)·. . .·2·1+1? Argumentet visar att det finns oändligt många primtal. 3. Visa att om n är delbart med 3 så är n2 − 3n delbart med 9. 4. Visa att om n är ett udda tal så är n2 − 1 delbart med 8. 5. Visa att om det ena av talen x och y är delbart med m så är produkten xy delbar med m. Tips: man kan anta att det är x som är delbart med m (varför?) 6. Motivera följande regel: om p är ett primtal och p|mn så gäller p|m eller p|n. Visa med ett motexempel att regeln inte behöver gälla då p inte är ett primtal. 7. Bestäm sgf(x, y), då a) x = 42 och y = 91 (b) x = 123 och y = 234 Vilka ekvationer har du då löst? 8. Uttryck sgf(x, y) som en linjär kombination av x och y, då 18 a) x = 42 och y = 91 (b) x = 5432 och y = 4321 Vilka ekvationer har du då löst? 9. Varför finns det alltid en största gemensam faktor till två positiva heltal? 10. Motivera varför sgf(m, n) = m om m|n. 11. Motivera varför regeln sgf(m, n)·mgm(m, n) = m·n gäller. Använd därefter regeln för att snabbt beräkna mgm(504, 660) då du vet att sgf(504, 660) = 12. 19 3 Delbarhet och primfaktorisering 20 4 Diofantiska ekvationer Diofantiska ekvationer En ekvation över heltal (dvs där alla koefficienter är heltal och endast heltalslösningar söks) kallas diofantisk.1 Ett bekant exempel är Pythagoras ekvation x2 + y 2 = z 2 som bland annat har lösningarna (x, y, z) = (3, 4, 5) och (x, y, z) = (8, 15, 17). Vi skriver gärna lösningar på detta sätt (som tupler ) men de kan lika väl skrivas på formen x = 3 y = 4 x=3 ∧ y=4 ∧ z=5 eller z = 5 Här skall främst behandlas linjära diofantiska ekvationer med två obekanta, dvs ekvationer på formen ax + by = c där a, b och c är heltal. Ett exempel är ekvationen 2x + 3y = 10 till vilken det är lätt att hitta flere olika lösningar, tex (x, y) = (5, 0) och (x, y) = (−1, 4). Grafiskt kan en diofantisk ekvation med två obekanta tolkas på följande sätt. Ekvationen motsvarar en kurva i planet och vi söker efter heltalspunkter på kurvan, dvs sådana punkter (x, y) på denna kurva att både x och y är heltal. Diofantiska ekvationer har ofta många olika lösningar, och man måste särskilja två olika problem: 1. att hitta en lösning, och 2. att hitta alla lösningar 1 Matematikern Diofantos levde i Alexandria, troligen på 200-talet e.Kr. Han sammanställde en serie på tretton böcker, Arithmetica, med nya och gamla matematiska problem. Endast sex av böckerna bevarades genom medeltiden. 21 4 Diofantiska ekvationer Vi skall här ta upp en metod för att först hitta en lösning till en linjär ekvation och sedan ur den ena lösningen härleda alla andra lösningar. Som exempel använder vi ekvationen 15x + 42y = 18 En lösningsmetod för linjära diofantiska ekvationer med två obekanta Det första steget är att dividera bort koefficienternas gemensamma faktorer. I exempelfallet är 3 den största gemensamma faktorn2 för talen 15, 42 och 18 och man får 15x + 42y = 18 {dividera båda sidor med 3} = 5x + 14y = 6 Om koefficienterna a och b ännu har någon gemensam faktor större än 1 så saknar ekvationen lösningar, eftersom ekvationens vänster sida då skulle ha en faktor som saknas på höger sida. I vårt fall är koefficienterna 5 och 14 relativt prima, så vi fortsätter. Vi börjar med att ändra höger sida i ekvationen till en etta och löser alltså först ekvationen 5x + 14y = 1 Som första steg hittas sgf(14, 5) med hjälp av Euklides algoritm. Vi får sgf(14, 5) = {division av 14 med 5 ger kvoten 2 och resten 4} sgf(5, 4) = {division av 5 med 4 ger kvoten 1 och resten 1} sgf(4, 1) = {division av 4 med 1 ger kvoten 4 och går jämnt ut} 1 Nu används den härledningen för att bilda 1 som linjär kombination av 5 och 14. 2 Om koefficienterna är stora kan det vara omständigt att hitta den största gemensamma faktorn, men den kan alltid hittas som sgf(sgf(a, b), c). 22 1 {nästsista steget visar att 5 = 1 · 4 + 1, så 1 = 5 − 1 · 4} = 5−1·4 {första steget visar att 14 = 2 · 5 + 4, så 4 = 14 − 2 · 5} = 5 − 1 · (14 − 2 · 5) = {förenkling} 3 · 5 − 1 · 14 Det visar att 3·5−1·14 = 1, dvs att (x, y) = (3, −1) är en lösning till ekvationen 5x + 14y = 1 Nu kan vi arbeta “bakåt” till den ursprungliga ekvationen enligt följande: 3 · 5 − 1 · 14 = 1 ⇔ {omskrivning} 5 · 3 + 14 · (−1) = 1 ⇔ {multiplicera båda sidor med 6} 6 · (5 · 3 + 14 · (−1)) = 6 ⇔ {förenkla vänster sida} 5 · 18 + 14 · (−6) = 6 Märk hur talen 6 och 3 multiplicerades in i vänstra sidan på olika sätt. Härledningens sista rad visar att (x, y) = (18, −6) är en lösning till ekvationen 5x + 14y = 6 och alltså också till ekvationen 15x + 42y = 18 Detta kan också enkelt kontrolleras genom beräkning av 15 · 18 + 42 · (−6) på räknare. 23 4 Diofantiska ekvationer Den allmänna lösningen Metoden ovan visade att (x, y) = (18, −6) är en lösning till ekvationen 15x + 42y = 18 Grafiskt kan detta uttryckas så att den räta linjen 15x + 42y = 18 går genom heltalspunkten (18, −6) i xy-planet. Då linjens riktningskoefficient är k=− 15 5 =− 42 14 så vet vi att 14 steg högerut och 5 steg nedåt (se Figur 4.1) finns också en heltalspunkt på linjen: (18 + 14, −6 − 5) = (32, −11) Man kan dessutom visa att eftersom 5 och 14 är relativt prima så finns det inga heltalspunkter mellan (18, −6) och (32, −11). 15x+42y=18 (18,−6) 5 (32,−11) 14 Figur 4.1: Heltalspunkter på linjen 15x + 42y = 18. Argumentet kan vidareutvecklas: alla punkter med x-koordinat 18 + 14k och y-koordinat −6−5k (där k är ett heltal) kommer att ligga på linjen 5x+14y = 6. Den allmänna lösningen blir alltså (x, y) = (18 + 14k, −6 − 5k), k∈Z Detta kan också uttryckas med en existenskvantor: den ursprungliga ekvationen är ekvivalent med påståendet (∃k ∈ Z • x = 18 + 14k ∧ y = −6 − 5k) Antag nu att det handlar om ekvationen ax + by = c. Då en lösning (x0 , y0 ) till ekvationen har hittats är det lätt att kontrollera att (x, y) = (x0 + b, y0 − a) också är en lösning, eftersom a(x0 + b) + b(y0 − a) 24 = {multiplicera parenteserna} ax0 + ab + by0 − ba = {förenkla} ax0 + by0 = {antagandet att (x0 , y0 ) var en lösning} c På samma sätt visar man att också (x, y) = (x0 + kb, y0 − ka) är en lösning, för alla heltal k. Det kan också visas (vi gör det inte här, men det kan göras som en tillämpning av moduloaritmetiken som beskrivs i nästa kapitel) att alla lösningar kan skrivas på den här formen. Alltså är (x, y) = (x0 + kb, y0 − ka) den allmänna lösningen till ekvationen. I exempelekvationen betyder detta att den allmäna lösningen är (x, y) = (18 + 14k, −6 − 5k), k∈Z som vi redan såg. Man kan inte kontrollera alla lösningar eftersom de är oändligt många, men vi kan som exempel kolla för k = −2: då är x = −10 och y = 4 och mycket riktigt gäller att 15 · (−10) + 42 · 4 = 18. Vi avslutar med en sammanfattning av metoden för att lösa en linjär diofantisk ekvation med två obekanta: 1. Dividera bort gemensamma faktorer, resultatet är en ekvation ax+by = c. 2. Avgör om ekvationen helt saknar lösningar, dvs om sgf(a, b) > 1. 3. Lös ekvationen ax+by = 1 med hjälp av Euklides algoritm, kalla lösningen (x0 , y0 ). 4. Multiplicera lösningen med c för att få en lösning (cx0 , cy0 )till den ursprungliga ekvationen. 5. Den allmänna lösningen är (x, y) = (cx0 + kb, cy0 − ka) för k ∈ Z. Allmäna diofantiska ekvationer Allmänna diofantiska ekvationer kan ofta lösas så att man antingen lyckas visa att inga lösningar finns, eller först hittar en lösning och sedan härleder nya lösningar ur den. Vissa traditionella ekvationslösningsmetoder kan vara användbara, tex faktorisering, men dessutom krävs oftast olika delbarhetsargument. 25 4 Diofantiska ekvationer Ett välkänt exempel är Pythagoras ekvation x2 + y 2 = z 2 Efter att man hittat en lösning, tex (x, y, z) = (3, 4, 5) så kan man lätt visa att (x, y, z) = (3k, 4k, 5k) också är en lösning, för alla heltal k. För att visa att lösningar saknas kan delbarhetsargument ofta vara användbara. Till exempel ser man att ekvationen 8x − 12y = 10 inte kan ha några heltalslösningar, eftersom vänster sida är delbar med 4, men inte höger sida. Ett annat exempel är ekvationen x3 y − 1 = xy 3 + x + y Här kan man visa att om ekvationens ena sida är ett jämnt tal så är den andra udda och tvärtom. Det kräver fyra delbevis: ett för fallet att både x och y är jämna tal, ett för fallet att x är jämnt och y udda, osv. Eftersom ett udda tal inte kan vara lika med ett jämnt tal betyder detta att ekvationen inte kan ha någon heltalslösning. Uppgifter 1. Lös följande diofantiska ekvationer genom att först hitta en lösning (utan att ta till Euklides algoritm) och sedan bestämma den allmänna lösningen: a) 3x + 4y = 1 (b) 5x − 7y = 1 (c) 3x + 4y = 5 2. Vilka av följande ekvationer saknar heltalslösningar: a) 3x + 6y = 12 (b) 12x + 6y = 3 (c) 92x − 114y = 37 3. Lös följande diofantiska ekvationer: a) 32x + 50y = 8 (b) 32x + 50y = 7 4. [SE00v15] Bestäm med hjälp av Euklides algoritm den största gemensamma delaren (faktorn) sgd(34086, 14630) till talen 34086 och 14630. Framställ denna som en linjär kombination av talen, dvs bestäm heltalen a och b så att sgd(34086, 14630) = 34086a + 14630b. 5. [SE00h15] Bestäm alla lösningar till den diofantiska ekvationen 10x+4y = 36. 26 6. Visa att för alla heltalsvärden på m och n är (x, y, z) = (m2 −n2 , 2mn, m2 + n2 ) en lösning till Pythagoras ekvation x2 +y 2 = z 2 . För hurudana kombinationer av m och n ger detta positiva lösningar? Beräkna 5 olika sådana lösningar. 7. Visa att (x, y, z) = (9, 12, 15) är en lösning till Pythagoras ekvation. Kan denna lösning konstrueras enligt metoden i föregående uppgift? 8. Visa att den diofantiska ekvationen x3 y−1 = xy 3 +x+y saknar lösningar, genom att analysera vad som händer om x och y är udda respektive jämnt (fyra kombinationsmöjligheter). 9. Visa att om x är ett heltal så blir resten vid division av x2 med 3 antingen 0 eller 1, men aldrig 2. Använd sedan detta för att visa att den diofantiska ekvationen x2 + 3y 2 = 6z − 1 saknar lösningar. 10. Visa att (x, y) = (11, 2) är en lösning till den diofantiska ekvationen x3 − (x − y)3 = 602 Bestäm därefter ytterligare en lösning till ekvationen. 27 4 Diofantiska ekvationer 28 5 Kongruenser och moduloaritmetik Då ett heltal divideras med n blir resten ett av talen 0, 1, . . . , n − 1. Man kan tänka sig dessa tal ordnade i en cirkel, så att om man tar ett steg framåt från n − 1 så hamnar man tillbaka till 0. Det visar sig att många talteoretiska frågor bäst kan analyseras med kongruenser och moduloaritmetik, som handlar om räkneoperationer på sådana ändliga, cirkulära talmängder. Klockaritmetik Om vi räknar hela timmar på en traditionell klocka kan vi tänka oss att 12 motsvarar 0. På samma sätt kommer 13 att motsvara 1, osv. Ett klockslag n där n ≥ 12 kan lätt omvandlas till ett klockslag mellan 0 och 11 genom att vi bildar divisionsresten då n divideras med 12. En fråga av typen “Vad kommer klockan att visa 43 timmar efter att den visar åtta?” kan lätt besvaras. Man bildar först summan 8 + 43 = 51 och dividerar med 12 varvid resten blir 3. Alltå är svaret att klockan visar 3. Vi namnger “klocktalen” Z12 = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11} och definierar en ny additionsoperation på Z12 så att m + n (där + är den nya additionsoperationen) är resten vid division av m + n med 12. Till exempel gäller då 8 + 7 = 3 och 3 − 5 = 10. Subtraktion och multiplikation inom klocktalen kan definieras på samma sätt. Till exempel gäller då att 2−5 = 9 och 5·5 = 1. Vissa besynnerliga saker händer i denna klockaritmetik, som att 5 + 6 = 5 − 6 och att ekvationen x2 = x har fler än två lösningar (se uppgifterna). Restklasser De heltal som motsvarar klockslaget 1 bildar en mängd {. . . , −11, 1, 13, . . .}. En sådan mängd kallas en restklass modulo 12 och varje tal i mängden kallas en representant för restklassen. Restklasserna namnges 1 = {1 + 12k | k ∈ Z} och 0, 2, osv på samma sätt. I stället för “klockaritmetik” talar vi nu om aritmetik modulo 12 eller om aritmetik i Z12 . I denna aritmetik kan addition definieras som en räkneoperation på restklasser, enligt a+b=a+b 29 5 Kongruenser och moduloaritmetik Detta betyder tex att 7 + 8 = 3 eftersom 7 + 8 = 15 och 15 hör till samma restklass som 3.1 Subtraktion och multiplikation i Z12 definieras på motsvarande sätt. Så gäller till exempel 7 − 9 = 10 och 3 · 5 = 3. Om det ur sammanhanget klart framgår att det handlar om aritmetik modulo 12 kan vi för enkelhets skull skriva 8 + 9 = 5 i stället för det korrekta 8 + 9 = 5. Aritmetik modulo k kan byggas upp för alla positiva heltal. För k = 1 är den totalt ointressant (eftersom det enda talet är 0) men redan för k = 2 blir den intressant (se uppgifterna). Moduloaritmetiken för Z3 kan beskrivas med hjälp av additions- och multiplikationstabeller: + 0 1 2 0 0 1 2 1 1 1 0 2 2 0 1 · 0 1 2 0 0 0 0 1 0 1 2 2 0 2 1 Eftersom man går “i cirkel” (dvs 3 blir 0 och 4 blir 1) så kommer multiplikationen 2 · 2 att ge 1. Detta visar att man i moduloaritmetiken måste vara försiktig med begrepp som “udda” och “jämna” tal. Många av den vanliga aritmetikens räkneregler gäller också för moduloaritmetik, tex • kommutativitet: a + b = b + a och ab = ba, • associativitet: a + (b + c) = (a + b) + c och a(bc) = (ab)c, • distributivitet: a(b + c) = ab + ac, • enhetselement: a + 0 = a och 1 · a = a, samt • motsatt tal: för varje tal x finns ett tal −x sådant att −x + x = 0. Alla dessa egenskaper kan visas utgående ifrån kongruensdefinitionen i nästa avsnitt. Moduloaritmetiken för ett positivt heltal k > 1 kommer att se helt olika ut beroende på om k är ett primtal eller inte. En viktigaste skillnaden är att nollproduktregeln xy = 0 ⇔ x = 0 ∨ y = 0 gäller bara om k är ett primtal (om till exempel k = 6 så blir produkten av 2 och 3 lika med noll). 1 För att visa att definitionen är meningsfull borde man egentligen visa att resultatet av additionen blir detsamma oberoende av vilka representanter a och b man väljer ur restklasserna som adderas. 30 Kongruens Två tal m och n som ger samma rest vid division med ett tal k sägs vara kongruenta modulo k. Detta skrivs traditionellt m ≡ n (mod k) men vi väljer skrivsättet m ≡k n som är lättare att hantera i härledningar. Påståendet m ≡k n betyder att m och n hör till samma restklass modulo k. Till exempel gäller 39 ≡12 15 eftersom 39 och 15 båda ger resten 3 vid division med 12. Kongruens modulo k kan definieras matematiskt exakt med hjälp av delbarhet: m ≡k n ⇔ k | (m − n) Exemplet ovan är lätt att kontrollera på detta sätt: 39 − 15 = 24 och 24 är delbart med 12. Tre grundläggande egenskaper visar att kongruenser är ett slags likhet • reflexivitet: a ≡k a, • symmetri: a ≡k b ⇒ b ≡k a , och • transitivitet: a ≡k b ∧ b ≡k c ⇒ a ≡k c. Till exempel reflexiviteten är lätt bevisad: a ≡k a ⇔ {definitionen av kongruens} k | (a − a) ⇔ {förenkla} k|0 ⇔ {alla tal delar 0} T Övriga användbara regler är bland andra 1. additionsregeln: a ≡k b ⇒ a + m ≡k b + m, 31 5 Kongruenser och moduloaritmetik 2. multiplikationsregeln: a ≡k b ⇒ ma ≡k mb, 3. potenseringsregeln: a ≡k b ⇒ am ≡k bm , 4. divisionsregeln: om ma ≡k mb ⇒ a ≡k b om sgf(m, k) = 1. Med reglerna kan man göra dramatiska kongruensförenklingar, i stil med att 3200 ≡8 1. Detta följer av att 3200 = 32·100 = (32 )100 och 3200 = {exponentregler} (32 )100 ≡8 {potensregeln, 32 = 9 ≡8 1} 1100 = {förenkla} 1 Märk hur kongruenssymbolen används i härledningen. Sista siffran i ett tal Kongruens modulo 10 kan användas för att avgöra den sista siffran i ett tal. Eftersom 6 · 6 = 36 ≡10 6 ser man att 6n kommer att sluta på en sexa, för alla heltal n. På samma sätt slutar alla potenser av 5 på en femma, medan sista siffran potenserna av 3 kommer att loopa enligt 3, 9, 7, 1, 3, 9, ... Som exempel söker vi sista siffran i talet 22005 : 22005 = {exponentregler, 2005 = 4 · 501 + 1} (24 )501 · 21 ≡10 {kongruensregler, 24 = 16 ≡10 6} 6501 · 2 32 ≡10 {kongruensregler} 6·2 ≡10 {förenkla} 2 I det andra steget ses varför det lönade sig att få fram en faktor 24 : den ger siffran 6 som sedan är lätt att hantera. Restsystem och Fermats lilla sats Vi säger att talmängden {a1 , a2 , a3 , . . . , an } bildar ett fullständigt restsystem modulo n, om varje restklass modulo n förekommer exakt en gång. Ett exempel på ett fullständigt restsystem modulo 4 är {1, 8, 2, 7}, eftersom resterna vid division med 4 är {1, 0, 2, 3}. Den aritmetiska talföljden {a, a + d, a + 2d, . . . , a + (n − 1)d} bildar också ett fullständigt restsystem modulo n om sgf(n, d) = 1. Det bevisas på följande sätt: Om talen inte bildade ett fullständigt restsystem så skulle två av talen vara kongruenta modulo n. Antag att dessa två tal är a+kd och a+md där det första är mindre än det andra. Då gäller [a + kd < a + md ≤ a + (n − 1)d, sgf(n, d) = 1] a + kd ≡n a + md ⇔ {definitionen av kongruens} n | (a + kd − a − md) ⇔ {förenkla} n | (k − m)d ⇔ {antagandet sgf(n, d) = 1} n | (k − m) ⇔ {antagandena ger att k < m < n} F 33 5 Kongruenser och moduloaritmetik dvs en motsägelse. Alltså måste talen bilda ett fullständigt restsystem modulo n. Välj till exempel n = 5, a = 2 och d = 3. Då får vi att talen {2, 5, 8, 11, 14} bildar ett fullständigt restsystem modulo 5. Det kan lätt kollas: tar vi resten vid division med 5 förvandlas talmängden till {2, 0, 3, 1, 4}, dvs hela Z5 . Man kan också (enkelt) visa att om {a1 , a2 , a3 , . . . , an } bildar ett fullständigt restsystem modulo n och sgf(n, b) = 1 så bildar också {ba1 , ba2 , ba3 , . . . , ban } ett fullständigt restsystem modulo n. Nu kan vi formulera Fermats lilla sats: Om p är ett primtal och n inte är delbart med p så gäller np−1 ≡p 1 Beviset utnyttjar att sgf(n, p) = 1 och att talen {0, n, 2n, . . . , (p − 1)n} bildar ett fullständigt restsystem modulo n (beviset lämnas som en övning åt läsaren, se uppgifterna). Till exempel kan man nu beräkna resten då 92005 divideras med 13, genom att i Fermats lilla sats välja p till 13 och n till 9: 92005 = {exponentregler, 2005 = 12 · 167 + 1} (912 )167 · 91 ≡13 {enligt Fermats lilla sats gäller 912 ≡13 1, kongruensregler} (112 )167 · 9 = {förenkla} 9 vilket visar att då 92005 divideras med 13 blir divisionsresten 9. Uppgifter 1. Beräkna i klockaritmetiken a) 5 − 9 (b) 3 · 5 (c) 7 · 5 + 9 2. Lös följande ekvationer i klockaritmetiken (lämpligen genom en kombination av faktorisering och försök-och-misstag): 34 (b) x2 = 0 a) 5 + x = 0 (c) x2 = x 3. Visa att i klockaritmetiken gäller 6 · 4 = 0. För vilka andra talpar (x, y) i klockaritmetiken gäller xy = 0 trots att varken x eller y är 0? 4. Föregående uppgift visar att nollproduktregeln inte gäller i klockaritmetiken. Motivera varför additionens nollregel trots allt gäller, dvs att varje tal x har en unik invers x sådan att x + x = 0. 5. Varför infaller julafton alltid samma veckodag som den första oktober? 6. Gör upp en additions-, en subtraktions- och en multiplikationstabell för arimetiken modulo 2. 7. Om 0 tolkas som F (falskt) och 1 som T (sant), vilka logiska operationer kommer räkneoperationerna i föregående uppgift då att motsvara? 8. Gör upp additions- och multiplikationstabeller för Z4 och för Z5 . 9. Lös följande ekvationer, dels i Z4 och dels i Z5 : a) 3 + x = 2 (b) 3x = 2 (c) 2x = 3 (d) x2 = 0 Använd tabellerna från föregående uppgift. 10. Vilket är det minsta ickenegativa heltal x som uppfyller a) 45 ≡12 x (b) −23 ≡7 x (c) x ≡5 1324 11. Vilket är det motsatta talet i Z15 till a) 14 (b) 5 (c) x? 12. Visa att om k inte är ett primtal så finns det två tal m 6= 0 och n 6= 0 i Zk sådana att mn = 0. Använd argumentet för att hitta två sådana tal i Z6 och i Z8 . 13. Hur många talpar (m, n) med m 6= 0 och n 6= 0 sådana att mn = 0 finns det i Z30 ? 14. Bevisa transitivitetsregeln för kongruenser. 15. Bevisa kongruensernas a) additionsregel (b) multiplikationsregel 16. Bevisa kongruensernas potenseringsregel (med induktion, dvs visa först att den gäller för n = 0 och sedan att om den gäller för n = m så gäller den också för n = m + 1). 35 5 Kongruenser och moduloaritmetik 17. Visa att om a ≡k b och c ≡k d så gäller a) a + c ≡k b + d (b) ac ≡k bd. 18. Visa att om n är ett heltal så är n3 + 2n delbart med 3. Tips: beakta tre olika alternativ. 19. Visa att konguensekvationen x2 =3 2 saknar lösningar. 20. Visa att om {a1 , a2 , a3 , . . . , an } bildar ett fullständigt restsystem modulo n och sgf(n, b) = 1 så bildar också {ba1 , ba2 , ba3 , . . . , ban } ett fullständigt restsystem modulo n. 21. Bestäm divisionsresten då a) 72006 divideras med 13 (b) 132006 divideras med 7. 22. Sök lösningar (x, y, z) sådana att sgf(x, y) = sgf(y, z) = sgf(x, z) = 1 till Pythagoras ekvation x2 + y 2 = z 2 i följande steg: a) Visa att z måste vara udda och det ena av x och y udda och det andra jämnt. b) Antag att y är jämnt och skriv om ekvationen i formen (2u)2 = z 2 − x2 . z+x c) Visa att både z−x 2 och 2 måste vara kvadrater. d) Visa att lösningarna måste vara på formen x = m2 − n2 , y = 2mn och z = m2 + n2 (eller x och y ombytta). e) Visa att alla sådana (x, y, z) som nämns i (d) faktiskt är lösningar. 23. Bevisa Fermats lilla sats. 36 6 Kryptering Kryptering (chiffrering) innebär att ett meddelade omvandlas till en form som döljer det egentliga innehållet för utomstående, men så att mottagaren kan få fram det ursprungliga innehållet. Klassiska krypteringssystem Matematiskt kan kryptering beskrivas som att meddelandet x ges som argument till en krypteringsfunktion f och det krypterade meddelandet f (x) sedan av mottagaren dekrypteras (dechiffreras) med en nyckel som är inversen f −1 av f . Då återfås det ursprungliga meddelandet eftersom f −1 (f (x)) = x (detta illustreras i Figur 6.1). f x y f −1 Figur 6.1: Kryptering och dekryptering. Klassisk kryptering skedde tecken för tecken. Det finns många olika specialknep för att dölja det verkliga innehållet (osynligt bläck, extra bokstäver, mm). Caesars metod var att identifiera varje tecken med ett tal och använda y = (x + k) mod m som krypteringsfunktion, där m är antalet olika tecken och additionen alltså sker modulo m. Här används mod som en operation, x mod y betyder “resten då x divideras med y (till exempel gäller 8 mod 3 = 2 och 28 mod 7 = 0). Restoperationen kan definieras matematisk exakt enligt följande: m mod k = n ⇔ m ≡k n ∧ 0 ≤ n < k Om det svenska alfabetets 29 bokstäver kodas enligt A = 1, B = 2, . . . , P = 16, . . . , Ö = 29 37 6 Kryptering och k = 5 så kommer ordet APA att krypteras till FUF, eftersom koden (1, 16, 1) förvandlas till (6, 21, 6). För att kunna dekryptera ett sådant Caesarchiffer behöver mottagaren bara känna till m och k. Dekrypteringen sker enligt x = (y − k) mod m Med k = 5 dekrypteras FUF till APA eftersom koden (6, 21, 6) förvandlas till (1, 16, 1). Säker kryptering med hemlig nyckel System som krypterar tecken för tecken med oförändrad nycket är osäkra, eftersom man kan analysera vilka tecken som förekommer ofta i det krypterade meddelandet och jämföra med statistik över bokstävers frekvenser i det aktuella språket. Ett sätt att förbättra säkerheten är nyckeln systematiskt ändrar från tecken till tecken. Tex kan man tänka sig att Caesarchiffret får en tredje parameter d som anger en förflyttning “högerut” för varje tecken: y(n) = (x(n) + k + nd) mod m där n anger tecknets nummer. Om k = 1 och d = 3 så kommer APA att krypteras till BTH. Ett annat sätt är att först koda om meddelandet i talform och sedan göra någon (inverterbar) matematisk transformation på talet. Man kan tex koda A som 00, B som 01, osv. Då blir “Övis” talet 27200919. Nästa steg kan vara något slags permutaterande operation, tex att man turvis tar siffror från slutet och från början. Resultatet blir då 92179200. Dekrypteringen behöver då bara utföra “inversen” till krypteringen. En annan möjlighet är att på samma sätt förvandla texten till talform och att sedan utföra en aritmetisk operation som tex f (s) = (7s + 3) mod 10 på varje siffra s. Denna funktion är inverterbar, eftersom varje siffra förekommer exakt en gång bland f (0), . . . , f (9). Tex krypteras 6 till 5 och 5 dekrypteras till 6. Gemensamt för detta slags kryptering är att så länge nyckeln hålls hemlig (och inte är så enkel som i exemplen ovan) så är det mycket tidsödande att knäcka den. Under andra världskriget använde den tyska militären en mycket avancerad form av kryptering med hemliga nycklar, automatiserad med den såkallade Enigmamaskinen som systematiskt ändrade sina krypteringsparametrar. Britterna kom över ett exemplar av maskinen och lyckades med en 38 enorm arbetsinsats knäcka koden. En betydande insats gjordes av filosofen och matematikern Alan Turing: han konstruerade ett slags dator, “the Bombe”, som analyserade meddelanden. Kryptering med offentlig nyckel På 1970-talet startade en revolution inom kryptografi, dvs vetenskapen om kryptering (ett delområde på gränsen mellan matematik och datateknik). Grundstenen var inverterbara såkallade envägsfunktioner (one-way functions). En envägsfunktion f är sådan att funktionsvärden y = f (x) lätt kan beräknas men att inversa värden x = f −1 (y) i praktiken är omöjliga att beräkna, trots att funktionen f är känd. En ofta använd krypteringsmetod är RSA, namngiven efter de personer som skapade den (Rivest, Shamir, Adleman). Metoden är baserad på att det är lätt att multiplicera två stora primtal, men att det är oerhört tidsödande att faktorisera produkten. Om en person A (Alice) vill skicka ett meddelande åt B (Bob) väljer hon två stora primtal p och q, och ett tredje tal e som uppfyller sgf(e, (p − 1)(q − 1)) = 1 Alice bildar sedan produkten N = pq och meddelar talen N och e till alla intresserade - de utgör den offentliga nyckeln (public key) till hennes krypteringsmetod. Sin dekrypteringsnyckel (den privata nyckeln) får Alice genom att hitta ett tal d som uppfyller de ≡(p−1)(q−1) 1 och det hittas lätt via en diofantisk ekvation (se uppgift 7, villkoret sgf(e, (p − 1)(q − 1)) = 1 garanterar att ett sådant tal d finns). Eftersom ingen annan än Alice känner till talen p och q är talet d hemligt. Nu krypterar Bob sitt meddelande genom att först skriva om det i talform som talet M och sedan beräkna motsvarande kod: C = M e mod N Då Alice skall dekryptera C behöver hon bara beräkna M = C d mod N (se uppgift 9). 39 6 Kryptering Ett litet krypteringsexempel RSA-metoden illustreras med ett enkelt exempel, där p och q väljs små. Alice väljer p = 11 och q = 17. Då blir N = 187 och som e kan Alice lämpligen välja 7, eftersom (p − 1)(q − 1) = 160 och sgf(7, 160) = 1. Talet d skall uppfylla 7d ≡160 1, vilket kan omvandlas till den diofantiska ekvationen 7d + 160x = 1 (se uppgifterna) och har lösningen d = 23. Nu vill Bob skicka en kyss (bokstaven X, som motsvarar talet 24 eftersom X är den tjugofjärde bokstaven i alfabetet) till Alice. Han beräknar 247 mod 187. Detta kan visserligen göras direkt, men krypteringsprogram som arbetar med mycket stora tal arbetar i praktiken enligt följande systematiska arbetssätt: Då 7 = 4 + 2 + 1 beräknar man först 241 ≡187 24, sedan 242 = 24 · 24 ≡ 576 ≡187 15, sedan 244 ≡187 152 = 225 ≡187 38 och slutligen 247 = 244 · 242 · 241 ≡187 24 · 15 · 38 = 13680 ≡187 29 Det betyder att 247 mod 187 = 29 och det krypterade meddelandet är alltså talet 29. Alice får meddelandet i form av talet 29 och dekrypterar nu genom att beräkna 2923 (mod187). Via 23 = 16 + 4 + 2 + 1 fås (liksom ovan) 291 ≡187 29 292 ≡187 93 294 ≡187 932 ≡187 47 298 ≡187 472 ≡187 152 2916 ≡187 1522 ≡187 103 och hon får fram meddelandet i talform: 2923 = 2916+4+2+1 ≡187 29 · 93 · 47 · 103 ≡187 24 och talet 24 är precis bokstaven X, som Bob skickade! 40 Uppgifter 1. Det svenska alfabetet har 29 bokstäver (q och w medräknade). Ett Caesarchiffer med nyckeltal 13 kommer då att koda så här A Ä N L B C D E F G H I J K L M N O P Q R S T U V W X Y Z Å Ö O P Q R S T U V W X Y Z Å Ä Ö A B C D E F G H I J K M a) Chiffrera meddelandet “Örnen har landat.” b) Dechiffrera meddelandet “Wnt smbcdkb.” 2. I texten beskrevs kryptering enligt Caesarchiffer med en tredje parameter d som anger en förflyttning “högerut” för varje tecken: y(n) = (x(n) + k + nd) modm där n anger tecknets nummer. Visa att om k = 1 och d = 3 så kommer APA att krypteras till BTH. Hur skall meddelandet dekrypteras? 3. Använd den permuterande siffermetod som beskrivs i texten för att kryptera meddelandet “Allt klart” (hur kan man göra med mellanslaget i det här fallet?). Dekryptera sedan och beskriv dekrypteringsalgoritmen. 4. Använd den metod med funktionen f (s) = (7s + 3) mod10 som beskrivs i texten för att kryptera och sedan dekryptera meddelandet “Klart slut”. 5. Visa att funktionen f (s) = (9s + 2) mod10 är inverterbar, då s är en siffra (dvs 0,1,...,9). Inversen kan beskrivas med en tabell (gör det!), men lyckas du också beskriva den matematiskt? Varför är denna funktion olämplig för kryptering? 6. Ge ett exempel på en funktion g(s) = (as + b) mod10 som är inverterbar för siffrorna s = 1, . . . , 9 (där a är varken 7 eller 9). 7. Omskriv följande kongruensekvationer till diofantiska ekvationer genom att använda definitionen av kongruens: a) x ≡38 1357 (b) 7x ≡120 1 8. Antag att Alice väljer p = 11 och q = 13 och e = 7. Bestäm Alices privata nyckel genom att lösa kongruensekvationen 7x ≡120 1. 41 6 Kryptering 9. Ett specialfall av Eulers sats säger att om p och q är primtal och r = (p − 1)(q − 1) så gäller a1+kr ≡pq a för vilket tal k som helst. Använd detta för att visa att RSA-dekrypteringen faktiskt ger tillbaka det ursprungliga meddelandet, dvs visa att om N = pq och de ≡(p−1)(q−1) 1 och y ≡N xe och z ≡N y d så gäller y = x. 10. Antag att Alice väljer p = 13 och q = 19 för sin RSA-kryptering a) Vilket är talet N i hennes offentliga nyckel? b) Välj ett lämpligt tal e för Alices offentliga nyckel, och c) bestäm sedan talet d för hennes privata nyckel. 11. Kryptera bokstaven Ö enligt RSA-exemplet i föregående uppgift, och dekryptera sedan resultatet (som kontroll). 42 Litteraturförteckning [1] R. J. Back, M. Sjöberg, and J. von Wright. Field tests of the structured derivations method. Tech. Rpt. 491, Turku Centre for Computer Science, November 2002. [2] Ralph-Johan Back. Matematik med litet logik: Introduktion till strukturerade härledningar. TUCS Lecture Notes 7, Abo Akademi, Dept of Information Technologies, October 2008. [3] Ralph-Johan Back. Matematik med litet logik: Logik för strukturerade härledningar. TUCS Lecture Notes 8, Abo Akademi, Dept of Information Technologies, October 2008. [4] Ralph-Johan Back. Matematik med litet logik: Strukturerade härledningar som allmänt bevisformat. TUCS Lecture Notes 9, Abo Akademi, Dept of Information Technologies, October 2008. [5] Ralph-Johan Back, Jim Grundy, and Joakim von Wright. Structured calculation proof. Formal Aspects of Computing, 9:469–483, 1997. [6] Ralph-Johan Back, Mia Peltomäki, Tapio Salakoski, and Joakim von Wright. Structured derivations supporting high-school mathematics. In A. Laine, J. Lavonen, and V. Meisalo, editors, Proceedings of the 20th Annual Symposium of the Finnish Mathematics and Science Education Research Association, Research Report 253, pages 104–122, Helsinki, Finland, 2004. Department of Applied Sciences of Education, University of Helsinki. [7] Ralph-Johan Back and Joakim von Wright. Doing high school mathematics carefully. TUCS Technical Report 140, TUCS - Turku Centre for Computer Science, 1997. [8] Ralph-Johan Back and Joakim von Wright. Refinement Calculus: A Systematic Introduction. Springer-Verlag, 1998. Graduate Texts in Computer Science. [9] Ralph-Johan Back and Joakim von Wright. A method for teaching rigorous mathematical reasoning. In Proceedings of Int. Conference on Technology of Mathematics, University of Plymouth, UK, Aug 1999. 43 Litteraturförteckning [10] Ralph-Johan Back and Joakim von Wright. Matematik med lite logik: En kort kurs i talteori. TUCS Lecture Notes 2, Abo Akademi, Dept of Information Technologies, October 2008. [11] Ralph-Johan Back and Joakim von Wright. Matematik med litet logik: Strukturerade härledningar i gymnasiematematiken. TUCS Lecture Notes 1, Abo Akademi, Dept of Information Technologies, October 2008. [12] Ralph-Johan Back and Joakim von Wright. Matematik med litet logik: Studentexamen i lång matematik, våren 2003. TUCS Lecture Notes 3, Abo Akademi, Dept of Information Technologies, October 2008. [13] R.J. Back, T. Kavander, M. Nylund, M. Peltomäki, T. Salakoski, and J. von Wright. Teaching high-school mathematics with structured derivations in hypertext format). In International Conference on Computer Systems and Technologies – CompSysTech, Sofia, Bulgaria, June 2002. [14] Edsger W. Dijksta and C. S. Scholten. Predicate Calculus and Program Semantics. Springer-Verlag, 1990. [15] E.W. Dijkstra. The notational conventions i adopted, and why. Formal Aspects of Computing, 14:99 – 107, 2002. [16] A. J. M. van Gasteren. On the Shape of Mathematical Arguments. Lecture Notes in Computer Science. Springer-Verlag, Berlin, 1990. 44 Turku Centre for Computer Science TUCS Lecture Notes 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Ralph-Johan Back och Joakim von Wright, Matematik med lite logik: Strukturerade härledningar i gymnasiematematiken Ralph-Johan Back och Joakim von Wright, Matematik med lite logik: En kort kurs i talteori Ralph-Johan Back och Joakim von Wright, Matematik med lite logik: Studentexamen i lång matematik, våren 2003 Ralph-Johan Back och Joakim von Wright, Matematiikkaa logiikan avulla: Rakenteiset päättelyketjut lukiomatematiikassa Ralph-Johan Back och Joakim von Wright, Matematiikkaa logiikan avulla: Lyhyt lukuteorian kurssi Ralph-Johan Back och Joakim von Wright, Matematiikkaa logiikan avulla: Pitkän matematiikan ylioppilaskoe, kevät 2003 Ralph-Johan Back, Matematik med lite logik: Introduktion till strukturerade härledningar Ralph-Johan Back, Matematik med lite logik: Logik för strukturerade härledningar Ralph-Johan Back, Matematik med lite logik: Strukturerade härledningar som allmänt bevisformat Ralph-Johan Back, Matematiikkaa logiikan avulla: Johdatus rakenteisiin päättelyketjuihin Ralph-Johan Back, Matematiikkaa logiikan avulla: Logiikka ja rakenteiset päättelyketjut Ralph-Johan Back, Matematiikkaa logiikan avulla: Rakenteiset päättelyketjut yleisenä todistusmuotona Turku Centre for Computer Science Joukahaisenkatu 3-5 B, 20520 Turku, Finland | www.tucs.fi University of Turku l Department of Information Technology l Department of Mathematics Åbo Akademi University l Department of Information Technologies Turku School of Economics l Institute of Information Systems Sciences ISBN 978-952-12-2175-0 ISSN 1797-8831 Back & von Wright Matematik med lite logik: En kort kurs i talteori