spn - substitution permutation network

SPN (Substitution–Permutation Network), modern blok şifreleme algoritmalarının temel yapılarından biridir ve özellikle AES (Advanced Encryption Standard) gibi güçlü ve yaygın şifreleme sistemlerinin temelini oluşturur.


🔐 SPN (Substitution–Permutation Network) Nedir?

SPN, veriyi şifrelemek için sırayla iki ana işlem uygulayan bir yapıdır:

  1. Substitution (Yerine Koyma): Her veri parçası, bir başka değerle değiştirilir (S-box’larla).

  2. Permutation (Permütasyon): Bu veriler karıştırılır veya yeniden düzenlenir (P-box’larla).

Bu işlemler birkaç tur (round) boyunca tekrarlanır. Her turda ayrıca bir tur anahtarı (round key) ile XOR işlemi uygulanır.


🔄 SPN Yapısının Adımları

Her turda aşağıdaki işlemler uygulanır:

  1. Key Mixing (Anahtarla Karıştırma):
    Veri bloğu ile tur anahtarı XOR yapılır.

    ini
    X_i = P_i ⊕ K_i
  2. Substitution (S-box):
    Blok, küçük parçalara (örneğin 4-bit) ayrılır, her parça bir S-box tablosu aracılığıyla yeni bir değere çevrilir.

  3. Permutation (P-box):
    Bitler karıştırılır, farklı pozisyonlara taşınır. Bu sayede yayılma (diffusion) sağlanır.

  4. (İsteğe bağlı) Son turda özel işlem:
    Son turda genellikle sadece substitution ve key mixing yapılır.


📦 Örnek: AES (bir SPN şifresi)

AdımAçıklama
AddRoundKeyAnahtarla XOR
SubBytesHer bayta S-box uygulanır (Substitution)
ShiftRowsSatırlar yer değiştirir (Permutation)
MixColumnsHer sütun matrisle çarpılır (Diffusion)
Tekrar10/12/14 tur boyunca tekrarlanır (anahtar boyutuna göre)

🎯 SPN’nin Güçlü Yönleri

Güçlü YanAçıklama
🔒 Güçlü güvenlikS-box ve P-box kombinasyonları yüksek karmaşıklık sağlar
Donanım/performans dostuParalel işlenebilir, CPU’larda hızlandırılabilir (AES-NI gibi)
🧩 Esnek yapıTur sayısı, blok boyutu, S-box içeriği özelleştirilebilir

❓ SPN Neden Feistel’e Göre Daha Modern?

ÖzellikSPNFeistel
Şifreleme & DeşifrelemeAyrı işlemler gerekirAynı yapı, ters sırayla
PerformansDaha hızlı, paralel yapılabilirDaha yavaştır, sırayla işler
GüvenlikModern saldırılara daha dayanıklıDES gibi eski örnekleri kırıldı

🧠 SPN Nerelerde Kullanılıyor?

Kullanım AlanıÖrnek Algoritmalar
Veri iletişimiAES (HTTPS, TLS, SSH, VPN vs.)
Disk şifrelemeAES-XTS, AES-CBC
Mobil & IoTPRESENT (hafif SPN)
Gömülü sistemlerLED, RECTANGLE (lightweight SPN’ler)

🔚 Özet

SPN, modern kriptografinin belkemiğidir. AES gibi güçlü algoritmalar bu yapıyı kullanır çünkü hem güvenli hem de hızlıdır. S-box ile karmaşıklık, P-box ile yayılma sağlanır. Feistel'den farklı olarak şifreleme ve çözme işlemleri simetrik değil, ayrı yapılarla yapılır.