Skip to content

Correlation Power Analysis

Ölçülen power trace'lerini her key hypothesis için Hamming-weight/distance tahminleriyle korele ederek bir cryptographic key'i geri çıkarır (Brier, Clavier, Olivier, CHES 2004).

Mechanism

Bir cihazın anlık power consumption'ı işlediği data'ya bağlıdır. CPA bu leakage'ı lineer olarak W ≈ a·H(D ⊕ R) + b şeklinde modeller; burada H, bir intermediate D'nin bir reference state R'ye olan Hamming distance'ıdır (Hamming-weight modeli R = 0 özel durumudur).

Note

Seçilen bir intermediate için (örn. plaintext ⊕ key'in AES SBox çıktısı), key'in sadece küçük bir alt-parçası bilinmez — byte başına 256 tahmin. CPA, tahmin edilen leakage (her key hypothesis için trace başına bir değer) ile birçok trace boyunca ölçülen power örnekleri arasındaki Pearson correlation coefficient'ini hesaplar. Doğru hypothesis keskin bir correlation peak'i üretir, çünkü tahmini gerçek data-bağımlı power'la eşleşir; yanlış tahminler sıfıra yakın korele olur. Bu, tek bir bit yerine tüm lineer ilişkiyi kullandığı için DPA'nın difference-of-means'inden daha sağlam ve istatistiksel olarak daha sağlam temellidir.

Walkthrough

  1. Collect. Cihaz N bilinen plaintext'i şifrelerken N power trace kaydet; bunları zamanda hizala.
  2. Bir intermediate seç. İlk SBox'tan sonra: plaintext byte'ı p_i ve key-byte tahmini k için v = SBox(p_i ⊕ k).
  3. Predict. Her k ∈ {0..255} ve trace i için L[i,k] = HW(SBox(p_i ⊕ k)) hesapla.
  4. Correlate. Her time sample t için, tüm trace'ler boyunca L[·,k] sütunu ile t anındaki ölçülen power arasında Pearson r'yi hesapla.
  5. Select. Maksimum |r|'ye sahip (k, t) key byte'ını ve leakage anını açığa çıkarır. Byte başına tekrarla.

Korumasız AES üzerinde tipik olarak birkaç yüz ila birkaç bin trace (scope veya ChipWhisperer tarzı bir rig) yeterli olur.

Mitigation

Masking (HW'nin key'den decorrelate olması için intermediate'leri randomize etme), hiding (shuffling, dummy operation'lar, constant-power/dual-rail logic) ve amplitude/temporal noise injection.

References