1
Determiistisk primtalstestig Det är lätt att avgöra om ett givet heltal är primtal Teorigruppe 2
Primtalstester på poly-tid Agrawal, Kayal och Saea 2002: Avgör om är primtal på Õ(log 12 ), djup talteori Måga har bidragit I dag: Õ(log 10,5 ), elemetärt Õ(log 6+o(1) ), djup talteori Õ(log 4+o(1) ), probabilistiskt 3
Determiistisk primtalstestig Källor och uppläggig Varför itressat? Adra primtalstester Karaktäriserig av primtal, flera satser Algoritmer Kompleitet Resultat frå aalytisk talteori 4
Källor och uppläggig Origialartikel, första och adra preprit Översiktsartikel av Adrew Graville Trevlig att läsa, me luckor, adra betecktiar och olikhet åt fel håll! Daiel J. Berstei, Riesel, implemetatio Iga bevis för resultat i aalytisk talteori Bästa resultat bevisas ej Huvudpukter Karaktäriserig av primtal Algoritmer Kompleitet Aalytisk talteori: Frekveser av vissa primtal 5
Varför itressat? Idustriellt behov av primtal Kompleitetsfrågor Skapa algoritmer på poly-tid (t.e. lijärprogrammerig) Nya grepp på gammalt område Gauss: Veteskapes värdighet Persoligt itresse 6
Idustriellt behov Samhällets säkerhet bygger på RSA RSA behöver primtal Om ite primtal dechiffrerig misslyckas Meddelade M, = pqr, epoet för krypterig e, för dekrypterig d Vi vill ed 1 mod lcd(p-1, q-1, r-1) Ite säkert sat om ed 1 mod lcd(p-1, qr-1) Behov: Måga slumpmässiga primtal ite alla 7
Praktiskt? Behov av primtal om c:a 1000 bitar Gräser operatioer Mi PC 2 10 14 per dyg Totalt i historie 10 24 log 12 = 10 12, log = 10, = 2 10 = 1000 log 6 = 10 12, = 2 100 = 10 30, implemeterat log 4 : 700 siffror på e dag (etrapolerat) Här alltid sabb multiplikatio Õ(log ) Torbjör Gralud: Skolboksmultiplikatio lösamt upp till 1000 bitar AKS räkar med sabb multiplikatio Õ(log ) Trolige mycket sämre, äve om metode förbättrats med e faktor 1000 000 NEJ! 8
Kompleitetsfrågor Platsar självklart blad kompleitetsfrågor Roligt är poly-alogoritmer upptäcks Lijärprogrammerig (ellipsoider, projektiva avbildigar) Vad har vi aars gjort på kurse: approimera NP-svåra problem 9
Måga håller på Festligt lösa riktigt gamla problem http://cr.yp.to/primetests.html 10
Gauss motiverig 11
12
Tidigare primtalstestig Miller - Rabi och slumpe Miller och Riemas geeraliserade förmoda: Du klarar Dig og Går det fel, vier Du evig ära! Cyklotomisk primtalsbevisig Cohe-Lestra 2000 siffror på 10 14 klockcykler Elliptiska kurvor 2000 siffror på 10 15 klockcykler 13
Agrawal, Kayal och Saea: Sats Givet ett heltal 2. Låt r vara ett positivt heltal <, vars ordig modulo r är > log 2. Då är primtal då och edast då ite är e jäm potes (av primtal) ite har ågo primfaktor r ( ) a + a mod, r 1 för varje heltal a, 1 a r log + ( ) 14
Förbättrig Det sista villkoret ka ersättas med φ( r) log 1 a + log φ( r) 2 φ betyder Eulers fuktio 15
Lite motiverig Påståede. Atag (a, ) = 1. Då är primtal då och edast då ( a) a mod Bevis. primtal kogruese trivialt. Atag q primtal, q, q k. q k p delar ite (q k, a p-q q ) = 1 Koefficiete för q 0 mod AKS har polyom av mycket lägre gradtal 16
Historia Augusti 2002-08 Agrawal, Kayal och Saea Lestra 2002-08 Macaj, Agrawal 2002-12 Berstei, Berrizbeitia, Cheg 2003-01 Lestra, Pomerace 2003-03 17
Kompleitet Avgör om är e jäm potes Hitta r; o r () > log 2 Avgör om gcd(a, ) > 1 för ågot a r Gäller bares biomialteorem? ( + a) + a mod (, r 1) för a = 1, 2,, ( r log )? 18
jäm potes? Hur måga poteser? Högst lg stycke Bara primtalsepoeter skall testas Iga faktorer i < log 2 ( ) log 2 = ; k = k Atal poteser k = log 2log log 2 log ( log log ) 2 19
Lös ekvatioe f()= k - = 0 i+ 1 = i ( ) i ( ) f f ' i i+1 i 20
21 Newto Raphsos iteratio Kvadratisk koverges! ( ) ( ) i i i i f f ' 1 = + ( ) ( ) ( )... ' 2 ' 2 1 + = + f f i i ( ) ( ) ( ) ( ) ( ) ( ) ( )... ' '.. ' 2 ' 0 2 1 + + + + + = + f f f f i i i i i
Newto Raphso, heltal Välj startvärde med flytade räkig f kove medför { i } avtagade > Avruda i+1 edåt till heltal Avudade svite ä mer avtagade Är ett värde <, så beror det på avrudige - 1 < y := sista avrudade värdet av j Nästa värde är större ä det föregåede Stoppa är svite ite miskar Testa om y k = 22
Slutsats och föreklig heltal sista avrudade gissige uppfyller y k = Om y har små primfaktorer behöver vi ite räka ut potese, för vi letar efter primtalspoteser 23
Hur låg tid? Multiplikatio och divisio Õ(log ) Kvadratisk koverges O(log log ) steg Räka bara med de siffror som behövs Õ(log k log ) tid / potes Õ(log 2 ) tid totalt MEN: Stor kostat, dåligt startvärde! 24
25 Riktiga uppskattigar ( ) ( ) ( ) ( ) ( ) = < < + + + = = = = = + 1 1 1 1 1 1 1 1 1 1 1... 1 ' k i i k i k i k i k k i k i i k i k k i i i i i i k k k k f f
Måttligt stora Geometrisk koverges Sista faktor är < ½ om Flytade räkig: l( 0 / ) > 2-62 l 2 62 62 2 log < 2 2 62 2 < < I så fall tid högst Õ(log 3 ) k l 2 > 1 / 2 k < i l i / ( ) 26
i+ 1 < k =O(log ) ger att i < Äu strägare ( ) i ( ) i O( 1) k1 1 k1 k i 1 Hela beräkige går på Õ(log 4 ) Svårighete ligger ite här! 1 k = log 2 i = O 1 ( 1/ ) 1 k 27
Hitta r; o r () > log 2 Prova för heltal q > log 2 : Beräka j (mod q) för j = 1,., [log 2 ] Sluta då alla dessa rester är 1 Sätt r = q Starttid per q: Õ(log ) Tid per potes: Õ(log r) Total tid: Õ(r log 2 ) 28
gcd(a, ) > 1 för ågot a r? Dividera med primtal < r Õ(r log ) Gcd-beräkig: E divisio log Seda log r bitar I varje steg blir tale ågo bit kortare Med sabb divisio Õ(log 2 r) Hela beräkige Õ(r log ) 29
Bares biomialteorem? + ( ) ( ) a + a mod, r 1 för varje heltal a, 1 a r log Upphöj polyom till geom Successiva kvadrerigar Multiplicera polyom av grad r med varadra Reducera Titta på koefficieter 30
Största arbete, aivt Atal kogrueser Atal multiplikatioer per kogr. log Operatioer per polyom r 2 Bitoperatioer per multiplikatio log 2 Totalt r log r 2,5 log 4 31
Multiplikatio av polyom Epuktsevaluerig: Polyomet r 1 i a( ) a Z : A < a för alla i = i= 0 är etydigt bestämt av värdet i 2A Algoritm: Räka ut a 0, a 1, Evaluera a och b i 2A i [ ] A Multiplicera a(2a) b(2a) Återskapa ab i 32
Multiplikatio i (/)/( r 1) k = lg r 2 Lyft till []/( r 1) Produktes koefficieter < 2 k Avbilda till /(2 kr 1) tid O(kr) Multiplicera i /(2 kr 1) tid Õ(kr)= Õ(r log ) Hitta produkte i []/( r 1) tid O(kr) Reducera koeff. mod tid Õ(r log ) 33
Största arbetet, listigt Atal kogrueser Atal multiplikatioer per ko. log Multiplikatio av polyom Totalt r log r log r 1,5 log 3 Totalt algoritme r 1,5 log 3 34
Storleke av r r > log 2 Tide mist O(log 6 ) Ofta fier vi r < 2 log 2, me ka ite bevisa det Elemetärt (Chebyshev) r = O(log 5 ) Ger tid Õ(log 10,5 ) Fouvry: r = O(log 3 ) Ger tid Õ(log 7,5 ) 35
Bevis för AKS:s sats Ea hållet trivialt Givet. Atag r heltal < d := o r () > log 2 ej primtal sakar delare < r ej jäm potes av primtal ( + a) + a mod (, r 1) a; 1 a r log Hitta motsägelse 36
Först i Cyklotomiska polyom Ehetsrötter: Rötter till r = 1 e k = e 2πik/r, k = 1, 2,, r - 1 Primitiv ehetsrot ordig r: e kr = 1, e r/d k 1 d r, d < r d.v.s. e 2πik/r, (k, r) = 1 Cyklotomiskt polyom ordig d: Har de primitiva d:te ehetsröttera grad(φ d ()) = φ(d) (Eulers fuktio) r 1 = Φ ( ) d r d 37
Eempel 15 1 = ( 3 1) ( 12 + 9 + 6 + 3 + 1) = ( 5 1) ( 10 + 5 + 1) 5 1 = ( 1) ( 4 + 3 + 2 + + 1) 3 1 = ( 1) ( 2 + + 1) 15 1 = ( 1) ( 2 + + 1) ( 4 + 3 + 2 + + 1) ( 8 7 + 5 4 + 3 + 1) = Φ 1 () Φ 3 () Φ 5 () Φ 15 () 38
Alla Φ d har heltalskoefficieter Bevis. Sat för d = 1. Atag sat för d d. Φ d () d - 1 d 1 Polyome relativt prima, moiska Φ ( ) 1 d d d d 1 Φ ( ) d d d = Φ Alltså heltalskoefficieter d d ( ) 39
Mera cyklotomiskt Alla Φ d () är irreducibla över [](behövs ej) Ma ka defiiera Φ d () över F p Φ d () och Φ d () är relativt prima över F p lcd(d, d ) 1, d d, har ige faktor gemesam med si derivata, alltså iga multipla faktorer Φ d () behöver ite vara irreducibla över F p Om r är primtal, så har alla irreducibla faktorer av Φ r () grade o r (p) (behövdes i AKS 1, 2) 40
Skapa e grupp r eligt förutsättigara, d := o r (), p A := r log h() irreducibel faktor till Φ r (), m := grad(h) ( + a) + a mod (, r 1) ( + a) + a mod (p, h()) :=[] /(p, h()) är e kropp har ordig r i r 1 mod h() eligt def. d d 1, d rh() 1 = Φ Φ d () relativt prima h() Φ d () för ågot d r r d r p m 1 (atalet elemet i gruppe d ' d d ( ) 41
Skapa e grupp H: elemete mod (p, r 1) geererade av, + 1, + 2, + A G: cykliska udergruppe till * geererad av, + 1, + 2, + A Alla elemet i G 0 + a = 0 ( + a) = 0 + a = 0 = -a = h(), r = o() r 1 1 mod r d = 1 Motsägelse. 42
Skapa e grupp g() Hg() g( ) mod (p, r 1) ty sat för varje faktor i g() eligt atagadet S { k k ( r k; g( ) g( ) mod p, ) g H} = 1 p, S p eligt Fermats lilla sats, el. förutsättig Hitta motsägelse för storleke av G! 43
Övre begräsig för G Lemma 1. Om a, b S, så ab S Defiitio och isättig: g() ab (g() a ) b g( a ) b g(( a ) b ) g( ab ) mod (p, r 1) 44
Övre begräsig för G Lemma 2. Om a, b S och a b mod r, så a b mod G. u v g(u) g(v) g() [] r 1 a-b 1 a b g( a ) g( b ) g() H g() a g( a ) g( b ) g() b mod (p, r 1) g() G g() a-b 1 i G cyklisk, välj g till geerator G (a b) 45
E övre begräsig av G ej jäm potes, ej primtal i p j ; i, j 0 alla olika (, r) = 1 (p, r) = 1 R = { i p j mod r} blir grupp Fler ä R sådaa med 0 i, j R Två måste vara kogrueta mod r Skillade delbar med G i j I J R 2 R G p p ( p) 1 < 1 46
47 Förbättrig Visa att / p S och få Bevis som förut! d := o r () Visa: a S och b a (mod d 1) b S d 1 mod r mod ( r 1) Om g() H så eligt lemma 1: 1 R G d ] [ ) ( ) ( 1 Z g g g a b a b r d 1), )mod( ( ) ( r p g g d d
Förbättrig, forts. g( ) g( ) a d g( )mod( p, g( ) mod( p, då d 1 b a Alltså g( b ) g( a ) g() a g() b mod (p, r 1) a S b S Sätt b = / p och b a ( d ) 1 1 φ(m) := atal heltal < m relativt prima med m a S eligt lemma 1. b a (mod d 1) Eulers teorem: (c, m) = 1 c φ(m) 1 mod m så b= / p S. r r = 1), g( ) 1) p φ d 1 1mod( p, r 1) 48
Udre begräsig för G ( a) + Polyome 1 a A av grad < m är alla olika i G. Ka ge bra udre gräs. Lestra gav ett bättre gradtal : R e a 49
Lemma 3 Atag f(), g() [], f() g() mod (p, h()), restera av f och g G, grad(f), grad(g) < R Då gäller f() g() mod (p) Bevis. Betrakta (y) := f(y) g(y) [y] reducerat i. Om k S så ( k ) = f( k ) g( k ) f() k g() k 0 mod (p, h()) { k : k R} rötter till (y) 0 mod (p, h()) har ordig r i röttera olika har R rötter, grad( ) < R : Alla koefficieter i 0 mod (p, h()) Me iga i koeff. (y) 0 mod p 50
Slutkläm bevis AKS R d = o r () >log 2 el. at. R > B A > B Lemma 3 Produktera ger olika elemet i G för varje äkta delmägd av {0,1,2,, B} Alltså u: G 2 B+1 1 > R 1 Förut B : = R log Motsägelse! G R 1 51
Aa udre gräs för G R G + A Lemma 3. A + 1 Bevis. Kombiatoriskt. Betrakta alla elemet i H med grad < R < r. Eftersom A < r är de olika mod p. (a, ) = 1 för a < r a < A = r log < r om r > log 2 Uik faktoriserig i [] / p, för vi har Euklides algoritm Eligt lemma 3 är de olika i G. 52
Hur måga sådaa produkter? Placera R 1 faktorer i facke 1,, 1,, A. * * * * * * * * * * * faktor, R 1 stycke vägg mella fack, A + 1 stycke. Atal sätt att välja ut A + 1 ställe av R + A möjliga: R + A A + 1 53
54 Slutkläm bevis AKS Vi har u: Vi hade förut: Motsägelse. Alltså primtal. 1 R G 1 ) (log log ) log 1/ ( 1) log ( ) (log 1 log 1 1 R r R r R r r R r A e R R A A R G > > > > = = = > > + +
Amärkig Om A < r log så får vi uika elemet i G. Om å adra sida R A1 > R r log φ( r) log A > + 1 > log r log φ( r) så får vi motsägelse. + 1 > R log log R Arbetet miskar med mist e faktor log r eller mist 2 log log. Förmodlige gäller detta äve log 6 -metode + 1 55
Hur stora r? Lemma 4. Om r 6, så fis ett primtal r [log 5, 2 log 5 ] för vilket o r () > log 2 Bevis. Atag att o r () I := log 2 för alla primtal r i itervallet [N, 2N], N := log 5. i r 1 N ( ) ( i r 1) i I N r 2N r primtal i I Motsägelse. ( ) i 2 5 i i I I log 1 < < 2 2 r = N r 2N r primtal i I 56
Primtalssatse π ( ) l Legedre, Gauss 1800: Förmoda Chebyshev 1850: Kostater Hadamard, de lavallée-poussi 1896: Bevis Vi ka öja oss med ågot eklare l r N r 2N r N r 2N = e 2N N N l dπ ( ) = > 2 N [ l π ( ) ] 2N N 2N N 1 π ( ) d N N l N 57
Elemetärt N 2N Räka primtal i ger 1 8 N r cn r primtal π ( ) l r > N 12, N c l N = 2 c N 2 Resultatet räcker för att hitta r = O(log 5 ) Ursprugliga påståedet bevisat med råge 58
Sophie Germai-primtal SG: r och (r 1)/2 båda primtal D Förmoda: Asymptotiskt 2 log SG D kostate för primtalstvilligar Ful motiverig: Pr(r primtal) = 1/log r Pr((r 1)/2) primtal) = 1/log r Oberoede hädelser Pr(SG) = D 2 log 59
Förvätat atal faktorer Förvätat atal faktorer i : ω() Pr(p )= 1/p E(atalet faktorer) = 1 log log p p Bevis: Elemetärt eller med hjälp av primtalssatse p 1 p 1 log = 2 + 1 dπ ( ) 2 d log π ( ) = log log 2 + 2 π ( ) 2 d 60
Förvätad största faktor = P s () P s-1 () P 2 () P (); P s () P s- 1 () P 2 () P () s = log log s 1 log log = log P( ) = log log + log1 log P( ) log1 log log P( ) 1 1 = log e 1 log P( ) = 1 e P( ) 0.632 = 1 log ( log log P( ) ) log P( ) log = s + log1 = log P( ) log 61
Förmoda om stora faktorer För varje θ i itervallet 0 < θ < ½ fis ett c = c(θ) > 0 sådat att det fis åtmistoe 2cR/log R stycke primtal r i [R, 2R] för vilka R 1 har e primfaktor q > r 1/2+θ, förutsatt att R är tillräckligt stort. Sat för θ < 0,11 Sat för θ < 0,167 Sat för θ < 0,1683 (svårt) (svårare, Fouvry) (svårast) 62
Måga r med stort o r () Lemma 5. Atag förmoda sa för ågot θ, 0 < θ < ½. Atag tillräckligt stort och att c(θ)r 2θ log. Då fis mist c(θ)r / log R primtal r i [R, 2R] för vilka o r () > r ½+θ. 63
Bevis Låt r [R, 2R], q r, q > r 1/2+θ och o r () < r ½+θ Det fis N sådaa tal. För dessa r gäller: o r () (r 1) / q o r () < r / q r ½-θ (2R) ½-θ r R m N N < ( 2R) < R m ( m 1) 1/ 2θ ( 2R) 12θ m 1/ 2θ = ( 2R) ( m 1) ( log ) / log R c( θ ) R / log R Mist hälfte av tale blir bra! r m r m ( 2R ) 1/ 2 m θ < 1/ 2θ R 12θ 64
Korrolarium 6. Atag förmoda sa för ågot θ, 0 < θ < 1/2. 1 4 Sätt ρ(θ) := ma, 2θ 1+ 2θ Då fis c (θ); om tillräckligt stort, så fis primtal r < c (θ) (log ) ρ(θ) för vilket o r () > log 2. 65
Vi krävde förut: Vi kräver u: R > Det fis r < 2R Bevis log R R 2θ 2θ < c( θ ) > log c( θ ) 1/ 2θ R > c ( θ ) ( log ) 1/ 2+ θ 1/ 2+ θ o r ( ) > r > R ( ) 2 /(1/ 2+ θ ) ( ) 4 /(1+ 2θ ) log = > log log 2 66
Sophie Germai-tal r och q = (r 1) / 2 båda primtal o r () = 1, 2, q, 2q = r 1 o r () < q o r () = 1 eller 2 r 2 1 Sat för högst 2 log tal I [R, 2R] fis R SG-tal log O 2 R De flesta har o r () > R / 2 > log 2 Det fis primtal med o r () > log 2 som är > 4 log 2 67
Siffereempel AKS θ 1 / 2θ 4 / (1 + 2θ) ρ(θ) 1,5 ρ+ 3 Visat i dag 5 10,5 Bevisat i art. 0.11 50 / 11 4 / 1,22 50 / 11 9 9/11 Riesel? 0,132 3,78 3,16 3,78 8,68 Fouvry 1/6 3 3 3 7,5 Sophie Germai 1 2 6 68
Nästakroppar, defiitio: Givet heltal, moiskt f() [], grad(f) = d 1. [] / (, f()) är e ästakropp med parametrar (e, v()) om e d 1 d v( ) 1 1 mod (, f() ( 1) / q v( ) d 1 är e ehet i [] / (, f()) för alla primtal q e 69
Nytt kriterium (Berstei) Givet 2. Atag att [] / (, f()) är e ästakropp med parametrar (e, v()), e > (2d log ) 2. Då är primtal då och edast då ite är e jäm potes d ( ) d e t 1 t 1mod(, f ( ), t v( )) i [, t] 70
Probabilistisk Beviset som förut (tror jag) Om primtal går det oftast sabbt att hitta ästakropp Testet går på Õ(log 4 ) Kombiera med Miller - Rabi 71
Pseudokroppar, defiitio: Givet heltal, moiskt f() [], grad(f) = d 1. []/(, f()) är e pseudokropp om f( ) 0 mod (, f()) d 0 mod (, f()) d / q är e ehet i [] / (, f()) för alla primtal q d 72
Lestra och Pomerace Givet 2. Givet moiskt f() [], grad(f) = d, d (log 2, ) så att [] / (, f()) är e pseudokropp. Då är primtal då och edast då ite är e jäm potes ite har ågo primfaktor d ( + a) + a mod (, f()) för varje heltal a, 1 a A := d log 73
Kommetarer d r, f() r 1 Bevis som förut Beräkigar som förut Õ(log 6 ) Djupa bevis för att hitta f 74