CECPQ1 (combined elliptic Curve and Post-Quantum Cryptography Key Exchange) is a new key exhange developed by google, which combine X25519 with NewHope (elliptic Curve KE + Post-quantum KE).

Google has implemented CECPQ1 in boringSSL But there isn't a documentation or clarified explanation, how it works.

Looking at the code, I think, there are two key exchanges - X25519 and NewHope. Results of those exchanges are concatenated (here) Then this concatenation is fed into KDF and used as session key.

So even if NewHope is broken whole scheme is secure, because X25519 is secure. Attacker must break both NewHope and x25519 to break a scheme.

Can Someone confirm that? or give me more details about CECPQ1?


Your understanding is correct. They experimented NewHope RLWE key exchange while maintaining X25519 as backup, in case there is something wrong with NewHope. By combining two key exchange algorithms, it should be good.

  • $\begingroup$ Do you know which KDF, it uses? what are the inputs and their sizes? Perhaps if there is any good article or pdf, that describes well CECPQ1. $\endgroup$
    – Omar
    Oct 14 '17 at 19:15
  • $\begingroup$ @Omar For KDF It is up to what cipersuite you choose, paticularly, the hash function. For key exchange part, they concatenate X25519 and NewHope key together to get a 64-byte key material. $\endgroup$
    – 9f241e21
    Oct 14 '17 at 21:07

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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