Querying restricted data for specific users

I'm currently writing my master thesis on a use case where I want to write encrypted events into the blockchain so I can prove that information has been send (or at least added to the ledger).
I don't want anyone to read that data but only specific users that i authorized to do so. I also want to remove access after a specific time period has passed. How do i achieve that?
Currently I'm assuming that I need a smart contract that manages the access of the entries and tokens that give access.
– Only the owner (myself) is able to add tokens to the smart contract
– Users can get a token from me and make a request to the smart contract to retrieve that information
– For that use case I would need gas for the users because otherwise they can't access the smart contract
Is there another way – for example with with decentralized identity? (I just want to query the ledger) – to do that so users do not need to have a wallet or gas and just an access token?
submitted by /u/Rhodgart
[link] [comments]