Recently a flaw was discovered in Cryptocat that allowed a security researcher to decrypt any messages sent through the application since late 2011. Obviously something to worry about if you have used Cryptocat since that time and relied on it for sending secure messages but those messages were sent in the past, the flaw was discovered recently so noone has exploited it yet, right? Hopefully you are right. But as we know, the NSA focusses their attention on encrypted data and stores it for cryptanalysis later. Assuming all your encrypted Cryptocat messages are stored on the NSA’s servers, they can use the discovered vulnerability to decrypt all of the stored messages. But Cryptocat messages are not the only encrypted data at risk.
If you operate under the assumption that all, or most, of the encrypted data sent over the internet is stored somewhere by someone, you have to assume that some day the data will be compromised. It’s not if but when. With quantum computers no longer a fantasy but already being used today, suddenly the ability to crack once uncrackable algorithms is available to those that benefit from it (NSA, FBI, governments around the world etc.) I don’t know how even the best encryption will hold up against a 512-qubit quantum computer as no tests are available but if they want your data, they’ll get it, either tomorrow, next year or the year after. I’ve read tests where this quantum computer can perform up to 50.000 times faster than a 2.4 GHz quad-core Intel with 16GB of RAM and with the next generation of quantum computers this number will only grow exponentially.
So, your encrypted data is or will be compromised at some point, count on it. Question now is, will the encryption be cracked while the data is still relevant or not? Let’s say i have a secret i need to send to a friend, the secret is a date, time and location for a meeting in December 2013. I need to make sure that whatever encryption method i choose can not be broken by the best available computer before December 2013. If someone cracks the code in January 2014 or after i’m not too worried, the meeting has already happened and whatever happened during that meeting will never be found out. But how will you know if your data will remain safe until it’s relevancy has expired? Or what if it’s relevancy never expires?
To encrypt and decrypt data you need a key (password). If the key is ‘password’, the name of your cat or something else that can be easily guessed, you can use the strongest encryption in the world but it will be cracked by means of brute force, very quickly. Using a password with a lot of characters and good mixture of characters will create a very strong key. Compare a key like ‘password’ to one of the keys that comes with a suitcase lock and a key of 30 characters with capitals, numbers, symbols etc. mixed in, to a biometric lock requiring two forms of authentication.
While the key is important, the encryption strength is as well. The strength of an encryption scheme is measured in bit length. Using 56-bit encryption for your data, even with a strong key, will result in the encryption being broken in a fairly short amount of time by a supercomputer or large network of consumer computers. Using 128-bit encryption is said to be almost uncrackable. Using 256-bit encryption should keep your data safe for a very long time. So, strong key + strong encryption = safe data…. as far as we know. Like i said, with the upcoming of quantum computers that are many thousands of times faster than the best consumer computer you can currently buy and the speed at which better quantum computers will become available, a 128-bit encryption that is considered today to be almost uncrackable may be a matter of days or weeks for such a machine, we don’t know.
The encryption algorithm is also very important, do not use encryption that you designed yourself (yes, people do that), just because others don’t know about it’s existence doesn’t mean it is more secure. In fact it is better to use a very public encryption algorithm that has been tried and tested for many years such as AES. So choose your encryption wisely.
With all that said, every encryption algorithm has a defined life time. As Brian Snow said there is no such thing as a perfect crypto algorithm, every algorithm will be breakable at some defined year by simple brute force as machines get faster. Vulnerabilities like the one found in Cryptocat only help those that are interested in encrypted data get to it faster. Vulnerabilities that may exist in the encryption software you use that have yet to be discovered may put all your encrypted data at risk in the future. Assuming everything that is sent over the internet is monitored, stored and/or analyzed you can either rely on the heaviest encryptions for everything you do, mix different encryption methods and spread the data over different ways of delivery or not use the internet to send and receive very important data that you don’t want anyone to ever get their hands on.
If i need to send something extremely important to another party and can not risk it being intercepted while in transit, i’d put the data in a 256-bit AES encrypted image, put this inside another encrypted image and burn that on to a password protected blu-ray disk labeled ‘2010 Cubase songs backup’. Just an example. It would keep the data offline, i would not have to find a way to send the password to the other party (which comes with risks of it’s own) if i deliver it myself and if there is a risk at any point the disc will be compromised i can destroy it on the spot. If i do not have a chance to destroy the disk and it is compromised i can find some delay in the fact that Macs with blu-ray readers in or attached to them are very rare. Once safely delivered the other party uses the data as needed and destroys the disc. Inconvenient? Sure, depending on the distance between you and the other party. Secure? I’d trust a method like this over sending it through the internet any day. Every government monitors online traffic in one way or another but the U.S. takes the crown. Using a VPN to tunnel in to or out of the U.S. may hide you a bit more or delay detection but that too, is encrypted data, so will be on the NSA’s radar. As always with security, you have to weigh security and convenience and find a good balance. Just don’t do what so many others do every day… don’t let convenience take the overhand in your decision.