1. A computer system comprising: a database server comprising a publisher configured to publish an encrypted form of a database, the database comprising at least one record with an associated index and a list of access-control attributes for each record; at least one user of the database; an Issuer configured to provide a credential for each access-control attribute of the database, which is assigned to the at least one user; a database encryptor comprising: a key generator configured to generate an encryption key for a record such that the encryption key is derived from at least the index of the record and the access-control attributes and a secret key of the database server; a record encryptor responsive to the key generator configured to encrypt a database record with the encryption key; an access-control encryptor configured to encrypt the access-control attributes, which comprises a generator configured to generate a non-interactive zero-knowledge proof that the access-control attributes were correctly encrypted; wherein the publisher is being responsive to the database encryptor.