Stream Ciphers and ChaCha20-Poly1305
Audience:
Tags: cryptography
This is post is a simple introduction to stream ciphers, and how the same basic concept is used for constructing ‘advanced’ and more widely used ciphers, with a focus on ChaCha20-Poly1305.
Analytics
Comments
This is a very long and encyclopedia like entry. It explains the ideas mostly well for me but I have research background on the topic so may be harder to follow for others. Animations, demos, and other illustrations are just fine. I’m not particularly impressed.
Love the interactive parts!
This is a solid concept and execution.
Some of the concepts supporting the central points made could be fleshed out, while some of the end could be truncated, yielding a more in depth explanation of a smaller portion of the concept. I think this should either be a discussion of simpler ciphers (like caesar, etc.), or it should be a primer on ChaCha20-Poly1305. Including both without tying them together can make this seem more disjointed. It is most accessible to those already familiar with the operations.
How changing the parameters of the shift values for both the text and the bitstream are solid choices. I do wish the text was longer so the discussed linguistic trends could be seen, and some pure linguistic discussion would do well to contextualize the sensitivity of key phrases. As for the bitstream portion, it is also well done, though I wish the bitstream that was to be encrypted was a recognizable image, to help delineate between plaintext and ciphertext.
Overall, solid work. Leans a bit academic (undergraduate level) and jumps around a bit, but is well thought out and well explained.
Motivation: 9/9. Each step is justified with a clear example of why it improves security.
Clarity: 8/9. Pretty good overall. Though in the authentication part, some diagrams take up the full screen and are only effectively explained by captions below them, which interrupts the flow a little.
Novelty: 9/9. The algorithm may be common, but simple and accessible explanations of it are not.
Memorability: 8/9. It is an interesting subject presented well, but the length of the article is somewhat overwhelming. It might be more approachable as two separate articles, a part 1 for encryption and a part 2 for authentication.
Nice visuals and interactivity. Bellissimo.
well written and the interactive examples are great. a good read and i learned some things.
A good detailed explanation of a relatively simple cipher. I liked how each step is introduced one step at a time to help the reader understand the basics then build to the more complicated steps, and each step also poses new problems in terms of how do we solve it and that leads to the next one. Near the end, it does start to get technical by introducing finite fields which might make it a bit more difficult for readers not familiar to the subject to follow. Think it might be possible to not go into more detail here and leave it as an appendix for interested readers to follow up. It’d also be good to have an introduction to what particular use cases symmetric vs asymmetric cryptography would have so we would understand why specifically this cipher is useful.
I quite appreciated the slider tools used in the post allowing the reader to play around with values and see how things work in practice.
I felt that the Poly 1305 exposition wasn’t as clear as the one earlier, and could have used more work. Basically, I think a better explanation for pseudorandomness would be useful. Also a minor complaint about typos and grammatical errors in the post which sometimes disturb the reader (without ever distorting any of the information though).
