3 ms·
So where does one go to learn the good, practical ways to think about cryptography and authentication?
by Redoubts 6y ago
So where does one go to learn the good, practical ways to think about cryptography and authentication?
- jolux 6y agohttps://cryptopals.com/ https://cryptopals.com/, by Matasano/NCC Group (originally @tptacek iirc)
- tialaramex 6y agoThere are a few problems with these exercises in their current form. Firstly they have aged. They're a product of a specific period of time and things do change in the real world albeit slowly. There's some modern stuff later on, but too much of it in my opinion is now a history lesson without further application. Secondly they were written as a challenge-response type of situation. Thomas says do X, you say "Huh? But A" and then a day later Thomas explains yes A so technically he meant X' - but as a web page you don't benefit from that. This means if you aren't already fairly confident of this material you may in some cases fool yourself into believing you did it correctly when you missed the point of the exercise - or worse, spend a lot of time thrashing around trying to do something that's impossible because you didn't understand what was intended. e.g. you can find on the Web plenty of people who've "passed" Challenge 13 by granting themselves as attacker the ability to encrypt strings of their choice, not just user "profiles" from the imaginary target system. They aren't "cheating" which would be pointless, but without feedback they don't end up learning the intended lesson. Thirdly (OK much less seriously) clearly in this more enlightened age we need different example plaintext. How about well known lyrics by Greg Camp which I believe featured in a Oscar winning animated feature around the turn of the century? On the other hand (and more seriously again), I don't see a whole pile of better training materials laying around if you're a confident programmer who wants to understand some practical cryptography issues at ground level.
- jolux 6y agoI’m mostly basing the recommendation on the last sentence, but welcome recommendations for other resources.
- tptacek 6y agoAs I said the last time you made this observation: we wrote cryptopals originally to train consultants to break cryptography as it exists in the real world, not to teach them to build new cryptography. Since this is the second time you've critiqued them this way, I'd like to ask: what crypto-breaking challenges do you think it's missing? Is there a practical NewHope attack that actually appears in some deployed system on the Internet that cryptopals should walk people through? We don't have a set on signing crypto (none of the people who worked on it are blockchain people) so maybe that's an area to beef up.
- shp0ngle 6y agoNot parent. As to the first point, I think it's missing Spectre/Meltdown vulnerabilities? Also something with EFAIL, and something with regards to all the JWT mess that's currently being used everywhere. Hm.... But now, when I am reviewing them again (I last tried them in 2015-ish), I see they are mostly low lever crypto; things like JWT and EFAIL probably does not belong there.
- tptacek 6y agoThat's correct. So, for instance, invalid curve attacks --- which broke JWT --- are in cryptopals 8. JWT isn't. There's probably a malleability-gadget challenge we could do that's abstract enough to fit and captures what's interesting about EFAIL, but then, the underlying cryptographic flaw in EFAIL is so simple it's already in there. Weird how relevant "historical" cryptography is when you're in the real world, looking at real systems.
- g-b-r 6y agoTo a lot of study, one pretty good starting point is https://www.schneier.com/books/cryptography_engineering/ https://www.schneier.com/books/cryptography_engineering/ (unfortunately DRM-free not available anymore)