LuvyAI — Ücretsiz başla. 18+

🔐 Klasik Kriptografi CTF Rehberi — Şifreleme Türleri, Açıklar ve Çözüm Yaklaşımı

Konu Özeti

Klasik kriptografi CTF yarışmalarında kullanılan şifreleme yöntemleri, zayıflıkları ve çözüm teknikleri ele alınıyor. Caesar, ROT13, Atbash, Affine, Vigenère, Playfair, Hill, Bacon, Polybius ve A1Z26 gibi şifrelerin çalışma prensipleri, frekans analizi, bigram/trigram analizi, Kasiski incelemesi ve modüler aritmetik gibi çözüm yaklaşımlarıyla birlikte açıklanıyor. Ayrıca ciphertext yapısına göre hızlı tespit için karar ağacı ve pratik bir kontrol listesi sunuluyor.

🔐 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:

🧠 Klasik kriptografide çoğu zaman önce algoritmayı tanımlar, sonra key'i veya plaintext'i çıkarırız.
Bu yüzden ciphertext'in yapısını incelemek çok önemlidir.


🔎 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:

Tüm shift değerlerini denemek en doğru yaklaşımdır.
Örneğin:

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:

Atbash denemek çok ucuz bir kontroldür.
Özellikle challenge açıklamasında:

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:

Brute-force + frequency analysis
çok etkilidir.


🔡 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:

Dil istatistiklerini korumalarıdır.
İngilizcede örneğin bazı harfler diğerlerinden çok daha sık görülü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:

Key uzunluğunu bulmak.
Bunun için:

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:

Index of Coincidence (IoC)
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.

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:

Harfler değişmez, yerleri değişir.
Örneğin plaintext:

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ı​

pairs
digraph
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:​

matrix
linear 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:​

AABBA
ABBAB
...

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:

Polybius Square
kontrol edilebilir.


🔢 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:​

Substitution
Transposition

gibi yöntemler düşünülebilir.

Frekans ciddi şekilde değişiyorsa:​

Polyalphabetic substitution
Vigenère

gibi yöntemler düşünülebilir.

Harfler aynı ama sıraları garipse:​

Transposition

düşü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 substitution
Caesar
Affine

Kısmen işe yarar:​

Vigenère

Burada önce key length belirlemek gerekir.

Pek işe yaramaz:​

One-Time Pad
Modern 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 ipucuROT13
Ters alfabeAtbash
C = aP+b mod 26Affine
Tek harf → tek harf eşleşmesiSubstitution
Belirgin harf frekanslarıFrequency Analysis
Tekrarlanan key benzeri yapıVigenère
Vigenère + tekrarlarKasiski
Vigenère + istatistikIndex of Coincidence
Harfler doğru ama sıra bozukTransposition
Zig-zagRail Fence
Tablo/sütunColumnar Transposition
Digraph / 5×5Playfair
Matrix / determinantHill
1–26 sayılarıA1Z26
İkili özellik / 5'li gruplarBacon
2 basamaklı koordinatlarPolybius
Modüler tersExtended Euclid
Bilinen plaintextKnown 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:

Brute-force yapmak her zaman kötü değildir.
Caesar'da 26 ihtimali denemek son derece mantıklıdır.

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​

Caesar
Vigenè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:

🔐 “Bu ciphertext hangi algoritmanın izlerini taşıyor?”
sorusudur.

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

 
Yanıt yazmak için giriş yapmalısınız
Forum özelliklerini kullanmak ve Level 2 üyelik satın almak için hesabınıza giriş yapın.
136,879Threads
3,309,124Messages
328,726Members
rootbabax1Latest member
Top Bottom