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. 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. ECM risulta essere il migliore algoritmo di fattorizzazione di numeri che hanno divisori d i 20 - 25 cifre (ovvero da 64 a 83 bits).
6.
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. Questo tipo di carico ha delle implicazioni, specialmente per siti di e -commerce e sistemi di strong authentication basati su Smart Card.
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.
10.
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.
12.
13. Sia n il numero da fattorizzare e p un suo fattore primo da trovare.
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 .
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. 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. 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
28.
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. 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. Entrambe le continuazioni trovano un beneficio in termini computazionali se gestite tramite le estensioni della FFT.
36. M(log n) rappresenta la complessità aritmetica modulo n
37. O(1) è un valore aggiunto per p che tende all'infinito.
38. La seconda fase decrementa il tempo di attesa di un fattore log p .
39.
40. Un metodo efficiente per l'esecuzione di tale operazione è stato proposto da Montgomery nel 1987, conosciuto appunto come “Montgomery ladder algorithm”.
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. Come precedentemente anticipato, in seguito utilizzeremo solo coordinate proiettive, e mostreremo come tramite l'algoritmo di Montgomery sia possibile svincolarsi dalla coordinata y .
43.
44. Sia k uno scalare espresso in base binaria di lunghezza s .
45.
46. addh(R,Q,P) : effettua la somma di due punti diversi t.c.
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. La coordinata y è irrilevante nei calcoli sulla curva.
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. Se il termine q è non banale abbiamo identificato il fattore primo del numero n , altrimenti scegliamo una nuova curva e ripartiamo dalla prima fase.
68.
69. Nell'algoritmo p-1 abbiamo successo se, ovvero quando cioè p-1 è B-Smooth , ovvero # Z p * è B-friabile .
70. In modo identico il metodo di Lenstra ha successo quando # E(Z/Z p ) è B-friabile .
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 .
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. 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. Il secondo bound B 2 , viene generalmente scelto tra 50B 1 e 100B 1 .
78.
79. Bisogna svolgere al massimo B 2 /D per le operazioni svolte sull'insieme dei punti T .
81. Scegliendo D ≈√ B 2 si minimizza la complessità O(D+B 2 /D)=O( √ B 2 )
82.
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.