Cloud computing based storage services, such as Dropbox, Ubuntu One, Microsoft SkyDrive or Google Drive are very popular. These services allow us to easily create backup of our data, share it with others, or synchronize it between our desktop computer and mobile devices.
However, these services also have a serious drawback: they do not encrypt our uploaded files, or at least they encrypt them in an unknown way, so for example in the case of a stolen password or a hacker attack against the service provider our data is not in safe.
The solution is the client-side encryption of the information: the encryption process is done on our personal computer and only the encrypted data is uploaded to the cloud. We have to be careful when implementing such method. It is important not to cause any inconvenience when encrypting files. After setting up the appropriate parameters, the encryption should be done automatically in the background, right before the synchronization with the cloud. This automatic, transparent encryption is called on-the-fly encryption.
The purpose of this work is the introduction of the most prevalent cloud services and on-the-fly encryption tools, and the creation of an on-the-fly encryption software, which is designed to work with the cloud. This means that it encrypts the data file by file, instead of using larger containers, which makes possible the quick and easy synchronization of the files.
The encryption itself is done by a DES cipher, but with the help of an external library, named Crypto++, the more modern and (thanks for it's larger key size) safer AES encryption becomes also available.