
La cryptographie post-quantique (CPQ), également appelée cryptographie quantum-sûre, quantum-proof ou résistante aux quantiques, est le développement et le déploiement d'algorithmes cryptographiques robustes contre les attaques des ordinateurs classiques et quantiques. La CPQ vise à protéger les communications numériques contre les adversaires qui pourraient utiliser des ordinateurs quantiques pour casser les cryptosystèmes largement utilisés tels que RSA et ECC (Cryptographie sur les Courbes Elliptiques).
L'objectif est clair : identifier et standardiser des algorithmes sécurisés contre les menaces quantiques tout en maintenant des performances et des coûts efficaces. Ce travail est urgent, car les ordinateurs quantiques progressent rapidement et le temps nécessaire pour faire la transition des systèmes de chiffrement mondiaux est considérable.
Mots-clés: Cryptographie post-quantique, résistante aux quantiques, quantum-sûre, informatique quantique, CPQ, NIST, cryptographie basée sur les réseaux, cryptographie basée sur le hash, cybersécurité, migration, menace quantique
La cryptographie classique repose sur des problèmes mathématiques (comme le facteurage de grands entiers ou la résolution de logarithmes discrets) qui nécessitent énormément de temps pour être résolus par des ordinateurs conventionnels. Cependant, les ordinateurs quantiques peuvent exécuter des algorithmes, tels que ceux de Shor et de Grover, qui rendraient obsolètes bon nombre de nos cryptosystèmes actuels.
Avec les ordinateurs quantiques, des tâches telles que :
... pourraient être effectuées en quelques heures ou minutes, mettant ainsi instantanément en péril la sécurité des communications numériques mondiales.
Les données chiffrées aujourd'hui avec des algorithmes vulnérables aux quantiques peuvent être interceptées et stockées par des adversaires. Après l'arrivée de puissants ordinateurs quantiques, ces données peuvent être décryptées rétroactivement - un scénario particulièrement critique pour les informations gouvernementales sensibles, financières ou de santé avec de longues périodes de confidentialité.
L'algorithme de Shor (1994) a démontré qu'un ordinateur quantique, compte tenu d'un nombre suffisant de qubits et de cohérence, pourrait factoriser de grands nombres et calculer des logarithmes discrets efficacement. Cela attaque directement :
Tous deux sont fondamentaux pour les signatures numériques d'aujourd'hui, la communication sécurisée (TLS/SSL), et plus encore.
L'algorithme de Grover, quant à lui, peut accélérer quadratiquement les recherches par force brute, affectant les algorithmes à clé symétrique (comme AES), sans pour autant les rendre obsolètes. Doubler la taille de la clé peut atténuer l'impact de Grover.
Résumé :
La cryptographie à clé publique fait face à des menaces existentielles dans l'ère quantique; la cryptographie symétrique est affaiblie mais reste viable avec des clés plus longues.
Pour garantir la confidentialité et l'authentification, la CPQ explore de nouvelles fondations mathématiques qui sont difficiles contre les attaques informatiques classiques et quantiques.
La cryptographie basée sur les réseaux utilise la difficulté des problèmes sur des réseaux de haute dimension, tels que :
Ces problèmes sont considérés comme difficiles même pour les ordinateurs quantiques. Les schémas basés sur les réseaux sont privilégiés pour :
Exemples :
La cryptographie basée sur le hash construit des signatures numériques à partir de fonctions de hachage sécurisées. Étant donné que les hachages résistants aux collisions fortes restent robustes contre les ordinateurs quantiques (avec de plus grandes sorties), les signatures basées sur le hash offrent simplicité et fondements solides.
Exemple :
Celles-ci reposent sur la difficulté de décoder un code linéaire général, un problème non résolu par les algorithmes classiques et quantiques. Les schémas basés sur le code sont établis et existent depuis les années 1970.
Construit sur la difficulté de résoudre des systèmes d'équations quadratiques multivariées sur des corps finis.
Reconnaissant le besoin urgent de standardisation, le National Institute of Standards and Technology (NIST) a lancé une compétition mondiale pluriannuelle pour sélectionner des algorithmes cryptographiques résistants aux quantiques adaptés pour le déploiement mondial. Le processus a commencé en 2017 et est en cours.
Le 5 juillet 2022, NIST a annoncé les quatre premiers algorithmes de qualité commerciale résistants aux quantiques avancés pour la standardisation :
Les quatre algorithmes sont dérivés de réseaux structurés et de fonctions de hachage, chacun représentant des bases de sécurité robustes connues pour résister aux attaques quantiques.
En résumé :
Des algorithmes comme BIKE, Classic McEliece et SIKE sont encore à l'étude pour une future standardisation.
L'adoption de la CPQ est déjà en cours dans les industries sensibles et par les gouvernements qui reconnaissent la menace "collecter maintenant, décrypter plus tard".
La communication résistante aux quantiques implique l'utilisation d'algorithmes CPQ pour sécuriser :
Les récentes versions de TLS sont testées avec des modes "hybrides" CPQ—combinant échanges de clés classiques et quantiques-sûrs. Par exemple :
Cloudflare, Google et Microsoft ont tous réalisé des tests en conditions réelles [1][2] avec le PQC hybride dans les poignées de main TLS.
La migration est non triviale et nécessite une planification minutieuse.
Avant la transition, les organisations doivent cartographier toutes les instances d'algorithmes cryptographiques en cours d'utilisation :
Des outils automatisés peuvent explorer la présence de RSA, DSA et ECC (quantum-vulnérables) dans les réseaux et les bases de code.
nmap pour Scanner les Algorithmes Cryptographiques :# Scanner un serveur web pour les ciphers SSL/TLS supportés et les méthodes d'échange de clés
nmap -p 443 --script ssl-enum-ciphers example.com
Supposons que vous souhaitiez extraire l'utilisation de RSA/ECC à partir d'un résultat de scan.
nmap -p 443 --script ssl-enum-ciphers example.com \
| grep -E "TLS_RSA|TLS_ECDHE" > weak_tls.txt
import re
with open('nmap_output.txt') as f:
for line in f:
if re.search(r'TLS_(RSA|ECDHE)', line):
print("Cipher vulnérable aux quantiques:", line.strip())
L'adoption peut nécessiter la mise à niveau des bibliothèques, du firmware, et du matériel.
Exemple : Établissement de clé en Python utilisant pyca/cryptography et liboqs (voir la section exemples de code).
Identifier les algorithmes d'échange de clés et de signature vulnérables aux quantiques dans les certificats X.509 et les configurations TLS.
# Lister tous les certificats x509 dans un répertoire et vérifier pour RSA/ECC
for file in $(find /etc/ssl/certs -name "*.pem"); do
openssl x509 -in $file -text -noout | grep "Public Key Algorithm"
done
import subprocess
cert_files = ["/etc/ssl/certs/server.pem", "/etc/ssl/certs/other.pem"]
for cert in cert_files:
out = subprocess.check_output(['openssl', 'x509', '-in', cert, '-text', '-noout'])
if b'RSA' in out or b'EC' in out:
print(f"{cert} : Vulnérable aux quantiques")
for host in $(cat hosts.txt); do
nmap -p 443 --script ssl-enum-ciphers $host >> scan_results.txt
done
Supposons que vous souhaitez générer une paire de clés quantum-sûre en utilisant pyca/cryptography (pour le classique) et python-oqs (pour CPQ):
Note :
python-oqsest une liaison officielle pour le projet Open Quantum Safe (liboqs).
Installation des dépendances :
pip install oqs
import oqs
# Lister les mécanismes d'encapsulation de clé (KEMs) disponibles
print("KEMs disponibles:", oqs.get_supported_KEM_algorithms())
# Utiliser Kyber768 pour un échange de clé quantum-sûr
with oqs.KeyEncapsulation('Kyber768') as server:
public_key = server.generate_keypair()
# Simuler l'encapsulation du client
with oqs.KeyEncapsulation('Kyber768') as client:
ciphertext, shared_secret_client = client.encap_secret(public_key)
# Le serveur décapsulationne
shared_secret_server = server.decap_secret(ciphertext)
assert shared_secret_client == shared_secret_server
print(f"Secret partagé établi (hex) : {shared_secret_server.hex()}")
import oqs
# Lister les algorithmes de signature disponibles
print("Algorithmes de signature pris en charge : ", oqs.get_supported_sig_algorithms())
# Utiliser Dilithium3 pour les signatures
with oqs.Signature('Dilithium3') as signer:
public_key = signer.generate_keypair()
message = b"Message quantum-sûr"
signature = signer.sign(message)
# Vérification avec la clé publique (par un vérificateur)
with oqs.Signature('Dilithium3') as verifier:
if verifier.verify(message, signature, public_key):
print("Signature vérifiée, quantum-sûre!")
La cryptographie post-quantique n'est pas une préoccupation lointaine—c'est un mandat clair et présent pour les équipes IT, de sécurité, et de réglementation du monde entier. Bien que les ordinateurs quantiques pratiques capables de casser RSA/ECC ne soient pas encore largement disponibles, le calendrier de transition et l'échelle immense des systèmes de cryptographie mondiaux signifient que le travail doit commencer maintenant.
Points à retenir :
Préparez-vous tôt. Restez agile. Adoptez la cryptographie post-quantique dès aujourd'hui.
Si vous avez trouvé ce contenu utile, imaginez ce que vous pourriez accomplir avec notre programme de formation élite complet de 47 semaines. Rejoignez plus de 1 200 étudiants qui ont transformé leur carrière grâce aux techniques de l'Unité 8200.