Quadratic Sieve. Avancerade algoritmer (2D1440) 8/ Joel Brynielsson, TCS/Nada (f.d. D95)

Relevanta dokument
Föreläsning 9: Talteori

Geometri, talteori och kombinatorik

Matematisk kommunikation för Π Problemsamling

Föreläsning 9: Talteori

Matematisk kommunikation för Π Problemsamling

Givet två naturliga tal a och b, som inte båda två är 0, hur räknar man ut största gemensamma delaren av a och b?

Resträkning och ekvationer

Sats 2.1 (Kinesiska restsatsen) Låt n och m vara relativt prima heltal samt a och b två godtyckliga heltal. Då har ekvationssystemet

Prov 1 2. Ellips 12 Numeriska och algebraiska metoder lösningar till övningsproven uppdaterad a) i) Nollställen för polynomet 2x 2 3x 1:

x 23 + y 160 = 1, 2 23 = ,

Lösningar till utvalda uppgifter i kapitel 5

Sidor i boken , , 3, 5, 7, 11,13,17 19, 23. Ett andragradspolynom Ett tiogradspolynom Ett tredjegradspolynom

Lösning till tentamensskrivning i Diskret Matematik för CINTE, CL2 och Media 1, SF1610 och 5B1118, onsdagen den 17 augusti 2011, kl

November 17, 2015 (1) en enda lsg. Obs det A = 1 0. (2) k-parameter lsg. Obs det A = 0. k-kolonner efter sista ledande ettan

(A B) C = A C B C och (A B) C = A C B C. Bevis: (A B) C = A C B C : (A B) C = A C B C : B C (A B) C A C B C

Övning log, algebra, potenser med mera

Gaussiska heltal. Maja Wallén. U.U.D.M. Project Report 2014:38. Department of Mathematics Uppsala University

4. Bestäm alla trippler n 2, n, n + 2 av heltal som samtliga är primtal. 5. Skriv upp additions- och multiplikationstabellen för räkning modulo 4.

Uppgiftshäfte Matteproppen

Primtal, faktorisering och RSA

Algebra och rationella uttryck

Tentamen i Beräkningsvetenskap I och KF, 5.0 hp,

Läsanvisning till Discrete matematics av Norman Biggs - 5B1118 Diskret matematik

Statistikens grunder HT, dagtid Statistiska institutionen

DOP-matematik Copyright Tord Persson. Gränsvärden. Uppgift nr 10 Förenkla bråket h (5 + h) h. Uppgift nr 11 Förenkla bråket 8h + h² h

.I Minkowskis gitterpunktssats

Gaussiska primtal. Christer Kiselman. Institut Mittag-Leffler & Uppsala universitet

Delbarhet och primtal

a = a a a a a a ± ± ± ±500

Kapitel 2: De hela talen

10! = =

Lösningsanvisningar till de icke obligatoriska workoutuppgifterna

Sätt t = (x 1) 2 + y 2 + 2(x 1). Då är f(x, y) = log(t + 1) = t 1 2 t t3 + O(t 4 ) 1 2 (x 1) 2 + y 2 + 2(x 1) ) 2 (x 1) 2 + y 2 + 2(x 1) ) 3

Preliminärt lösningsförslag till del I, v1.0

Några satser ur talteorin

Matematik 3c Kap 2 Förändringshastighet och derivator

TAIU07 Matematiska beräkningar med MATLAB för MI. Fredrik Berntsson, Linköpings Universitet. 15 januari 2016 Sida 1 / 26

DE FYRA RÄKNESÄTTEN (SID. 11) MA1C: AVRUNDNING

Ekvationer och system av ekvationer

Tal och polynom. Johan Wild

Matematiska Institutionen KTH. Lösning till några övningar inför lappskrivning nummer 5, Diskret matematik för D2 och F, vt09.

SJÄLVSTÄNDIGA ARBETEN I MATEMATIK

RSA-kryptering och primalitetstest

Laboration 3: Rekursiva definitioner, listor och ett olöst problem

Determinanter, egenvectorer, egenvärden.

Algebra, exponentialekvationer och logaritmer

Kan du det här? o o. o o o o. Derivera potensfunktioner, exponentialfunktioner och summor av funktioner. Använda dig av derivatan i problemlösning.

Kursplan. Matematik A, 30 högskolepoäng Mathematics, Basic Course, 30 Credits. Mål 1(5) Mål för utbildning på grundnivå.

EXAMENSARBETEN I MATEMATIK

Upphämtningskurs i matematik

Talteori (OBS en del frågor gäller diofantiska ekvationer och de tas inte upp från och med hösten 2012)

Tentamen i Komplex analys, SF1628, den 21 oktober 2016

Modul 1: Funktioner, Gränsvärde, Kontinuitet

Kapitel 7. Kontinuitet. 7.1 Definitioner

Modul 1: Funktioner, Gränsvärde, Kontinuitet

Faktorisering med hjälp av kvantberäkningar. Lars Engebretsen

MMA132: Laboration 2 Matriser i MATLAB

a) A = 3 B = 4 C = 9 D = b) A = 250 B = 500 C = a) Tvåhundrasjuttiotre b) Ettusenfemhundranittio

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 27 oktober 2015 Sida 1 / 31

Lösningar för tenta i TMV200 Diskret matematik kl. 14:00 18:00

Lösningsförslag till tentamensskrivning i SF1610 Diskret Matematik för CINTE 30 maj 2018, kl

Repetitionsuppgifter i Matematik inför Basår. Matematiska institutionen Linköpings universitet 2014

ALA-a Innehåll RÄKNEÖVNING VECKA 7. 1 Lite teori Kapitel Kapitel Kapitel Kapitel 14...

Övningshäfte 3: Polynom och polynomekvationer

DEL I. Matematiska Institutionen KTH

Matematik 5 Kap 2 Diskret matematik II

Några feta resultat av Gauss och ett mindre fett som har hans namn

= ( 1) ( 1) = 4 0.

Lösning till tentamensskrivning på kursen Diskret Matematik, moment A, för D2 och F, SF1631 och SF1630, den 10 januari 2011 kl

FÖRBEREDANDE KURS I MATEMATIK 1

Programkonstruktion och Datastrukturer

Moment Viktiga exempel Övningsuppgifter Ö , Ö1.25, Ö1.55, Ö1.59

Diskret matematik: Övningstentamen 1

TMV225 Inledande matematik M. Veckoprogram för läsvecka 4

Lösningar till utvalda uppgifter i kapitel 2

Faktorisering och samhällets säkerhet

7x 2 5x + 6 c.) lim x 15 8x + 3x Bestäm eventuella extrempunkter, inflexionspunkter samt horizontella och vertikala asymptoter

DEL I. Matematiska Institutionen KTH

Sammanfattninga av kursens block inför tentan

Grunderna i stegkodsprogrammering

2x 2 3x 2 4x 2 5x 2. lim. Lösning. Detta är ett gränsvärde av typen

LAB 1. FELANALYS. 1 Inledning. 2 Flyttal. 1.1 Innehåll. 2.1 Avrundningsenheten, µ, och maskinepsilon, ε M

Preliminärt lösningsförslag

Läsanvisning till Discrete matematics av Norman Biggs - 5B1118 Diskret matematik

Faktorisering med hjälp av kvantberäkningar. Lars Engebretsen

18 juni 2007, 240 minuter Inga hjälpmedel, förutom skrivmateriel. Betygsgränser: 15p. för Godkänd, 24p. för Väl Godkänd (av maximalt 36p.

Begrepp :: Determinanten

Diofantiska ekvationer

DEL I. Matematiska Institutionen KTH

LMA222a. Fredrik Lindgren. 17 februari 2014

Studiehandledning till. MMA121 Matematisk grundkurs. Version

Datastrukturer och algoritmer. Innehåll. Tabell. Tabell - exempel. Gränsyta till Tabell. Tabell. Modell. Hashtabell Relation, lexikon.

Metriska rum, R och p-adiska tal

Datalogi, grundkurs 1

Övningar - Andragradsekvationer

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 5 Jonas Lindgren, Institutionen för Datavetenskap, LiU

MA 11. Hur starkt de binder. 2 Reella tal 3 Slutledning 4 Logik 5 Mängdlära 6-7 Talteori 8 Diofantiska ekvationer 9 Fördjupning och kryptografi

Offentlig kryptering

3. Bestäm med hjälpa av Euklides algoritm största gemensamma delaren till

Lektion 1, Envariabelanalys den 8 september ε < 1 < ε för alla x > N. ( ) I vårt exempel är f(x) = 1/x, så vi ska alltså ta fram ett N så att

Transkript:

Quadratic Sieve Avancerade algoritmer (2D1440) 8/11-2000 Joel Brynielsson, TCS/Nada (f.d. D95) http://www.nada.kth.se/~joel/qs.pdf

Huvudidé Vill hitta x och y så att x 2 y 2 mod n x ±y mod n Då vet vi att n (x 2 y 2 ) n (x + y)(x y) Vi vet också att n varken delar (x + y) eller (x y) ochsåledes kommer gcd(n, x + y) och gcd(n, x y) vara faktorer till n.

Quadratic Sieve i korthet Metoden använder en faktorbas som är en mängd bestående av små primtal. Skapa ett antal x i så att x 2 i faktorisera i faktorbasen. mod n går att Vi har nu ett antal samband av typen x 2 i = pa 1 1 pa 2 2... pa k k Kombinera några av dessa samband (multiplicera ihop dem) så att båda sidor blir en kvadrat.

Triviala lösningar Notera att vi har 50% sannolikhet att få triviala lösningar och att vi därför kan behöva köra vår algoritm flera gånger.

Exempel n = 15770708441 Faktorbas: {2, 3, 5, 7, 11, 13} Betrakta följande samband: 8340934156 2 3 7 (mod n) 12044942944 2 2 7 13 (mod n) 2773700011 2 2 3 13 (mod n) Tre exponentvektorer: a 1 = (0, 1, 0, 1, 0, 0) a 2 = (1, 0, 0, 1, 0, 1) a 3 = (1, 1, 0, 0, 0, 1) a 1 + a 2 + a 3 =(0, 0, 0, 0, 0, 0) mod 2 så vifår: (8340934156 12044942944 2773700011) 2 (2 3 7 13) 2 (mod n) 9503435785 2 546 2 (mod n) gcd(n, 9503435785 546) = 115759 115759 är således en faktor i n.

Pomerances idé Vi använder oss av följande polynom: Vi ser att f(x) =(x + n ) 2 n (x + n ) 2 f(x) modn Antag nu att vi kan hitta heltal x 1,x 2,...,x k så att produkten f(x 1 )f(x 2 )...f(x k ) bildar en kvadrat, y 2. Om vi sedan låter x =(x 1 + n )(x 2 + n )...(x k + n ) harvienlösning till vår huvudekvation, x 2 y 2 mod n.

Att finna faktorbasen Vi vill välja de primtal, p i, som ingår i faktorbasen. Vill ha: p i f(x) Vet: p i n f(x) =( n + x) 2 n Detta ger oss n ( n + x) 2 mod p i Vår faktorbas skall alltså bestå enbart av primtal, p i,sådana att n är en kvadratisk rest modulo p i.

Såll 1 Tal som faktoriserar över faktorbasen kommer att vara mycket få. Ett såll ger oss möjlighet att betrakta en mängd värden i ett stort block på en gång och bestämma vilka tal som kommer att kunna faktoriseras.

Såll 2 f(x) =p a 1 1 pa 2 2... pa k k log f(x) = log p a 1 1 + log pa 2 2 +...+ log pa k k Om vi subtraherar bort logaritmen för de p i som ingår i f(x) från log f(x) kommer vi teoretiskt sett komma ner till noll om f(x) kan faktoriseras i faktorbasen. Avrundningsfel och multipla primtal gör att vi i praktiken använder oss av ett gränsvärde så att vi betraktar alla tal som är tillräckligt nära. Gränsvärdet sätts ofta till logaritmen för det största primtalet i faktorbasen.

Såll 3 Hur vet vi om ett primtal ingår i f(x)? Vet att n är kvadratisk rest modulo p, d.v.s. n t 2 mod p eller n ( t) 2 mod p För alla p löser vi dessa kongruenser och sparar undan t och t. Eftersom n ( n + x) 2 mod p (p.g.a. att p f(x)) betyder detta också att n +x t mod p eller n +x t mod p Om ovanstående är uppfyllt skall vi alltså subtrahera log p från log f(x).

Såll 4 Startvärde på x ges av t. Om p delar f(x) kommer även p att dela f(x + p),f(x +2p) o.s.v. Detta ger oss basen för vårt såll där vi på detta sätt kan subtrahera bort log p från en stor mängd log f(x) utan att behöva göra nya jämförelser.

Lite parametrar Storlek på faktorbas: L(n) 1/2 där L(n) =O ( ) e c ln n ln ln n är körtiden Antal f(x) att hitta: faktorbasens storlek + 10 Gränsvärde för sållet: logaritmen för det största talet i faktorbasen För varje primtal p i faktorbasen lagras även log p, t och t.

Sållning i två dimensioner f(x) =(x + n ) 2 n f(a, b) =( bn + a) 2 bn

Körningar med olika storlekar på faktorbasen för 40-decimalers tal 300 250 200 time(s) 150 100 50 0 750 1000 1250 1500 1750 2000 2250 2500 factorbase(size) Vit: Såll Mörkgrå: Gausselimination Ljusgrå: Övrigt

Parallell körning 1 300 Parallel vs non parallel Quadratic Sieve (sieve part) serial 250 wallclock time [min] 200 150 100 2 nodes 4 nodes 50 8 nodes 16 nodes 0 20 25 30 35 40 45 50 55 60 65 70 decimal size of n

Parallell körning 2 16 Measured vs ideal performance (sieve part)[n=55] 14 12 Speedup 10 8 linear 6 absolute 4 2 2 4 6 8 10 12 14 16 number of nodes Talet som faktoriserats har 50 decimaler.