Abstract: Objects in separate cells or groups of cells in a database are encrypted individually. Respective authentications and authorizations are incorporated into each object. Data to be sent is encrypted at the object level. An encryption management engine produces different keys for each cell or range of cells within respective objects. A security server stores keys registered by a client. A client access request sent to the security server is compared to registered keys in a security server database. An encryption management engine produces different keys for respective objects. A protocol and key management method allow identification and access an appropriate key using only publicly available information. Two or more parties are enabled to exchange and manipulate data without knowing the other party's encryption key. A set of data is added with a secured session key.