I have come up with a scenario to make a secure data. Suppose I have a public encrypted file that anybody can download. But whenever anyone want to decrypt that data they need to get a key from server

To make the key cannot be shared. The key from server will not be able to decrypt the data directly. But the data must be decrypted with the client's private key after, without server knowing those client's privateKey

I hope below diagram could explain it clearly

enter image description here

Is it possible? What is the algorithm that could do this?

  • $\begingroup$ What goal is not met by: encryped file A (sic) was symmetrically encrypted with a random key KA; someBits0 is a public-key certificate of client concatenated with hash of encryped file A; server gets trusted client public key, checks client is legitimate, identifies KA from hash; encrypt key0 is KA asymmetrically encrypted (e.g. per RSAES-OAEP) with the client's public key; encrypt file A with key0 merely concatenates encryped file A and encrypt key0; to decipher, Client0 deciphers encrypt key0 with his/her private key, obtains KA, deciphersencryped file A using KA? $\endgroup$ – fgrieu Sep 18 '18 at 4:24
  • $\begingroup$ @fgrieu The problem with that approach is, after Client0 deciphers encrypt key0 with his/her private key that client then get the actual key he could share with anyone, such as client1 so client1 don't need to get the key from server anymore. With my approach client0 also need to share his private key too that would discourage him to share the key $\endgroup$ – Thaina Sep 18 '18 at 5:32
  • $\begingroup$ Ah. So you posit Client0 won't send the full deciphered file (perhaps compressed and/or re-encrypted) to Client1, and wish that Client0 can't help Client1 decipher what s/he has downloaded other than by revealing his/her private key. The only practical solution I see involves a trusted environment for the final decryption (e.g. a Smart Card), which then allows to emulate per-client public-key functionality with symmetric crypto. That's the classical solution for pay TV, facing a similar requirement. $\endgroup$ – fgrieu Sep 18 '18 at 6:17
  • $\begingroup$ @fgrieu Yes, it is my theoretically assumption on the scenario that the original file would be harder or riskier to transfer between client, they would be more willingly download from my host. So I just need to make sure that the key to decrypt cannot be shared $\endgroup$ – Thaina Sep 18 '18 at 6:36
  • $\begingroup$ @fgrieu In fact, you right, I just try to make a new kind of DRM system. And I try to get the user private key to be involved. The problem now is I want algorithm that would be a 3 ways encrypt. Encrypt on the original file => Encrypt again by unique generate key => can decrypt by the private key. If math is possible then this could prohibit the sharing of key. Problem now is algorithm. User's private key is just another bytes of number in this math algorithm and I don't need public key in this situation $\endgroup$ – Thaina Sep 18 '18 at 6:43

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.