Integer Factorization



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

Matematikken bag kryptering og signering RSA

Projekt 7.9 Euklids algoritme, primtal og primiske tal

Matematikken bag kryptering og signering NemID RSA Foredrag i UNF

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

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

Af Marc Skov Madsen PhD-studerende Aarhus Universitet

Matematikken bag kryptering og signering RSA

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

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

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

Affine - et krypteringssystem

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

Køreplan Matematik 1 - FORÅR 2005

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

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

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

Undersøgende aktivitet om primtal. Af Petur Birgir Petersen

Konfidentialitet og kryptografi 31. januar, Jakob I. Pagter

RSA-kryptosystemet. RSA-kryptosystemet Erik Vestergaard

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

Polynomium Et polynomium. Nulpolynomiet Nulpolynomiet er funktionen der er konstant nul, dvs. P(x) = 0, og dets grad sættes per definition til.

Opgave 1 Regning med rest

Kryptologi og RSA. Jonas Lindstrøm Jensen

Noter om polynomier, Kirsten Rosenkilde, Marts Polynomier

Noter om primtal. Erik Olsen

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

Projekt 3.5 faktorisering af polynomier

Talteori: Euklids algoritmer, modulær aritmetik

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

HVOR SIKKER ER ASSYMETRISK KRYPTERING? Nat-Bas Hus semesters projekt, efterår 2004 Gruppe 12

Ringe og Primfaktorisering

Kryptografi Anvendt Matematik

DesignMat Uge 1 Gensyn med forårets stof

Introduktion til Kryptologi. Mikkel Kamstrup Erlandsen

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

10. Nogle diofantiske ligninger.

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

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

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

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

Talteoriopgaver Træningsophold ved Sorø Akademi 2007

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

Grundlæggende køretidsanalyse af algoritmer

Diskrete Matematiske Metoder. Jesper Lützen

Indhold. 1 Indledning Baggrund... 2

Algebra. Dennis Pipenbring, 10. februar matx.dk

Algebra med Bea. Bea Kaae Smit. nøgleord andengradsligning, komplekse tal, ligningsløsning, ligningssystemer, nulreglen, reducering

RSA Kryptosystemet. Kryptologi ved Datalogisk Institut, Aarhus Universitet

DesignMat Den komplekse eksponentialfunktion og polynomier

Minilex Mat 2AL. .. Henrik Dahl Mangler

2. Gruppen af primiske restklasser.

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

Asymptotisk analyse af algoritmers køretider

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

Kursusgang 2: Symmetrisk kryptering (fortsat). Asymmetrisk kryptering. DES' vigtigste sikkerhedsmæssige egenskaber

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

Martin Geisler Mersenne primtal. Marin Mersenne

DiMS 2010 Uge 7,

Introduktion til Kryptologi

Projekt 3.4 Fjerdegradspolynomiets symmetri

qwertyuiopåasdfghjklæøzxcvbnmqw ertyuiopåasdfghjklæøzxcvbnmqwert yuiopåasdfghjklæøzxcvbnmqwertyui opåasdfghjklæøzxcvbnmqwertyuiopå

π er irrationel Frank Nasser 10. december 2011

Med udgangspunkt i FIPS-197-standarden AES, baseret på Rijndael-algoritmen. Af Mathias Vestergaard

Matematiske metoder - Opgavesæt

qwertyuiopåasdfghjklæøzxcvbnmqw ertyuiopåasdfghjklæøzxcvbnmqwert yuiopåasdfghjklæøzxcvbnmqwertyui Polynomier opåasdfghjklæøzxcvbnmqwertyuiopå

Algebra2 Obligatorisk opgave

Polynomier med sælsomme egenskaber modulo p Bo Vagner Hansen

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

Et udtryk på formena n kaldes en potens med grundtal a og eksponent n. Vi vil kun betragte potenser hvor grundtallet er positivt, altså a>0.

Polynomier af én variabel

Tip til 1. runde af Georg Mohr-Konkurrencen - Talteori, Kirsten Rosenkilde. Opgave 1. Hvor mange af følgende fem tal er delelige med 9?

Komplekse tal. Mikkel Stouby Petersen 27. februar 2013

TALTEORI Primfaktoropløsning og divisorer.

Projekt 3.1 Fjerdegradspolynomiets symmetri

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

Projekt 0.6 RSA kryptering

Skriftlig Eksamen Diskret Matematik (DM528)

Tilsvarende har vbi i kapitel 3 set, at grafen for tredjegradspolynomiet

Komplekse tal og polynomier

MATEMATIK B. Videooversigt

Asymptotisk analyse af algoritmers køretider

Fejlkorligerende køder Fejlkorrigerende koder

Københavns Universitet, Det naturvidenskabelige Fakultet. Afleveringsopgave 3

DIOFANTISKE LIGNINGER FERMATS SIDSTE SÆTNING

4. Snittets kædebrøksfremstilling og dets konvergenter

TALTEORI Ligninger og det der ligner.

Primtal - hvor mange, hvordan og hvorfor?

Transkript:

Integer Factorization Per Leslie Jensen DIKU 2/12-2005 kl. 10:15

Overblik 1 Faktorisering for dummies Primtal og aritmetikkens fundamentalsætning Lille øvelse 2 Hvorfor er det interessant? RSA 3 Metoder 4 General Number Field Sieve Konceptet Algoritmen pgnfs 5 Status

Outline 1 Faktorisering for dummies Primtal og aritmetikkens fundamentalsætning Lille øvelse 2 Hvorfor er det interessant? RSA 3 Metoder 4 General Number Field Sieve Konceptet Algoritmen pgnfs 5 Status

Faktorisering Primtal Et primtal p er et helt positivt tal som kun har 1 og p som divisor.

Faktorisering Primtal Et primtal p er et helt positivt tal som kun har 1 og p som divisor. Eksempel 2,3,5,7,11,13,17,19,...

Faktorisering Primtal Et primtal p er et helt positivt tal som kun har 1 og p som divisor. Eksempel 4,12,33,1978,...

Faktorisering Primtal Et primtal p er et helt positivt tal som kun har 1 og p som divisor. Eksempel 4 = 2 2,...

Faktorisering Primtal Et primtal p er et helt positivt tal som kun har 1 og p som divisor. Aritmetikkens fundamentalsætning Ethvert helt tal n kan skrives entydigt som et produkt af primtal.

Lille øvelse Eksempel 1978

Lille øvelse Eksempel 1978 = 2 23 43

Lille øvelse Eksempel 360

Lille øvelse Eksempel 360 = 2 2 2 3 3 5

Lille øvelse Hvor svært kan det være?

Lille øvelse Hvor svært kan det være? 3033339

Lille øvelse Hvor svært kan det være? 3033339 = 1707 1777

Lille øvelse Lille regnestykke til resten af tiden:

Lille øvelse Lille regnestykke til resten af tiden: 7645787087575697460077

Outline 1 Faktorisering for dummies Primtal og aritmetikkens fundamentalsætning Lille øvelse 2 Hvorfor er det interessant? RSA 3 Metoder 4 General Number Field Sieve Konceptet Algoritmen pgnfs 5 Status

Hvorfor er det interessant? Sikkerheden for de fleste public key krypteringsalgoritmer er baseret på at det er svært at faktorisere store heltal. For eksempel RSA

Hvorfor er det interessant? Sikkerheden for de fleste public key krypteringsalgoritmer er baseret på at det er svært at faktorisere store heltal. For eksempel RSA

RSA algoritmen (1978) Initialisering af RSA (p, q : n : φ(n) :d :e ) 1 Vælg 2 primtal p og q. 2 Sæt n = p q. 3 Beregn Eulers φ-funktion af n, dvs. φ(n) = (p 1) (q 1) 4 Vælg d primisk til φ(n), dvs. gcd(d, φ(n)) = 1. 5 Vælg e som den multiplikative inverse til d, dvs. e d 1 mod φ(n). Nøgler (offentlig : privat) Parret (e, n) er så den offentlige nøgle. Og parret (d, n) er den private nøgle.

RSA algoritmen (1978) Initialisering af RSA (p, q : n : φ(n) :d :e ) 1 Vælg 2 primtal p og q. 2 Sæt n = p q. 3 Beregn Eulers φ-funktion af n, dvs. φ(n) = (p 1) (q 1) 4 Vælg d primisk til φ(n), dvs. gcd(d, φ(n)) = 1. 5 Vælg e som den multiplikative inverse til d, dvs. e d 1 mod φ(n). Nøgler (offentlig : privat) Parret (e, n) er så den offentlige nøgle. Og parret (d, n) er den private nøgle.

RSA algoritmen (1978) Initialisering af RSA (p, q : n : φ(n) :d :e ) 1 Vælg 2 primtal p og q. 2 Sæt n = p q. 3 Beregn Eulers φ-funktion af n, dvs. φ(n) = (p 1) (q 1) 4 Vælg d primisk til φ(n), dvs. gcd(d, φ(n)) = 1. 5 Vælg e som den multiplikative inverse til d, dvs. e d 1 mod φ(n). Nøgler (offentlig : privat) Parret (e, n) er så den offentlige nøgle. Og parret (d, n) er den private nøgle.

RSA algoritmen (1978) Initialisering af RSA (p, q : n : φ(n) :d :e ) 1 Vælg 2 primtal p og q. 2 Sæt n = p q. 3 Beregn Eulers φ-funktion af n, dvs. φ(n) = (p 1) (q 1) 4 Vælg d primisk til φ(n), dvs. gcd(d, φ(n)) = 1. 5 Vælg e som den multiplikative inverse til d, dvs. e d 1 mod φ(n). Nøgler (offentlig : privat) Parret (e, n) er så den offentlige nøgle. Og parret (d, n) er den private nøgle.

RSA algoritmen (1978) Initialisering af RSA (p, q : n : φ(n) : d :e ) 1 Vælg 2 primtal p og q. 2 Sæt n = p q. 3 Beregn Eulers φ-funktion af n, dvs. φ(n) = (p 1) (q 1) 4 Vælg d primisk til φ(n), dvs. gcd(d, φ(n)) = 1. 5 Vælg e som den multiplikative inverse til d, dvs. e d 1 mod φ(n). Nøgler (offentlig : privat) Parret (e, n) er så den offentlige nøgle. Og parret (d, n) er den private nøgle.

RSA algoritmen (1978) Initialisering af RSA (p, q : n : φ(n) :d : e ) 1 Vælg 2 primtal p og q. 2 Sæt n = p q. 3 Beregn Eulers φ-funktion af n, dvs. φ(n) = (p 1) (q 1) 4 Vælg d primisk til φ(n), dvs. gcd(d, φ(n)) = 1. 5 Vælg e som den multiplikative inverse til d, dvs. e d 1 mod φ(n). Nøgler (offentlig : privat) Parret (e, n) er så den offentlige nøgle. Og parret (d, n) er den private nøgle.

RSA algoritmen (1978) Initialisering af RSA (p, q : n : φ(n) :d :e ) 1 Vælg 2 primtal p og q. 2 Sæt n = p q. 3 Beregn Eulers φ-funktion af n, dvs. φ(n) = (p 1) (q 1) 4 Vælg d primisk til φ(n), dvs. gcd(d, φ(n)) = 1. 5 Vælg e som den multiplikative inverse til d, dvs. e d 1 mod φ(n). Nøgler (offentlig : privat) Parret (e, n) er så den offentlige nøgle. Og parret (d, n) er den private nøgle.

RSA algoritmen (1978) Initialisering af RSA (p, q : n : φ(n) :d :e ) 1 Vælg 2 primtal p og q. 2 Sæt n = p q. 3 Beregn Eulers φ-funktion af n, dvs. φ(n) = (p 1) (q 1) 4 Vælg d primisk til φ(n), dvs. gcd(d, φ(n)) = 1. 5 Vælg e som den multiplikative inverse til d, dvs. e d 1 mod φ(n). Nøgler (offentlig : privat) Parret (e, n) er så den offentlige nøgle. Og parret (d, n) er den private nøgle.

RSA algoritmen (1978) Initialisering af RSA (p, q : n : φ(n) :d :e ) 1 Vælg 2 primtal p og q. 2 Sæt n = p q. 3 Beregn Eulers φ-funktion af n, dvs. φ(n) = (p 1) (q 1) 4 Vælg d primisk til φ(n), dvs. gcd(d, φ(n)) = 1. 5 Vælg e som den multiplikative inverse til d, dvs. e d 1 mod φ(n). Nøgler (offentlig : privat) Parret (e, n) er så den offentlige nøgle. Og parret (d, n) er den private nøgle.

RSA algoritmen (1978) Kryptering af klarteksten M 1 Repræsenter M som en række af tal M 0, M 1,..., M j hvor M i [0 : n 1]. 2 For hvert M i beregn C i = M e i mod n. 3 Cipherteksten C er så C = C 0, C 1,..., C j. Dekryptering af cipherteksten C 1 Repræsenter C som en række af tal C 0, C 1,..., C j hvor C i [0 : n 1]. 2 For hvert C i beregn M i = C d i mod n. 3 Klarteksten M er så M = M 0, M 1,..., M j.

RSA algoritmen (1978) Kryptering af klarteksten M 1 Repræsenter M som en række af tal M 0, M 1,..., M j hvor M i [0 : n 1]. 2 For hvert M i beregn C i = M e i mod n. 3 Cipherteksten C er så C = C 0, C 1,..., C j. Dekryptering af cipherteksten C 1 Repræsenter C som en række af tal C 0, C 1,..., C j hvor C i [0 : n 1]. 2 For hvert C i beregn M i = C d i mod n. 3 Klarteksten M er så M = M 0, M 1,..., M j.

RSA algoritmen (1978) Kryptering af klarteksten M 1 Repræsenter M som en række af tal M 0, M 1,..., M j hvor M i [0 : n 1]. 2 For hvert M i beregn C i = M e i mod n. 3 Cipherteksten C er så C = C 0, C 1,..., C j. Dekryptering af cipherteksten C 1 Repræsenter C som en række af tal C 0, C 1,..., C j hvor C i [0 : n 1]. 2 For hvert C i beregn M i = C d i mod n. 3 Klarteksten M er så M = M 0, M 1,..., M j.

RSA algoritmen (1978) Kryptering af klarteksten M 1 Repræsenter M som en række af tal M 0, M 1,..., M j hvor M i [0 : n 1]. 2 For hvert M i beregn C i = M e i mod n. 3 Cipherteksten C er så C = C 0, C 1,..., C j. Dekryptering af cipherteksten C 1 Repræsenter C som en række af tal C 0, C 1,..., C j hvor C i [0 : n 1]. 2 For hvert C i beregn M i = C d i mod n. 3 Klarteksten M er så M = M 0, M 1,..., M j.

RSA algoritmen (1978) Kryptering af klarteksten M 1 Repræsenter M som en række af tal M 0, M 1,..., M j hvor M i [0 : n 1]. 2 For hvert M i beregn C i = M e i mod n. 3 Cipherteksten C er så C = C 0, C 1,..., C j. Dekryptering af cipherteksten C 1 Repræsenter C som en række af tal C 0, C 1,..., C j hvor C i [0 : n 1]. 2 For hvert C i beregn M i = C d i mod n. 3 Klarteksten M er så M = M 0, M 1,..., M j.

RSA algoritmen (1978) Kryptering af klarteksten M 1 Repræsenter M som en række af tal M 0, M 1,..., M j hvor M i [0 : n 1]. 2 For hvert M i beregn C i = M e i mod n. 3 Cipherteksten C er så C = C 0, C 1,..., C j. Dekryptering af cipherteksten C 1 Repræsenter C som en række af tal C 0, C 1,..., C j hvor C i [0 : n 1]. 2 For hvert C i beregn M i = C d i mod n. 3 Klarteksten M er så M = M 0, M 1,..., M j.

RSA algoritmen (1978) Kryptering af klarteksten M 1 Repræsenter M som en række af tal M 0, M 1,..., M j hvor M i [0 : n 1]. 2 For hvert M i beregn C i = M e i mod n. 3 Cipherteksten C er så C = C 0, C 1,..., C j. Dekryptering af cipherteksten C 1 Repræsenter C som en række af tal C 0, C 1,..., C j hvor C i [0 : n 1]. 2 For hvert C i beregn M i = C d i mod n. 3 Klarteksten M er så M = M 0, M 1,..., M j.

RSA algoritmen (1978) Kryptering af klarteksten M 1 Repræsenter M som en række af tal M 0, M 1,..., M j hvor M i [0 : n 1]. 2 For hvert M i beregn C i = M e i mod n. 3 Cipherteksten C er så C = C 0, C 1,..., C j. Dekryptering af cipherteksten C 1 Repræsenter C som en række af tal C 0, C 1,..., C j hvor C i [0 : n 1]. 2 For hvert C i beregn M i = C d i mod n. 3 Klarteksten M er så M = M 0, M 1,..., M j.

RSA algoritmen (1978) Sikkerheden af RSA Sikkerheden af RSA er baseret på at det er svært at faktorisere n da man nemt vil kunne finde d ud fra e og faktoriseringen af n. Udbredelsen af RSA RSA var et af de første offentligt nøgle kryptosystemer og er også det mest udbredte system og bruges i dag af homebanking systemer og anden sikker kommunikation over internettet. Ergo... Derfor vil opdagelsen af en hurtig metode til faktorisering af store heltal betyde en hel del og vil for en overgang betyde at nøgleudveksling vil være stort set umuligt.

RSA algoritmen (1978) Sikkerheden af RSA Sikkerheden af RSA er baseret på at det er svært at faktorisere n da man nemt vil kunne finde d ud fra e og faktoriseringen af n. Udbredelsen af RSA RSA var et af de første offentligt nøgle kryptosystemer og er også det mest udbredte system og bruges i dag af homebanking systemer og anden sikker kommunikation over internettet. Ergo... Derfor vil opdagelsen af en hurtig metode til faktorisering af store heltal betyde en hel del og vil for en overgang betyde at nøgleudveksling vil være stort set umuligt.

RSA algoritmen (1978) Sikkerheden af RSA Sikkerheden af RSA er baseret på at det er svært at faktorisere n da man nemt vil kunne finde d ud fra e og faktoriseringen af n. Udbredelsen af RSA RSA var et af de første offentligt nøgle kryptosystemer og er også det mest udbredte system og bruges i dag af homebanking systemer og anden sikker kommunikation over internettet. Ergo... Derfor vil opdagelsen af en hurtig metode til faktorisering af store heltal betyde en hel del og vil for en overgang betyde at nøgleudveksling vil være stort set umuligt.

Outline 1 Faktorisering for dummies Primtal og aritmetikkens fundamentalsætning Lille øvelse 2 Hvorfor er det interessant? RSA 3 Metoder 4 General Number Field Sieve Konceptet Algoritmen pgnfs 5 Status

Historien Før computeren Faktorisering har igennem matematikkens historie optaget mange matematikere og mangel på regnekraft har sat en begrænsning i udviklingen. Computerens ankomst Computerens ankomst gav mulighed for at faktorisere større tal end hidtil grundet den markant større regnekraft til rådighed. Det pustede nyt liv i forskningen i faktoriseringsmetoder. Public key cryptography Med ankomsten af offentlig nøgle kryptering (som alle er baseret på et eller andet talteoretisk problem) blev der for alvor sat gang i udviklingen af hurtigere og bedre algoritmer da den praktiske brug pludselig var MEGET tydelig.

Historien Før computeren Faktorisering har igennem matematikkens historie optaget mange matematikere og mangel på regnekraft har sat en begrænsning i udviklingen. Computerens ankomst Computerens ankomst gav mulighed for at faktorisere større tal end hidtil grundet den markant større regnekraft til rådighed. Det pustede nyt liv i forskningen i faktoriseringsmetoder. Public key cryptography Med ankomsten af offentlig nøgle kryptering (som alle er baseret på et eller andet talteoretisk problem) blev der for alvor sat gang i udviklingen af hurtigere og bedre algoritmer da den praktiske brug pludselig var MEGET tydelig.

Historien Før computeren Faktorisering har igennem matematikkens historie optaget mange matematikere og mangel på regnekraft har sat en begrænsning i udviklingen. Computerens ankomst Computerens ankomst gav mulighed for at faktorisere større tal end hidtil grundet den markant større regnekraft til rådighed. Det pustede nyt liv i forskningen i faktoriseringsmetoder. Public key cryptography Med ankomsten af offentlig nøgle kryptering (som alle er baseret på et eller andet talteoretisk problem) blev der for alvor sat gang i udviklingen af hurtigere og bedre algoritmer da den praktiske brug pludselig var MEGET tydelig.

2 Kategorier Vi kan inddele faktoriseringsmetoder i 2 kategorier: Specielle metoder Metoder som udnytter en speciel struktur ved tallet eller dens faktorer, som f.eks.: Pollards p 1 og ρ metoder Lenstras ECM Generelle metoder Metoder som kræver den samme mængde udregning uafhængig af tallet og dets faktorer, som f.eks.: Continued FRACtions metoden Quadratic Sieve (General) Number Field Sieve

2 Kategorier Vi kan inddele faktoriseringsmetoder i 2 kategorier: Specielle metoder Metoder som udnytter en speciel struktur ved tallet eller dens faktorer, som f.eks.: Pollards p 1 og ρ metoder Lenstras ECM Generelle metoder Metoder som kræver den samme mængde udregning uafhængig af tallet og dets faktorer, som f.eks.: Continued FRACtions metoden Quadratic Sieve (General) Number Field Sieve

2 Kategorier Vi kan inddele faktoriseringsmetoder i 2 kategorier: Specielle metoder Metoder som udnytter en speciel struktur ved tallet eller dens faktorer, som f.eks.: Pollards p 1 og ρ metoder Lenstras ECM Generelle metoder Metoder som kræver den samme mængde udregning uafhængig af tallet og dets faktorer, som f.eks.: Continued FRACtions metoden Quadratic Sieve (General) Number Field Sieve

Kun generelle algoritmer for RSA RSA og lignende metoder bruger allesammen hårde sammensatte tal, dvs. med 2 store primfaktorer - derfor er det kun de generelle metoder der kan bruges til at faktorisere f.eks. en RSA modulus.

Outline 1 Faktorisering for dummies Primtal og aritmetikkens fundamentalsætning Lille øvelse 2 Hvorfor er det interessant? RSA 3 Metoder 4 General Number Field Sieve Konceptet Algoritmen pgnfs 5 Status

Kongruente kvadrater De kendte generelle algoritmer er alle baseret på teorien om kongruente kvadrater og Legendres Kongruens. Definition (Legendres Kongruens) x 2 y 2 mod n ( for 0 x y n, x y, x + y n) Hvis vi har x og y opfyldende Legendres kongruens, så er der stor sandsynlighed for at gcd(n, x ± y) er en ikke-triviel divisor af n.

Kongruente kvadrater De kendte generelle algoritmer er alle baseret på teorien om kongruente kvadrater og Legendres Kongruens. Definition (Legendres Kongruens) x 2 y 2 mod n ( for 0 x y n, x y, x + y n) Hvis vi har x og y opfyldende Legendres kongruens, så er der stor sandsynlighed for at gcd(n, x ± y) er en ikke-triviel divisor af n.

Kongruente kvadrater De kendte generelle algoritmer er alle baseret på teorien om kongruente kvadrater og Legendres Kongruens. Definition (Legendres Kongruens) x 2 y 2 mod n ( for 0 x y n, x y, x + y n) Hvis vi har x og y opfyldende Legendres kongruens, så er der stor sandsynlighed for at gcd(n, x ± y) er en ikke-triviel divisor af n.

De generelle metoders fremgangsmåde Moderne algoritmer er alle baseret på Legendres kongruens, forskellen ligger i hvordan den finder x og y der opfylder den. Quadratic Sieve, Continued FRACtions og Number Field Sieve bruger de samme grundlæggende idéer for at opnå dette.

De generelle metoders fremgangsmåde Moderne algoritmer er alle baseret på Legendres kongruens, forskellen ligger i hvordan den finder x og y der opfylder den. Quadratic Sieve, Continued FRACtions og Number Field Sieve bruger de samme grundlæggende idéer for at opnå dette.

Algebraiske tallegemer Før NFS blev der kun arbejdet i Z[x] og Q[x] NFS arbejder også i Z[x] men arbejder også i det algebraiske tallegeme Z[α], som er den væsentligste forskel fra tidligere algoritmer. NFS har derfor 2 sigter både en rationel og en algebraisk - dermed bruger den også 2 faktorbaser.

Algebraiske tallegemer Før NFS blev der kun arbejdet i Z[x] og Q[x] NFS arbejder også i Z[x] men arbejder også i det algebraiske tallegeme Z[α], som er den væsentligste forskel fra tidligere algoritmer. NFS har derfor 2 sigter både en rationel og en algebraisk - dermed bruger den også 2 faktorbaser.

Algebraiske tallegemer Før NFS blev der kun arbejdet i Z[x] og Q[x] NFS arbejder også i Z[x] men arbejder også i det algebraiske tallegeme Z[α], som er den væsentligste forskel fra tidligere algoritmer. NFS har derfor 2 sigter både en rationel og en algebraisk - dermed bruger den også 2 faktorbaser.

Afbildningen φ Definition (φ) Givet polynomium f (x) Z[x], en rod α C og m Z/nZ sådan at f (m) 0 (mod n) så eksisterer der en entydig afbildning φ : Z[α] Z/nZ der opfylder for alle a, b Z[α] φ(1) 1 mod n φ(α) m mod n φ(ab) = φ(a)φ(b) φ(a + b) = φ(a) + φ(b)

Kernen af NFS Vi vil gerne finde x og y som opfylder Legendres kongruens - og det kan vi hvis vi kan finde en ikke tom mængde S hvor følgende er opfyldt: y 2 = β 2 = (a + bm) : y 2 Z (a,b) S (a,b) S (a + bα) : β 2 Z[α] Hvis vi har sådan en ikke tom mængde S som beskrevet så har vi, med lidt hjælp fra φ, en Legendre Kongruens og dermed en god chance for at finde en ikke-triviel faktor.

Kernen af NFS φ(β) 2 = φ(β)φ(β) = φ(β 2 ) = φ (a + bα) = = (a,b) S (a,b) S (a,b) S φ(a + bα) (a + bm) = y 2 Så vi skal derfor bare finde sådan en mængde S.

Kernen af NFS NFS algoritmen finder mængden S ved at sigte elementer i et tallegeme og denne sigte er selvfølgelig defineret ud fra det tallegeme vi arbejder i. Algoritmen består af 5 trin.

Trin 1 - Valg af polynomium Vælg et irreducibelt polynomium f (x) Z n [x] med rod m Z n, dvs. f (m) 0 mod n. Graden d af polynomiet skal være større end 3 og er afhængig af n (rekordforsøg bruger d = 5 eller d = 6) Et godt valg af polynomium er vigtigt da den dikterer hastigheden for resten af algoritmen. Dette trin er et af de mindre udforskede elementer af NFS, men der findes visse heuristiske metoder til at kvantificere godheden af et polynomium.

Trin 1 - Valg af polynomium Vælg et irreducibelt polynomium f (x) Z n [x] med rod m Z n, dvs. f (m) 0 mod n. Graden d af polynomiet skal være større end 3 og er afhængig af n (rekordforsøg bruger d = 5 eller d = 6) Et godt valg af polynomium er vigtigt da den dikterer hastigheden for resten af algoritmen. Dette trin er et af de mindre udforskede elementer af NFS, men der findes visse heuristiske metoder til at kvantificere godheden af et polynomium.

Trin 1 - Valg af polynomium Vælg et irreducibelt polynomium f (x) Z n [x] med rod m Z n, dvs. f (m) 0 mod n. Graden d af polynomiet skal være større end 3 og er afhængig af n (rekordforsøg bruger d = 5 eller d = 6) Et godt valg af polynomium er vigtigt da den dikterer hastigheden for resten af algoritmen. Dette trin er et af de mindre udforskede elementer af NFS, men der findes visse heuristiske metoder til at kvantificere godheden af et polynomium.

Trin 1 - Valg af polynomium Vælg et irreducibelt polynomium f (x) Z n [x] med rod m Z n, dvs. f (m) 0 mod n. Graden d af polynomiet skal være større end 3 og er afhængig af n (rekordforsøg bruger d = 5 eller d = 6) Et godt valg af polynomium er vigtigt da den dikterer hastigheden for resten af algoritmen. Dette trin er et af de mindre udforskede elementer af NFS, men der findes visse heuristiske metoder til at kvantificere godheden af et polynomium.

Trin 2 - Opsætning af faktorbaser Vi skal bruge 2 faktorbaser, nemlig en rationel faktorbase ( RFB) og en algebraisk faktor base ( AFB). RFB indeholder alle primtal under en givet grænse samt dets rest modulus m, dvs. elementerne i RFB er par (p, p mod m). AFB indeholder par (p, r) hvor f (r) 0 mod p for primtal p under en givet grænse. AFB indeholder normalt 2-3 gange så mange elementer som RFB. Antallet af elementer i RFB og AFB er i rekordforsøg mere end 1 million.

Trin 2 - Opsætning af faktorbaser Vi skal bruge 2 faktorbaser, nemlig en rationel faktorbase ( RFB) og en algebraisk faktor base ( AFB). RFB indeholder alle primtal under en givet grænse samt dets rest modulus m, dvs. elementerne i RFB er par (p, p mod m). AFB indeholder par (p, r) hvor f (r) 0 mod p for primtal p under en givet grænse. AFB indeholder normalt 2-3 gange så mange elementer som RFB. Antallet af elementer i RFB og AFB er i rekordforsøg mere end 1 million.

Trin 2 - Opsætning af faktorbaser Vi skal bruge 2 faktorbaser, nemlig en rationel faktorbase ( RFB) og en algebraisk faktor base ( AFB). RFB indeholder alle primtal under en givet grænse samt dets rest modulus m, dvs. elementerne i RFB er par (p, p mod m). AFB indeholder par (p, r) hvor f (r) 0 mod p for primtal p under en givet grænse. AFB indeholder normalt 2-3 gange så mange elementer som RFB. Antallet af elementer i RFB og AFB er i rekordforsøg mere end 1 million.

Trin 2 - Opsætning af faktorbaser Vi skal bruge 2 faktorbaser, nemlig en rationel faktorbase ( RFB) og en algebraisk faktor base ( AFB). RFB indeholder alle primtal under en givet grænse samt dets rest modulus m, dvs. elementerne i RFB er par (p, p mod m). AFB indeholder par (p, r) hvor f (r) 0 mod p for primtal p under en givet grænse. AFB indeholder normalt 2-3 gange så mange elementer som RFB. Antallet af elementer i RFB og AFB er i rekordforsøg mere end 1 million.

Trin 2 - Opsætning af faktorbaser Vi skal bruge 2 faktorbaser, nemlig en rationel faktorbase ( RFB) og en algebraisk faktor base ( AFB). RFB indeholder alle primtal under en givet grænse samt dets rest modulus m, dvs. elementerne i RFB er par (p, p mod m). AFB indeholder par (p, r) hvor f (r) 0 mod p for primtal p under en givet grænse. AFB indeholder normalt 2-3 gange så mange elementer som RFB. Antallet af elementer i RFB og AFB er i rekordforsøg mere end 1 million.

Trin 3 - Sigtning af elementer Formålet med sigtningen er at finde relationer. En relation er et par (a, b) hvis rationelle norm er glat over RFB og algebraiske norm er glat over AFB. Klassisk linie-sigtning tager et b ad gangen og gennemløber a i et fastlagt interval og gemmer så de relationer den finder. Dette trin er det der tager længst tid, så optimering er vigtig! Kan nemt distribueres ud på flere maskiner, hvor hver maskine tager et interval af b er at sigte.

Trin 3 - Sigtning af elementer Formålet med sigtningen er at finde relationer. En relation er et par (a, b) hvis rationelle norm er glat over RFB og algebraiske norm er glat over AFB. Klassisk linie-sigtning tager et b ad gangen og gennemløber a i et fastlagt interval og gemmer så de relationer den finder. Dette trin er det der tager længst tid, så optimering er vigtig! Kan nemt distribueres ud på flere maskiner, hvor hver maskine tager et interval af b er at sigte.

Trin 3 - Sigtning af elementer Formålet med sigtningen er at finde relationer. En relation er et par (a, b) hvis rationelle norm er glat over RFB og algebraiske norm er glat over AFB. Klassisk linie-sigtning tager et b ad gangen og gennemløber a i et fastlagt interval og gemmer så de relationer den finder. Dette trin er det der tager længst tid, så optimering er vigtig! Kan nemt distribueres ud på flere maskiner, hvor hver maskine tager et interval af b er at sigte.

Trin 3 - Sigtning af elementer Formålet med sigtningen er at finde relationer. En relation er et par (a, b) hvis rationelle norm er glat over RFB og algebraiske norm er glat over AFB. Klassisk linie-sigtning tager et b ad gangen og gennemløber a i et fastlagt interval og gemmer så de relationer den finder. Dette trin er det der tager længst tid, så optimering er vigtig! Kan nemt distribueres ud på flere maskiner, hvor hver maskine tager et interval af b er at sigte.

Trin 4 - Løse ligningssystem Vi sigter indtil vi har flere relationer end der er elementer i RFB og AFB og QCB sammenlagt +1. Vi kan nu opstille et linært ligningssystem udfra relationerne og deres faktorisering over faktorbaserne og grundet dimensionerne kan vi finde mindst en løsning til systemet. Der kan bruges Gauss Eliminering eller Block Lanczos. Løsningen svarer til den ønskede mængde S.

Trin 4 - Løse ligningssystem Vi sigter indtil vi har flere relationer end der er elementer i RFB og AFB og QCB sammenlagt +1. Vi kan nu opstille et linært ligningssystem udfra relationerne og deres faktorisering over faktorbaserne og grundet dimensionerne kan vi finde mindst en løsning til systemet. Der kan bruges Gauss Eliminering eller Block Lanczos. Løsningen svarer til den ønskede mængde S.

Trin 4 - Løse ligningssystem Vi sigter indtil vi har flere relationer end der er elementer i RFB og AFB og QCB sammenlagt +1. Vi kan nu opstille et linært ligningssystem udfra relationerne og deres faktorisering over faktorbaserne og grundet dimensionerne kan vi finde mindst en løsning til systemet. Der kan bruges Gauss Eliminering eller Block Lanczos. Løsningen svarer til den ønskede mængde S.

Trin 4 - Løse ligningssystem Vi sigter indtil vi har flere relationer end der er elementer i RFB og AFB og QCB sammenlagt +1. Vi kan nu opstille et linært ligningssystem udfra relationerne og deres faktorisering over faktorbaserne og grundet dimensionerne kan vi finde mindst en løsning til systemet. Der kan bruges Gauss Eliminering eller Block Lanczos. Løsningen svarer til den ønskede mængde S.

Trin 5 - Beregne kvadratrødder Vi skal bruge y og β som beskrevet tidligere, y er nemt at finde som produktet s(x) af alle elementerne i S og så er y = s(m). β er IKKE så nem at finde og kræver en hel del arbejde da det er kvadratroden af et algebraisk tal over et funktionslegeme. Teoretisk kan der bruges generelle faktoriseringmetoder for polynomier over tallegemer, men det er ikke brugbart for store tal da koefficienterne i det algebraiske tal er MEGET MEGET store og dette trin vil så dominere den samlede køretid.

Trin 5 - Beregne kvadratrødder Vi skal bruge y og β som beskrevet tidligere, y er nemt at finde som produktet s(x) af alle elementerne i S og så er y = s(m). β er IKKE så nem at finde og kræver en hel del arbejde da det er kvadratroden af et algebraisk tal over et funktionslegeme. Teoretisk kan der bruges generelle faktoriseringmetoder for polynomier over tallegemer, men det er ikke brugbart for store tal da koefficienterne i det algebraiske tal er MEGET MEGET store og dette trin vil så dominere den samlede køretid.

Trin 5 - Beregne kvadratrødder Vi skal bruge y og β som beskrevet tidligere, y er nemt at finde som produktet s(x) af alle elementerne i S og så er y = s(m). β er IKKE så nem at finde og kræver en hel del arbejde da det er kvadratroden af et algebraisk tal over et funktionslegeme. Teoretisk kan der bruges generelle faktoriseringmetoder for polynomier over tallegemer, men det er ikke brugbart for store tal da koefficienterne i det algebraiske tal er MEGET MEGET store og dette trin vil så dominere den samlede køretid.

... med lidt held:... kan vi så finde ikke-trivielle faktorer af n ved at beregne gcd(n, y ± β). For dem interesseret i den teoretiske køretid så er den for GNFS: q O (e ( 3 64 9 +O(1)) 3 log n 3 ) (log log n) 2

... med lidt held:... kan vi så finde ikke-trivielle faktorer af n ved at beregne gcd(n, y ± β). For dem interesseret i den teoretiske køretid så er den for GNFS: q O (e ( 3 64 9 +O(1)) 3 log n 3 ) (log log n) 2

... med lidt held:... kan vi så finde ikke-trivielle faktorer af n ved at beregne gcd(n, y ± β). For dem interesseret i den teoretiske køretid så er den for GNFS: q O (e ( 3 64 9 +O(1)) 3 log n 3 ) (log log n) 2

pgnfs Jeg har implementeret alle trinene i GNFS. Min implementation kaldes pgnfs. (Formålet med pgnfs... ) At se min algoritmiske beskrivelse af algoritmen virke in action. At lave en offentlig tilgængelig implementation uden begrænsninger. At lave en modulær implementation der gør det muligt for andre at indsætte deres egen implementation af et eller flere af trinene.

pgnfs Jeg har implementeret alle trinene i GNFS. Min implementation kaldes pgnfs. (Formålet med pgnfs... ) At se min algoritmiske beskrivelse af algoritmen virke in action. At lave en offentlig tilgængelig implementation uden begrænsninger. At lave en modulær implementation der gør det muligt for andre at indsætte deres egen implementation af et eller flere af trinene.

pgnfs Jeg har implementeret alle trinene i GNFS. Min implementation kaldes pgnfs. (Formålet med pgnfs... ) At se min algoritmiske beskrivelse af algoritmen virke in action. At lave en offentlig tilgængelig implementation uden begrænsninger. At lave en modulær implementation der gør det muligt for andre at indsætte deres egen implementation af et eller flere af trinene.

pgnfs Jeg har implementeret alle trinene i GNFS. Min implementation kaldes pgnfs. (Formålet med pgnfs... ) At se min algoritmiske beskrivelse af algoritmen virke in action. At lave en offentlig tilgængelig implementation uden begrænsninger. At lave en modulær implementation der gør det muligt for andre at indsætte deres egen implementation af et eller flere af trinene.

Fremtiden for pgnfs Der har allerede været en del henvendelser efter offentliggørelse og der er flere grupper rundt om i verdenen der arbejder videre på pgnfs. pgnfs har potentiale for at blive gjort ligeså hurtig hvis ikke hurtigere end eksisterende ikke-offentlige implementationer. Jeg vil estimere at et par måneders fuld tid arbejde vil kunne gøre den fuldt konkurrence-dygtig.

Fremtiden for pgnfs Der har allerede været en del henvendelser efter offentliggørelse og der er flere grupper rundt om i verdenen der arbejder videre på pgnfs. pgnfs har potentiale for at blive gjort ligeså hurtig hvis ikke hurtigere end eksisterende ikke-offentlige implementationer. Jeg vil estimere at et par måneders fuld tid arbejde vil kunne gøre den fuldt konkurrence-dygtig.

Optimeringer af pgnfs Implementering af Montgomery s algoritme for kvadratrods trinet. Implementering af Block Lanczos metode til at løse det linære ligningssystem. Ændre repræsentationen af data mellem trinene for hurtigere I/O. En kombination af forskellige sigter under sigtningen. Filtrering af relationer og faktorbaser efter sigtningen for at opnå et mindre ligningssystem.

Optimeringer af pgnfs Implementering af Montgomery s algoritme for kvadratrods trinet. Implementering af Block Lanczos metode til at løse det linære ligningssystem. Ændre repræsentationen af data mellem trinene for hurtigere I/O. En kombination af forskellige sigter under sigtningen. Filtrering af relationer og faktorbaser efter sigtningen for at opnå et mindre ligningssystem.

Optimeringer af pgnfs Implementering af Montgomery s algoritme for kvadratrods trinet. Implementering af Block Lanczos metode til at løse det linære ligningssystem. Ændre repræsentationen af data mellem trinene for hurtigere I/O. En kombination af forskellige sigter under sigtningen. Filtrering af relationer og faktorbaser efter sigtningen for at opnå et mindre ligningssystem.

Optimeringer af pgnfs Implementering af Montgomery s algoritme for kvadratrods trinet. Implementering af Block Lanczos metode til at løse det linære ligningssystem. Ændre repræsentationen af data mellem trinene for hurtigere I/O. En kombination af forskellige sigter under sigtningen. Filtrering af relationer og faktorbaser efter sigtningen for at opnå et mindre ligningssystem.

Optimeringer af pgnfs Implementering af Montgomery s algoritme for kvadratrods trinet. Implementering af Block Lanczos metode til at løse det linære ligningssystem. Ændre repræsentationen af data mellem trinene for hurtigere I/O. En kombination af forskellige sigter under sigtningen. Filtrering af relationer og faktorbaser efter sigtningen for at opnå et mindre ligningssystem.

Outline 1 Faktorisering for dummies Primtal og aritmetikkens fundamentalsætning Lille øvelse 2 Hvorfor er det interessant? RSA 3 Metoder 4 General Number Field Sieve Konceptet Algoritmen pgnfs 5 Status

Status i faktoriseringsverdenen 2 uger efter min aflevering blev den hidtidige rekord slået, da RSA-640 blev faktoriseret af de samme mennesker som havde faktoriseret de 2 hidtil største tal. Overraskende var den samlede køretid på 5 måneder, som var mindre end forventet. Endnu mere overraskende var de ressourcer der var brugt!!!

Status i faktoriseringsverdenen 2 uger efter min aflevering blev den hidtidige rekord slået, da RSA-640 blev faktoriseret af de samme mennesker som havde faktoriseret de 2 hidtil største tal. Overraskende var den samlede køretid på 5 måneder, som var mindre end forventet. Endnu mere overraskende var de ressourcer der var brugt!!!

Status i faktoriseringsverdenen 2 uger efter min aflevering blev den hidtidige rekord slået, da RSA-640 blev faktoriseret af de samme mennesker som havde faktoriseret de 2 hidtil største tal. Overraskende var den samlede køretid på 5 måneder, som var mindre end forventet. Endnu mere overraskende var de ressourcer der var brugt!!!

RSA-640 Der vides ikke noget om valget af polynomium. Den rationelle faktorbase havde en grænse på 15 10 7 og den algebraiske 28 10 7. Sigtningen tog 3 måneder på 80 Opteron 2.2 GHz maskiner. Det linære ligningssystem havde dimensioner 36 10 6 36 10 6 og tog 1 1 2 måned på et cluster med 80 Opteron 2.2 GHz. Kvadratroden ser ud til at være fundet på 2-3 uger.

RSA-640 Der vides ikke noget om valget af polynomium. Den rationelle faktorbase havde en grænse på 15 10 7 og den algebraiske 28 10 7. Sigtningen tog 3 måneder på 80 Opteron 2.2 GHz maskiner. Det linære ligningssystem havde dimensioner 36 10 6 36 10 6 og tog 1 1 2 måned på et cluster med 80 Opteron 2.2 GHz. Kvadratroden ser ud til at være fundet på 2-3 uger.

RSA-640 Der vides ikke noget om valget af polynomium. Den rationelle faktorbase havde en grænse på 15 10 7 og den algebraiske 28 10 7. Sigtningen tog 3 måneder på 80 Opteron 2.2 GHz maskiner. Det linære ligningssystem havde dimensioner 36 10 6 36 10 6 og tog 1 1 2 måned på et cluster med 80 Opteron 2.2 GHz. Kvadratroden ser ud til at være fundet på 2-3 uger.

RSA-640 Der vides ikke noget om valget af polynomium. Den rationelle faktorbase havde en grænse på 15 10 7 og den algebraiske 28 10 7. Sigtningen tog 3 måneder på 80 Opteron 2.2 GHz maskiner. Det linære ligningssystem havde dimensioner 36 10 6 36 10 6 og tog 1 1 2 måned på et cluster med 80 Opteron 2.2 GHz. Kvadratroden ser ud til at være fundet på 2-3 uger.

RSA-640 Der vides ikke noget om valget af polynomium. Den rationelle faktorbase havde en grænse på 15 10 7 og den algebraiske 28 10 7. Sigtningen tog 3 måneder på 80 Opteron 2.2 GHz maskiner. Det linære ligningssystem havde dimensioner 36 10 6 36 10 6 og tog 1 1 2 måned på et cluster med 80 Opteron 2.2 GHz. Kvadratroden ser ud til at være fundet på 2-3 uger.

Sikkerhed af RSA De relativ små ressourcer der blev brugt til RSA-640 kom bag på de fleste og har rystet en del, 1024 bit tal der før lå langt ude i fremtiden ser ud til at være indenfor rækkevidde indenfor få år. 1024 bit nøgler har hidtil været betragtet som sikre, men jeg vil mene man efter faktoriseringen af RSA-640 skal ændre det til at nøgler minimum skal være 2048 bit for at give en vis sikkerhed. RSA-704 eller RSA-768 kunne være mulige kandidater for en optimeret pgnfs og ved at gøre brug af NorduGrid.

Sikkerhed af RSA De relativ små ressourcer der blev brugt til RSA-640 kom bag på de fleste og har rystet en del, 1024 bit tal der før lå langt ude i fremtiden ser ud til at være indenfor rækkevidde indenfor få år. 1024 bit nøgler har hidtil været betragtet som sikre, men jeg vil mene man efter faktoriseringen af RSA-640 skal ændre det til at nøgler minimum skal være 2048 bit for at give en vis sikkerhed. RSA-704 eller RSA-768 kunne være mulige kandidater for en optimeret pgnfs og ved at gøre brug af NorduGrid.

Sikkerhed af RSA De relativ små ressourcer der blev brugt til RSA-640 kom bag på de fleste og har rystet en del, 1024 bit tal der før lå langt ude i fremtiden ser ud til at være indenfor rækkevidde indenfor få år. 1024 bit nøgler har hidtil været betragtet som sikre, men jeg vil mene man efter faktoriseringen af RSA-640 skal ændre det til at nøgler minimum skal være 2048 bit for at give en vis sikkerhed. RSA-704 eller RSA-768 kunne være mulige kandidater for en optimeret pgnfs og ved at gøre brug af NorduGrid.

Det var det... Så er der 2 5 minutters pause!!