The process of introducing encryption into an application is a fairly complex endeavor, requiring changes to the application logic, the addition of the cryptographic services, and assumption of key management tasks. You must additionally alter the database structure to store the encrypted strings, and alter any database queries that selected/used the now-encrypted data. The approach is very flexible, enabling you to encrypt pretty much any or all data. It also can be very secure, but the sheer amount of effort to make this work scares most people off.
Another misconception about cell-level encryption is it's faster because you encrypt less data. In practice, this is not correct. First, if you have sensitive data, then very seldom is it only a single row you are protecting. For example, if you have credit card numbers, then odds are you have one in every row of the table. Second, if you are running queries against encrypted data, then it is faster to decrypt that data as a whole column or table than row by row or element by element -- a lot faster. Technologies that work at the object level are more efficient in general-use cases and a heck of a lot simpler to implement.
Discussing cell encryption is mostly helpful in spotlighting the difficulties in encrypting database content at the application level. It is for these reasons, as well as a few others, that most people are moving to transparent forms of encryption.
In my next two posts, I'll discuss the two major forms of transparent encryption: file/folder and database transparent encryption. I want to clear up some of the confusion surrounding these technology approaches, delving into the business problems they solve, as well as the pitfalls around implementation and performance.
Adrian Lane is an analyst/CTO with Securosis LLC, an independent security consulting practice. Special to Dark Reading.