I have read all of the technical documentations provided via signal and so far I have figured out that signal intitializes a common key via X3DH key agreement and manages the keys via double rachet algorithm. Also I have figured out that uses the X25519 and X448 curves as well.

But I still have a burning question how actually encrypts the Instant messages ans especially how does encrypts real time voice and video. For real time encryption as far as I know is used either a stream cipher or a block cypher in counter mode with session keys that get renewed when counter is expired (eg. WPA2 uses RSA) when "traditional" cryptographic schemes are used.

But what about the Signal application how is able to encrypt voice and video in real time? Did actually somehow uses elliptic curve cryptography like a block cypher in counter mode. (in other words "replaces" the block cypher algorithm with eliptic curve one)?


1 Answer 1


The double ratchet is used to derive symmetric key material. Then it uses AES-256 in CTR mode for encryption and HMAC-SHA-256 for authentication. Also check the source code.

  • $\begingroup$ So actually performs some sort of TLS, but for the assymetric part of it uses Elliptic Curve Encryption right? $\endgroup$ Commented May 29, 2018 at 12:05
  • 1
    $\begingroup$ @DimitriosDesyllas exactly. (To be pedantic: it uses elliptic curve key agreement) $\endgroup$
    – Conrado
    Commented May 29, 2018 at 13:50

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.