I would like to make a secure-encrypted file sharing system. The files will be sent into an open decentralized system, so the files would be encrypted before sending it to the decentralized storage system (all encrypted files are visible).
I would like to sell the access to the files, is it possible to generate a decryption key, usable only by the persons who buy the access to this file, who has a public/secret key, and we have his public one.
For example :
Alice encrypts a file to be decrypted by yet-unknown multiple parties later on.
Bob interacts with Alice to download and decrypt the contents of the file
the system should not allow a third party Charlie to decrypt the file solely based on the information that was sent from Alice to Bob.
Alice should not have to re-encrypt the file once it has been downloaded (and possibly decrypted) by Bob.
Does a solution exist for this problem? I read about Shamir's Secret Sharing, but it doesn't look like it fulfills my need.