3 ms·
> You're assuming that your "secret formula" automatically provides an arbitrary amount of secrecy. It doesn't I disagree. My assumption is that sha256 digests
by umvi 6y ago
> You're assuming that your "secret formula" automatically provides an arbitrary amount of secrecy. It doesn't
I disagree. My assumption is that sha256 digests are uniformly random. Thus, xor-ing a sha256 digest with something of the same length is equivalent to a one time pad, which is uncrackable. And since I'm only crossing the border once, it works perfectly. Now, I only need to hide the ciphertext and protect the input to the sha256 digest, which I do by selecting an algorithm with sufficient entropy that it will never be guessed.
> Unless you can provide a proof that your method is sound, it isn't.
My method is sound because it's a one time pad[0] which is sound.
> It's simpler, provides more bits of secrecy, and is easier to validate than some harebrained secret-chained-hash scheme.
I disagree that it is simpler. I know how to xor two things together. Downloading openssl CLI or kali linux or whatever I need to do it "the right way" would take hours of research to make sure I got it right. I know I can get xor right.
Don't let perfect be the enemy of good. If this is a one time border crossing... why invest countless hours researching the perfect solution when hiding the key in the words of email using something like black magic[1] works just as well, stays just as hidden, and doesn't break if your country decides to implement stenography purging techniques on files (zeroing out padding bits/metadata on common formats used for steganography).
[0] https://en.wikipedia.org/wiki/One-time_pad https://en.wikipedia.org/wiki/One-time_pad
[1] https://www.wikihow.com/Play-Black-Magic https://www.wikihow.com/Play-Black-Magic
- ohazi 6y agoAre 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.