3 ms·
Don't roll your own crypto if you are releasing a product or if you are working on critical software. DO roll your own crypto [1] for learning, messing around
by gkbrk 6y ago
Don't roll your own crypto if you are releasing a product or if you are working on critical software.
DO roll your own crypto [1] for learning, messing around if you enjoy recreational programming. It's an awesome topic to play with and rolling your own crypto can give you an appreciation for the solid algorithms that survived being cracked for a long time.
It is very sad there there are corners of computer science that are "forbidden" when the whole field should be about learning.
[1]: https://www.gkbrk.com/2020/03/encryption/ https://www.gkbrk.com/2020/03/encryption/
[2]: https://www.reddit.com/r/programming/comments/fjkv4c/rolling_your_own_encryption/ https://www.reddit.com/r/programming/comments/fjkv4c/rolling...
- nullc 6y ago> DO roll your own crypto [1] for learning, m Do explicitly and loudly label such work as such. I've encountered important professionally produced pieces of software using 'crypto' code that was just whatever google turned up on github and was actually a student work from a student that didn't have it sufficiently right. Unfortunately there is also plenty of bad stuff that explicitly claims that it is good, but at least we can make people's lives a little easier by labelling learning experiments as such. :) Sadly, writing something is only so informative. Everyone can write a cryptosystem that they themselves can't break. :) Creating something that you think is secure and have other people break it is much more informative, but review is so costly that most people that get these lessons get them too late. Similarly, breaking someone elses system is extremely informative, but it has an extremely steep learning curve!
- GuB-42 6y agoReproducing common tools is a common exercise when you are learning. A school, we rewrote a significant part of libc, a unix shell, a FTP server, a compiler, etc... Of course, our work was inferior to anything on the market and no sane person would use it in production, but it wasn't the point. We learned a lot doing that and that's the important thing. The code itself got lost like as old exercise books. A lot of anti-patterns are actually good when you are learning, and reinventing the wheel is the best example.