I have multiple blobs each (symmetrically) encrypted with its own randomly generated key.
Now I want to encrypt these blob keys with user keys and store them in a database.
A table could have the following columns:
blob_key(encrypted with user key)
Now I would like to ensure integrity and authenthicity of the unencrypted fields (for encrypted fields this is ensured using HMAC). Unencrypted data is quite short (in this case a key id and a date).
The use case is a large-scale E2EE encrypted cloud storage. So it should be massively scalable!
What is the best way to achieve this? Is it a good idea to use the same user key used for encryption also for signing the unencrypted fields? Which algorithm would you suggest for this type of data?