5 ms·
Are you aware that the "my homebrew crypto system is functionally equivalent to a one-time pad, and is therefore perfect" argument is so overused by cranks that
by ohazi 6y ago
Are you aware that the "my homebrew crypto system is functionally equivalent to a one-time pad, and is therefore perfect" argument is so overused by cranks that it's considered a cliche among actual cryptographers?
[1] https://twitter.com/mattblaze/status/580823914340880384 https://twitter.com/mattblaze/status/580823914340880384
[2] https://www.schneier.com/crypto-gram/archives/1999/0215.html#snakeoil https://www.schneier.com/crypto-gram/archives/1999/0215.html... (#6)
[3] https://freedom-to-tinker.com/2015/03/25/be-wary-of-one-time-pads-and-other-crypto-unicorns/ https://freedom-to-tinker.com/2015/03/25/be-wary-of-one-time...
[4] http://maldr0id.blogspot.com/2015/05/crystalline-cipher-and-cryptography.html http://maldr0id.blogspot.com/2015/05/crystalline-cipher-and-...
I don't even know how to respond anymore. You must be trolling.
Key-stretching algorithms are better than your chain-of-hashes because each iteration of a key-stretcher is deliberately CPU and memory intensive, whereas hashes are designed to be fast and efficient. So whatever clever scheme you think you've come up with to turn a single letter into an adequate key using secret combinations of chained hashes -- congratulations... you're doing what a key-stretcher does, but badly, because your scheme is much easier to brute-force.
Look, there are a lot of really subtle things that you need to be aware of when designing cryptosystems that even professional cryptographers get wrong sometimes, and exploiting these mistakes in a way that results in a complete break is way easier and more common than most people think. This is why "Don't roll your own crypto" is considered a best practice. Not because it isn't possible to come up with a simpler scheme. But because DIY secrecy is a siren song, and most people who are tempted by it are clever enough to come up with something that looks like it works, but not clever enough to know how to verify it properly.
Your goal shouldn't be simplicity, or trying to map an algorithm to a one-time pad. Your goal should be to use the standard tools in a way that professional cryptographers think is least likely to be subtly broken.
- umvi 6y ago> So whatever clever scheme you think you've come up with to turn a single letter into an adequate key using secret combinations of chained hashes -- congratulations... you're doing what a key-stretcher does, but badly, because your scheme is much easier to brute-force. Did it get my money across the border without requiring me to get me a master's degree in cyber security? Probably. Will I have to do this smuggling thing a bunch of times? No. Your attitude is like lambasting someone who writes a quick and dirty python script that gets the job done because it's full of vulnerabilities and wasn't written perfectly in Rust and doesn't scale to 10 million connections. So what. If I had millions of dollars I was smuggling over the border maybe I'd spend hundreds of hours making sure I got the security perfect using industry standards. Otherwise, I think just avoiding being the low hanging fruit is "good enough." And yeah, even "crank crypto" is good enough most of the time. You think someone like NSA would spend any significant amount of time/resources trying to crack through imperfect crypto schemes to get at the paltry payouts of individual fortunes?
- ohazi 6y ago> requiring me to get me a master's degree in cyber security No! You should get that degree if you want to design your own scheme like you're trying to do now. If you don't want to bother, then just use the standard algorithms like everybody else! > Your attitude is like lambasting someone who writes a quick and dirty python script that gets the job done because it's full of vulnerabilities and wasn't written perfectly in Rust and doesn't scale to 10 million connections. So what. Write all the disposable python you want. "Don't roll your own crypto" only applies to cryptography.
- umvi 6y ago> No! You should get that degree if you want to design your own scheme like you're trying to do now. If you don't want to bother, then just use the standard algorithms like everybody else! It's not that easy. It's not like there's a universal library that is super easy and safe to use and prevents you from messing up. Crypto algorithms are like Legos or plumbing. All the parts are there, but it's a big scattered mess and it's up to you to glue them together safely, avoid obsolete pieces, etc. And that requires education and experience, many hours of it. Even in my crank scheme I was doing the same - gluing together different crypto algorithms in a suboptimal way.
- ohazi 6y agoThat's... Okay, yeah, that's fair. The libraries are pretty awful.