A process that uses a pair of related keys – one public and one private – to encrypt and decrypt a message and protect it from unauthorised use.