Re:Show HN: Ariadne – a Rust implementation of aperiodic cry...
by ciphernomad-org on Monday June 23, 2025 @05:56AM
(#44353997)
This is a classic Feistel network round: L_new = L_old ^ F(key, R_old). It's a deliberate design.
The security of the Labyrinth relies on the composition of many rounds, not any single one. The unchanged right half from a Hash round is fully encrypted if the next round is a Stream round. Since the Labyrinth is a deep, aperiodic mix of both round types, the entire block is guaranteed to be diffused and encrypted.
https://codeberg.org/CipherNomad/Ariadne/src/branch/main/cra...
You split the chunk in half, use right to derive the cipher material and then only apply it to left. This leaves right unchanged.