In end-to-end encryption, the endpoints refer to the sender and intended receivers devices. The message is encrypted locally on the senders device and can only be decrypted by the receiver on his device. End-to-end encryption is often referred to as client-side encryption and zero access due to the fact that encryption and decryption happen only on the users devices and not on central servers. Because of this characteristic, end-to-end encryption prevents centralized servers from reading user data. In order to implement end-to-end encryption, two types of cryptographic algorithms are used: symmetric and asymmetric.