Given a database like CryptDB, is it possible to determine whether the data is actually encrypted with the correct (specified) onion?

I'll elaborate a bit: CryptDB uses onions (chaining) of encryption algorithms to provide an ecrypted RDBMS. It encrypts a column with at least one algorithm and stores the algorithm(s) used for that column somewhere.

Given the fixed set of possible algorithms, all respective keys, a cipher text and the list of algorithms CryptDB stored as used, is it possible to determine from the cipher whether these algorithms were actually used?

1 Answer 1


If you have the keys (and other parameters, e.g. IV), you could just decrypt the data. That would tell you that the right algorithm was used.

If you don't have the keys, then it's very unlikely. If you could do so, you'd be performing a distinguishing attack. There are known distinguishers for some common ciphers (e.g. RC4) but not for others (e.g. AES). The existence of these usually implies that the cipher is flawed in some way.

  • 2
    While the decryption part is straightforward, it requires a human to check whether the decrypted data makes sense or the storage of expected clear values. I was looking for a more automated approach that came to a solution by checking the lenght, padding, etc of the cipher...
    – fsperrle
    Oct 1, 2014 at 12:09

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .