1
$\begingroup$

I'm looking for a way for Alice to send a message or a file to Bob in the most paranoid way possible (over the internet).

It can be asymmetric or symmetric. But According to some articles, AES 128bit, RSA, ECC are all broken or will be soon (with the new NSA Utah center).

I found PHPECC library on GitHub: https://github.com/mdanter/phpecc but I don't know how to generate private keys and change key length.

RSA is slow to get a decent security... AKA 2048-bit or more.

AES-256bit is fast and secure with a strong password... but I cannot figure how to communicate the password in the most paranoid way. (Again, please, not on a piece of paper :))

I've made a couple of schemas on a sheet, but I'm sure there's a better way than what I've imagine.

Any help or explanation, or good methods how to do that will be greatly appreciate.

EDIT:

OpenSSL Vulnerability: http://www.theregister.co.uk/2010/03/04/severe_openssl_vulnerability/

AES 128-bit: http://threatpost.ca/en_us/blogs/rsa-2010-experts-expect-several-ciphers-be-cracked-soon-030210

NSA is promoting ECC over RSA. And ECC 112-bit is broken: http://www.nsa.gov/business/programs/elliptic_curve.shtml

http://en.wikipedia.org/wiki/Elliptic_curve_cryptography

$\endgroup$
16
  • $\begingroup$ Why would AES or ECC be broken soon? ECC gets broken by a large quantum computer, but those probably won't appear any time soon. When using classical computers, even the NSA won't be able to afford breaking 256 bit ECC or 128 bit AES for several decades. $\endgroup$ Commented Jan 24, 2013 at 16:18
  • $\begingroup$ Choosing primitives that withstand classical computers is easy. The hard problem with crypto is always how you distribute public keys without the attacker being able to substitute their own. $\endgroup$ Commented Jan 24, 2013 at 16:19
  • $\begingroup$ So the public key need to be as much secret as possible? (CodesInChaos: One article here: threatpost.ca/en_us/blogs/…) $\endgroup$ Commented Jan 24, 2013 at 16:22
  • 1
    $\begingroup$ A public key doesn't need to be secret. But you need a way to find out which public key belongs to Alice without Eve substituting an evil public key. $\endgroup$ Commented Jan 24, 2013 at 16:29
  • 2
    $\begingroup$ Taking your question at face value, obviously the most paranoid way for Alice and Bob to communicate with perfect secrecy is for Bob and Alice to meet somewhere and whisper messages into each others ear. $\endgroup$ Commented Jan 28, 2013 at 22:16

1 Answer 1

1
$\begingroup$

RSA is slow to get a decent security... AKA 2048-bit or more.

Well, if you want to be ultra-paranoid, then you'll have to accept some trade-offs. Suffice to say, a one-time 2048-bit RSA key-exchange shouldn't eat up too much processing time.

Using SSL is the most reliable way to exchange information securely; it not only takes care of the key-exchange and message encryption, but also message authentication (ie, man-in-the-middle attacks).

I don't think you should be concerned about AES being 'broken', but if you really want to be ultra-paranoid, you might take a look at using Serpent - it was the runner-up to Rijndael (AES) in the AES contest, with many people considering it more secure, but slower.

"Serpent was widely viewed as taking a more conservative approach to security than the other AES finalists, opting for a larger security margin: the designers deemed 16 rounds to be sufficient against known types of attack, but specified 32 rounds as insurance against future discoveries in cryptanalysis."

$\endgroup$
3
  • $\begingroup$ Yes I know I need to sacrifice time for more security, unfortunatly hehe. Is Twofish better than serpent? I know it was a finallist for AES too. "it was designed to make the encrypted data is random as possible, so it includes built-in plaintext whitening and other mechanisms that cause it run slower than AES but end with potentially more secure ciphertext." And according to wikipedia, they breaks 11 rounds of the Serpent cipher, but it have 32 rounds, so I'm safe for a while, right? $\endgroup$ Commented Jan 24, 2013 at 17:27
  • 1
    $\begingroup$ Frankly, most people would agree that you'd be safe with either AES, Serpent, or Twofish. They're all excellent algorithms. A lot of articles you might find about 'breaking' these algorithms are usually highly theoretical, and quite often sensationalised. It's not really helpful to say that 'Twofish is better than Serpent' - it's very unlikely that either will be broken. Personally I recommend Serpent. You might find this helpful. $\endgroup$
    – hunter
    Commented Jan 24, 2013 at 17:42
  • 1
    $\begingroup$ Something else occurred to me - in light of you mentioning that a 128-bit key wasn't enough (for symmetrical enryption), but that a 2048-bit key for the key exchange (RSA) was too expensive - you might have a look at this link. Keeping in mind that your system is only as strong as the weakest link - you should note that for a 128-bit symmetric key, the equivalent asymmetric key is around 3248 bits. This should put things into perspective. $\endgroup$
    – hunter
    Commented Jan 24, 2013 at 22:37

Not the answer you're looking for? Browse other questions tagged or ask your own question.