9  Affine (Afin) Şifreleme

Sezar şifrelemesi, harfleri yalnızca sabit bir miktar kaydırarak (toplama işlemiyle) gizler. Affine (afin) şifreleme ise bu mantığı bir adım ileri taşıyarak, modüler aritmetik üzerinde hem çarpma hem de toplama işlemini aynı anda kullanan doğrusal bir yerine koyma algoritmasıdır.

Kısacası, klasik cebirdeki \(y = ax + b\) doğru denkleminin alfabe (mod \(26\)) üzerine inşa edilmiş hâlidir.

9.1 Sistemin Formal Tanımı

Afin şifrelemesinde anahtarımız artık tek boyutlu bir skaler değil, \(k = (a, b)\) şeklinde tanımlanan sıralı bir sayı ikilisidir.

Tanım 9.1 (Afin Şifrelemesinin Matematiksel Modeli)  

  • Açık metin (\(\mathcal{P}\)): \(\mathbb{Z}_{26} = \{0, 1, 2, \dots, 25\}\)
  • Şifreli metin (\(\mathcal{C}\)): \(\mathbb{Z}_{26} = \{0, 1, 2, \dots, 25\}\)
  • Anahtar uzayı (\(\mathcal{K}\)): \(k = (a, b)\) formunda olmak üzere; \(a, b \in \mathbb{Z}_{26}\) ve \(\gcd(a, 26) = 1\) koşulunu sağlayan tüm sıralı ikililerin kümesi.
  • Şifreleme fonksiyonu (\(\mathcal{E}\)): Her \(k = (a, b) \in \mathcal{K}\) ve \(x \in \mathcal{P}\) için: \[e_k(x) \equiv a \cdot x + b \pmod{26}\]
  • Deşifreleme fonksiyonu (\(\mathcal{D}\)): Her \(k = (a, b) \in \mathcal{K}\) ve \(y \in \mathcal{C}\) için, fonksiyonun tersi alınarak bulunur. Burada \(a^{-1}\), \(a\)’nın mod \(26\)’ya göre çarpımsal tersidir: \[d_k(y) \equiv a^{-1} \cdot (y - b) \pmod{26}\]

9.2 ⚠️ Anahtar Seçme Koşulları ve Birebirlik Şartı

Afin şifrelemesinde \(b\) (kaydırma) değeri için \(\mathbb{Z}_{26}\) içindeki tüm sayılar seçilebilir. Ancak \(a\) (çarpan) değeri rastgele seçilemez.

Şifreleme fonksiyonunun çözülebilmesi için mutlaka birebir olması gerekir. Eğer \(a\) sayısı \(26\) ile aralarında asal değilse, yani \(\gcd(a, 26) \neq 1\) ise, fonksiyon birebirliğini kaybeder.

Önemli🚫 Örnek bir felaket senaryosu

Kuralı ihlal edip \(\gcd(2, 26) = 2 \neq 1\) olmasına rağmen \(k = (2, 3)\) seçtiğimizi varsayalım. Denklemimiz \(e_k(x) \equiv 2x + 3 \pmod{26}\) olur:

  • A harfi \((0)\) şifrelendiğinde: \(2 \cdot 0 + 3 \equiv 3 \implies\) D
  • N harfi \((13)\) şifrelendiğinde: \(2 \cdot 13 + 3 = 29 \equiv 3 \pmod{26} \implies\) D

Hem A hem de N harfi aynı şifreli harfe dönüştü. Mesajı alan kişi D harfini deşifre etmek istediğinde orijinal harfin A mı yoksa N mi olduğunu asla bilemez; sistem çöker.

Not📌 Toplam anahtar uzayı ve Euler’in phi fonksiyonu

Afin şifrelemesinde \(a\) değerleri için modül \(m\) ile aralarında asal olan sayıların adedini bulmamız gerekir; bu değer Euler’in phi fonksiyonu (\(\phi\)) ile hesaplanır. \(b\) değeri için ise modül kadar seçenek vardır. Dolayısıyla afin kriptosisteminin toplam anahtar uzayı:

\[|\mathcal{K}| = \phi(m) \cdot m\]

İngiliz alfabesi (\(m = 26\)) için \(26\) ile aralarında asal olan sayıların adedi:

\[\phi(26) = \phi(2) \cdot \phi(13) = (2-1) \cdot (13-1) = 12\]

Geçerli olan bu 12 çarpan şunlardır: \[a \in \{1, 3, 5, 7, 9, 11, 15, 17, 19, 21, 23, 25\}\]

\(a\) için \(12\), \(b\) için \(26\) seçenek olduğundan toplam anahtar uzayı:

\[|\mathcal{K}| = 12 \cdot 26 = 312\]

Sezar’ın \(25\)’lik anahtar uzayına göre daha geniş görünse de, \(|\mathcal{K}| = 312\) modern bilgisayarlar için kaba kuvvet saldırılarıyla saniyeler içinde taranabilir.

9.3 📝 Çözümlü Uygulamalar

Aşağıdaki örneklerde işlemleri harf–sayı dönüşüm tablosunu kullanarak yapınız.

Örnek 9.1 Açık metni MATH olan bir mesajı, \(k = (5, 8)\) anahtarını kullanarak afin şifrelemesi ile şifreleyiniz.

Şifreleme kuralımız: \(e_k(x) \equiv 5x + 8 \pmod{26}\).

Harfleri tablodan sayıya çevirip denklemde yerine koyalım:

  1. M \(\to 12 \implies 5 \cdot 12 + 8 = 68 \equiv 16 \pmod{26} \implies\) Q
  2. A \(\to 0 \implies 5 \cdot 0 + 8 = 8 \implies\) I
  3. T \(\to 19 \implies 5 \cdot 19 + 8 = 103 \equiv 25 \pmod{26} \implies\) Z
  4. H \(\to 7 \implies 5 \cdot 7 + 8 = 43 \equiv 17 \pmod{26} \implies\) R

Sonuç: MATH kelimesi QIZR olarak şifrelenir.

\(\boxtimes\)

Örnek 9.2 \(k = (7, 2)\) anahtarı ile şifrelenmiş olan QCF kapalı metnini deşifre ediniz.

Deşifreleme formülümüz: \(d_k(y) \equiv a^{-1} \cdot (y - b) \pmod{26}\).

Öncelikle \(a = 7\) sayısının mod \(26\)’daki çarpımsal tersini bulmalıyız; yani \(7x \equiv 1 \pmod{26}\) denkliğini sağlayan \(x\)’i arıyoruz. \(7 \cdot 15 = 105 = 4 \cdot 26 + 1\) olduğundan:

\[7^{-1} \equiv 15 \pmod{26}\]

Yeni deşifreleme denklemimiz \(d_k(y) \equiv 15 \cdot (y - 2) \pmod{26}\) olur:

  1. Q \(\to 16 \implies 15 \cdot (16 - 2) = 15 \cdot 14 = 210 \equiv 2 \pmod{26} \implies\) C
  2. C \(\to 2 \implies 15 \cdot (2 - 2) = 0 \implies\) A
  3. F \(\to 5 \implies 15 \cdot (5 - 2) = 15 \cdot 3 = 45 \equiv 19 \pmod{26} \implies\) T

Sonuç: Şifreli QCF metninin açık hâli CAT kelimesidir.

\(\boxtimes\)

Örnek 9.3 Düşmandan ele geçirilen AGIY şifreli metninin orijinalinde OKAY kelimesi olduğu bilinmektedir. Kullanılan \((a, b)\) afin anahtarını bulunuz.

\(e_k(x) \equiv a \cdot x + b \pmod{26}\) olduğunu biliyoruz. İlk iki harf üzerinden iki bilinmeyenli bir denklem sistemi kurabiliriz.

O \((14) \to\) A \((0)\): \[14a + b \equiv 0 \pmod{26} \tag{1}\]

K \((10) \to\) G \((6)\): \[10a + b \equiv 6 \pmod{26} \tag{2}\]

\(b\)’yi yok etmek için (1) numaralı denklemden (2) numaralıyı taraf tarafa çıkaralım:

\[(14a + b) - (10a + b) \equiv 0 - 6 \pmod{26}\] \[4a \equiv -6 \equiv 20 \pmod{26}\]

Kritik aşama. Mod \(26\)’da \(4a \equiv 20\) denkliğini çözerken doğrudan \(4\)’e bölemeyiz. \(\gcd(4, 26) = 2\) ve \(2 \mid 20\) olduğundan bu denkliğin mod \(26\)’da tam olarak iki kökü vardır. Her iki tarafı ve modülü \(2\)’ye bölersek \(2a \equiv 10 \pmod{13}\), buradan \(a \equiv 5 \pmod{13}\) elde edilir. Dolayısıyla:

  1. \(a \equiv 5 \pmod{26}\)
  2. \(a \equiv 5 + 13 = 18 \pmod{26}\)

Ancak afin kuralları gereği \(\gcd(a, 26) = 1\) olmak zorundadır. \(\gcd(18, 26) = 2 \neq 1\) olduğundan \(a = 18\) değeri geçersizdir; demek ki \(a = 5\) olmalıdır.

Bulduğumuz \(a = 5\) değerini (1) numaralı denklemde yerine koyalım:

\[14 \cdot 5 + b \equiv 0 \pmod{26}\] \[70 + b \equiv 0 \pmod{26}\] \[18 + b \equiv 0 \pmod{26}\] \[b \equiv -18 \equiv 8 \pmod{26}\]

Sonuç: Düşmanın kullandığı anahtar \(k = (5, 8)\) ikilisidir — yani Örnek 9.1 içinde kullandığımız anahtarın aynısı.

Doğrulama: OKAY metnini \(k = (5,8)\) ile şifreleyelim. O \((14) \to 78 \equiv 0 \implies\) A, K \((10) \to 58 \equiv 6 \implies\) G, A \((0) \to 8 \implies\) I, Y \((24) \to 128 \equiv 24 \implies\) Y. Gerçekten AGIY elde edilir.

\(\boxtimes\)

9.4 🕹️ İnteraktif Afin Hesaplayıcı

\(e_k(x) \equiv a \cdot x + b \pmod{26}\) denkleminin pratikte nasıl çalıştığını aşağıdaki araçla test edebilirsiniz.

Dikkat ederseniz, fonksiyonun birebir olma şartını korumak için çarpan (\(a\)) menüsünde yalnızca \(26\) ile aralarında asal olan o \(12\) geçerli anahtar yer almaktadır. Yanlarında modüler tersleri (\(a^{-1}\)) de hesaplanmıştır.

🧮 Canlı Afin Hesaplayıcı