3 ms·
It's not complexity but combinatorics. The hardness of crypto is a type of hardness not often encountered in other programming areas, or not to the same degree.
by api 9y ago
It's not complexity but combinatorics. The hardness of crypto is a type of hardness not often encountered in other programming areas, or not to the same degree.
Cryptographers are modern day real world occultists and wizards. It really is an esoteric area of computational and mathematical lore that requires many years of diligent study before one can even attempt to do anything that isn't a toy.
The gods (intelligence agencies, organized crime) laugh at those who attempt to roll crypto without knowing what they're doing.
Note again that I'm talking about core primitive (cipher, hash, etc.) design. I do think that mere mortals can implement crypto, though doing so competently still requires a lot of study and respect for the difficulty of the domain. I don't repeat the "never implement crypto" mantra. Instead I prefer the modified version: "do not attempt to implement crypto unless you know how to break crypto." If you don't understand how crypto is often broken and can't name and explain a few recent examples, you should not be implementing crypto.