1
$\begingroup$

I would like to provide access to encrypted data through a cloud service provider, using a pay-as-you-go model. This means that we will sometimes need to revoke a user's access to the data. To restrict a revoked user's access, the CSP will re-encrypt the data and send the new key to valid users only through their mail.

Before using the new key they received by mail, however, the users will presumably need some way to verify its integrity and authenticity. If possible, I would like to implement this using only symmetric encryption (like AES) instead of asymmetric encryption like RSA. Is this possible, and if so, how?

$\endgroup$
2
  • $\begingroup$ Hi, nalini, and welcome to Crypto Stack Exchange. I've edited your question to hopefully make it easier to read, but there's always a chance that I might have made some mistakes while doing so. Please take a look at the edited text to see if it still matches what you meant to ask, and if not, please edit it yourself to correct any mistakes. Thanks! $\endgroup$ Dec 24, 2015 at 8:16
  • $\begingroup$ You're going to re-encrypt the data? I think you may be missing a bit of cryptographic background if that's really what you are proposing. $\endgroup$
    – Maarten Bodewes
    Dec 24, 2015 at 11:27

2 Answers 2

1
$\begingroup$

Unfortunately, symmetric encryption do not provide integrity and digital signature functions. This is because symmetric encryption uses the same key for exncryption and decryption. This means that any who owns the decryption key can alter the data and no one will notice that the data is altered, because the same key was used for encryption.

This means that data integrity can be provided only by using asymmetric cryptography.

$\endgroup$
1
  • $\begingroup$ Or use a symmetric encryption model that van be verified using a MAC. This still requires a separate key for authentication but one van at least use a AES like key. $\endgroup$ Dec 24, 2015 at 9:31
0
$\begingroup$

Well, yes, this is possible, but not without an initial setup phase. You can use an authentication key at the server. You then distribute each client a derived key using some kind of ID of the client. This key needs to be distributed in a secure fashion to the client (this is the setup phase).

When you change the data encryption keys you create an authentication tag / MAC (e.g. using HMAC) for the encryption key. You can even wrap the encryption key with the key used by the client so the client cannot use the key without also verifying it (e.g. by using GCM or SIV mode encryption). Well, technically they can simply ignore the verification, but that would take effort.

Note that symmetric schemes are substantially more brittle than ones based on asymmetric cryptography.

$\endgroup$
1
  • $\begingroup$ OK, I'm off celebrating X-mas. Replies may not be quickly forthcoming the next 2 days or so. $\endgroup$
    – Maarten Bodewes
    Dec 24, 2015 at 11:31

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.