The Linear Predictive Coding used for compressing speech does it at a much lower level than "technology" versus "techcrunch" - it uses a physical model of the human vocal tract (I've actually implemented the LPC used in the GSM codec).
I think it's clear enough without the example in the brackets. Anyway, it wasn't really a criticism, just more detailed information that I thought readers might appreciate.
> Skype's encryption algorithm is not, itself, broken
Skype's encryption has not been cracked, but it is broken in the sense that it preserves exploitable structure in the ciphertext. The ciphertext should be essentially random, shouldn't it?
The ciphertext is "essentially random"; the amount of ciphertext (per second) isn't.
Encryption will keep your wife from reading your letters, but if you send a hundred letters a month to the new girl at work she might still get suspicious. Encryption does not promise to prevent that.
The essential difference is that this is a stream, not discrete messages. Yes, I know that at the IP or UDP level a stream consists of discrete datagrams, but this is not how users think of streaming media.
It's like a developer arguing that a project was completed exactly to spec, when the spec isn't what the client wanted, and the dev didn't make any real effort to understand what the client wanted.
You could always trade latency for security by batching more of the stream and encrypting larger blocks.
Steganography hides the existence of covert communication. The message is hidden in an innocuous looking host (say a picture or video that noone would get suspicious about). So in that sense, the existence of actual communication is not known to a third party. I did a PhD theses on this topic :)
I never actually took the time to use it and I couldn't find any record of any details being revealed after 29c3, but it looks solid enough and one guy on a blog claimed to have written a python library using this C code and was able to get some PoC to work.
- Skype's encryption algorithm is not, itself, broken;
- Skype uses a "prediction" algorithm to compress voice streams;
- therefore, words have a specific pattern of bandwidth use (toy example: "techcrunch" spikes around the "-crunch", since you'd expect "-nology");
- bandwidth use of encrypted compressed data is equal to bandwidth use of data that has only been compressed;
- these patterns (which can be detected "through" the encryption) allow fairly good reconstruction of the voice stream.
If you like this kind of thing, Google "ssh keystroke timing attacks", or, more generally, "traffic analysis".