diff --git a/README.md b/README.md index 3389aca..e0da5b7 100644 --- a/README.md +++ b/README.md @@ -7,9 +7,9 @@ Project Lazarus is a rock solid encryption-suit. ### The Key Scheduler We take in a password and a nonce and hash them to get the seed for our key scheduler. -The key scheduler takes this seed and - a) uses it to initialise an Eliptic-Curvce-Based RNG, which will later give us our eccState - b) hashes it using SHA3_256 to give us our hashState +The key scheduler takes this seed and + a) uses it to initialise an Eliptic-Curvce-Based RNG, which will later give us our eccState + b) hashes it using SHA3_256 to give us our hashState every step the key scheduler performs a step operation on the EC, which gives us ou new eccState and hashes the old hashState together with this eccState to give us our next hashState. To generate a key from the state, the state is multiplied with a large number, then modulated. @@ -23,15 +23,14 @@ In the Alpha-Layer we take our plaintext and encrypt it using a key and an iv bo In the Psi-Layer we generate an HMAC of the Alpha-Ciphertext using two keys taken from our key scheduler. -### The Omega Layer (salsa2020) +### The Omega Layer (ChaCha20) In the Omega-Layer we encrypt the Psi-Ciphertext using salsa2020, which we apply in cbc, in order to prevent any -patterns to remain in the final ciphertext. (We also encrypt the HMAC this way; just to be sure). The key for -salsa2020 and the iv for cbc are given to use by our fancy key scheduler. - +patterns to remain in the final ciphertext. (We also encrypt the HMAC this way; just to be sure). The key and iv for +ChaCha20 and the iv for cbc are given to use by our fancy key scheduler. + Optionally a GZIP based compression can be applied. -## -The dark secret: +## The dark secret: Look into bethany.py diff --git a/bethany.py b/bethany.py index 90d59fa..196ce4f 100644 --- a/bethany.py +++ b/bethany.py @@ -1,12 +1,12 @@ # In order to break lazarus, you would have to # a) break AES # b) break ECC -# c) break salsa2020 +# c) break ChaCha20 # d) break prime-factorization # e) break cbc (ok, that's quite doable...) # # And still here we are: -# This script is able to decrypt any ciphertext encrypted using lazarus +# This script is able to decrypt any ciphertext encrypted using lazarus :D from fastecdsa.curve import P256 from fastecdsa.point import Point