Current developments in the field of quantum computer science bring a growing threat against the existing cryptographic algorithms used today, for example in secure Voice over IP and instant messaging applications. Although such a quantum computer has not yet been officially announced, some governments recommends protecting data against this type of attack by 2030. The encrypted data shared today could be stored and decrypted soon thanks to this breakthrough innovation.
The National Institute of Standards and Technology (NIST) launched in 2017 an international competition to standardise "post quantum algorithms". Such algorithms are expected to be resilient to an attack made by a generalist post quantum computer. They are meant to replace in the long term the algorithms that are used today in many secure protocols relying on cryptographic key exchange mechanisms. The Linphone application is most likely the first open source communication software in the world to have implemented the NIST finalist algorithm in the encryption key category, CRYSTALS-Kyber, as of today. One of the key steps: the development of a modified version of the standardized ZRTP encryption protocol.
A few challenges we have taken:
Reach the same level of effectiveness even if cryptographic keys are much larger
Remain resilient to classic attacks
Be interoperable with encryption features offered by previous versions
The different steps that have been carried out:
Integration of KEM in ZRTP protocol: creation of a modified version of ZRTP that accepts a key exchange algorithm of the type of Key Encapsulation Mechanism
Hybridation : conception of an encryption engine combining a classic (EC)DH and a post quantum encryption. Modification of the ZRTP protocol so that it can negotiate two different key exchange algorithms at the same time and securely combine results.
Fragmentation: addition of a mechanism to fragment ZRTP packets
Integration in Linphone of this new ZRTP library with post quantum capacities and of configuration settings to activate/deactivate the post quantum mode
Building of performance tests