-
Sadrazamv4
ig:sadrazam_v4 tg: Sadrazam.spy
🔐 Klasik Kriptografi CTF Rehberi — Şifreleme Türleri, Açıklar ve Çözüm Yaklaşımı
Klasik kriptografi, modern AES/RSA gibi algoritmalara göre çok daha eski ve genellikle çok daha zayıf şifreleme yöntemlerini kapsar.CTF'lerde klasik kriptografi challenge'ları çoğunlukla doğrudan:
ciphertext
+
algoritma hakkında ipucu
verir ve amaç kullanılan yöntemi tespit edip matematiksel veya istatistiksel özelliklerinden yararlanarak plaintext'i elde etmektir.
Buradaki en önemli mental model:
Bu yüzden ciphertext'in yapısını incelemek çok önemlidir.🧠 Klasik kriptografide çoğu zaman önce algoritmayı tanımlar, sonra key'i veya plaintext'i çıkarırız.
🔎 1. İlk Analiz — Ciphertext Bize Ne Söylüyor?
Bir klasik şifreleme challenge'ı gördüğümüzde ilk olarak şu soruları sormalıyız:[ ] Sadece harfler mi var?
[ ] Büyük/küçük harf korunuyor mu?
[ ] Sayılar veya noktalama korunuyor mu?
[ ] Boşluklar kaldırılmış mı?
[ ] Ciphertext uzunluğu plaintext ile aynı mı?
[ ] Aynı harfler tekrar ediyor mu?
[ ] Aynı plaintext parçaları aynı ciphertext parçalarına mı dönüşüyor?
[ ] Harf frekansları doğal dile benziyor mu?
[ ] Key uzunluğu hakkında ipucu var mı?
[ ] Ciphertext tamamen alfabetik mi?
[ ] Harfler yer değiştirmiş olabilir mi?
[ ] Harflerin kendisi mi değişmiş, yoksa pozisyonları mı değişmiş?
Bunlar algoritma tespitinde ciddi ipuçları verir.
🏛️ 2. Caesar Cipher
Caesar cipher'da her harf sabit miktarda kaydırılır.Örneğin:
A → D
B → E
C → F
Burada shift:
k = 3
olur.
Matematiksel olarak:
C = (P + k) mod 26
şeklindedir.
🎯 CTF'de ne yapmalıyız?
Caesar'ın key space'i çok küçüktür:0 → 25
Bu yüzden:
Örneğin:Tüm shift değerlerini denemek en doğru yaklaşımdır.
ROT0
ROT1
ROT2
...
ROT25
sonuçlarını üretip anlamlı plaintext'i ararız.
🚨 İpucu
Şunları görüyorsanız Caesar/ROT ailesini düşünün:ROT
shift
Caesar
three
thirteen
Roman
Özellikle:
ROT13
CTF'lerde çok sık kullanılır.
🔄 3. ROT13
ROT13:k = 13
olan Caesar cipher'dır.
İlginç özelliği:
ROT13(ROT13(x)) = x
olmasıdır.
Yani iki kere uygulandığında plaintext'e dönersiniz.
🎯 CTF'de:
Ciphertext:uryyb
gibi görünüyorsa ROT13 denemek saniyeler sürer.
Bu yüzden ilk denenecek dönüşümlerden biri olabilir.
🔀 4. Atbash
Atbash'te alfabe ters çevrilir:A ↔ Z
B ↔ Y
C ↔ X
...
Örneğin:
HELLO
gibi bir plaintext karakter karakter ters alfabeye dönüştürülür.
Atbash'te key yoktur.
🎯 CTF'de ne yapmalıyız?
Ciphertext alfabetik ve Caesar'a benzemiyorsa:Özellikle challenge açıklamasında:Atbash denemek çok ucuz bir kontroldür.
mirror
reverse
opposite
reflection
gibi kelimeler varsa dikkat.
🔢 5. Affine Cipher
Affine cipher:C = (aP + b) mod 26
formülünü kullanır.
Burada:
a
b
key'in parçalarıdır.
Ancak a her değer olamaz.
Şart:
gcd(a,26) = 1
olmalıdır.
Yani:
a ∈ {1,3,5,7,9,11,15,17,19,21,23,25}
olabilir.
🎯 CTF'de ne yapmalıyız?
a için yalnızca 12 olasılık vardır.b için 26 olasılık olduğundan toplam:
12 × 26 = 312
key kombinasyonu vardır.
Dolayısıyla:
çok etkilidir.Brute-force + frequency analysis
🔡 6. Monoalphabetic Substitution
Burada her plaintext harfi başka bir harfle eşleştirilir.Örneğin:
A → Q
B → W
C → E
...
Ama Caesar'dan farklı olarak tek bir sabit shift yoktur.
🎯 En önemli özellik
Aynı plaintext harfi her zaman aynı ciphertext harfine dönüşür.Dolayısıyla:
HELLO
gibi bir kelimedeki:
L L
aynı ciphertext karakterine dönüşür.
Bu da harf frekansı ve pattern analysis yapılmasını sağlar.
📊 7. Frequency Analysis
Klasik substitution cipher'larının en önemli zayıflıklarından biri:İngilizcede örneğin bazı harfler diğerlerinden çok daha sık görülür.Dil istatistiklerini korumalarıdır.
Türkçede ise harf dağılımı farklıdır.
Dolayısıyla ciphertext üzerinde:
E
T
A
O
...
gibi sık karakterleri incelemek başlangıç noktası olabilir.
Ama tek harf frekansına güvenmek yerine:
letter frequency
bigram
trigram
word pattern
birlikte değerlendirilmelidir.
🔤 8. Bigram ve Trigram Analysis
Tek harflerden daha güçlü istatistikler:Bigram
İki harflik diziler:TH
HE
IN
ER
Trigram
Üç harflik diziler:THE
AND
ING
ION
gibi.
Ciphertext'in dilini biliyorsanız bu istatistikler substitution cipher çözümünde ciddi avantaj sağlar.
🎯 CTF'de:
Uzun ciphertext + monoalphabetic substitution görüyorsanız:frequency
+
bigram
+
trigram
+
word pattern
kombinasyonunu kullanın.
🔢 9. Vigenère Cipher
Vigenère, Caesar'ın key'i tekrar eden bir versiyonu gibi düşünülebilir.Örneğin:
PLAINTEXT
KEYKEYKEY
şeklinde key tekrar edilir.
Matematiksel olarak:
Cᵢ = (Pᵢ + Kᵢ) mod 26
🎯 Neden önemli?
Caesar'dan farklı olarak her pozisyonda aynı shift kullanılmaz.Bu nedenle basit frequency analysis doğrudan yeterli değildir.
🧮 10. Vigenère — Key Length Bulma
Vigenère challenge'larında en önemli adımlardan biri:Bunun için:Key uzunluğunu bulmak.
Kasiski Examination
Tekrarlanan ciphertext dizilerini ararız.Örneğin:
ABC...ABC
gibi tekrarlar key uzunluğu hakkında bilgi verebilir.
Tekrarların pozisyonları arasındaki mesafelerin ortak bölenleri:
gcd
veya faktörleri key length hakkında ipucu verebilir.
📊 11. Index of Coincidence
Vigenère analizinde başka önemli yöntem:Ciphertext'i belirli uzunlukta parçalara ayırıp her parçanın harf dağılımını inceleyerek key length hakkında tahminde bulunabiliriz.Index of Coincidence (IoC)
Genel yaklaşım:
Ciphertext
↓
Key length tahmini
↓
Her key pozisyonunu ayrı incele
↓
Her sütunda Caesar çöz
↓
Key'i elde et
↓
Plaintext
Bu, klasik Vigenère challenge'larının temel çözüm yaklaşımıdır.
🔀 12. Transposition Cipher
Burada önemli fark:Örneğin plaintext:Harfler değişmez, yerleri değişir.
HELLOWORLD
ise karakterler farklı sıraya sokulabilir.
Bu nedenle ciphertext'teki harf frekansı plaintext'e yakın kalabilir.
🎯 CTF'de ne düşünmeliyiz?
Eğer:harf frekansı doğal dile benziyor
+
karakterler garip sırada
gibi bir durum varsa transposition cipher ihtimali artar.
🧱 13. Rail Fence Cipher
Rail Fence klasik transposition yöntemlerinden biridir.Plaintext zig-zag şeklinde "rail"lere yerleştirilir.
Örneğin:
/\ /\ /\
mantığında.
🎯 CTF'de:
Challenge:rails
fence
zigzag
rows
gibi ipuçları veriyorsa Rail Fence denenebilir.
Rail sayısı küçük olduğundan genellikle brute-force yapılabilir.
📐 14. Columnar Transposition
Plaintext bir tabloya yazılır:A B C D
E F G H
I J K L
sonra sütunlar belirli bir key sırasına göre okunur.
Burada key genellikle:
column ordering
belirler.
🎯 CTF'de:
Ciphertext:aynı karakterler
+
normal frekans
+
garip kelime sınırları
gibi görünüyorsa columnar transposition araştırılabilir.
🧩 15. Playfair Cipher
Playfair klasik digraph substitution cipher'dır.Harfleri tek tek değil:
AB
CD
EF
gibi çiftler halinde işler.
5×5 bir tablo kullanır.
🎯 CTF'de ipuçları
pairsdigraph
5x5
square
keyword
gibi ifadeler Playfair ihtimalini artırır.
Burada ciphertext uzunluğunun genellikle çift olması da ipucu olabilir.
🧮 16. Hill Cipher
Hill cipher linear algebra kullanır.Örneğin:
C = K × P mod 26
Burada K bir matrix'tir.
Bu yüzden:
Lineer cebir bilen biri için Hill cipher çok daha sistematik çözülebilir.
🎯 CTF'de:
matrixlinear algebra
vectors
determinant
mod 26
gibi ipuçları varsa Hill cipher düşünülmelidir.
Key matrix'in modüler tersinin bulunabilir olması gerekir:
gcd(det(K), 26) = 1
🔢 17. Bacon's Cipher
Bacon cipher klasik steganography/cipher yöntemlerinden biridir.Temel olarak karakterleri iki sembollü bir sistemle temsil eder:
A/B
0/1
şeklinde düşünülebilir.
CTF'de görünüşte normal bir metnin:
uppercase/lowercase
font
bold/normal
gibi iki farklı özelliği varsa Bacon cipher ihtimali araştırılabilir.
🎯 Özellikle:
AABBAABBAB
...
gibi 5'li gruplar görülüyorsa dikkat.
🧩 18. Polybius Square
Polybius Square karakterleri koordinatlarla temsil eder.Örneğin:
11
12
13
...
gibi çiftlerden oluşan ciphertext görebiliriz.
🎯 CTF'de:
11 23 15 24 ...gibi iki basamaklı değerler görüyorsanız:
kontrol edilebilir.Polybius Square
🔢 19. A1Z26
En basit encoding/cipher yöntemlerinden biri:A = 1
B = 2
C = 3
...
Z = 26
Örneğin:
8 5 12 12 15
gibi bir yapı:
HELLO
olabilir.
🎯 CTF'de:
Sadece 1–26 arası sayılar görüyorsanız A1Z26 ilk denenecek yöntemlerden biridir.🔄 20. Bacon + Binary + ASCII Zincirleri
CTF'lerde klasik yöntemler bazen tek başına gelmez.Örneğin:
Ciphertext
↓
Bacon
↓
Binary
↓
ASCII
↓
Flag
gibi zincir kurulabilir.
Bu yüzden bir decode işleminden sonra çıkan veriyi hemen "anlamsız" diye bırakmamak gerekir.
🧠 21. Frequency Analysis ile Cipher Tespit Etme
Genel olarak:Frekans korunuyorsa:
SubstitutionTransposition
gibi yöntemler düşünülebilir.
Frekans ciddi şekilde değişiyorsa:
Polyalphabetic substitutionVigenère
gibi yöntemler düşünülebilir.
Harfler aynı ama sıraları garipse:
Transpositiondüşünülebilir.
🔍 22. Ciphertext Uzunluğu Çok Önemli
Ciphertext'in uzunluğu algoritma hakkında ipucu verebilir.Örneğin:
Tek sayıda karakter
veya:
Çift sayıda karakter
olması bazı digraph tabanlı sistemler için ipucu olabilir.
Ayrıca:
16'lık bloklar
gibi uzunluklar modern block cipher'ları düşündürebilir.
Klasik cipher'larda ise:
5
10
20
...
gibi grouping yapıları farklı yöntemleri işaret edebilir.
🔢 23. Modüler Aritmetik
Klasik kriptografinin büyük bölümü:mod 26
üzerinde çalışır.
Özellikle:
Caesar
Affine
Vigenère
Hill
gibi cipher'larda modular arithmetic bilmek çok önemlidir.
Temel olarak:
A = 0
B = 1
...
Z = 25
şeklinde temsil kullanılır.
🧮 24. Modular Inverse
Affine ve Hill gibi cipher'larda modular inverse çok önemlidir.Bir a sayısının mod m altında tersi:
a × a⁻¹ ≡ 1 mod m
şartını sağlar.
Tersin var olması için:
gcd(a,m) = 1
olmalıdır.
Bu nedenle:
gcd
Extended Euclidean Algorithm
Modular inverse
klasik crypto CTF'lerinin temel araçlarıdır.
🧩 25. Substitution + Transposition Birlikte
Bazı challenge'larda yalnızca bir klasik cipher kullanılmaz.Örneğin:
Plaintext
↓
Vigenère
↓
Transposition
↓
Ciphertext
gibi bir zincir olabilir.
Böyle durumlarda ciphertext'ten doğrudan algoritmayı anlamak zorlaşabilir.
🎯 Yaklaşım
Önce en bariz dönüşümü belirleyin:Encoding?
Substitution?
Transposition?
Sonra elde edilen ara verinin yeni bir cipher olup olmadığını kontrol edin.
🧪 26. Known Plaintext
Klasik cipher'larda plaintext'in bir kısmını bilmek çok değerlidir.Örneğin CTF flag formatı:
flag{...}
ise:
f
l
a
g
{
karakterleri size cipher hakkında bilgi sağlayabilir.
Özellikle substitution ve Vigenère gibi cipher'larda bu tür bilinen plaintext parçaları key hakkında bilgi verebilir.
📊 27. Frequency Analysis Ne Zaman İşe Yarar?
Çok işe yarar:
Monoalphabetic substitutionCaesar
Affine
Kısmen işe yarar:
VigenèreBurada önce key length belirlemek gerekir.
Pek işe yaramaz:
One-Time PadModern secure encryption
gibi sistemlerde.
Dolayısıyla:
Her ciphertext'e frequency analysis uygulamak yerine cipher türüne göre kullanmak gerekir.
🔤 28. Dil Tespiti
Ciphertext çözülmeye başladıktan sonra plaintext'in:Türkçe
İngilizce
Almanca
Fransızca
gibi hangi dilde olduğunu belirlemek de önemlidir.
Çünkü frequency analysis ve word scoring dile bağlıdır.
Örneğin Türkçe ciphertext için İngilizce frekans tabloları kullanmak yanlış sonuçlara götürebilir.
🧰 29. CTF'de Kullanılabilecek Analiz Araçları
Klasik cipher'larda çoğu zaman ağır araçlara ihtiyaç yoktur.İlk aşamada:
Python
CyberChef
frequency analysis scriptleri
wordlist
yeterli olabilir.
Özellikle Python ile:
brute-force
frequency counting
GCD
modular arithmetic
permutation
gibi işlemleri otomatikleştirmek çok faydalıdır.
🧭 30. Cipher Türünü Hızlıca Belirleme
Pratik bir karar ağacı:Ciphertext
│
├── Sayılar mı?
│ ├── 1-26 → A1Z26
│ ├── 2 basamaklı çiftler → Polybius
│ └── başka yapı → farklı encoding/cipher
│
├── Harfler mi?
│ │
│ ├── Sabit shift hissi → Caesar
│ ├── Ters alfabe → Atbash
│ ├── Tek alfabe substitution → Frequency analysis
│ ├── Değişken shift → Vigenère
│ └── Harfler aynı, sıra değişmiş → Transposition
│
├── Çiftler halinde mi?
│ └── Playfair vb.
│
└── Matrix/mod 26 ipucu?
└── Hill
Bu kesin bir teşhis yöntemi değildir; ilk hipotezi oluşturmak için kullanılan bir analiz sırasıdır.
🏆 31. Klasik Crypto CTF Cheat Sheet
| Karşımıza çıkan | İlk düşünülecek |
|---|---|
| Sabit harf kayması | Caesar |
| ROT13 ipucu | ROT13 |
| Ters alfabe | Atbash |
| C = aP+b mod 26 | Affine |
| Tek harf → tek harf eşleşmesi | Substitution |
| Belirgin harf frekansları | Frequency Analysis |
| Tekrarlanan key benzeri yapı | Vigenère |
| Vigenère + tekrarlar | Kasiski |
| Vigenère + istatistik | Index of Coincidence |
| Harfler doğru ama sıra bozuk | Transposition |
| Zig-zag | Rail Fence |
| Tablo/sütun | Columnar Transposition |
| Digraph / 5×5 | Playfair |
| Matrix / determinant | Hill |
| 1–26 sayıları | A1Z26 |
| İkili özellik / 5'li gruplar | Bacon |
| 2 basamaklı koordinatlar | Polybius |
| Modüler ters | Extended Euclid |
| Bilinen plaintext | Known Plaintext Analysis |
📋 32. Klasik Crypto CTF Checklist
[ ] Ciphertext'in karakter seti incelendi[ ] Ciphertext uzunluğu incelendi
[ ] Boşluklar korunuyor mu kontrol edildi
[ ] Harf frekansı çıkarıldı
[ ] Tekrarlanan pattern'ler kontrol edildi
[ ] Bigram/trigram analizi yapıldı
[ ] Caesar/ROT kontrol edildi
[ ] Atbash kontrol edildi
[ ] A1Z26 kontrol edildi
[ ] Substitution ihtimali değerlendirildi
[ ] Transposition ihtimali değerlendirildi
[ ] Vigenère ihtimali değerlendirildi
[ ] Key length araştırıldı
[ ] Kasiski denendi
[ ] Index of Coincidence değerlendirildi
[ ] Affine ihtimali değerlendirildi
[ ] Playfair ihtimali değerlendirildi
[ ] Hill ihtimali değerlendirildi
[ ] Polybius ihtimali değerlendirildi
[ ] Bacon ihtimali değerlendirildi
[ ] Known plaintext araştırıldı
[ ] Birden fazla cipher zinciri ihtimali değerlendirildi
🧠 33. En Önemli Mental Model
Klasik kriptografide şu sırayı alışkanlık haline getirmek oldukça faydalıdır:Ciphertext
↓
Format analizi
↓
Karakter seti
↓
Frekans analizi
↓
Pattern analizi
↓
Cipher türü hipotezi
↓
Key space / matematiksel yapı
↓
Brute-force veya cryptanalysis
↓
Plaintext
↓
Flag formatını kontrol et
Ve özellikle şunu unutmamak gerekir:
Caesar'da 26 ihtimali denemek son derece mantıklıdır.Brute-force yapmak her zaman kötü değildir.
Affine'de 312 kombinasyonu denemek mantıklıdır.
Rail Fence'te küçük rail sayılarını denemek mantıklıdır.
Ama büyük bir key space'i körü körüne taramak yerine önce cipher'ın matematiksel yapısını anlamak gerekir.
🔥 34. Sonuç
Klasik kriptografi CTF'lerinde başarı genellikle üç şeye dayanır:1️⃣ Cipher'ı tanımak
CaesarVigenère
Affine
Substitution
Transposition
Playfair
Hill
...
2️⃣ Cipher'ın zayıflığını bilmek
Caesar→ küçük key space
Substitution
→ frequency analysis
Vigenère
→ key length + frequency analysis
Transposition
→ karakter frekansının korunması
Affine
→ küçük key space + modular arithmetic
Hill
→ linear algebra
Playfair
→ digraph structure
3️⃣ Ciphertext'i sistematik analiz etmek
Format↓
Pattern
↓
Frequency
↓
Algorithm
↓
Key
↓
Plaintext
Sonuç olarak klasik crypto challenge'larında en önemli soru:
sorusudur.🔐 “Bu ciphertext hangi algoritmanın izlerini taşıyor?”
Algoritmayı doğru tespit ettiğinizde çoğu challenge'da çözüm yolu zaten büyük ölçüde ortaya çıkar.
Ve klasik kriptografi için özellikle sağlam bilinmesi gereken temel araçlar şunlardır:
Frequency Analysis
GCD
Extended Euclidean Algorithm
Modular Arithmetic
Modular Inverse
Kasiski Examination
Index of Coincidence
Known Plaintext Analysis
Brute Force
Pattern Analysis
Bunları iyi oturttuğunuzda klasik crypto kategorisinde “ciphertext'i görünce nereden başlayacağım?” problemi büyük ölçüde ortadan kalkar. 🔐🧠
🔒 Bu içeriği görmek için giriş yapın