|
1 |
| -A practical study and comparison of integer factorization methods |
| 1 | +A Practical Study and Comparison of Integer Factorization Methods |
2 | 2 | ======
|
3 | 3 | A project by [Alex Gustafsson](https://github.com/AlexGustafsson) and [Marcus Lenander](https://github.com/MarcusLenander) in the course MA1453 (Cryptography 2) at BTH, Sweden.
|
4 | 4 |
|
5 | 5 | This project evaluates the relative performance of various algorithms for integer factorization, namely Trial Division, Fermat's Factorization, Pollard's Rho Algorithm, Lenstra's Elliptic Curve Factorization Algorithm and briefly the Quadratic Sieve. The algorithms are presented and described with regards to use and implementation details. No effort was made to optimize the implemented algorithms further than what is considered logical. No algorithm leverages parallel computing techniques, dynamic programming techniques or other techniques in order to gain performance. No consideration of performance was made when the software and programming stack were chosen.
|
6 | 6 |
|
7 | 7 | The project was hosted on a private instance of [CoCalc - Collaborative Calculation in the Cloud](https://cocalc.com). CoCalc makes it easy to collaboratively develop math-oriented code using technologies such as [SageMath](http://www.sagemath.org), [R](https://cran.r-project.org/doc/manuals/r-release/R-intro.html), [Julia](https://docs.julialang.org/en/stable/manual/introduction/) and [LaTeX](https://en.wikibooks.org/wiki/LaTeX) whilst still being completely free and open source.
|
8 | 8 |
|
| 9 | +The paper is available in the branch [paper](https://github.com/AlexGustafsson/practical-factorization-comparison/tree/paper). |
| 10 | + |
9 | 11 | See also: [Course Notes](https://github.com/CourseNotesBTH) for BTH courses and code and examples for [Programming Courses at BTH](https://github.com/ProgrammingCoursesBTH).
|
10 | 12 |
|
11 | 13 | # Quickstart
|
@@ -110,7 +112,7 @@ x, y, A = random element in Zn
|
110 | 112 | Q = (x, y)
|
111 | 113 | if a modular inverse exists:
|
112 | 114 | P = Q + Q
|
113 |
| - while P + Q can be calculated |
| 115 | + while P + Q can be calculated |
114 | 116 | if iterations is less then maximum iterations
|
115 | 117 | if modular inverse exists in kP
|
116 | 118 | kP = (k-1)P + Q
|
@@ -407,4 +409,4 @@ Every time either `.start()`, `.stop()` or `.iterate()` is called, somewhere aro
|
407 | 409 | # Disclaimer
|
408 | 410 | <a name="disclaimer"></a>
|
409 | 411 |
|
410 |
| -_This repository holds code created by students. Although the code is most likely correct, it may not promote best practices, be factual or grammatically correct. The code is meant as a future reference for students reading the same or a similar course. The code is also made publically available alongside the report written on the subject._ |
| 412 | +_This repository holds code created by students. Although the code is most likely correct, it may not promote best practices, be factual or grammatically correct. The code is meant as a future reference for students reading the same or a similar course. The code is also made publically available alongside the report written on the subject._ |
0 commit comments