Your SlideShare is downloading. ×
Elliptic Curve Method Giuseppe Specchio
Cosa è ECM <ul><li>L'Elliptich Curve Method (o Metodo delle Curve Ellittiche) è un algoritmo di fattorizzazione di ordine ...
La particolarità di tale algoritmo è dovuto dal fatto che la sua complessità di calcolo dipende fortemente dalle dimension...
ECM è il terzo algoritmo di fattorizzazione in termini di velocità. Questi segue in ordine di efficienza il Quadratic Siev...
ECM risulta essere il migliore algoritmo di fattorizzazione di numeri che hanno divisori d i 20 - 25 cifre (ovvero da 64 a...
Perchè le Curve Ellittiche? [1/2] <ul><li>La maggior parte dei prodotti e degli standard che utilizzano la crittografia a ...
La lunghezza delle chiavi per l'utilizzo sicuro di RSA è aumentata nel corso degli ultimi anni e questo ha sottoposto alle...
Questo tipo di carico ha delle implicazioni, specialmente per siti di  e -commerce e sistemi di strong authentication basa...
Il principale interesse di sistemi crittografici basati su Curve Ellittiche rispetto a RSA consiste nel fatto che queste s...
Perchè le Curve Ellittiche? [2/2] <ul><li>L'utilizzo delle Curve Ellittiche in crittografia è già stato sottoposto a vari ...
L'efficienza computazionale dovuta all'utilizzo di tali strumeti è stata premiata anche da NSA ( National Security Agency ...
Prima Fase (1/2) <ul><li>La metodologia originaria proposta da Lenstra strutturava l'algoritmo su una sola fase.
Sia  n  il numero da fattorizzare e  p  un suo fattore primo da trovare.
Una curva ellittica (in forma di Montgomery) è
Dove  è il piano proiettivo su
L'elemento neutro è  detto anche punto all'infinito.
L'idea chiave dell'algoritmo consiste nel proiettare in  i calcoli svolti in  , per ogni primo  p  divisore di  n , tenend...
Prima Fase (2/2) <ul><li>Scegliamo casualmente una curva  E  ed un suo punto  P .
Calcoliamo il punto
ove B 1  è un bound prefissato.
Sia  p  il primo divisore di  n  allora :  </li><ul><li>se   #E(Z/Z p ) | k  allora  Q  sarà un punto all'infinito per  E(...
La coordinata  z  del punto  Q  sarà
Il fattore incognito  p  potrà essere recuperato tramite </li></ul></ul>
Upcoming SlideShare
Loading in...5
×

Elliptic Curve Method di Lenstra

2,323

Published on

Slide presentata per l'esame di Crittografia

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
2,323
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Elliptic Curve Method di Lenstra"

  1. 1. Elliptic Curve Method Giuseppe Specchio
  2. 2. Cosa è ECM <ul><li>L'Elliptich Curve Method (o Metodo delle Curve Ellittiche) è un algoritmo di fattorizzazione di ordine subesponenziale ideato nel 1985 by H. W. Lenstra, il quale fa uso appunto di Curve Ellittiche.
  3. 3. La particolarità di tale algoritmo è dovuto dal fatto che la sua complessità di calcolo dipende fortemente dalle dimensioni del suo fattore primo più piccolo e non tanto dalla lunghezza del numero n da fattorizzare.
  4. 4. ECM è il terzo algoritmo di fattorizzazione in termini di velocità. Questi segue in ordine di efficienza il Quadratic Sieve (QS, c.d. Crivello Quadratico) ed il Number Field Sieve (NFS c.d. Crivello dei Campi dei Numeri).
  5. 5. ECM risulta essere il migliore algoritmo di fattorizzazione di numeri che hanno divisori d i 20 - 25 cifre (ovvero da 64 a 83 bits). </li></ul>
  6. 6. Perchè le Curve Ellittiche? [1/2] <ul><li>La maggior parte dei prodotti e degli standard che utilizzano la crittografia a chiave pubblica per la crittografia e le firme digitali utilizza l'algoritmo RSA.
  7. 7. La lunghezza delle chiavi per l'utilizzo sicuro di RSA è aumentata nel corso degli ultimi anni e questo ha sottoposto alle applicazioni che utilizzano RSA ad un maggiore carico elaborativo.
  8. 8. Questo tipo di carico ha delle implicazioni, specialmente per siti di e -commerce e sistemi di strong authentication basati su Smart Card.
  9. 9. Il principale interesse di sistemi crittografici basati su Curve Ellittiche rispetto a RSA consiste nel fatto che queste sembrano offrire la stessa sicurezza con chiavi di minori dimensioni riducendo pertanto il carico di elaborazione. </li></ul>
  10. 10. Perchè le Curve Ellittiche? [2/2] <ul><li>L'utilizzo delle Curve Ellittiche in crittografia è già stato sottoposto a vari tentativi di standardizzazione, fra cui lo standard IEEE (Institute of Electrical and Electronics Engineers) P1363 per la crittografia asimettrica.
  11. 11. L'efficienza computazionale dovuta all'utilizzo di tali strumeti è stata premiata anche da NSA ( National Security Agency ), la quale invita nell'adozione delle Curve Ellittiche nei sistemi di autenticazione in rete. </li></ul>
  12. 12. Prima Fase (1/2) <ul><li>La metodologia originaria proposta da Lenstra strutturava l'algoritmo su una sola fase.
  13. 13. Sia n il numero da fattorizzare e p un suo fattore primo da trovare.
  14. 14. Una curva ellittica (in forma di Montgomery) è
  15. 15. Dove è il piano proiettivo su
  16. 16. L'elemento neutro è detto anche punto all'infinito.
  17. 17. L'idea chiave dell'algoritmo consiste nel proiettare in i calcoli svolti in , per ogni primo p divisore di n , tenendo particolare attenzione per le quantità che sono zero in ma non . </li></ul>
  18. 18. Prima Fase (2/2) <ul><li>Scegliamo casualmente una curva E ed un suo punto P .
  19. 19. Calcoliamo il punto
  20. 20. ove B 1 è un bound prefissato.
  21. 21. Sia p il primo divisore di n allora : </li><ul><li>se #E(Z/Z p ) | k allora Q sarà un punto all'infinito per E(Z/Z p )
  22. 22. La coordinata z del punto Q sarà
  23. 23. Il fattore incognito p potrà essere recuperato tramite </li></ul></ul>
  24. 24. Seconda fase (1/2) <ul><li>La prima fase termina con successo se tutti i fattori primi di g = #E(Z/Z p ) sono minori di B 1 , tale che dal Teorema di Hasse
  25. 25. La seconda fase permette di trovare un fattore primo g 1 di g , tale che è un valore minore di un secondo bound B 2 .
  26. 26. L'idea consiste nel considerare due famiglie di punti (a i Q) e (b j Q ) della curva E , e verificare se tali punti sono uguali in E(Z/Z p ) .
  27. 27. Se (a i Q)=(x i : y i : z i ) e (b j Q )= (x' j : y' j : z' j ) , allora gcd(x i z' j -x' j z i ,n) sarà un fattore non banale quando g 1 divide un fattore non banale a i - b j </li></ul>
  28. 28. Seconda fase (2/2) <ul><li>Esistono due varianti della seconda fase:
  29. 29. Continuazione paradosso del compleanno : si scelgono casualmente gli scalari dei punti (a i Q) e (b j Q ), con la speranza che la differenza a i - b j possa ricoprire la maggior parte dei primi minori del bound B 2 .
  30. 30. Continuazione standard : si scelgono gli scalari dei punti (a i Q) e (b j Q ), in modo tale che ogni primo minore del bound B 2 divide almeno una differenza a i - b j
  31. 31. Entrambe le continuazioni trovano un beneficio in termini computazionali se gestite tramite le estensioni della FFT. </li></ul>
  32. 32. La Complessità Computazionale <ul><li>Si congettura che la complessità attesa per la fattorizzazione del numero n tramite l'ECM è
  33. 33. dove:
  34. 34. p è il più piccolo divisore primo di n.
  35. 35. L(p) è
  36. 36. M(log n) rappresenta la complessità aritmetica modulo n
  37. 37. O(1) è un valore aggiunto per p che tende all'infinito.
  38. 38. La seconda fase decrementa il tempo di attesa di un fattore log p . </li></ul>
  39. 39. Operazioni su Curve Ellittiche (1/3) <ul><li>L'operazione di moltiplicazione di uno scalare k per un punto P appartenente alla curva E è definita come la somma [k]P = P+...+P (k volte ).
  40. 40. Un metodo efficiente per l'esecuzione di tale operazione è stato proposto da Montgomery nel 1987, conosciuto appunto come “Montgomery ladder algorithm”.
  41. 41. Tale algoritmo ha la peculiarità di poter essere applicato su diverse tipologie di curve, ed è indipendente dalla tipologia dei punti, infatti può utilizzare sia le coordinate affine che proiettive.
  42. 42. Come precedentemente anticipato, in seguito utilizzeremo solo coordinate proiettive, e mostreremo come tramite l'algoritmo di Montgomery sia possibile svincolarsi dalla coordinata y . </li></ul>
  43. 43. Operazioni su Curve Ellittiche (2/3) <ul><li>Sia P = (x P ::z P ) il punto iniziale sulla curva E con x P diverso da zero.
  44. 44. Sia k uno scalare espresso in base binaria di lunghezza s .
  45. 45. Siano R = (x R ::z R ) e Q = (x Q ::z Q ) i punti intermediari utilizzati durante il calcolo dell'operazione kP = (x kP ::z kP ) </li></ul><ul><li>doubleh(P) : effettua la somma di due punti uguali, ovvero 2P;
  46. 46. addh(R,Q,P) : effettua la somma di due punti diversi t.c. </li></ul>
  47. 47. Operazioni su Curve Ellittiche (3/3) <ul><li>Il termine a è il coefficiente della curva E scelta per il tentativo di fattorizzazione.
  48. 48. addh(Q,R,P) richiede 6 moltiplicazioni
  49. 49. double(Q) richiede 5 moltiplicazioni </li></ul>
  50. 50. Parametrizzazione di una Curva Ellittica (1/2) <ul><li>Sia E una curva ellittica nella forma di Montgomery e sia q un primo tale che non divide 2b(a 2 -4) .
  51. 51. Suyama osservò che l'ordine di una curva ellittica in forma di Montgomery è divisibile per 4, o valori superiori come 8,12 o addirittura 16.
  52. 52. Tale caratteristica diede spunto per la definizione della seguente curva ellittica : </li><ul><li>Sia σ un valore casuale nell'intervallo [6,n-1]
  53. 53. u = σ 2 -5 (mod n) e v = 4 σ (mod n)
  54. 54. e </li></ul><li>Ed il rispettivo punto di appartenenza P σ =(x σ :y σ :z σ ) tale che </li></ul>
  55. 55. Parametrizzazione di una Curva Ellittica (2/2) <ul><li>I vantaggi dovuti alla parametrizzazione realizzata da Suyama sono i seguenti: </li><ul><li>g = #E(Z/Z q ) è divisibile per 12 . Ciò comporta un leggero vantaggio nella speranza di trovare un primo q tale che divida l'ordine g .
  56. 56. La determinazione della curva E σ ed il punto di inizializzazione P σ sono del tutto dipendenti dal parametro casuale σ . Pertanto possiamo scegliere simultaneamente differenti σ per da cui generare altrettante curve E σ . Tale caratteristica comporta un parallelismo nella definizione delle curve, realizzabile tramite appositi thread.
  57. 57. La coordinata y è irrilevante nei calcoli sulla curva. </li></ul></ul>
  58. 58. Seconda fase nella continuazione standard (1/x) <ul><li>Ipotizziamo che
  59. 59. quindi |E(Z/Z p )| non è B1 -smooth (friabile).
  60. 60. Ma potrebbe accadere che
  61. 61. ove q è un primo maggiore del bound B 1 . </li></ul>
  62. 62. Seconda fase nella continuazione standard (3/x) <ul><li>Ogni primo B 1 < p ≤ B 2 può essere espresso nella forma p=mD ± j tale che: </li><ul><li>0 < D < B 2 </li></ul><li>la condizione per cui p è primo implica che gcd(j,D)=1
  63. 63. La condizione [p]Q=O implica che [ mD ± j]Q=O e che quindi [mD]Q=[ ± j]Q in E(Z/Z q ). Tale condizione è soddisfatta se e solo se </li></ul>
  64. 64. Seconda fase nella continuazione standard (4/x) <ul><li>L'esistenza della coppia m e j implica che possiamo identificare un fattore di n calcolando
  65. 65. E' possibile ridurre ulteriormente il livello computazionale osservando che
  66. 66. x [j]Q , z [j]Q e x [j]Q z [j]Q sono valori precalcolati appartenenti alla lista breve S={[j]Q :1 ≤j≤(D/2) } , quindi per ogni [mD]Q appartenente alla sequenza T={[mD]Q : M min ≤ m ≤M max }, effettuiamo solo 2 moltiplicazioni (mod n )
  67. 67. Se il termine q è non banale abbiamo identificato il fattore primo del numero n , altrimenti scegliamo una nuova curva e ripartiamo dalla prima fase. </li></ul>
  68. 68. Somiglianza col metodo (p-1 ) di Pollard <ul><li>Si noti la somiglianza di questo metodo con quello di (p-1) di Pollard, sebbene, mentre in quest'ultimo si utilizza il gruppo Z p * , qui invece utiliziamo E(mod p) .
  69. 69. Nell'algoritmo p-1 abbiamo successo se, ovvero quando cioè p-1 è B-Smooth , ovvero # Z p * è B-friabile .
  70. 70. In modo identico il metodo di Lenstra ha successo quando # E(Z/Z p ) è B-friabile .
  71. 71. Differentemente dal metodo di Pollard, in cui il gruppo utilizzabile era soltanto uno, con il metodo di Lenstra, se la curva E non va bene, possiamo cambiare la curva ellittica E ed il punto il suo rispettivo punto P .
  72. 72. Quante curve dovremmo provare per avere successo?
  73. 73. Quanti sono i numeri B-smooth (friabili) ? </li></ul>
  74. 74. Scelta dei bound B 1 , B 2 e D (1/2) <ul><li>L'appartenenza alla classe di complessità sub-esponenziale dell'ECM è legata dalla scelta del bound friabile
  75. 75. Per quantificare i numeri B-friabili , utilizziamo la funzione di Dickman-de Brujin Ψ (x,B) = #{n<=x | n è B-friabile} , da cui ricaviamo la probabilità che un numero intero casuale sia X (1/u) -friabile.
  76. 76. Come detto l'algoritmo ECM ha successo se #E(Z/Z p ) è B-friabile, quindi nel caso peggiore bisogna provare in media u u curve t.c. u = log(q)/log(B))
  77. 77. Il secondo bound B 2 , viene generalmente scelto tra 50B 1 e 100B 1 . </li></ul>
  78. 78. Scelta dei bound B 1 , B 2 e D (2/2) <ul><li>Nella seconda fase bisogna gestire al massimo D punti per le operazioni svolte sull'insieme dei punti S.
  79. 79. Bisogna svolgere al massimo B 2 /D per le operazioni svolte sull'insieme dei punti T .
  80. 80. La complessità totale delle operazioni è O(D+B 2 /D)
  81. 81. Scegliendo D ≈√ B 2 si minimizza la complessità O(D+B 2 /D)=O( √ B 2 ) </li></ul>
  82. 82. Dati Sperimentali <ul><li>Su 100 test effettuati di numeri n composti da un fattore primo di 15-20 cifre ed un secondo di 60-80 cifre, circa il 70% dei fattori (più piccoli) sono stati trovati durante la seconda fase, mentre il restante 30% nella prima fase.
  83. 83. I test sono stati realizzati tramite un applicativo scritto in linguaggio di programmazione Java il quale fa uso dei thread, in modo tale da poter gestire più curve espresse nella forma parametrizzata. </li></ul>
  84. 84. Esempio di Fattorizzazione <ul><li>L'Elliptich Curve Method risulta essere un ottimo strumento per quanto riguarda la fattorizzazione dei numeri di Fermat
  85. 85. Fermat(10)=179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137217
  86. 86. Bits: 1025, Digits: 309 - Bound: 150000
  87. 87. Fase 1 Precomputazione.. - Fase 2 Precomputazione..
  88. 88. Curve 1: 2937450992 -> Curve 2: 726875123 -> Curve 3: 3915612953 -> Curve 4: 2175638314
  89. 89. Fattorizzazione avvenuta nella Fase 2
  90. 90. 295760497253281793 *
  91. 91. 607820568181834328745927047401406785398975700821911559763928675076909152806525747797078707978021962487854849079350770968904705424125269800765765006449689562590686195386366153585734177565092347016126765195631310982002631912943551551593959032889971392442015624176361633631364310142874363629569
  92. 92. Tempo di Esecuzione: 00:04:27.331 (hh:mm:ss:ms) </li></ul>
  93. 93. Bibliografia <ul><li>The Elliptic Curve Method di Paul Zimmermann.
  94. 94. Factorization of the tenth Fermat Number , di R. Brent
  95. 95. Implementing the Elliptic Curve Method of Factoring in Reconfigurable Hardware, di Kris Gaj + altri.
  96. 96. Appunti lezioni di Crittografia del prof. R. Schoof . </li></ul>

×