• No results found

De kunst en het nut van factoriseren

N/A
N/A
Protected

Academic year: 2021

Share "De kunst en het nut van factoriseren"

Copied!
92
0
0

Bezig met laden.... (Bekijk nu de volledige tekst)

Hele tekst

(1)

De kunst en het nut van factoriseren

Ronald van Luijk (Universiteit Leiden)

1 Februari, 2013 Noordwijkerhout

(2)

Vermenigvuldigen

521367 386139 × 4692303 15641010 52136700 3128202000 41709360000 156410100000 + 201320132013 k2 basisvermenigvuldigingen ≤ 3k2 basisoptellingen ≤ 4k2 basisoperaties.

Twee getallen van rond de k cijfers, samen 2k cijfers. “De tijd die het kost om twee getallen van k cijfers te

(3)

Vermenigvuldigen

521367 386139 × 4692303 15641010 52136700 3128202000 41709360000 156410100000 + 201320132013 k2 basisvermenigvuldigingen ≤ 3k2 basisoptellingen ≤ 4k2 basisoperaties.

Twee getallen van rond de k cijfers, samen 2k cijfers. “De tijd die het kost om twee getallen van k cijfers te

(4)

Vermenigvuldigen

521367 386139 × 4692303 15641010 52136700 3128202000 41709360000 156410100000 + 201320132013 k2 basisvermenigvuldigingen ≤ 3k2 basisoptellingen ≤ 4k2 basisoperaties.

Twee getallen van rond de k cijfers, samen 2k cijfers. “De tijd die het kost om twee getallen van k cijfers te

(5)

Vermenigvuldigen

521367 386139 × 4692303 15641010 52136700 3128202000 41709360000 156410100000 + 201320132013 k2 basisvermenigvuldigingen ≤ 3k2 basisoptellingen ≤ 4k2 basisoperaties.

Twee getallen van rond de k cijfers, samen 2k cijfers. “De tijd die het kost om twee getallen van k cijfers te

(6)

Vermenigvuldigen

521367 386139 × 4692303 15641010 52136700 3128202000 41709360000 156410100000 + 201320132013 k2 basisvermenigvuldigingen ≤ 3k2 basisoptellingen ≤ 4k2 basisoperaties.

Twee getallen van rond de k cijfers, samen 2k cijfers. “De tijd die het kost om twee getallen van k cijfers te

(7)

Vermenigvuldigen

521367 386139 × 4692303 15641010 52136700 3128202000 41709360000 156410100000 + 201320132013 k2 basisvermenigvuldigingen ≤ 3k2 basisoptellingen ≤ 4k2 basisoperaties.

Twee getallen van rond de k cijfers, samen 2k cijfers. “De tijd die het kost om twee getallen van k cijfers te

(8)

Vermenigvuldigen

521367 386139 × 4692303 15641010 52136700 3128202000 41709360000 156410100000 + 201320132013 k2 basisvermenigvuldigingen ≤ 3k2 basisoptellingen ≤ 4k2 basisoperaties.

Twee getallen van rond de k cijfers, samen 2k cijfers. “De tijd die het kost om twee getallen van k cijfers te

(9)

Vermenigvuldigen

521367 386139 × 4692303 15641010 52136700 3128202000 41709360000 156410100000 + 201320132013 k2 basisvermenigvuldigingen ≤ 3k2 basisoptellingen ≤ 4k2 basisoperaties.

Twee getallen van rond de k cijfers, samen 2k cijfers. “De tijd die het kost om twee getallen van k cijfers te

(10)

Vermenigvuldigen

521367 386139 × 4692303 15641010 52136700 3128202000 41709360000 156410100000 + 201320132013 k2 basisvermenigvuldigingen ≤ 3k2 basisoptellingen ≤ 4k2 basisoperaties.

Twee getallen van rond de k cijfers, samen2k cijfers.

“De tijd die het kost om twee getallen van k cijfers te vermenigvuldigen is kwadratisch ink.”

(11)

Vermenigvuldigen

521367 386139 × 4692303 15641010 52136700 3128202000 41709360000 156410100000 + 201320132013 k2 basisvermenigvuldigingen ≤ 3k2 basisoptellingen ≤ 4k2 basisoperaties.

Twee getallen van rond de k cijfers, samen2k cijfers. “De tijd die het kost om twee getallen van k cijfers te

(12)

Priemgetallen en de zeef van Eratosthenes

Definities.

1. Deler: a is eendeler vann als n/ageheel is. We schrijvena|n. 2. Priemgetal: een positief getal met precies twee positieve delers.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120

(13)

Priemgetallen en de zeef van Eratosthenes

Definities.

1. Deler: a is eendeler vann als n/ageheel is. We schrijvena|n. 2. Priemgetal: een positief getal met precies twee positieve delers.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120

(14)

Priemgetallen en de zeef van Eratosthenes

Definities.

1. Deler: a is eendeler vann als n/ageheel is. We schrijvena|n. 2. Priemgetal: een positief getal met precies twee positieve delers.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120

(15)

Priemgetallen en de zeef van Eratosthenes

Definities.

1. Deler: a is eendeler vann als n/ageheel is. We schrijvena|n. 2. Priemgetal: een positief getal met precies twee positieve delers.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120

(16)

Priemgetallen en de zeef van Eratosthenes

Definities.

1. Deler: a is eendeler vann als n/ageheel is. We schrijvena|n. 2. Priemgetal: een positief getal met precies twee positieve delers.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120

(17)

Priemgetallen en de zeef van Eratosthenes

Definities.

1. Deler: a is eendeler vann als n/ageheel is. We schrijvena|n. 2. Priemgetal: een positief getal met precies twee positieve delers.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120

(18)

Priemgetallen en de zeef van Eratosthenes

Definities.

1. Deler: a is eendeler vann als n/ageheel is. We schrijvena|n. 2. Priemgetal: een positief getal met precies twee positieve delers.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120

(19)

Priemgetallen en de zeef van Eratosthenes

Definities.

1. Deler: a is eendeler vann als n/ageheel is. We schrijvena|n. 2. Priemgetal: een positief getal met precies twee positieve delers.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120

(20)

Priemgetallen en de zeef van Eratosthenes

Definities.

1. Deler: a is eendeler vann als n/ageheel is. We schrijvena|n. 2. Priemgetal: een positief getal met precies twee positieve delers.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120

(21)

Priemgetallen en de zeef van Eratosthenes

Definities.

1. Deler: a is eendeler vann als n/ageheel is. We schrijvena|n. 2. Priemgetal: een positief getal met precies twee positieve delers.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120

(22)

Hoofdstelling van de rekenkunde

Stelling. Elk positief geheel getal is op een unieke manier te ontbinden in priemgetallen. Voorbeelden. 18 = 2 × 3 × 3 = 2 × 32 60 = 2 × 2 × 3 × 5 = 22× 3 × 5 20! = 218× 38× 54× 72× 11 × 13 × 17 × 19 1111 . . . 1 | {z } 67 = 493121 × 79863595778924342083 ×28213380943176667001263153660999177245677 Vragen.

1. Hoe verifi¨eren we de ontbinding vann? relatief makkelijk 2. Hoe vinden we de ontbinding vann? moeilijk

(23)

Hoofdstelling van de rekenkunde

Stelling. Elk positief geheel getal is op een unieke manier te ontbinden in priemgetallen. Voorbeelden. 18 = 2 × 3 × 3 = 2 × 32 60 = 2 × 2 × 3 × 5 = 22× 3 × 5 20! = 218× 38× 54× 72× 11 × 13 × 17 × 19 1111 . . . 1 | {z } 67 = 493121 × 79863595778924342083 ×28213380943176667001263153660999177245677 Vragen.

1. Hoe verifi¨eren we de ontbinding vann? relatief makkelijk 2. Hoe vinden we de ontbinding vann? moeilijk

(24)

Hoofdstelling van de rekenkunde

Stelling. Elk positief geheel getal is op een unieke manier te ontbinden in priemgetallen. Voorbeelden. 18 = 2 × 3 × 3 = 2 × 32 60 = 2 × 2 × 3 × 5 = 22× 3 × 5 20! = 218× 38× 54× 72× 11 × 13 × 17 × 19 1111 . . . 1 | {z } 67 = 493121 × 79863595778924342083 ×28213380943176667001263153660999177245677 Vragen.

1. Hoe verifi¨eren we de ontbinding vann? relatief makkelijk 2. Hoe vinden we de ontbinding vann? moeilijk

(25)

Modulo-rekenen

Definitie. Gehele getallena enb zijn congruent modulon als

a − b een veelvoud is vann. We schrijvena ≡ b mod n.

Voorbeelden. Modulon = 10geldt 83 ≡ 3 ≡ 23 39 ≡ 9 ≡ 19 83 × 39 ≡ 3 × 9 ≡ 23 × 19 83 + 39 ≡ 3 + 9 ≡ 23 + 19 Modulon = 7geldt 33≡ 27 ≡ −1 36≡ (33)2 ≡ (−1)2 ≡ 1 36k ≡ (36)k ≡ 1k ≡ 1

(26)

Modulo-rekenen

Definitie. Gehele getallena enb zijn congruent modulon als

a − b een veelvoud is vann. We schrijvena ≡ b mod n.

Voorbeelden. Modulon = 10geldt 83 ≡ 3 ≡ 23 39 ≡ 9 ≡ 19 83 × 39 ≡ 3 × 9 ≡ 23 × 19 83 + 39 ≡ 3 + 9 ≡ 23 + 19 Modulon = 7geldt 33≡ 27 ≡ −1 36≡ (33)2 ≡ (−1)2 ≡ 1 36k ≡ (36)k ≡ 1k ≡ 1

(27)

Modulo-rekenen

Definitie. Gehele getallena enb zijn congruent modulon als

a − b een veelvoud is vann. We schrijvena ≡ b mod n.

Voorbeelden. Modulon = 10geldt 83 ≡ 3 ≡ 23 39 ≡ 9 ≡ 19 83 × 39 ≡ 3 × 9 ≡ 23 × 19 83 + 39 ≡ 3 + 9 ≡ 23 + 19 Modulon = 7geldt 33≡ 27 ≡ −1 36≡ (33)2 ≡ (−1)2 ≡ 1 36k ≡ (36)k ≡ 1k ≡ 1

(28)

Priemtesten

Stelling. Zijp priem enaeen geheel getal metggd(a, p) = 1. Dan

ap−1 ≡ 1 mod p.

Gevolg. Stela, n gehele getallen metggd(a, n) = 1. Als

an−16≡ 1 mod n,

dan isn niet priem.

Voorbeeld. Isn = 65priem? Neem a = 2. Modulon geldt 26= 64 ≡ −1,

212= (26)2≡ (−1)2 = 1,

264= (212)5× 24 ≡ 15× 16 6≡ 1, dusn = 65 isnietpriem!

(29)

Priemtesten

Stelling. Zijp priem enaeen geheel getal metggd(a, p) = 1. Dan

ap−1 ≡ 1 mod p.

Gevolg. Stela, ngehele getallen met ggd(a, n) = 1. Als

an−16≡ 1 mod n,

dan isn niet priem.

Voorbeeld. Isn = 65priem? Neem a = 2. Modulon geldt 26= 64 ≡ −1,

212= (26)2≡ (−1)2 = 1,

264= (212)5× 24 ≡ 15× 16 6≡ 1, dusn = 65 isnietpriem!

(30)

Priemtesten

Stelling. Zijp priem enaeen geheel getal metggd(a, p) = 1. Dan

ap−1 ≡ 1 mod p.

Gevolg. Stela, ngehele getallen met ggd(a, n) = 1. Als

an−16≡ 1 mod n,

dan isn niet priem.

Voorbeeld. Isn = 65priem? Neem a = 2. Modulon geldt 26= 64 ≡ −1,

212= (26)2 ≡ (−1)2 = 1,

264= (212)5× 24 ≡ 15× 16 6≡ 1, dusn = 65 isnietpriem!

(31)

Priemtesten en factoriseren

Stelling. Er is een priemtest en een constantec, zodanig

dat het met die test hooguitck6 basisoperaties kost om ce6 log k van een getal vank cijfers te testen of het priem is. (polynomiaal)

Stelling. Er is een factorisatiealgoritme om een getal

vank cijfers te factoriseren dat in het ergste geval eck1/3(log k)2/3 rond deeck1/3(log k)2/3 basisoperaties kost. (subexponentieel)

Feit. De na¨ıeve “trial and error” factorisatiemethode

om een getaln van k cijfers te factoriseren kost in het eck ergste geval rond de√n ∼ 10k/2 basisoperaties. (exponentieel)

(32)

Priemtesten en factoriseren

Stelling. Er is een priemtest en een constantec, zodanig

dat het met die test hooguitck6 basisoperaties kost om ce6 log k van een getal vank cijfers te testen of het priem is. (polynomiaal)

Stelling. Er is een factorisatiealgoritme om een getal

vank cijfers te factoriseren dat in het ergste geval eck1/3(log k)2/3 rond deeck1/3(log k)2/3 basisoperaties kost. (subexponentieel)

Feit. De na¨ıeve “trial and error” factorisatiemethode

om een getaln van k cijfers te factoriseren kost in het eck ergste geval rond de√n ∼ 10k/2 basisoperaties. (exponentieel)

(33)

Priemtesten en factoriseren

Stelling. Er is een priemtest en een constantec, zodanig

dat het met die test hooguitck6 basisoperaties kost om ce6 log k van een getal vank cijfers te testen of het priem is. (polynomiaal)

Stelling. Er is een factorisatiealgoritme om een getal

vank cijfers te factoriseren dat in het ergste geval eck1/3(log k)2/3 rond deeck1/3(log k)2/3 basisoperaties kost. (subexponentieel)

Feit. De na¨ıeve “trial and error” factorisatiemethode

om een getaln van k cijfers te factoriseren kost in het eck ergste geval rond de√n ∼ 10k/2 basisoperaties. (exponentieel)

(34)

RSA (Rivest, Shamir, Adleman)

Cryptosysteem(internetbankieren) dat gebruik maakt van het feit dat factoriseren moeilijk is.

(35)

RSA (Rivest, Shamir, Adleman)

Cryptosysteem(internetbankieren) dat gebruik maakt van het feit dat factoriseren moeilijk is.

(36)

Alle factorisatiemethoden samengevat

Probleem. Gegevenn = pq, vind p enq.

Aanpak.

1. Zoekx , y met p|(x − y )of q|(x − y ).

2. Bereken de grootste gemene delerggd(x − y , n).

Voorbeeld. We berekenenggd(1148, 539). 1148 = 2 × 539 + 70 539 = 7 × 70 + 49 70 = 1 × 49 + 21 49 = 2 × 21 + 7 21 = 3 ×× 7

(37)

Alle factorisatiemethoden samengevat

Probleem. Gegevenn = pq, vind p enq.

Aanpak.

1. Zoekx , y met p|(x − y )of q|(x − y ).

2. Bereken de grootste gemene delerggd(x − y , n).

Voorbeeld. We berekenenggd(1148, 539). 1148 = 2 × 539 + 70 539 = 7 × 70 + 49 70 = 1 × 49 + 21 49 = 2 × 21 + 7 21 = 3 ×× 7

(38)

Alle factorisatiemethoden samengevat

Probleem. Gegevenn = pq, vind p enq.

Aanpak.

1. Zoekx , y met p|(x − y )of q|(x − y ).

2. Bereken de grootste gemene delerggd(x − y , n).

Voorbeeld. We berekenenggd(1148, 539). 1148 = 2 × 539 + 70 539 = 7 × 70 + 49 70 = 1 × 49 + 21 49 = 2 × 21 + 7 21 = 3 ×× 7

(39)

Alle factorisatiemethoden samengevat

Probleem. Gegevenn = pq, vind p enq.

Aanpak.

1. Zoekx , y met p|(x − y )of q|(x − y ).

2. Bereken de grootste gemene delerggd(x − y , n).

Voorbeeld. We berekenenggd(1148, 539). 1148 = 2 × 539 + 70 539 = 7 × 70 + 49 70 = 1 × 49 + 21 49 = 2 × 21 + 7 21 = 3 ×× 7

(40)

Alle factorisatiemethoden samengevat

Probleem. Gegevenn = pq, vind p enq.

Aanpak.

1. Zoekx , y met p|(x − y )of q|(x − y ).

2. Bereken de grootste gemene delerggd(x − y , n).

Voorbeeld. We berekenenggd(1148, 539). 1148 = 2 × 539 + 70 539 = 7 × 70 + 49 70 = 1 × 49 + 21 49 = 2 × 21 + 7 21 = 3 ×× 7

(41)

Alle factorisatiemethoden samengevat

Probleem. Gegevenn = pq, vind p enq.

Aanpak.

1. Zoekx , y met p|(x − y )of q|(x − y ).

2. Bereken de grootste gemene delerggd(x − y , n).

Voorbeeld. We berekenenggd(1148, 539). 1148 = 2 × 539 + 70 539 = 7 × 70 + 49 70 = 1 × 49 + 21 49 = 2 × 21 + 7 21 = 3 ×× 7

(42)

Alle factorisatiemethoden samengevat

Probleem. Gegevenn = pq, vind p enq.

Aanpak.

1. Zoekx , y met p|(x − y )of q|(x − y ).

2. Bereken de grootste gemene delerggd(x − y , n).

Voorbeeld. We berekenenggd(1148, 539). 1148 = 2 × 539 + 70 539 = 7 × 70 + 49 70 = 1 × 49 + 21 49 = 2 × 21 + 7 21 = 3 × 7 ×

(43)

Alle factorisatiemethoden samengevat

Probleem. Gegevenn = pq, vind p enq.

Aanpak.

1. Zoekx , y met p|(x − y )of q|(x − y ).

2. Bereken de grootste gemene delerggd(x − y , n).

Voorbeeld. We berekenenggd(1148, 539). 1148 = 2 × 539 + 70 539 = 7 × 70 + 49 70 = 1 × 49 + 21 49 = 2 × 21 + 7 21 = 3 ×× 7

(44)

Pollard rho

4

n ∼ 10

k/4

(exponentieel)

Birthday paradox.

Trekken we√2p log 2 getallen uit {0, 1, 2, . . . , p − 1}, dan is de kans50% dat er een dubbele tussen zit.

Gevolg. Gegeven√2p log 2 ∼√p getallen is de kans50% dat er twee congruent zijn modulop.

Aanpak. Gegevenn = pq met p, q onbekend enp <√n < q. 1. Selecteer√4n >p getallen modulo n.

2. Zoekx , y met x ≡ y mod p, dus met ggd(x − y , n) > 1.

Probleem. Er zijn √4n ×√4n =n paren te testen...

(45)

Pollard rho

4

n ∼ 10

k/4

(exponentieel)

Birthday paradox.

Trekken we√2p log 2 getallen uit {0, 1, 2, . . . , p − 1}, dan is de kans50% dat er een dubbele tussen zit.

Gevolg. Gegeven√2p log 2 ∼√p getallen is de kans50% dat er twee congruent zijn modulop.

Aanpak. Gegevenn = pq met p, q onbekend enp <√n < q. 1. Selecteer√4n >p getallen modulo n.

2. Zoekx , y met x ≡ y mod p, dus met ggd(x − y , n) > 1.

Probleem. Er zijn √4n ×√4n =n paren te testen...

(46)

Pollard rho

4

n ∼ 10

k/4

(exponentieel)

Birthday paradox.

Trekken we√2p log 2 getallen uit {0, 1, 2, . . . , p − 1}, dan is de kans50% dat er een dubbele tussen zit.

Gevolg. Gegeven√2p log 2 ∼√p getallen is de kans50% dat er twee congruent zijn modulop.

Aanpak. Gegevenn = pq met p, q onbekend enp <√n < q. 1. Selecteer√4n >p getallen modulo n.

2. Zoekx , y met x ≡ y mod p, dus met ggd(x − y , n) > 1.

Probleem. Er zijn √4n ×√4n =n paren te testen...

(47)

Pollard rho

4

n ∼ 10

k/4

(exponentieel)

Birthday paradox.

Trekken we√2p log 2 getallen uit {0, 1, 2, . . . , p − 1}, dan is de kans50% dat er een dubbele tussen zit.

Gevolg. Gegeven√2p log 2 ∼√p getallen is de kans50% dat er twee congruent zijn modulop.

Aanpak. Gegevenn = pq met p, q onbekend enp <√n < q. 1. Selecteer√4n >p getallen modulo n.

2. Zoekx , y met x ≡ y mod p, dus met ggd(x − y , n) > 1.

Probleem. Er zijn √4n ×√4n =n paren te testen...

(48)

Pollard rho

4

n ∼ 10

k/4

(exponentieel)

Birthday paradox.

Trekken we√2p log 2 getallen uit {0, 1, 2, . . . , p − 1}, dan is de kans50% dat er een dubbele tussen zit.

Gevolg. Gegeven√2p log 2 ∼√p getallen is de kans50% dat er twee congruent zijn modulop.

Aanpak. Gegevenn = pq met p, q onbekend enp <√n < q. 1. Selecteer√4n >p getallen modulo n.

2. Zoekx , y met x ≡ y mod p, dus met ggd(x − y , n) > 1.

Probleem. Er zijn √4n ×√4n =n paren te testen...

(49)

Pollard rho

4

n ∼ 10

k/4

(exponentieel)

Voorbeeld. n = 377 (= 13 × 29). x0 = 2 xj +1= xj2+ 4 mod n x0= 2 x1= 8 x2= 68 x3= 104 x4= 264 x5= 332 x6= 144 x7= 5 x8= 29 x9= 91 x10= 368 x11= 85 x12= 66 xj mod n xj mod 13 2 8 3 0 4 7 1 5 mod 13 x2 ≡ x8 x3 ≡ x9 x4 ≡ x10 x5 ≡ x11 x6 ≡ x12 xj ≡ x2j x7 ≡ x13 x6− x12= 144 − 66 = 78 ggd(x6− x12, n) = ggd(78, 377) =13

(50)

Pollard rho

4

n ∼ 10

k/4

(exponentieel)

Voorbeeld. n = 377 (= 13 × 29). x0 = 2 xj +1= xj2+ 4 mod n x0= 2 x1= 8 x2= 68 x3= 104 x4= 264 x5= 332 x6= 144 x7= 5 x8= 29 x9= 91 x10= 368 x11= 85 x12= 66 xj mod n xj mod 13 2 8 3 0 4 7 1 5 mod 13 x2 ≡ x8 x3 ≡ x9 x4 ≡ x10 x5 ≡ x11 x6 ≡ x12 xj ≡ x2j x7 ≡ x13 x6− x12= 144 − 66 = 78 ggd(x6− x12, n) = ggd(78, 377) =13

(51)

Pollard rho

4

n ∼ 10

k/4

(exponentieel)

Voorbeeld. n = 377 (= 13 × 29). x0 = 2 xj +1= xj2+ 4 mod n x0= 2 x1= 8 x2= 68 x3= 104 x4= 264 x5= 332 x6= 144 x7= 5 x8= 29 x9= 91 x10= 368 x11= 85 x12= 66 xj mod n xj mod 13 2 8 3 0 4 7 1 5 mod 13 x2 ≡ x8 x3 ≡ x9 x4 ≡ x10 x5 ≡ x11 x6 ≡ x12 xj ≡ x2j x7 ≡ x13 x6− x12= 144 − 66 = 78 ggd(x6− x12, n) = ggd(78, 377) =13

(52)

Pollard rho

4

n ∼ 10

k/4

(exponentieel)

Voorbeeld. n = 377 (= 13 × 29). x0 = 2 xj +1= xj2+ 4 mod n x0= 2 x1= 8 x2= 68 x3= 104 x4= 264 x5= 332 x6= 144 x7= 5 x8= 29 x9= 91 x10= 368 x11= 85 x12= 66 xj mod n xj mod 13 2 8 3 0 4 7 1 5 mod 13 x2 ≡ x8 x3 ≡ x9 x4 ≡ x10 x5 ≡ x11 x6 ≡ x12 xj ≡ x2j x7 ≡ x13 x6− x12= 144 − 66 = 78 ggd(x6− x12, n) = ggd(78, 377) =13

(53)

Pollard rho

4

n ∼ 10

k/4

(exponentieel)

Voorbeeld. n = 377 (= 13 × 29). x0 = 2 xj +1= xj2+ 4 mod n x0= 2 x1= 8 x2= 68 x3= 104 x4= 264 x5= 332 x6= 144 x7= 5 x8= 29 x9= 91 x10= 368 x11= 85 x12= 66 xj mod n xj mod 13 2 8 3 0 4 7 1 5 mod 13 x2 ≡ x8 x3 ≡ x9 x4 ≡ x10 x5 ≡ x11 x6 ≡ x12 xj ≡ x2j x7 ≡ x13 x6− x12= 144 − 66 = 78 ggd(x6− x12, n) = ggd(78, 377) =13

(54)

Pollard rho

4

n ∼ 10

k/4

(exponentieel)

Voorbeeld. n = 377 (= 13 × 29). x0 = 2 xj +1= xj2+ 4 mod n x0= 2 x1= 8 x2= 68 x3= 104 x4= 264 x5= 332 x6= 144 x7= 5 x8= 29 x9= 91 x10= 368 x11= 85 x12= 66 xj mod n xj mod 13 2 8 3 0 4 7 1 5 mod 13 x2 ≡ x8 x3 ≡ x9 x4 ≡ x10 x5 ≡ x11 x6 ≡ x12 xj ≡ x2j x7 ≡ x13 x6− x12= 144 − 66 = 78 ggd(x6− x12, n) = ggd(78, 377) =13

(55)

Pollard rho

4

n ∼ 10

k/4

(exponentieel)

Voorbeeld. n = 377 (= 13 × 29). x0 = 2 xj +1= xj2+ 4 mod n x0= 2 x1= 8 x2= 68 x3= 104 x4= 264 x5= 332 x6= 144 x7= 5 x8= 29 x9= 91 x10= 368 x11= 85 x12= 66 xj mod n xj mod 13 2 8 3 0 4 7 1 5 mod 13 x2 ≡ x8 x3 ≡ x9 x4 ≡ x10 x5 ≡ x11 x6 ≡ x12 xj ≡ x2j x7 ≡ x13 x6− x12= 144 − 66 = 78 ggd(x6− x12, n) = ggd(78, 377) =13

(56)

Pollard rho

4

n ∼ 10

k/4

(exponentieel)

Voorbeeld. n = 377 (= 13 × 29). x0 = 2 xj +1= xj2+ 4 mod n x0= 2 x1= 8 x2= 68 x3= 104 x4= 264 x5= 332 x6= 144 x7= 5 x8= 29 x9= 91 x10= 368 x11= 85 x12= 66 xj mod n xj mod 13 2 8 3 0 4 7 1 5 mod 13 x2 ≡ x8 x3 ≡ x9 x4 ≡ x10 x5 ≡ x11 x6 ≡ x12 xj ≡ x2j x7 ≡ x13 x6− x12= 144 − 66 = 78 ggd(x6− x12, n) = ggd(78, 377) =13

(57)

Pollard rho

4

n ∼ 10

k/4

(exponentieel)

Voorbeeld. n = 377 (= 13 × 29). x0 = 2 xj +1= xj2+ 4 mod n x0= 2 x1= 8 x2= 68 x3= 104 x4= 264 x5= 332 x6= 144 x7= 5 x8= 29 x9= 91 x10= 368 x11= 85 x12= 66 xj mod n xj mod 13 2 8 3 0 4 7 1 5 mod 13 x2 ≡ x8 x3 ≡ x9 x4 ≡ x10 x5 ≡ x11 x6 ≡ x12 xj ≡ x2j x7 ≡ x13 x6− x12= 144 − 66 = 78 ggd(x6− x12, n) = ggd(78, 377) =13

(58)

Pollard rho

4

n ∼ 10

k/4

(exponentieel)

Voorbeeld. n = 377 (= 13 × 29). x0 = 2 xj +1= xj2+ 4 mod n x0= 2 x1= 8 x2= 68 x3= 104 x4= 264 x5= 332 x6= 144 x7= 5 x8= 29 x9= 91 x10= 368 x11= 85 x12= 66 xj mod n xj mod 13 2 8 3 0 4 7 1 5 mod 13 x2 ≡ x8 x3 ≡ x9 x4 ≡ x10 x5 ≡ x11 x6 ≡ x12 xj ≡ x2j x7 ≡ x13 x6− x12= 144 − 66 = 78 ggd(x6− x12, n) = ggd(78, 377) =13

(59)

Pollard rho

4

n ∼ 10

k/4

(exponentieel)

Voorbeeld. n = 377 (= 13 × 29). x0 = 2 xj +1= xj2+ 4 mod n x0= 2 x1= 8 x2= 68 x3= 104 x4= 264 x5= 332 x6= 144 x7= 5 x8= 29 x9= 91 x10= 368 x11= 85 x12= 66 xj mod n xj mod 13 2 8 3 0 4 7 1 5 mod 13 x2 ≡ x8 x3 ≡ x9 x4 ≡ x10 x5 ≡ x11 x6 ≡ x12 xj ≡ x2j x7 ≡ x13 x6− x12= 144 − 66 = 78 ggd(x6− x12, n) = ggd(78, 377) =13

(60)

Pollard rho

4

n ∼ 10

k/4

(exponentieel)

Voorbeeld. n = 377 (= 13 × 29). x0 = 2 xj +1= xj2+ 4 mod n x0= 2 x1= 8 x2= 68 x3= 104 x4= 264 x5= 332 x6= 144 x7= 5 x8= 29 x9= 91 x10= 368 x11= 85 x12= 66 xj mod n xj mod 13 2 8 3 0 4 7 1 5 mod 13 x2 ≡ x8 x3 ≡ x9 x4 ≡ x10 x5 ≡ x11 x6 ≡ x12 xj ≡ x2j x7 ≡ x13 x6− x12= 144 − 66 = 78 ggd(x6− x12, n) = ggd(78, 377) =13

(61)

Pollard rho

4

n ∼ 10

k/4

(exponentieel)

Uiteindelijke algoritme. Input: n. Kiesx0, c. f (a) := a2+ c. x := x0. y := x0. Repeat x := f (x ). y := f (f (y )). d := ggd(x − y , n). untild > 1. Returnd.

(62)

Kwadratische zeef

e

c

k log k

(subexponentieel)

Voorbeeld 1. Factoriseer n = 247.

247 = 256 − 9 = 162− 32 = (16 − 3) × (16 + 3) = 13 × 19.

Les. Alsn = pq een deler is van x2− y2 = (x − y )(x + y ), dan zijn de priemenp enq een deler van x − y ofx + y.

Met 50%kans isggd(x − y , n)een priemdeler van n.

Voorbeeld 2. Factoriseer n = 133.

Er geldt 27+ 5 = 133 = 53+ 23, dus modulo 133 geldt 27 ≡ −5,

53 ≡ −23, 2 × 5 ≡ 2 × 5, dus ook 28× 54 ≡ 24× 52, dus 4002≡ 202.

(63)

Kwadratische zeef

e

c

k log k

(subexponentieel)

Voorbeeld 1. Factoriseer n = 247.

247 = 256 − 9 = 162− 32 = (16 − 3) × (16 + 3) = 13 × 19.

Les. Alsn = pq een deler is van x2− y2 = (x − y )(x + y ), dan zijn de priemenp enq een deler van x − y ofx + y.

Met 50%kans isggd(x − y , n)een priemdeler van n.

Voorbeeld 2. Factoriseer n = 133.

Er geldt 27+ 5 = 133 = 53+ 23, dus modulo 133 geldt 27 ≡ −5,

53 ≡ −23, 2 × 5 ≡ 2 × 5, dus ook 28× 54 ≡ 24× 52, dus 4002≡ 202.

(64)

Kwadratische zeef

e

c

k log k

(subexponentieel)

Voorbeeld 1. Factoriseer n = 247.

247 = 256 − 9 = 162− 32 = (16 − 3) × (16 + 3) = 13 × 19.

Les. Alsn = pq een deler is van x2− y2 = (x − y )(x + y ), dan zijn de priemenp en q een deler van x − y ofx + y.

Met50% kans isggd(x − y , n)een priemdeler van n.

Voorbeeld 2. Factoriseer n = 133.

Er geldt 27+ 5 = 133 = 53+ 23, dus modulo 133 geldt 27 ≡ −5,

53 ≡ −23, 2 × 5 ≡ 2 × 5, dus ook 28× 54 ≡ 24× 52, dus 4002≡ 202.

(65)

Kwadratische zeef

e

c

k log k

(subexponentieel)

Voorbeeld 1. Factoriseer n = 247.

247 = 256 − 9 = 162− 32 = (16 − 3) × (16 + 3) = 13 × 19.

Les. Alsn = pq een deler is van x2− y2 = (x − y )(x + y ), dan zijn de priemenp en q een deler van x − y ofx + y.

Met50% kans isggd(x − y , n)een priemdeler van n.

Voorbeeld 2. Factoriseer n = 133.

Er geldt 27+ 5 = 133 = 53+ 23, dus modulo 133 geldt 27 ≡ −5,

53 ≡ −23, 2 × 5 ≡ 2 × 5, dus ook 28× 54 ≡ 24× 52, dus 4002≡ 202.

(66)

Kwadratische zeef

e

c

k log k

(subexponentieel)

Voorbeeld 1. Factoriseer n = 247.

247 = 256 − 9 = 162− 32 = (16 − 3) × (16 + 3) = 13 × 19.

Les. Alsn = pq een deler is van x2− y2 = (x − y )(x + y ), dan zijn de priemenp en q een deler van x − y ofx + y.

Met50% kans isggd(x − y , n)een priemdeler van n.

Voorbeeld 2. Factoriseer n = 133.

Er geldt 27+ 5 = 133 = 53+ 23, dus modulo 133 geldt

27≡ −5, 53≡ −23, 2 × 5 ≡ 2 × 5, dus ook 28× 54 ≡ 24× 52, dus 4002≡ 202.

(67)

Kwadratische zeef

e

c

k log k

(subexponentieel)

Voorbeeld 1. Factoriseer n = 247.

247 = 256 − 9 = 162− 32 = (16 − 3) × (16 + 3) = 13 × 19.

Les. Alsn = pq een deler is van x2− y2 = (x − y )(x + y ), dan zijn de priemenp en q een deler van x − y ofx + y.

Met50% kans isggd(x − y , n)een priemdeler van n.

Voorbeeld 2. Factoriseer n = 133.

Er geldt 27+ 5 = 133 = 53+ 23, dus modulo 133 geldt

27≡ −5, 53≡ −23, 2 × 5 ≡ 2 × 5, dus ook 28× 54 ≡ 24× 52, dus 4002≡ 202.

(68)

Kwadratische zeef

e

c

k log k

(subexponentieel)

Voorbeeld 3. Factoriseer n = 119.

1. Kies een priemgrens: P = 5.

2. Zeef priemfactoren≤ P uit getallen in interval rond n.

23× 3 × 5 = 120 ? = 121 2× ? = 122 3× ? = 123 22× ? = 124 53= 125 2 × 33× ? = 126 ? = 127 27= 128 .. . 33× 5 = 135 23× 3 × 5 = 120 ≡ 1 53= 125 ≡ 2 × 3 27= 128 ≡ 32 33× 5 = 135 ≡ 24 2 × 3 = 6 ≡ 2 × 3 3. Voeg triviale relaties toe en factoriseer de resten

van de volledig gefactoriseerde getallen.

4. Selecteer relaties die vermenigvuldigen tot ≡ .

Rijen 1,2 en 5 geven24× 32× 54 ≡ 22× 32, dus3002 ≡ 62. 5. Bereken grootste gemene delerggd(300 − 6, n) = 7

(69)

Kwadratische zeef

e

c

k log k

(subexponentieel)

Voorbeeld 3. Factoriseer n = 119. 1. Kies een priemgrens: P = 5.

2. Zeef priemfactoren≤ P uit getallen in interval rond n.

23× 3 × 5 = 120 ? = 121 2× ? = 122 3× ? = 123 22× ? = 124 53= 125 2 × 33× ? = 126 ? = 127 27= 128 .. . 33× 5 = 135 23× 3 × 5 = 120 ≡ 1 53= 125 ≡ 2 × 3 27= 128 ≡ 32 33× 5 = 135 ≡ 24 2 × 3 = 6 ≡ 2 × 3 3. Voeg triviale relaties toe en factoriseer de resten

van de volledig gefactoriseerde getallen.

4. Selecteer relaties die vermenigvuldigen tot ≡ .

Rijen 1,2 en 5 geven24× 32× 54 ≡ 22× 32, dus3002 ≡ 62. 5. Bereken grootste gemene delerggd(300 − 6, n) = 7

(70)

Kwadratische zeef

e

c

k log k

(subexponentieel)

Voorbeeld 3. Factoriseer n = 119. 1. Kies een priemgrens: P = 5.

2. Zeef priemfactoren≤ P uit getallen in interval rond n. 23× 3 × 5 = 120 ? = 121 2× ? = 122 3× ? = 123 22× ? = 124 53= 125 2 × 33× ? = 126 ? = 127 27= 128 .. . 33× 5 = 135 23× 3 × 5 = 120 ≡ 1 53= 125 ≡ 2 × 3 27= 128 ≡ 32 33× 5 = 135 ≡ 24 2 × 3 = 6 ≡ 2 × 3 3. Voeg triviale relaties toe en factoriseer de resten

van de volledig gefactoriseerde getallen.

4. Selecteer relaties die vermenigvuldigen tot ≡ .

Rijen 1,2 en 5 geven24× 32× 54 ≡ 22× 32, dus3002≡ 62. 5. Bereken grootste gemene delerggd(300 − 6, n) = 7

(71)

Kwadratische zeef

e

c

k log k

(subexponentieel)

Voorbeeld 3. Factoriseer n = 119. 1. Kies een priemgrens: P = 5.

2. Zeef priemfactoren≤ P uit getallen in interval rond n.

23× 3 × 5 = 120 ? = 121 2× ? = 122 3× ? = 123 22× ? = 124 53= 125 2 × 33× ? = 126 ? = 127 27= 128 .. . 33× 5 = 135 23× 3 × 5 = 120 ≡ 1 53= 125 ≡ 2 × 3 27= 128 ≡ 32 33× 5 = 135 ≡ 24 2 × 3 = 6 ≡ 2 × 3 3. Voeg triviale relaties toe en factoriseer de resten

van de volledig gefactoriseerde getallen.

4. Selecteer relaties die vermenigvuldigen tot ≡ .

Rijen 1,2 en 5 geven24× 32× 54 ≡ 22× 32, dus3002≡ 62. 5. Bereken grootste gemene delerggd(300 − 6, n) = 7

(72)

Kwadratische zeef

e

c

k log k

(subexponentieel)

Voorbeeld 3. Factoriseer n = 119. 1. Kies een priemgrens: P = 5.

2. Zeef priemfactoren≤ P uit getallen in interval rond n.

23× 3 × 5 = 120 ? = 121 2× ? = 122 3× ? = 123 22× ? = 124 53= 125 2 × 33× ? = 126 ? = 127 27= 128 .. . 33× 5 = 135 23× 3 × 5 = 120 ≡ 1 53= 125 ≡ 2 × 3 27= 128 ≡ 32 33× 5 = 135 ≡ 24 2 × 3 = 6 ≡ 2 × 3 3. Voeg triviale relaties toe en factoriseer de resten

van de volledig gefactoriseerde getallen.

4. Selecteer relaties die vermenigvuldigen tot ≡ .

Rijen 1,2 en 5 geven24× 32× 54 ≡ 22× 32, dus3002≡ 62.

5. Bereken grootste gemene delerggd(300 − 6, n) = 7

(73)

Kwadratische zeef

e

c

k log k

(subexponentieel)

Voorbeeld 3. Factoriseer n = 119. 1. Kies een priemgrens: P = 5.

2. Zeef priemfactoren≤ P uit getallen in interval rond n.

23× 3 × 5 = 120 ? = 121 2× ? = 122 3× ? = 123 22× ? = 124 53= 125 2 × 33× ? = 126 ? = 127 27= 128 .. . 33× 5 = 135 23× 3 × 5 = 120 ≡ 1 53= 125 ≡ 2 × 3 27= 128 ≡ 32 33× 5 = 135 ≡ 24 2 × 3 = 6 ≡ 2 × 3 3. Voeg triviale relaties toe en factoriseer de resten

van de volledig gefactoriseerde getallen.

4. Selecteer relaties die vermenigvuldigen tot ≡ .

Rijen 1,2 en 5 geven24× 32× 54 ≡ 22× 32, dus3002≡ 62. 5. Bereken grootste gemene delerggd(300 − 6, n) = 7

(74)

Kwadratische zeef (selectie van de relaties)

23× 3 × 5 = 120 ≡ 1 53= 125 ≡ 2 × 3 27= 128 ≡ 32 33× 5 = 135 ≡ 24 2 × 3 = 6 ≡ 2 × 3       3 1 1 0 0 3 7 0 0 0 3 1 1 1 0 0 0 1 1 0 2 4 0 1 1             1 1 1 0 0 1 1 0 0 0 1 1 1 1 0 0 0 1 1 0 0 0 0 1 1       = M

Met de regel1 + 1 = 0 zoeken we naar rijen met som 0.

De oplossingen corresponderen met elementen van de kern vanMt!

Niet in voordracht. Je kunt modulo n ook delen door kleine priemen. De-len door rechterkant geeft kleinere matrices. Triviale relaties niet meer nodig.

    3 1 1 −1 −1 3 7 −2 0 −4 3 1         1 1 1 1 1 1 1 0 0 0 1 1    

(75)

Kwadratische zeef (selectie van de relaties)

23× 3 × 5 = 120 ≡ 1 53= 125 ≡ 2 × 3 27= 128 ≡ 32 33× 5 = 135 ≡ 24 2 × 3 = 6 ≡ 2 × 3       3 1 1 0 0 3 7 0 0 0 3 1 1 1 0 0 0 1 1 0 2 4 0 1 1             1 1 1 0 0 1 1 0 0 0 1 1 1 1 0 0 0 1 1 0 0 0 0 1 1       = M

Met de regel1 + 1 = 0 zoeken we naar rijen met som 0.

De oplossingen corresponderen met elementen van de kern vanMt!

Niet in voordracht. Je kunt modulo n ook delen door kleine priemen. De-len door rechterkant geeft kleinere matrices. Triviale relaties niet meer nodig.

    3 1 1 −1 −1 3 7 −2 0 −4 3 1         1 1 1 1 1 1 1 0 0 0 1 1    

(76)

Kwadratische zeef (selectie van de relaties)

23× 3 × 5 = 120 ≡ 1 53= 125 ≡ 2 × 3 27= 128 ≡ 32 33× 5 = 135 ≡ 24 2 × 3 = 6 ≡ 2 × 3       3 1 1 0 0 3 7 0 0 0 3 1 1 1 0 0 0 1 1 0 2 4 0 1 1             1 1 1 0 0 1 1 0 0 0 1 1 1 1 0 0 0 1 1 0 0 0 0 1 1       = M

Met de regel1 + 1 = 0 zoeken we naar rijen met som 0.

De oplossingen corresponderen met elementen van de kern vanMt!

Niet in voordracht. Je kunt modulo n ook delen door kleine priemen. De-len door rechterkant geeft kleinere matrices. Triviale relaties niet meer nodig.

    3 1 1 −1 −1 3 7 −2 0 −4 3 1         1 1 1 1 1 1 1 0 0 0 1 1    

(77)

Kwadratische zeef (selectie van de relaties)

23× 3 × 5 = 120 ≡ 1 53= 125 ≡ 2 × 3 27= 128 ≡ 32 33× 5 = 135 ≡ 24 2 × 3 = 6 ≡ 2 × 3       3 1 1 0 0 3 7 0 0 0 3 1 1 1 0 0 0 1 1 0 2 4 0 1 1             1 1 1 0 0 1 1 0 0 0 1 1 1 1 0 0 0 1 1 0 0 0 0 1 1       = M

Met de regel1 + 1 = 0 zoeken we naar rijen met som 0.

De oplossingen corresponderen met elementen van de kern vanMt!

Niet in voordracht. Je kunt modulo n ook delen door kleine priemen. De-len door rechterkant geeft kleinere matrices. Triviale relaties niet meer nodig.

    3 1 1 −1 −1 3 7 −2 0 −4 3 1         1 1 1 1 1 1 1 0 0 0 1 1    

(78)

Kwadratische zeef (selectie van de relaties)

23× 3 × 5 = 120 ≡ 1 53= 125 ≡ 2 × 3 27= 128 ≡ 32 33× 5 = 135 ≡ 24 2 × 3 = 6 ≡ 2 × 3       3 1 1 0 0 3 7 0 0 0 3 1 1 1 0 0 0 1 1 0 2 4 0 1 1             1 1 1 0 0 1 1 0 0 0 1 1 1 1 0 0 0 1 1 0 0 0 0 1 1       = M

Met de regel1 + 1 = 0 zoeken we naar rijen met som 0.

De oplossingen corresponderen met elementen van de kern vanMt!

Niet in voordracht. Je kunt modulo n ook delen door kleine priemen. De-len door rechterkant geeft kleinere matrices. Triviale relaties niet meer nodig.

    3 1 1 −1 −1 3 7 −2 0 −4 3 1         1 1 1 1 1 1 1 0 0 0 1 1    

(79)

Andere sterke algoritmes

• De elliptische krommen methode.

(80)

RSA

1. Bob kiest geheime priemenp enq. 2. Bob berekent publieken=pq.

3. Bob kiest publieke exponentd.

4. Bob berekent geheimee zodatde≡ 1 mod (p − 1)(q − 1).

Nu geldt voor elkeM metggd(M, n) = 1:

Mp−1≡ 1 mod p Mq−1≡ 1 mod q M(p−1)(q−1)≡ 1 mod p M(p−1)(q−1)≡ 1 mod q M(p−1)(q−1)≡ 1 mod n Mde−1≡ 1 mod n (Md)e = Mde≡ M mod n.

(81)

RSA

1. Bob kiest geheime priemenp enq. 2. Bob berekent publieken=pq. 3. Bob kiest publieke exponentd.

4. Bob berekent geheimee zodatde≡ 1 mod (p − 1)(q − 1).

Nu geldt voor elkeM metggd(M, n) = 1:

Mp−1≡ 1 mod p Mq−1≡ 1 mod q M(p−1)(q−1)≡ 1 mod p M(p−1)(q−1)≡ 1 mod q M(p−1)(q−1)≡ 1 mod n Mde−1≡ 1 mod n (Md)e = Mde≡ M mod n.

(82)

RSA

1. Bob kiest geheime priemenp enq. 2. Bob berekent publieken=pq. 3. Bob kiest publieke exponentd.

4. Bob berekent geheimee zodatde≡ 1 mod (p − 1)(q − 1).

Nu geldt voor elkeM metggd(M, n) = 1: Mp−1≡ 1 mod p Mq−1≡ 1 mod q M(p−1)(q−1)≡ 1 mod p M(p−1)(q−1)≡ 1 mod q M(p−1)(q−1)≡ 1 mod n Mde−1≡ 1 mod n (Md)e = Mde≡ M mod n.

(83)

RSA

1. Bob kiest geheime priemenp enq. 2. Bob berekent publieken=pq. 3. Bob kiest publieke exponentd.

4. Bob berekent geheimee zodatde≡ 1 mod (p − 1)(q − 1).

Nu geldt voor elkeM metggd(M, n) = 1: Mp−1≡ 1 mod p Mq−1≡ 1 mod q M(p−1)(q−1)≡ 1 mod p M(p−1)(q−1)≡ 1 mod q M(p−1)(q−1)≡ 1 mod n Mde−1≡ 1 mod n (Md)e = Mde≡ M mod n.

(84)

RSA

1. Bob kiest geheime priemenp enq. 2. Bob berekent publieken=pq. 3. Bob kiest publieke exponentd.

4. Bob berekent geheimee zodatde≡ 1 mod (p − 1)(q − 1).

Nu geldt voor elkeM metggd(M, n) = 1: Mp−1≡ 1 mod p Mq−1≡ 1 mod q M(p−1)(q−1)≡ 1 mod p M(p−1)(q−1)≡ 1 mod q M(p−1)(q−1)≡ 1 mod n Mde−1≡ 1 mod n (Md)e = Mde≡ M mod n.

(85)

RSA

1. Bob kiest geheime priemenp enq. 2. Bob berekent publieken=pq. 3. Bob kiest publieke exponentd.

4. Bob berekent geheimee zodatde≡ 1 mod (p − 1)(q − 1).

Nu geldt voor elkeM metggd(M, n) = 1: Mp−1≡ 1 mod p Mq−1≡ 1 mod q M(p−1)(q−1)≡ 1 mod p M(p−1)(q−1)≡ 1 mod q M(p−1)(q−1)≡ 1 mod n Mde−1≡ 1 mod n (Md)e = Mde≡ M mod n.

(86)

RSA

1. Bob kiest geheime priemenp enq. 2. Bob berekent publieken=pq. 3. Bob kiest publieke exponentd.

4. Bob berekent geheimee zodatde≡ 1 mod (p − 1)(q − 1).

Nu geldt voor elkeM metggd(M, n) = 1: Mp−1≡ 1 mod p Mq−1≡ 1 mod q M(p−1)(q−1)≡ 1 mod p M(p−1)(q−1)≡ 1 mod q M(p−1)(q−1)≡ 1 mod n Mde−1≡ 1 mod n (Md)e = Mde≡ M mod n.

(87)

RSA

1. Bob kiest geheime priemenp enq. 2. Bob berekent publieken=pq. 3. Bob kiest publieke exponentd.

4. Bob berekent geheimee zodatde≡ 1 mod (p − 1)(q − 1).

Nu geldt voor elkeM metggd(M, n) = 1: Mp−1≡ 1 mod p Mq−1≡ 1 mod q M(p−1)(q−1)≡ 1 mod p M(p−1)(q−1)≡ 1 mod q M(p−1)(q−1)≡ 1 mod n Mde−1≡ 1 mod n (Md)e = Mde ≡ M mod n.

(88)

RSA

n=pq de≡ 1 mod (p − 1)(q − 1) A B M Md versturen Md (Md)e ≡ M

(89)

RSA

n=pq de≡ 1 mod (p − 1)(q − 1) A B M Md Md versturen (Md)e ≡ M

(90)

RSA

n=pq de≡ 1 mod (p − 1)(q − 1) A B M Md versturen Md (Md)e ≡ M

(91)

RSA

n=pq de≡ 1 mod (p − 1)(q − 1) A B M Md versturen Md (Md)e ≡ M

(92)

Referenties

GERELATEERDE DOCUMENTEN

O p den eersten Kerstdag van het jaar 1780 vertrokken ze naar Sools: Schipper Arie Bruin en de matrozen Arie Dijkhuizen, Michiel Pronk en Cornelis Spaans. Van

9 50 Bakers Best Genever, London Essence Gingerbeer, munt, Angostura bitters en limoen.. BARREL AGED

• Vermelding RKFC magazine per thuiswedstijd (rubriek vip sponsor club 101). • 1Pagina in

Ze voorziet voor beide kerken in de toekomst geen enkele liturgische of pastorale functie, en besliste dat voor beide kerken niet later dan in 2018 de. aanvraag tot onttrekking aan

 Centrum gebieden: voor de binnenstad van Nijkerk is in 2019 de uitvoering van de visie Aantrekkelijk Nijkerk verder vorm gegeven door het nieuwe Platform Binnenstad Nijkerk

Elektriciteit en Stadsverwarming wordt hierbij geconverteerd naar primair energieverbruik (de hoeveelheid energie die de voor de productie van deze energie wordt gebruikt) conform

Voor de loc atie Eik enhof 58 te De Lier is een aanv raag om v ergunning tot om z etting v an een woning naar onz elfs tand ige woonruim ten v oor 8 pers onen ingediend..

(Joys mens ziet de handen in het publiek. Handen van Destiny's mens, Beestjes mens en Darth Vaders mens zijn ook in de lucht.).. JOYS MENS