Template Attack¶
Per-hypothesis multivariate-Gaussian noise model'leri kurmak için tamamen kontrol edilen bir clone device'ı profile et, sonra tek bir victim trace'ini maximum likelihood ile sınıflandır — Gaussian noise model'i altında Bayes-optimal bir classifier (DPA/CPA'nın gerektirdiği çok sayıda trace yerine bir tane bile yeterli olabilir).
Mechanism¶
Neden çalışır
Daha eski side-channel yöntemleri (SPA/DPA), noise'u ortalanarak yok
edilmesi gereken bir düşman olarak ele alır ve çok sayıda trace gerektirir.
Template attack'ları bu görüşü tersine çevirir: noise'u tam olarak
karakterize edebilirsen noise'un kendisi bilgi haline gelir. Chari, Rao &
Rohatgi'den (CHES 2002) gelen ana içgörü, bir zaman sample'ları kümesindeki
leakage'in bir multivariate normal distribution olarak iyi modellendiğidir.
Her hypothesis k için (bir key byte, bir operation, bir Hamming weight) bir
template = bir (m_k, C_k) çifti önceden hesaplarsın:
m_k— o hypothesis için mean vector (ortalama trace),C_k— her sample'daki noise'un diğer her sample ile nasıl co-vary ettiğini yakalayan covariance matrix.
Victim'den yeni bir trace t verildiğinde, onun hypothesis k'den geldiği
olasılığı multivariate Gaussian yoğunluğudur:
p(t | k) = exp( -½ (t − m_k)ᵀ C_k⁻¹ (t − m_k) ) / sqrt( (2π)^n · |C_k| )
Attacker, p(t | k)'yi maximize eden k'yi seçer (maximum likelihood).
C_k⁻¹ korele noise'u whiten ettiği için tek bir sample yeterli olabilir —
exploit edilen invariant şudur: leakage'in tam joint noise distribution'ı,
secret'ın kararlı, öğrenilebilir bir fingerprint'idir.
Bu, attacker'ın seçilen key'ler/plaintext'lerle programlayabileceği bir profiling device (target'ın bir "clone"u) gerektirir. Non-profiled DPA/CPA ailelerinin aksine, kanonik profiled attack'tır.
Walkthrough¶
İki phase vardır: profiling (template'leri kur) ve matching (victim trace'ini sınıflandır).
- Profile. Clone device'da, target operation'ı her hypothesis için çok sayıda çalıştır ve trace'leri kaydet.
- Points of interest (POI) seç. Tam trace'ler yüksek boyutludur, bu yüzden
en key-dependent signal'i taşıyan birkaç sample'a indir (örneğin hypothesis'ler
boyunca en büyük fark toplamı
Σ|m_i − m_j|). - POI'lerde her hypothesis için bir template kur: mean vector + covariance.
- Match. Bir victim trace al, her template'in yoğunluğunu değerlendir, argmax'ı çıktı ver.
import numpy as np
# traces[k]: array (N_traces, N_poi) profiled for hypothesis k
templates = {}
for k, X in traces.items():
m = X.mean(axis=0) # mean vector m_k
C = np.cov(X, rowvar=False) # covariance matrix C_k
templates[k] = (m, np.linalg.inv(C), np.linalg.slogdet(C)[1])
def classify(t): # t: single victim trace at the POIs
best_k, best_ll = None, -np.inf
for k, (m, Cinv, logdet) in templates.items():
d = t - m
ll = -0.5 * (d @ Cinv @ d) - 0.5 * logdet # log-likelihood (drop const)
if ll > best_ll:
best_ll, best_k = ll, k
return best_k
Expected behavior
profiling: 200 traces/hypothesis x 256 key-byte hypotheses
POIs selected: 5 samples (peaks of inter-class variance)
matching on 1 victim trace -> argmax log-likelihood
recovered key byte: 0x9C (correct)
With well-separated templates, a *single* trace is often enough; noisy
targets fall back to averaging the log-likelihoods over a few traces.
Aynı mekanizma electromagnetic trace'lere genelleşir ve modern profiled attack'ların temelidir (explicit Gaussian'ı öğrenilmiş bir classifier ile değiştiren deep-learning varyantları dahil).
Detection¶
Template attack'ları, attacker tarafında passive measurement'tır — tespit edilecek on-target bir software footprint'i yoktur. Pratik "ipucu" fizikseldir: probe/EM access'i ve device'ın programlanabilir bir clone'una sahip bir adversary.
Mitigation¶
- Constant-time / data-oblivious kod ki leakage secret'tan bağımsız olsun (bkz. ../mitigation/constant-time-programming.md).
- Template'lerin dayandığı kararlı per-hypothesis distribution'ı kırmak için masking ve hiding (random delay'ler, shuffling, dual-rail logic).
- Physical access'i sınırla ve attacker'ların profile edilebilir bir clone elde etmesini engelle.
References¶
- Suresh Chari, Josyula R. Rao, Pankaj Rohatgi. Template Attacks. CHES 2002, LNCS 2535, pp. 13–28 — https://link.springer.com/chapter/10.1007/3-540-36400-5_3
- Author PDF — https://secalgo.telecom-paristech.fr/Biblio%20-%20Mod%C3%A9lisation%20de%20la%20fuite%20physique?action=AttachFile&do=get&target=%5BCRR02%5D+2002+-+CHES+-+Template+Attacks.pdf