Lire une fuite dans le bruit : ce que mesure une corrélation de consommation
Du modèle de Hamming à la validation sur des traces indépendantes : comprendre une analyse de canal auxiliaire sans confondre pic et preuve.
Un composant peut calculer un chiffrement correct et laisser fuiter de l'information pendant ce calcul. Sa consommation électrique dépend des commutations internes ; une mesure prise au bon moment peut donc contenir une petite contribution liée aux données manipulées. L'algorithme mathématique n'a pas besoin d'être faux pour que son implémentation parle.
L'analyse de consommation exploite cette séparation. Le travail fondateur de Kocher, Jaffe et Jun sur la Differential Power Analysis montre comment des mesures physiques peuvent révéler des secrets. Regardons ici un outil statistique voisin : la corrélation entre un modèle de fuite et des traces, dans un cadre pédagogique ou un laboratoire autorisé.
Remplacer le circuit par une hypothèse mesurable
Un modèle simple associe la consommation au nombre de bits à un d'une valeur intermédiaire : son poids de Hamming. Ainsi, le poids de 00101101 vaut quatre. Un autre modèle compte les bits qui changent entre deux états : la distance de Hamming. Le meilleur modèle dépend du circuit, de ses registres et des transitions effectivement observées.
Pour la trace et un instant , écrivons :
est la fuite prédite, une sensibilité inconnue, un décalage et le bruit. Le modèle ne dit pas que tout le courant vient de cette valeur : il cherche une petite composante qui varie avec elle.
Si une valeur intermédiaire dépend d'une hypothèse de clé , on peut calculer une prédiction pour chaque entrée connue. Chaque hypothèse produit un vecteur différent. On compare ces vecteurs aux mesures réelles, instant par instant.
Ce que normalise le coefficient de Pearson
La corrélation centre les deux séries et normalise leur covariance :
Le résultat appartient à l'intervalle de à lorsque les deux variances sont non nulles. Un gain d'amplification positif ou un décalage constant n'en change pas la valeur. Un signe négatif peut être pertinent si le montage inverse la relation mesurée.
Dans le modèle , avec bruit indépendant, centré et de variance , on obtient :
Avec , et , la corrélation théorique vaut environ . Un pic inférieur à un n'invalide donc pas automatiquement l'hypothèse. La valeur attendue dépend du rapport signal sur bruit et du modèle.
Fabriquer un témoin avant de traiter un secret
On peut tester la chaîne statistique sans aucun chiffrement. Générons des octets aléatoires, calculons leurs poids de Hamming, puis ajoutons du bruit. Le coefficient devrait se rapprocher de la valeur théorique correspondant à la variance de ces poids.
import numpy as np
rng = np.random.default_rng(42)
values = rng.integers(0, 256, size=5000)
h = np.array([int(v).bit_count() for v in values], dtype=float)
noise = rng.normal(0, 2, size=len(h))
p = h + noise
measured = np.corrcoef(h, p)[0, 1]
expected = np.sqrt(h.var() / (h.var() + 4))
print(measured, expected) # proches, sans être exactement égauxCette expérience vérifie le centrage, les dimensions et le sens de la comparaison. Elle ne démontre pas qu'un poids de Hamming convient au composant réel. Une mesure réelle peut avoir des déclenchements décalés, des filtres analogiques et des opérations simultanées qui brouillent le modèle.
Le plus grand pic est parfois un accident
Comparer beaucoup d'hypothèses sur beaucoup d'instants revient à multiplier les occasions de trouver une corrélation fortuite. Le maximum sera rarement nul, même avec de mauvaises hypothèses. Choisir ensuite l'instant et annoncer ce maximum comme une preuve réutilise les mêmes données pour sélectionner et valider.
Une démarche plus solide réserve des traces indépendantes. On sélectionne l'hypothèse et la fenêtre sur un premier lot, puis on vérifie leur comportement sur un second. Mélanger aléatoirement l'association entre entrées et traces fournit aussi un témoin : la relation attendue devrait disparaître.
L'alignement mérite une attention particulière. Si l'opération glisse de quelques échantillons d'une trace à l'autre, comparer la même colonne temporelle peut comparer des opérations différentes. Un résultat faible peut donc signaler une acquisition mal alignée plutôt qu'une absence de fuite.
Ce qu’une absence de pic permet de conclure
Elle permet de dire que cette méthode, ce modèle, cette acquisition et ce volume de données n'ont pas révélé la relation recherchée. Elle ne constitue pas une preuve générale d'absence de fuite. Le masquage, par exemple, vise à empêcher qu'une observation simple dépende directement du secret, mais son évaluation exige des modèles et des tests adaptés.
Le réflexe utile est de garder une séparation nette entre trace mesurée, modèle supposé et conclusion statistique. C'est cette discipline qui transforme un graphique impressionnant en résultat reproductible.