salsa2020 -> ChaCha20
This commit is contained in:
parent
09fe532f90
commit
96b1753ac8
17
README.md
17
README.md
@ -7,9 +7,9 @@ Project Lazarus is a rock solid encryption-suit.
|
|||||||
### The Key Scheduler
|
### The Key Scheduler
|
||||||
|
|
||||||
We take in a password and a nonce and hash them to get the seed for our 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
|
The key scheduler takes this seed and
|
||||||
a) uses it to initialise an Eliptic-Curvce-Based RNG, which will later give us our eccState
|
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
|
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
|
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.
|
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.
|
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.
|
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
|
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
|
patterns to remain in the final ciphertext. (We also encrypt the HMAC this way; just to be sure). The key and iv for
|
||||||
salsa2020 and the iv for cbc are given to use by our fancy key scheduler.
|
ChaCha20 and the iv for cbc are given to use by our fancy key scheduler.
|
||||||
|
|
||||||
Optionally a GZIP based compression can be applied.
|
Optionally a GZIP based compression can be applied.
|
||||||
|
|
||||||
##
|
|
||||||
|
|
||||||
The dark secret:
|
## The dark secret:
|
||||||
Look into bethany.py
|
Look into bethany.py
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
# In order to break lazarus, you would have to
|
# In order to break lazarus, you would have to
|
||||||
# a) break AES
|
# a) break AES
|
||||||
# b) break ECC
|
# b) break ECC
|
||||||
# c) break salsa2020
|
# c) break ChaCha20
|
||||||
# d) break prime-factorization
|
# d) break prime-factorization
|
||||||
# e) break cbc (ok, that's quite doable...)
|
# e) break cbc (ok, that's quite doable...)
|
||||||
#
|
#
|
||||||
# And still here we are:
|
# 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.curve import P256
|
||||||
from fastecdsa.point import Point
|
from fastecdsa.point import Point
|
||||||
|
Loading…
Reference in New Issue
Block a user