Abstract: A method and system for providing encryption are provided, involving a) transmitting a request from a sender to a database for a public key for a selected recipient, the database being configured to store for each member in a plurality of members a member public key for encrypting electronic data; b) determining if the selected recipient is in the plurality of members, and; c) if the selected recipient is in the plurality of members, then executing a member procedure, the member procedure comprising transmitting from the database to the sender the member public key stored in the database for the selected recipient; d) if the selected recipient is not in the plurality of members, then executing a non-member procedure, the non-member procedure comprising determining if at least one predetermined criterion is met, and, if the at least one predetermined criterion is met, generating a non-member public key for encrypting electronic data and a non-member private key for decrypting the electronic data encrypted usin