Restructuring
This commit is contained in:
parent
ca4a1d0434
commit
759690c453
1 changed files with 4 additions and 1 deletions
|
@ -27,6 +27,7 @@ The server creates a list of $x,y$ points where $x$ is md5(pw) and $y$ is a rand
|
|||
Then the points are interpolated together using lagrange interpolation
|
||||
Notice that both polynomials have the private keys = $P(md5(pw_i))$ where $P$ is the polynomial and can be substituted in to the curve equation
|
||||
$P_y(md5(pw_i))^2 = P_x(md5(pw_i))^3 + 486662 * P_x(md5(pw_i))^2 + P_x(md5(pw_i)) \mod{2^{255} - 19}$
|
||||
## Finding the hashes
|
||||
To recover the hashes we seed to find for what n $P_x(n)^3 + 486662 * P_x(n)^2 + P_x(n) - P_y(n)^2 \equiv 0 \mod{2^{255} - 19}$
|
||||
```python
|
||||
pol = xPoly^3 + 486662 * xPoly^2 + xPoly - yPoly^2
|
||||
|
@ -41,7 +42,9 @@ def md5(msg: bytes) -> int:
|
|||
h.update(msg)
|
||||
return int.from_bytes(h.digest(), 'little')
|
||||
```
|
||||
Here we see that the `md5()` function uses little endianess (ew) so we have to convert the hashes using `int(r).to_bytes(16, 'little').hex()`, the we can throw this into an online md5 lookup table (or hashcat if you are feeling fancy) and find
|
||||
Here we see that the `md5()` function uses little endianess (ew) so we have to convert the hashes using `int(r).to_bytes(16, 'little').hex()`.
|
||||
## Finishing up
|
||||
Now we can throw this into an online md5 lookup table (or hashcat if you are feeling fancy) and find
|
||||
```
|
||||
481cf17a2f3a0cfafcedaa0dbea09fdc DDBBFF
|
||||
476e90c539400f0e2988b32db64ae6bf honolulu-lulu
|
||||
|
|
Loading…
Reference in a new issue