I’ve enjoyed starting to work through the exercises on Cryptopals[1]. It teaches you the underlying concepts for different ways of encrypting information and asks you to write code to break them.<p>[1] <a href="https://cryptopals.com/" rel="nofollow">https://cryptopals.com/</a>
I always wonder how people come up with the designs for various ciphers. When I took crypto class in uni, it all seems like different math/bit/word operations get randomly mashed up and repeated for several rounds. Is there a good resource for learning how to design ciphers?<p>Edit: typo
Somewhere on Reddit there's a great Mike Hamburg (I think?) comment about his approach to quickly analyzing new cipher designs --- is it linear? Can a SAT solver break it? There's more to it, but not much more, and it's one of the denser crypto comments I've read.
Shameless plug: I built a tool that's designed to automatically crack simple ciphers, encodings, hashes (soon™), esolangs and more :)
<a href="https://github.com/ciphey/ciphey" rel="nofollow">https://github.com/ciphey/ciphey</a>
I'm having fun reading and playing with 'Codebreaking, a practical guide' by Elonka Dunin & Klaus Schmeh.<p><a href="https://www.codebreaking-guide.com/" rel="nofollow">https://www.codebreaking-guide.com/</a>
Coincidentally I was reminded today that some students are using something I made a while back to learn about breaking AES: <a href="https://davidwong.fr/blockbreakers/" rel="nofollow">https://davidwong.fr/blockbreakers/</a>