3 ms·
The reason people say "don't roll your own crypto" is not because rolling your own crypto is something reserved for super-intelligent elites, but it's because i
by cocktailpeanuts 9y ago
The reason people say "don't roll your own crypto" is not because rolling your own crypto is something reserved for super-intelligent elites, but it's because if you use a cryptosystem that's been around and running in public for a long time, it's "empirically proven" (as well as mathematically proven) that it can't be easily broken. Rolling your own crypto can work, and maybe it's even mathematically provable, but unless there's a very strong reason for rolling your own, all the risk that comes along with it is not justifiable.
This is why people criticize companies like Telegram for running their own crypto. They could have just used the existing cryptosystems for key exchange, etc., but they decided to go with their own, and since there are no other public systems that implement that specific algorithm, nobody can be sure what the agenda is.
Same reason why people don't trust certain algorithms released by NSA even though they're completely public and open source. No matter how provable an algorithm is, things are super subtle in crypto-land and you never know what might be hiding behind the scenes or what unknown vulnerability there may be.
I get your analogy about chemicals, but cryptography is its own special beast with its own inherent quirks which I described above, so I don't think the analogy fully translates to this context.
- madez 9y agoI agree with most of your arguments. But using single examples like Telegram in this case is not suited for arguing about the general validity of this rule. If I were lazy, I could say that every cryptographic system is custom to the creators, hence the general rule is wrong. Most often using established cryptographic systems might be the right thing, but it is not always. I'm all for putting big warning signs on the idea of custom cryptography, but I do oppose strict rules against them, for they have use-cases. One could argue that those who have these rare use-cases and needed capabilities do know that custom cryptography can be used and what the dangers and caveats are. I prefer to stay with the full truth upfront.
- cocktailpeanuts 9y agoI agree with your general sentiment too. The only reason I took issue was because of the adjective "general". I still think the rule is "generally" true, but people shouldn't be dogmatic about it when they need to find a special solution for a special problem. The reality is most problems that require cryptography are not that special and there really is no good reason to roll your own crypto. I think in this particular case this is even more true because people's real money is on the line.
- madez 9y ago> The only reason I took issue was because of the adjective "general". Now, that is an interesting and valuable insight for me. I regularly teach mathematics where I need to insist on formal nitpicks when they change the result of the reasoning, and I'm used to people not understanding formal nitpicks right away, so I'm used to patiently insist and use analogies, different angles, etc. However, I don't teach in english. When I say a rule is true in general, then that means for me that rule is always true no matter what. If the word "general" in this context is understood differently, then that explains things.
- cocktailpeanuts 9y agoNot sure if you're accusing me of having an incorrect understanding of the word "general" or not, but when someone says "X is simply wrong in general", most people understand it as "Generally, X is simply wrong". Even using your claim of: > When I say a rule is true in general, then that means for me that rule is always true no matter what and interpreting the exact sentence you posted above: > The "don't roll your own crypto" is simply wrong in general I can't see how you can interpret it anything other than: > The "don't roll your own crypto" is simply wrong no matter what. If you wanted to say what you're claiming to have said, you should have said "'The don't roll your own crypto' is not always correct". Since you said you teach math, I'm sure you understand inverse/converse/contrapositive relations.
- madez 9y agoI'm not accusing you of anything. When I wrote > The "don't roll your own crypto" is simply wrong in general then I meant the negation of > The "don't roll your own crypto" is true in general I should have used the much clearer > The "don't roll your own crypto" is not always correct I differentiate between "A is not true" and "not(A) is true". The latter I use when the negation of A is a tautology, the former I use when A may or may not be true. In the case of "A is wrong in general" this led to "A is wrong in general" -> "A is not true in general" -> "not(A is true in general)" -> "not(A is true in all cases)" -> "There are cases where not(A) is true".