I have been looking at encryption for the database layer of my web application. It is using MySQL 5.1 (or higher, I can't remember offhand).
The application, managed by my organisation, stores data for public clients.
The easiest choice is AES_ENCRYPT/AES_DECRYPT which would help if a baddie somehow gained accessed to my database (assuming they didn't know the key).
However I want to take this a step further and prevent anyone in my organisation from being able to view any data stored for clients in its unencrypted form.
We use this premise for storing passwords; we encrypt the raw password at application level and compare it to a pre-encrypted pwd at db level. This is obviously a very common method, but we have that input from the user - the crucial difference with what I am trying to do is that we can't store an unencrypted 'key' and using the user's password is problematic because (aside from another heap of reasons) if they change it, all the encrypted data would have to be changed.
I can't get my head around this idea (you will probably have guessed I am not an expert in cryptography) but was expecting Google to throw up a few pointers. Unfortunately there isn't much I could find. I would be grateful for any pointers on where to start researching.