2 ms·
BLAKE3 has a large state, it's a tree hash, so you need to keep the tree of hashes, which is proportional to logarithm of the message size. SHA has fixed state
by GoblinSlayer 5y ago
BLAKE3 has a large state, it's a tree hash, so you need to keep the tree of hashes, which is proportional to logarithm of the message size. SHA has fixed state for any message.
- ReactiveJelly 5y agoHuh, I didn't know that. https://github.com/BLAKE3-team/BLAKE3/blob/b404c851c284ed01f51a4606e1e13f51a89c2584/reference_impl/reference_impl.rs#L279 https://github.com/BLAKE3-team/BLAKE3/blob/b404c851c284ed01f... I peeked at the reference impl (380 lines of safe Rust) and found this. It has a 1,728-byte array for tree state, which is enough for 2 ^ 64 bytes. So in practice it's also fixed.