Tüm makaleler

Metin frekans analizi: kelime tekrarlarını saymak neden işe yarar

Metin frekans analizi, her kelimenin veya karakterin bir metinde kaç kez göründüğünü sayar. Türkçede bu iş, sıradan görünen bir programlama hatasıyla da yakından ilişkilidir: ünlü "Türkçe I problemi."

Türkçe I problemi: harf frekansını neden bozabilir

Türkçede büyük "İ" küçük harfte noktalı "i" olur, büyük harf "I" ise küçük harfte noktasız "ı" olur — İngilizce ve birçok programlama dilinin varsaydığı basit "I" ↔ "i" eşlemesinden farklıdır. Sistem yerel ayarı (locale) doğru ayarlanmamış bir yazılımda büyük/küçük harf duyarsız frekans analizi çalıştırıldığında, "I" ve "ı" ya da "İ" ve "i" beklenmedik şekilde birbirinden ayrı ya da birleşik sayılabilir — bu, yıllardır bilinen ve gerçek üretim hatalarına yol açmış klasik bir yazılım tuzağıdır.

Harf frekansı ve klasik kriptanaliz

Doğal dillerde harfler eşit olmayan bir sıklıkla görünür — Türkçe metinde "A" harfi, sesli uyumu kuralı ve birçok ekin "-a"/"-e" ile bitmesi nedeniyle oldukça sık görünür. Basit yerine koyma şifreleri (ROT13 veya klasik Sezar şifresi gibi) bu frekans dağılımını değiştirmez, yalnızca hangi harflerin hangilerine karşılık geldiğini yeniden düzenler.

Şifreli metni orijinal dağılımla karşılaştırmak

Şifreli bir metnin frekans dağılımını orijinal dilin bilinen dağılımıyla karşılaştırarak, karakter eşlemesi geri kazanılabilir ve olası tüm anahtarları denemeden şifre kırılabilir — ancak bu yöntem büyük/küçük harf dönüşümünün Türkçede standart olmadığını unutmadan, harfleri tutarlı bir şekilde normalleştirmeyi gerektirir.

Buna neden ihtiyaç duyulur

  • Uzun bir belgenin ana konularını en sık kullanılan kelimelerinden hızlıca kavramak.
  • Bir metni doğal harf dağılımı açısından kontrol etmek (eğitim amaçlı kriptografi alıştırmaları).
  • Türkçeye özgü İ/ı ayrımının büyük/küçük harf duyarsız analizi nasıl etkileyebileceğini anlamak.

Zipf yasası

Doğal dillerde bir kelimenin sıklığı, azalan sıklığa göre sıralanmış listedeki sırasıyla ters orantılıdır: en sık geçen kelime, ikinci en sık geçen kelimeden yaklaşık iki kat, üçüncüsünden üç kat daha sık geçer, ve böyle devam eder. Bu düzenlilik (Zipf yasası) sıradan bir metin için o kadar tutarlıdır ki, ondan belirgin bir sapma bir sinyaldir: metin yapay olarak üretilmiş, anahtar kelimelerle aşırı doldurulmuş (spam) veya beklenenden farklı bir dilde yazılmış olabilir.

Aracı dene