Summary
CryptoViz has no ARX-based stream cipher in the visualizer despite @noble/ciphers already being a project dependency (per README tech stack) and supporting Salsa20 natively. Adding it demonstrates a modern stream-cipher construction alongside the existing XOR/OTP stream examples.
What's missing
- No
lib/cipher/salsa20.ts
- No visualizer entry, worker routing, or tests
Proposed implementation
- Thin instrumented wrapper around
@noble/ciphers/salsa20 for real output (correctness/security), with a parallel pure-TS quarter-round instrumentation path for step visualization (same "instrumented vs fast path" split used for AES per CIPHER_ENGINE.md section 5.6)
- Visualize the 4x4 state matrix and quarter-round diffusion (ADD/XOR/ROTATE) similar to how AES steps show the 4x4 state
- Security status:
secure
- Verify against the official Salsa20 test vectors (256-bit key, ECRYPT test set)
Acceptance criteria
Assignment
I'd like to work on this issue under ECSoC26. Will open a PR only after approval/assignment by @csxark or another maintainer.
Summary
CryptoViz has no ARX-based stream cipher in the visualizer despite
@noble/ciphersalready being a project dependency (per README tech stack) and supporting Salsa20 natively. Adding it demonstrates a modern stream-cipher construction alongside the existing XOR/OTP stream examples.What's missing
lib/cipher/salsa20.tsProposed implementation
@noble/ciphers/salsa20for real output (correctness/security), with a parallel pure-TS quarter-round instrumentation path for step visualization (same "instrumented vs fast path" split used for AES per CIPHER_ENGINE.md section 5.6)secureAcceptance criteria
@noble/ciphersreference output exactlyAssignment
I'd like to work on this issue under ECSoC26. Will open a PR only after approval/assignment by @csxark or another maintainer.