methods , computer program products and systems for protecting a document from access by one or more users based on one or more document access rules . in one embodiment , the method includes creating a data set representing the one or more document access rules , storing the document and the associated data set , determining and storing a key for opening the document when one or more document access rules from the data set are met , and releasing the key to open the document to one or more users in response to a request from a user which meets one or more document access rules , thereby enabling the user to access the document .