Update readme.md

This commit is contained in:
Leon Etienne 2022-05-13 11:58:34 +02:00
parent 5afd772a84
commit 518fc054ed

View File

@ -90,12 +90,11 @@ First up, we have to establish what requirements this transformation must fulfil
Let's be honest, I'm not a cryptographer, I have no idea how collision resistant this is.
This means, it has to be considered *insecure*!
I have tried a few passwords brute-forcibly, experimentally (about 1mil) and have not been able to produce a collision.
Obviously there have to be collisions, since *|P|, len\(p\) ∈ ℵ ≫ |C|*.
Obviously there have to be collisions, since *|P|, len\(p\) ∈ ℵ ≫ |C|, len(c)*.
How does it work? Basically, what happens is your password gets recoded to binary. It is then split into blocks of
size KEY_SIZE, they are ⨁ together, and this single block is then encrypted with itself as a key.
size KEY_SIZE, and they are combined using *c<sub>i+1</sub> = c<sub>i</sub> &xoplus; E(c=block<sub>i</sub>, k=block<sub>i</sub>)*. *c<sub>0</sub>* is a static initialization vector. The final *c* is they key corresponding to a password.
The end result is the key corresponding to your password.
This is a one-way operation. Since the key used for this operation is the cleartext itself, you cannot undo it without already
knowing the password(=cleartext) to begin with. *You could make a hashfunction out of this.*