11 ms·
The only people who say things like "you can do things differently" are those who don't understand the fundamentals of crypto. (I've been one in the past) Beca
by cocktailpeanuts 9y ago
The only people who say things like "you can do things differently" are those who don't understand the fundamentals of crypto. (I've been one in the past)
Because once you do get to a point where you understand (You don't have to be a crypto guru or actually invent a new crypto algorithm, but just to a point where you understand how the fundamental bits and pieces work), you will find yourself saying the same thing: "Don't roll your own crypto".
- madez 9y agoYou are wrong in assuming I don't know about cryptography and it's fundamentals. I'm not a professional expert in them, but I do have formal theoretical and implementation experience. The "don't roll your own crypto" is simply wrong in general. For comparison, most often injecting chemical agents into your veins in high concentration is highly detrimental, so most often the rule "don't inject highly concentrated chemicals into your blood" is valid, but sometimes the chemical is an antidote and is the only way to save a life. Therefore, in general, the rule "don't inject concentrated chemicals into your blood" isn't valid. It's the same with cryptography. There are tradeoffs at play and one needs to know what they are trying to achieve. Custom cryptography is a (rarely used) tool in the box, but it is rightfully there. Maybe this is a misunderstanding. I certainly would tell children never to inject chemicals into their veins, but I wouldn't tell that so absolutely to an adult. I treat people here with respect and as adults. That's why I nitpick and say "don't rule your own crypto" isn't true in general.
- cocktailpeanuts 9y agoThe 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.
- lowbloodsugar 9y agoIf you are talking about, say an EpiPen, then that is injecting medical grade chemicals that someone manufactured and packaged. "Rolling your own" EpiPen, including manufacturing and purifying the chemicals needed, manufacturing the delivery device, and then shooting yourself with that, would probably result in death. You appear to be totally clueless in the various ways that any of these processes could fail, resulting in your death. And that is most likely true of your understanding of crypto too. Don't roll your own crypto, and please, please, do not roll your own injectable medicine.
- madez 9y ago> Don't roll your own crypto, and please, please, do not roll your own injectable medicine. But some people must and did, right? Else we would neither have injectable medicine nor crypto. Instead of simply ruling it out, I argue for pointing to risks and guidelines for when it is appropiate and when not. We need people working in all areas, including cryptography and manufacturing of injectable medicine. That's why I oppose the strict, overly-simplified rule in this case. I never argued and don't argue for a random web-store one-man-show to develop their own crypto, nor for them to craft their own injectable medicine.
- lowbloodsugar 9y agoNo. They don't. A whole group of people get together and the end result is good crypto or safe medicine. Sure, one person might have the idea. By the time it's included in, e.g. a Java Crypto library or OpenSSL, or your arm, it's been thoroughly reviewed by tens or hundreds of people. For example, "RSA" is the initials of the three people who invented it, by trying for some time to implement an idea published by two others two years earlier. Only a fool would say, "Bah, I know what I'm doing! Ship it!"
- madez 9y agoI completely agree. Scientifically proven methods like independent verification are very important. Yet, it could very well be custom "own" crypto that is verified and then used.