Primtalsfaktorisering - nogle nye resultater og anvendelser Regionalmøde Haderslev, 19. november 2003

Relaterede dokumenter
Primtalsfaktorisering - nogle nye resultater og anvendelser Regionalmøde Haderslev, 19. november 2003

Matematikken bag kryptering og signering RSA

Opgave 1 Regning med rest

Eulers sætning Matematikken bag kryptering og signering v.hj.a. RSA Et offentlig nøgle krypteringssytem

Matematikken bag kryptering og signering NemID RSA Foredrag i UNF

Note omkring RSA kryptering. Gert Læssøe Mikkelsen Datalogisk institut Aarhus Universitet

Kryptologi og RSA. Jonas Lindstrøm Jensen

Matematikken bag kryptering og signering RSA

Note omkring RSA kryptering. Gert Læssøe Mikkelsen Datalogisk institut Aarhus Universitet

Af Marc Skov Madsen PhD-studerende Aarhus Universitet

Projekt 7.9 Euklids algoritme, primtal og primiske tal

RSA-kryptosystemet. RSA-kryptosystemet Erik Vestergaard

KRYPTOLOGI ( Litt. Peter Landrock & Knud Nissen : Kryptologi)

2. Gruppen af primiske restklasser.

Primtal - hvor mange, hvordan og hvorfor?

TALTEORI Wilsons sætning og Euler-Fermats sætning.

Fredag 12. januar David Pisinger

Talteori. Teori og problemløsning. Indhold. Talteori - Teori og problemløsning, august 2013, Kirsten Rosenkilde.

Noter om primtal. Erik Olsen

Camp om Kryptering. Datasikkerhed, RSA kryptering og faktorisering. Rasmus Lauritsen. August 27,

Deling - primtal - kryptografi. Johan P. Hansen. 15. september Indledning 2

Divisorer. Introduktion. Divisorer og delelighed. Divisionsalgoritmen. Definition (Divisor) Lad d og n være hele tal. Hvis der findes et helt tal q så

t a l e n t c a m p d k Talteori Anne Ryelund Anders Friis 16. juli 2014 Slide 1/36

Talteori. Teori og problemløsning. Indhold. Talteori - Teori og problemløsning, marts 2014, Kirsten Rosenkilde.

6. december. Motivation. Internettet: Login til DIKU (med password) Handel med dankort Fortrolig besked Digital signatur

Kryptering kan vinde over kvante-computere

Undersøgende aktivitet om primtal. Af Petur Birgir Petersen

Introduktion til Kryptologi. Mikkel Kamstrup Erlandsen

Projekt 0.6 RSA kryptering

6. RSA, og andre public key systemer.

Matematik YY Foråret Kapitel 1. Grupper og restklasseringe.

Integer Factorization

RSA-KRYPTERING. Studieretningsprojekt. Blerim Cazimi. Frederiksberg Tekniske Gymnasium. Matematik A. Vejleder: Jonas Kromann Olden

Affine - et krypteringssystem

Kryptografi Anvendt Matematik

Konfidentialitet og kryptografi 31. januar, Jakob I. Pagter

RSA Kryptosystemet. Kryptologi ved Datalogisk Institut, Aarhus Universitet

Ringe og Primfaktorisering

Den digitale signatur

Secret sharing - om at dele en hemmelighed Matematiklærerdag 2017

Polynomier. Indhold. Georg Mohr-Konkurrencen. 1 Polynomier 2. 2 Polynomiumsdivision 4. 3 Algebraens fundamentalsætning og rødder 6

sætning: Hvis a og b er heltal da findes heltal s og t så gcd(a, b) = sa + tb.

TALTEORI Følger og den kinesiske restklassesætning.

Køreplan Matematik 1 - FORÅR 2005

00 AlgeTal 23/10/02 11:47 Side 1 ALGEBRA OG TALTEORI JOHAN P. HANSEN HENRIK GADEGAARD SPALK ASPEKT SERIEN

P vs. NP. Niels Grønbæk Matematisk Institut Københavns Universitet 3. feb. 2012

University of Copenhagen Faculty of Science Written Exam - 3. April Algebra 3

Talteori: Euklids algoritmer, modulær aritmetik

1 Sætninger om hovedidealområder (PID) og faktorielle

Primtal Rekursion Kernebegreber, anvendelser og fundamenter i datalogi Torsdag den 17. marts 2005 Nils Andersen A.K. Dewdney kap.

TALTEORI Wilsons sætning og Euler-Fermats sætning.

10. Nogle diofantiske ligninger.

Roskilde Universitetscenter, Datalogisk Afdeling Kryptering. Niels Christian Juul. N&P 11: 2001 April 18th

Talteoriopgaver Træningsophold ved Sorø Akademi 2007

Projekt 3.5 faktorisering af polynomier

Foredrag i Eulers Venner 30. nov. 2004

Kryptologi 101 (og lidt om PGP)

DesignMat Den komplekse eksponentialfunktion og polynomier

Hvad er matematik? C, i-bog ISBN L&R Uddannelse A/S Vognmagergade 11 DK-1148 København K Tlf: info@lru.

Primtal. Frank Nasser. 20. april 2011

Workshop om fejl ndende og -rettende koder

brikkerne til regning & matematik tal og algebra preben bernitt

Noter til Perspektiver i Matematikken

Martin Geisler Mersenne primtal. Marin Mersenne

Hemmelige koder fra antikken til vore dage

DM549. Hvilke udsagn er sande? Which propositions are true? Svar 1.a: x Z: x > x 1. Svar 2.h: x Z: y Z: x + y = 5. Svar 1.e: x Z: y Z: x + y < x y

TALTEORI Ligninger og det der ligner.

Diskrete Matematiske Metoder. Jesper Lützen

Assembly Voting ApS. Kompagnistræde 6, København K CVR:

Jeg foretager her en kort indføring af polynomier over såvel de reelle som

Euklids algoritme og kædebrøker

Introduktion til Kryptologi

Affine rum. a 1 u 1 + a 2 u 2 + a 3 u 3 = a 1 u 1 + (1 a 1 )( u 2 + a 3. + a 3. u 3 ) 1 a 1. Da a 2

Tallet π er irrationalt Jens Siegstad

Algebra. Anders Thorup. Matematisk Afdeling Københavns Universitet

DIOFANTISKE LIGNINGER FERMATS SIDSTE SÆTNING

Matematik 2AL, vinteren

Vi indleder med at minde om at ( a) = a gælder i enhver gruppe.

TALTEORI Wilsons sætning og Euler-Fermats sætning.

Chapter 3. Modulpakke 3: Egenværdier. 3.1 Indledning

På opdagelse i det matematiske laboratorium En introduktion til eksperimentel matematik

π can never be expressed in numbers. William Jones og John Machins algoritme til beregning af π

π er irrationel Frank Nasser 10. december 2011

DiMS 2010 Uge 7,

Perspektiverende Datalogi 2014 Uge 39 Kryptologi

Opgaveformulering studieretningsprojekt (SRP) 2015

University of Copenhagen Faculty of Science Written Exam April Algebra 3

Kursusgang 3: Autencificering & asymmetrisk kryptering. Krav til autentificering. Kryptering som værktøj ved autentificering.

Forslag til løsning af Opgaver til afsnittet om de naturlige tal (side 80)

Om begrebet relation

DM72 Diskret matematik med anvendelser

Fortroligt dokument. Matematisk projekt

Sikre Beregninger. Kryptologi ved Datalogisk Institut, Aarhus Universitet

TØ-opgaver til uge 45

OPLÆG TIL STUDIERETNINGSPROJEKT I MATEMATIK-HISTORIE OM FERMATS SIDSTE SÆTNING OG SOPHIE GERMAIN

Lokalt ekstremum DiploMat 01905

Anders Thorup. Elementær talteori. Algebra og talteori, F2001

Hvad er KRYPTERING? Metoder Der findes to forskellige krypteringsmetoder: Symmetrisk og asymmetrisk (offentlig-nøgle) kryptering.

Hamiltonkreds, den handelsrejsendes problem, delmængdesum-problemet

Noter om polynomier, Kirsten Rosenkilde, Marts Polynomier

Transkript:

Primtalsfaktorisering - nogle nye resultater og anvendelser Regionalmøde Haderslev, 19. november 2003 http://home.imf.au.dk/matjph/haderslev.pdf Johan P. Hansen, matjph@imf.au.dk Matematisk Institut, Aarhus Universitet 26. november 2003 0-0

Resumé Udgangspunktet vil være aritmetikkens fundamentalsætning om entydig faktorisering af hele tal i produkter af primtal. I tilknytning hertil behandler vi primtalstest - herunder det nye resultat fra 2002: Primes is in P, altså at der findes en algoritme, der i polynomiel tid bestemmer, hvorvidt et helt tal er et primtal. Dernæst vil vi anvende primtal og primtalsfaktoriseringer til at beskrive og gennemgå offentlig nøgle kryptosystemet RSA. Endelig vil vi behandle faktoriseringsteori i en mere generel sammenhæng og forsøge at knytte det til aktuel matematisk forskning. I et vist omfang knytter foredraget sig til bogen Algebra og Talteori, GYLDENDAL, 2002, hvortil der henvises for detaljer. 1

Aritmetikkens fundamentalsætning Hvad er et primtal p? Kan udtrykkes på to ækvivalente måder: p har kun de trivielle divisorer ±1, ±p p har egenskaben: p m n p m p n Sætning 1. Aritmetikkens fundamentalsætning. Ethvert m > 1 kan faktoriseres i et produkt af primtal: m = p 1 p k. Faktoriseringen er entydig. Hvis p 1,..., p k og q 1,..., q l er primtal med så er k = l og p i = q i efter ombytning. p 1 p k = q 1 q l, Se [5], side 21. Eksistensdelen er IKKE konstruktivt. Dette er sikkerheden i RSA kryptosystemet. 2

Korollar 1. Der er uendelig mange primtal. Bevis. (Euclid) Antag p 1,..., p k er samtlige primtal. Betragt tallet p 1 p k + 1. Det kan ikke være et primtal, det er jo forskellige fra alle p i.tallet ikke have en primtalsdivisor, intet p i er jo en divisor. Tallet har åbenbart ingen primtalsfaktorisering og vi har en modstrid. Bemærk igen, beviset er IKKE konstruktivt og giver ikke en metode til at bestemme primtallene. Verdens størst kendte primtal er 2 13466917 1, et tal med 4.053.946 decimaler. 3

Er det svært at afgøre om et tal er et primtal? Carl Friedrich Gauss skrev i Disquitiones Arithmeticae i 1801 [3]: The problem of distinguishing prime numbers from composite numbers and to resolve the latter into their prime factors is known to be one of the most important and useful in arithmetic. It has engaged the industry and wisdom of ancient and modern geometers to such an extent that it would be superflous to discuss the problem at length.... Further, the dignity of the science itself seems to require that every possible means be explored for the solution to the problem so elegant and so celebrated. Nevertheless we must confess that all methods that have been proposed thus far are either restricted to very special cases or are so laborius and prolix that... these methods do not apply at all to larger numbers. 4

Er det svært at afgøre om et tal er et primtal? (Den trivielle metode). Man kunne jo prøve sig frem med at finde divisorer fra en ende af. Lad os sige, at tallet m har 200 cifre og lad os antage at et divisionscheck tager 10 6 sek. Et fuldstændigt gennemløb af alle tal op til m tager så 10 100 10 6 sek. 3 10 86 år Det er lang tid, universets alder anslås at være 18 10 12 år med en usikkerhed på 3 10 12 år. Generelt er der log m cifre i tallet m og under den samme antagelse om regnetid som ovenfor vil et fuldstændigt gennemløb af alle tal op til m tage 10 log m 2 10 6 sek. Regnetiden vokser altså eksponentielt i antallet af cifre log m. 5

Er det svært at afgøre om et tal er et primtal? Eratosthenes si. Metode ovenfor er i raffineret form Eratosthenes si (240 f. kr.). I talrækken: 2, 3, ˆ4, 5, ˆ6, 7, ˆ8, 9,..., m udtages det mindste tal 2 og alle egentlige multipla af 2 bortsies: 3, 5, 7, ˆ9, 11,..., m dernæst udtages 3 i listen og alle egentlige multipla af det 3 bortsies: 5, 7, 11,..., m Således fortsættes succesivt med at udtage det mindste tal i listen og bortsi egentlige multipla heraf. Når processen stander, har vi udtaget alle primtal mindre end eller lig m. 6

Fermats lille sætning giver en primtalstest. Gauss indførte i [3] modulus begrebet, altså regning med kongruenser og rester. I [5] behandles det i kapitel 3. Fermats lille sætning behandles side 35. Sætning 2. Fermats lille sætning. Lad p være et primtal. Så gælder, at a p a mod p, altså a p og a har sammen rest ved divison med p. Hvis p ikke går op i a gælder, at Bevis. For a 0, se på produkterne a p 1 1 mod p. 1 (p 1), (a 1) (a (p 1)). Da de modulo p blot adskiller sig ved en permutation af faktorerne, må de være ens og resultatet følger ved forkortning. For a = 0 er påstanden triviel. 7

Fermats lille sætning giver en primtalstest - men den er ikke sikker. Testen er imidlertid ikke sikker! Der er såkaldte pseudoprimtal, altså tal, for hvilke Fermats lille sætning er sand for a = 2. 2 341 = (2 10 ) 34 2 2 mod 341, idet 2 10 = 1024 1 mod 341. MEN 341 er ikke et primtal 341 = 11 31. Bemærk, at n pseudoprimtal 2 n 1 pseudoprimtal. Der er altså uendelig mange pseudoprimtal. Et tal, der ikke er et primtal, for hvilket Fermats lille sætning er sand for alle valg af a kaldes et Carmichael tal. Eksempler er 561, 1729 og 2821. Først så sent som i 1992 blev der vist, at der er uendelig mange Carmichael tal. 8

Er det svært at afgøre om et tal er et primtal? I 2002 viste Agrawal, Kayal og Saxena fra Indien, at det kan gøres i polynomiel tid, se [1]. Første del er en generalisering af Fermats lille sætning og tilhørende test. Nu fås et helt sikkert kriterium for om et givet tal er en primtal. Sætning 3. Lad a være indbyrdes primisk med n. Så er n et primtal, hvis og kun hvis (X a) n (X n a n ) mod n, (1) i polynomiumsringen Z[X]. Altså hvis og kun hvis polynomierne (X a) n og X n a n har samme rest modulo n. Bemærkning. Det er her vigtigt, at fremhæve at beregningen foregår i polynomiumsringen Z[X] og at de to polynomier i (1) er ens mod n, hvis og kun hvis de har de samme koefficienter mod n. 9

Eksempel 1. For primtallet p = 23 får vi: (X 1) 23 = X 23 23 X 22 + 253 X 21 1771 X 20 + 8855 X 19 33649 X 18 +100947 X 17 245157 X 16 + 490314 X 15 817190 X 14 + 1144066 X 13 1352078 X 12 + 1352078 X 11 1144066 X 10 + 817190 X 9 490314 X 8 + 245157 X 7 100947 X 6 + 33649 X 5 8855 X 4 + 1771 X 3 253 X 2 + 23 X 1 X 1 mod 23 10

Eksempel 2. For det sammensatte tal n = 24 = 2 3 3 får vi: (X 1) 24 = 1 24 X + 276 X 2 2024 X 3 + 10626 X 4 42504 X 5 + 134596 X 6 346104 X 7 + 735471 X 8 1307504 X 9 + 1961256 X 10 2496144 X 11 +2704156 X 12 2496144 X 13 + 1961256 X 14 1307504 X 15 +735471 X 16 346104 X 17 + 134596 X 18 42504 X 19 + 10626 X 20 2024 X 21 + 276 X 22 24 X 23 + X 24 1 + 12 X 2 + 16 X 3 + 18 X 4 + 4 X 6 + 15 X 8 + 16 X 9 + 4 X 12 +16 X 15 + 15 X 16 + 4 X 18 + 18 X 20 + 16 X 21 + 12 X 22 + X 24 mod 24 11

Bevis. Med binomialformlen fås: n 1 ( n ( 1) i i i=1 (X a) n (X n a n ) = ) a n i x i = n 1 i (i + 1) n ( 1) 1 (n i) an i x i. i=1 Hvis n er et primtal, er n en divisor i alle koefficienterne på højresiden og vi er færdige. Antag omvendt at n = q k d er sammensat, hvor q er et primtal og ikke en divisor i d. Se nu på koefficienten ( ) n q = (qk d q + 1) q k d. 1 (q) Heraf ses, at q k ikke går op i ( n q) og da q k er indbyrdes primisk med a n q er koefficienten til X q ( ) n ( 1) q a n q 0 mod q k q 12

Ovenstående elegante primtals kriterium er næppe til umiddelbar nytte. For store n er det umuligt at beregne (X a) n, faktisk kræver det mere tid end Erathosthenes si beregningen. Ideen er nu istedet a) i polynomiel tid at beregne resten af (X a) n ved polynomiers division med polynomiet X r 1 for et passende r, altså at undersøge om (X a) n (X n a n ) mod (n, X r 1) b) at undersøge om sætningen ovenfor overlever i en eller anden form i termer af ovenstående noget svagere kriterium. 13

Kriteriet overlever i følgende form, Sætning 4 (Agrawal-Kayal-Saxena). Antag s n. Vælg primtal q og r så q (r 1), n (r 1)/q 0, 1 mod r og ( ) q + s 1 n 2 r. s Hvis vi for alle 1 a < s har, at a er indbyrdes primisk med n, og (X a) n (X n a) mod (n, X r 1), så er n en primtalspotens. Polynomiel tid: der findes et tal k og en algoritme, der for ethvert naturligt tal n i O(log k n) trin afgør om om tallet er et primtal eller ej. AKS-algoritmen og efterfølgende forfininger afgør det i O(log 7,5 n) trin, se http://www.cse.iitk.ac.in/news/primality_v3.pdf 14

Offentlig nøgle kryptering Cæsars udviklede et krypteringssystem, hvor man erstattede hvert bogstav i den oprindelige tekst med det bogstav, der står 3 pladser længere fremme i alfabetet. Der dekrypteres ved at forskyde 3 pladser til venstre. Der er altså ingen principiel forskel på at kryptere og dekryptere. Det er et 1-nøglesystem. I 1976 lancerede Diffie og Hellman et nyt koncept - et 2-nøglesystem: Alice fremstiller to nøgler: en hemmelig som kun hun kender, den kalder vi S A, en offentlig, som alle kender, den kalder vi P A. De to nøgler spiller sammen således, at S A låser og P A låser op igen - og omvendt. Tilsvarende har Bob lavet sig et nøglepar (P B, S B ). 15

Hemmeligholdelse Alice sender en hemmelig meddelelse M til Bob ved at kryptere meddelelsen med Bobs offentlige nøgle og sende P B (M). Bob anvender sin hemmelige nøgle S B på det modtage S B (P B (M)) = M og får M ud, da nøglerne ophæver hinanden. Bob kan imidlertid ikke vide, hvem afsenderen er, alle kender jo hans offentlige nøgle. Dette kan vi sikre ved digital signatur, som 2-nøglesystemmet også giver. 16

Digital Signatur Hvis Alice sender S A (M) til Bob, kan Bob være sikker på, at meddelelsen kommer fra Alice, hvis han kan få M ud ved at udregne P A (S A (M)). Det er nemlig kun Alice, der har den hemmelige nøgle S A, der passer med den offentlige nøgle P A. Alice har altså fået sat sin underskrift på M. 17

Hemmeligholdelse og Digital Signatur Skal M samtidig holdes hemmelig, sender Alice blot P B (S A (M)). Bob er den eneste, der kan finde M ved at udregne P A (S B (P B (S A (M)))). 18

RSA Diffie og Hellman gav ikke noget svar på om det er muligt konkret at lave et 2-nøglesystem. Kravet er, at det skal være (så godt som) umuligt at bestemme den hemmelige nøgle ud fra den offentlige. De tre matematikere Rivest, Shamir og Adleman konstruerede i 1977 et 2-nøglesystem, hvis sikkerhed beror på at det er (så godt som) umuligt at faktorisere et helt tal i et produkt af primtal. 19

Lad Z/mZ være de m restklasser mod m. Afbildningen Z/mZ Z/mZ a a k mod m er udgangspunktet. Dens inverse afbildning? Eulers ϕ(m)-funktion: ϕ(m) = {k 1 k < m, hvor k og m indbyrdes primiske} Centrale bemærkninger: ϕ(pq) = (p 1)(q 1), hvis p, q er to forskellige primtal. ϕ(m) kan ikke beregnes uden at kende en primtalsfaktorisering af m. 20

Sætning 5. Eulers sætning. Antag, at a er primisk med m. Der gælder, at a ϕ(m) 1 mod m, altså, at a ϕ(m) har rest 1 ved divison med m. Bevis. Efter samme ide som beviset for Fermats lille sætning. Se f.eks. [5], Kap. 5. 21

Vi kan nu bestemme den inverse til a a k mod m bestem ved hjælp af Euklids algoritme tal u, v, således at ku ϕ(m)v = 1, Bezouts identitet, jvf. [5], side 15, idet det er forudsat, at k og ϕ(m) er indbyrdes primiske. noter, at (a k ) u = a ϕ(m)v+1 = ( a ϕ(m)) v a a mod m ifølge Eulers sætning. 22

Konklusionen er, at afbildningerne Z/mZ Z/mZ a a k b b u mod m mod m er hinandens inverse, MEN bestemmelse af den inverse forudsætter kendskab til primtalsfaktoriseringen af m. 23

RSA nøglerne. I notationen ovenfor lader vi Offentlige nøgle være : (k, m) og Private nøgle være: u Eksempel. p = 3, q = 11 giver m = 33 og ϕ(3 11) = 20. Med k = 3, løser u = 7 ligningen: 3 u 20 v = 1. Meddelelsen 9 krypteres til 9 3 = 729 3 mod 33, som dekrypteres til 3 7 = 2187 9 mod 33. I praksis bruges store primtal så m er af størrelsesordenen mindst 2 512 eller har mere end 154 cifre. 24

Når du benytter dit DANKORT, skal du først indtaste din 4-cifrede PIN-kode, der herefter verificeres. Det sker ikke i de enkelte terminaler, men centralt. Dette kræver, at PIN-koden holdes hemmelig under hele processen. Det sker gennem RSA. 25

Faktoriseringteori Vi har lige set og udnyttet, at de hele tal Z har entydig faktorisering. Det samme er tilfældet for den Gaussiske talring Z[i] og Z[ξ], hvor ξ 3 = 1, jvf. [5], Kap. 11 og 13. 26

Imidlertid har ikke alle ringe entydig faktorisering. I Z[i 5] gælder således, at 6 = 2 3 = (1 + i 5)(1 i 5) I Z[ξ], hvor ξ p = 1, er der ikke generelt entydig faktorisering. Antaget Entydighed af faktoriseringen: z p = x p + y p = (x + y)(x + ξy) (x + ξ p 1 y), var fejlen i Lames bevis i 1847 for Fermats sidste sætning. (Der er faktisk ikke entydig faktorisering for uendelig mange primtal p, det første er p = 23, jvf. Kummer). 27

Faktoriseringsteori er via klasselegemesteori indlejret i det såkaldte Langlands program, jvf. [4], som L. Lafforque, IHES, Paris i 2000 fik Fields medaljen for at have gennemført væsentlige dele af. 28

Litteratur [1] M. Agrawal, N. Kayal and N. Saxena, PRIMES is in P, Preprint Indian Institure of Technology Kanpur, INDIA, Aug. 2001. [2] F. Bornemann, PRIMES is in P: A Breakthrough for Everyman, Preprint Indian Institute of Technology Kanpur, INDIA, Aug. 2001. [3] C. F. Gauss, Disquitiones arithmeticae, 1801. Optrykt i Werke, Köngliche Gesellschaft der Wissenschaften zu Göttingen (Leipzig-Berlin, 1863-1933). [4] S. Gelbart, An elementary Introduction to the Langlands Program, Bulletin of the American Mathematical Society, 10 (1984), 177-218. [5] Johan P. Hansen og Henrik G. Spalk, Algebra og talteori, Aspekt Serien, Gyldendal, 2002 28-1