
À mesure que l'informatique quantique progresse, la communauté cryptographique développe proactivement des algorithmes censés résister aux attaques quantiques—la cryptographie post-quantique (PQC). Parmi ceux-ci, les cryptosystèmes basés sur les réseaux se démarquent par leurs fondations de sécurité solides et leurs performances efficaces.
Cependant, même les problèmes mathématiques les plus sophistiqués sont vulnérables si l'implémentation divulgue des informations de canal caché. L'analyse et les attaques de canal caché (SCA) sont une classe d'attaques d'implémentation qui contournent la théorie mathématique, exploitant des phénomènes physiques tels que la consommation électrique, les fuites électromagnétiques et les variations de temps pour extraire des clés secrètes.
Cet article de blog fournit une analyse approfondie de la manière dont les attaques de canal caché menacent les schémas post-quantiques basés sur les réseaux. Nous couvrons les concepts fondamentaux du SCA, comment le PQC est exposé, les dernières recherches et des exemples pratiques—faisant le lien entre les concepts pour débutants et les connaissances pratiques avancées.
Les attaques de canal caché sont une catégorie d'attaques de sécurité où les attaquants obtiennent des informations sur les opérations cryptographiques en mesurant des paramètres physiques d'un appareil lors de la computation.
Exemple : Si un dispositif cryptographique passe moins de temps lorsque le bit d'un secret est '0' que lorsqu'il est '1', un attaquant peut mesurer à plusieurs reprises les temps de calcul sur des entrées connues pour reconstruire le secret.
Les ordinateurs quantiques, une fois réalisés, peuvent casser les schémas de clé publique traditionnels (e.g., RSA, ECC) avec des algorithmes comme celui de Shor. La cryptographie post-quantique vise à concevoir des schémas de chiffrement/signature immunisés contre les attaques quantiques.
Un réseau est une grille de points dans un espace n-dimensionnel avec un motif régulier. Les cryptosystèmes utilisent des problèmes de réseau difficiles :
Le projet PQC du NIST choisit des schémas basés sur les réseaux pour leur efficacité et leur évolutivité.
Malgré leur robustesse mathématique, les schémas basés sur les réseaux sont mis en œuvre sur du matériel physique—sujets aux SCA. Contrairement aux schémas traditionnels, la cryptographie sur les réseaux utilise des opérations comme la multiplication polynomiale, l'échantillonnage gaussien discret et l'arithmétique modulaire, qui peuvent toutes fuir des informations si elles ne sont pas mises en œuvre avec soin.
Le mécanisme d'encapsulation de clé de Kyber repose sur l'arithmétique polynomiale et les réductions modulaires. Des recherches (ACM, 2022) ont démontré :
Dans la signature Dilithium, des fuites d'échantillonnage de rejet peuvent être observées si la logique de décision de l'échantillonneur dépend des données secrètes et n'est pas constante dans le temps.
L'analyse conventionnelle SCA nécessite une expertise considérable. Avec l'apprentissage machine (ML), les attaquants peuvent automatiser le processus d'extraction et de classification des caractéristiques—brisant potentiellement des implémentations plus complexes ou bruitées.
Supposons que vous ayez un ensemble de données de tracés de puissance pendant une étape d'échantillonnage d'un KEM PQC :
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
# Supposons que `traces` soit un tableau NxT (N=échantillons, T=points de temps)
# Supposons que `labels` soit un tableau N de bits secrets (0 ou 1)
traces, labels = np.load('power_traces.npy'), np.load('labels.npy')
X_train, X_test, y_train, y_test = train_test_split(traces, labels, test_size=0.2)
clf = RandomForestClassifier(n_estimators=100)
clf.fit(X_train, y_train)
print("Précision du test :", clf.score(X_test, y_test))
Cette approche peut révéler des bits de coefficient secret (e.g., segments de vecteur secret binaire) des valeurs secrètes polynomiales ou LWE.
Passer à la pratique avec l'analyse de canal caché illustre le risque réel. Passons en revue les chaînes d'outils et le code SCA typiques.
# Installer l'outil logiciel ChipWhisperer
pip install chipwhisperer
Script Python pour acquérir des tracés depuis un microcontrôleur exécutant le déchiffrement Kyber :
import chipwhisperer as cw
scope = cw.scope()
target = cw.target(scope, cw.targets.SimpleSerial)
traces = []
for i in range(100):
scope.arm()
target.simpleserial_write('d', b'\x00' * 32) # envoyer un texte chiffré factice
ret = scope.capture()
if ret:
traces.append(scope.get_last_trace())
Enregistrer sur le disque pour une analyse ultérieure avec ML.
Supposons que vous ayez exporté des données brutes de trace.
Bash : Extraire le courant moyen tiré des traces
grep -oP 'Trace: \K[0-9 .]+' traces.log | awk '{total += $1; count += 1} END {print total/count}'
Python : Analyser les traces CSV pour les tracer/analyser
import matplotlib.pyplot as plt
import pandas as pd
df = pd.read_csv('traces.csv')
plt.plot(df['time'], df['power'])
plt.title('Trace de Puissance - Décryptage PQC Basé sur les Réseaux')
plt.xlabel('Temps (ns)')
plt.ylabel('Puissance (mA)')
plt.show()
Dans le monde réel, les attaquants peuvent obtenir des milliers de traces et utiliser des outils statistiques ou ML pour extraire les bits clés.
Exemple CPA (Python) :
import numpy as np
from scipy.stats import pearsonr
# traces : tableau NxT ; hypotheses : suppositions possibles de clé, input_data : textes en clair/chiffrés
def cpa(traces, input_data, key_guesses):
max_corr = -1
best_guess = None
for k in key_guesses:
hyp = hamming_weight(pqc_operation(input_data, k)) # modèle de puissance pour la supposition
corrs = [pearsonr(traces[:, t], hyp)[0] for t in range(traces.shape[1])]
if max(abs(corrs)) > max_corr:
max_corr = max(abs(corrs))
best_guess = k
return best_guess, max_corr
Compte tenu du risque démontré, comment les implémenteurs peuvent-ils protéger le PQC basé sur les réseaux des SCA ?
Pour Kyber, préférez des routines arithmétiques polynomiales en temps constant basées sur AVX2 (voir le répôt officiel PQClean). Pour l'échantillonnage aléatoire, utilisez des échantillonneurs durcis en temps constant, pas des tables naïves.
À mesure que le PQC voit une adoption plus large :
Bien que la cryptographie post-quantique basée sur les réseaux promette une sécurité théorique contre les adversaires quantiques, l'analyse de canal caché expose des risques pratiques profonds. Les fuites physiques spécifiques à l'implémentation—puissance, EM, timing—peuvent permettre aux attaquants de récupérer des secrets avec une analyse minutieuse. Les nouvelles méthodes de machine learning automatisent et améliorent ces attaques. Des implémentations robustes et sûres contre les canaux cachés nécessitent de la diligence, un code en temps constant, une conception matériel/firmware, et des tests rigoureux.
À mesure que les schémas post-quantiques sont déployés dans les cartes à puce, les puces mobiles et le cloud, la résilience aux canaux cachés doit être aussi centrale que la robustesse cryptographique des algorithmes de base.
Analyse de Canal Caché sur les Primitives Post-quantiques Basées sur les Réseaux
https://dl.acm.org/doi/10.1145/3569420
Le Risque des Attaques de Canal Caché sur la Cryptographie Post-Quantique
https://www.ledger.com/blog-risk-side-channel-attacks-post-quantum-cryptography
Apprentissage Machine et Attaques de Canal Caché sur la Cryptographie Post-Quantique
https://eprint.iacr.org/2025/1754
Projet PQC du NIST
https://csrc.nist.gov/Projects/post-quantum-cryptography
PQClean : Implémentations de Référence Propres et Sécurisées par Canal Caché
https://github.com/PQClean/PQClean
ChipWhisperer : Outils SCA/FI Open-Source
https://chipwhisperer.io/
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.