On Sun, May 21, 2006 at 10:57:41PM +0100, Brett Parker wrote:
On Sun, May 21, 2006 at 04:27:49PM -0500, chrisisbd@leary.csoft.net chrisisbd@leary.csoft.net wrote:
Why is it that *everything* uses some sort of public-key encryption algorithm for storing sensitive data? It's stupid!
OK, it's brilliantly useful for sending data across the internet and so on but for storing one's own sensitive data it is entirely pointless as far as I can see.
For example if I want to store a file with some sensitive data in it and only only want to be able to decrypt it myself then surely anything *but* a public key encryption algorithm makes sense. Essentially a public key algorithm means that there is always a brute force way of getting at the data, it may take more computing power/time than is available but it is in principle possible. Other ways of encrypting can be made essentially uncrackable if you want.
Well, isn't it that case that with any form of encryption you're going to have to store either some meta data to be able to decrypt it (as in the case of gpg --symmetric, which needs no public key...), how does that make it any less easy to crack?
You don't have to store *any* data in order to be able to decrypt it surely. Apart from a knowledge of the password/key used and how it was used (i.e. the encryption algorithm) which can be kept in one's head or somewhere totally inaccessible from where the encrypted data is stored I don't see how one would need any "meta data". Or do you mean the decryption algorithm by "meta data"?
Hopefully with a good alogorithm or something like a single use key it doesn't matter if the algorith is available, it's still impossible to decrypt without the key.
Just because it's called a "public key" doesn't mean that you have to expose it to the wild, if you're only using it yourself, then where's the problem? Anyway - what it boils down to is this, all encrypted data is essentially crackable, it's just the timescale involved. I'm not convinced that the timescale becomes any less insane for public key encyption as apposed to anything else. Of course, the safest encryption methods are immutable, it's a one off shot, you can't get the data back. Oh, and guess what, that's crackable too, by feeding data through the same algorithm until you get a match. Takes some time, yeah, but then if you're doing that style encryption maybe you didn't like your data after all?
I suppose that's right, if neither public nor private key are exposed it comes to the same thing as other methods. However you can *only* use machine methods to decrypt something if you know some part of the data can't you? Otherwise how do you know when you have got the right answer?