I saw a link today to an article that describes a “secure phone”. In the article they state:
First off, you need two phones. When you place a secure call (you can also place regular calls), they perform a 1024-bit Diffie-Hellman shared secret exchange, to generate a secret 128-bit key. This process takes between 10 to 30 seconds. Only the two phones share this unique key: it is generated before each call, and deleted after each call. Once the key is generated, conversation is subsequently encrypted and your call is secure.
All I have to say is… wow. This is the biggest load of BS I’ve seen in a long time… To explain why this is BS, here’s what the DH algorithm does, in a nutshell: Two parties wish to have a shared secret to use a symmetric encryption algorithm (usually). But these two parties have never met, and they must only communicate over an insecure line. The DH algorithm provides a method such that two parties can negotiate a shared secret over an insecure line and maintain secrecy from eavesdroppers. So, in theory, what they are saying is not false. Anyone passively listening to the DH key exchange and subsequent conversation will be unable to decipher the communication. However, there is a fatal flaw. The DH key exchange is vulnerable to a man-in-the-middle attack. Alice calls Bob, and begins to establish a shared secret using DH. However, Alice and Bob are unaware that Trudy is in the middle, relaying messages between them. As a result, there are two seperate DH key exchanges completed, one between Alice and Trudy, and one between Trudy and Bob. As a result, Trudy can simply decrypt all messages from Alice and re-encrypt the messages for Bob. In the scenario of telecoms, this scenario is not far-fetched, and is probably trivially accomplished.
There is another downside to this phone. Encrypted traffic has very high entropy. What this means is that encrypted traffic is easily distinguished from unencrypted traffic. This is something that the chinese people have known for a while. If you’re trying to hide something, encryption merely makes you more noticable.
The system they should really be implementing is a public-key cryptography system with a PKI (public key infrastructure) and it should be a standard feature of every phone. Just my $0.02