a method of performing an operation on a data storage for storing data being encrypted with a key kd associated with an owner of the data is provided . the method includes deriving , for each authorized client cj , a first key kcj and a second key ktj , providing the client cj with the first key kcj , and providing a trusted third party with the second key ktj . the method further includes , at a policy enforcement point , receiving a request for performing the operation on the data storage from a client ck of the authorized clients , acquiring a first key kck from the client ck , acquiring a second key ktk from the ttp , deriving the key kd from the first key kck and the second key ktk , and performing the operation on the data storage using the derived key kd . the disclosed trust model uses two - part secret sharing .