İSPAT 101+ | 90 GÜNDE EZBER BOZAN MATEMATİK DERSLERİ YAYINDA!

UDEMY KURSUNU SATIN ALMAK İÇİN TIKLAYINIZ!


"Bir matematikçi sanmaz fakat bilir, inandırmaya çalışmaz çünkü ispat eder."

- Jules Henri Poincaré (1854-1912)


Birçok öğrenci matematik dersinden nefret etmektedir. Bu nefretin temel sebebi matematiğin zor bir ders olmasıdır ki gerçekten de matematik çok zordur. Fakat, matematiğin sevilmemesindeki asıl neden bundan başkadır. Matematiğe karşı duyulan büyük nefretin esas nedeni, aslında çoğu öğrencinin gerçek matematikle tanışmamış olmasıdır. Dolayısıyla matematik yapamıyorum diyen öğrencilerin hiçbiri yapamadıkları şeyin matematik olmadığının farkında olmamakla birlikte, matematik yapabiliyorum diyen öğrencilerin de pek çoğu yapabildikleri şeyin matematik olmadığını bilmiyor.

Matematik disiplini, size muhtemelen önceliği hesaplama olacak şekilde öğretildi. Fakat matematiğin uygulamalarından çok, teorik olan başka bir tarafı var. Her şeyden önce, matematiğin temeli önermeler mantığına dayanır. Ağzınızdan çıkan bir hükmün neden doğru veya neden yanlış olduğunu açıklamanızı sağlayan bu güçlü aracı, hâkim karşısında suçsuz olduğunuzu ispat etmek için kullanabileceğiniz gibi matematiksel önermelerin doğruluğunu ispatlamak veya yanlışlığını göstermek için de kullanabilirsiniz.

Matematikte şu ana kadar öğrenip kullandığınız her şey, matematiğin bu teorik kısmı üzerine inşa edilmiştir. Örneğin bir dik üçgenin hipotenüs uzunluğunu bulmak için Pisagor teoremini kullanmışsınızdır ve muhtemelen Pisagor teoreminin neden doğru olduğu üzerinde durmaktan çok onun uygulamasını, hesaplamasını ele almışsınızdır. Hatta belki de bunun üzerine yüzlerce, binlerce test sorusu çözmüşsünüzdür. Bu noktada kendinize bazı soruları sormanız gerekmektedir:

  • Bu teoremin doğru olduğunu nereden biliyorsunuz?

  • Öğretmeninizin size her zaman doğruyu öğrettiğine güvenebilir misiniz?

  • Kendinizi, beni veya herhangi birini bu teoremin doğru olduğuna nasıl ikna edebilirsiniz?

  • İkna etme yolunda kullanacağınız ispat yöntemlerinin neden doğru olduğunu düşünüyorsunuz?

  • Sadece hesaplama yeteneğinizi geliştirerek veya test soruları çözerek yeni matematiksel çıkarımlar yapmanız mümkün mü?

İşte bütün bu sorulara ikna edici yanıtlar vermenizi ancak önermeler mantığı sağlayacaktır. "İSPAT 101+" kursu, bir matematikçi gibi düşünmenizi, önermeler ispatlamanızı veya çürütmenizi, yaptığınız matematiği en iyi şekilde yazıya dökebilmenizi, hatta yeni teoremler ortaya koyabilmenizi sağlayacak matematiksel mantık arka planını size en iyi şekilde öğretecektir.

Kursun konsepti, 90 günlük özel ders formatı ile sizi temel matematik seviyesinden olimpiyat seviyesinde matematik yapma seviyesine çıkarmak üzerine hazırlanmıştır. Teori ve uygulama ders videoları; kendinizi sınayabileceğiniz 29 mini egzersiz, 15 ödev ve 1 matematik olimpiyat denemesi ile desteklenerek eşsiz bir matematik kursu sizlere en faydalı olacak şekilde ve büyük bir özveriyle hazırlanmıştır.

Kursun ana başlıkları şu şekildedir:

  • Kümeler Teorisi ve Önermeler Mantığı: Kümeler ve önermeler hakkında en temel ve gerekli teorik bilgiler ile gerçek matematiği öğrenmeye en temelden başlama.

  • İspat Yöntemleri: Önermelerin neden doğru olduklarını ispat edebilmenizi sağlayan yöntemler ve teorik arka planı. Doğrudan İspat, Dolaylı İspat, Olmayana Ergi (Çelişkiye Varma) ile İspat, Varlık-Teklik İspatları, Küme İspatları, Aksini İspat, Tümevarımla İspat, Çift Yönlü Koşullu Önermeler ve Eş Değer Önermelerin İspatı.

  • Seviye Yükselten İspatlar: Geometri, Cebir ve Sayılar Teorisi, Analiz ve Kombinatorik üzerine konu anlatımı ve ispat problemleri ile kendinizi olimpiyat seviyesine çıkarmanızı sağlayacak ve bir yandan da güzel ispat yazma sanatını öğreneceğiniz yoğun ispat uygulamaları.

  • Dünya Çapında Matematik Olimpiyatları Problemleri: Birçok ülkenin matematik olimpiyat yarışmalarında sorulan seçmece problemler.

  • Matematik Olimpiyatları Denemesi: En temelden yapmayı öğrenmeye başladığınız gerçek matematiği olimpiyat seviyesinde bir uygulama ile sonlandırarak eğitimi tamamlama.

Uzun lafın kısası, bu eğitim size gerçek matematiği tanıtmak ve onu yapmayı öğretmek için yoğun kapsamlı bir şekilde hazırlandı. Eğer amacınız matematikte analitik düşünme, çıkarım yapma, ispatlama ve aktarma yeteneğinizi artırarak kendinizi geliştirmekse ve bunun için istikrarlı bir şekilde çalışmaya hazırsanız, gerçek matematiğin ezber bozan dünyasına hoş geldiniz!

Bu kursun amacının size çeşitli sınavlarda daha iyi matematik sorusu çözdürerek yüksek notlar almanızı sağlamak olmadığını hatırlatmak isterim. Gerçek matematiğin çok zor ama yine de çok güzel olduğunu unutmayın. Önemli olan iyi matematik sorusu çözebilmek değil, kendinizi matematikte sürekli geliştirmeye devam etmenizdir.

Hepinize başarılar dilerim.


UDEMY KURSUNU SATIN ALMAK İÇİN TIKLAYINIZ!

Kriptoloji Serisi - 4: Scytale Sarmalı Şifrelemesi


28/02/2024

Merhaba, tekrar hoş geldiniz. Hazırsanız başlayalım!


Şimdi birlikte tarihin ilk kriptografik cihazı olarak anılan "Scytale (veya Skytale) Sarmalı" yöntemini ele alacağız. Scytale sarmalı, milattan önce 500'lü yıllarda yapılan Peloponez Savaşlarında Spartalılar tarafından Atinalılara karşı kullanılmıştır.




Şimdi şifreleme yönteminin detaylarını ele alalım:


Şifreleme: Şerit sarmala sarılır ve düz metin satırlar boyunca yazılır. Şerit açılınca şifreli metin elde edilir.

Şifre Çözme: Üzerinde şifreli metin olan şerit, aynı boyutlardaki sarmala sarılarak düz metne ulaşılır.


Not: Scytale sarmalı, dikkat edeceğiniz üzere bir "yer değiştirme" yöntemi örneğidir. Çünkü düz metnin harfleri kendi arasında sarmala göre sıralanacaktır. 

Not: Burada sarmalın boyutları veya şeridin sarmala toplam sarım sayısı anahtar olarak düşünülebilir. Çünkü şifreli metni taşıyan bir şeridi farklı boyutlarda bir sarmala sarılması sonucunda (sarım sayısı da değişeceğinden) düz metin doğru bir şekilde elde edilemeyecektir. Biz anahtar olarak şeridin sarmala sarım sayısını tercih edeceğiz, bu daha anlaşılır olacaktır.


Örnek (Şifreleme): Alice, Bob'a "GİZLİ BULUŞMA YEDİDE KONGRE MERKEZİNDE" düz metnini Scytale sarmalı yöntemiyle şifreleyip iletecektir. Şifreleme işlemini sarmala 6 turda sarılmış şerit üzerinde yapacaktır (anahtar = sarım sayısı = 6). Buna göre Alice, aşağıdaki şekilde şifreleme işlemini yapar:



Bu çizim üzerinde tüm metni göstermek zor. Sarmal olmadan, kâğıt üstünde şifreleme yapmanın basit yolu, sarım sayısı kadar sütun içeren basit bir tablo üzerinde şifreleme yapmaktır:



Dikkat edilirse, son satırda doldurma harfleri kullanılması gerekmiştir. Çünkü,
  • Düz metnin harf sayısı = 34
  • Anahtar (sarım sayısı) = 6
  • 34'ü 6'ya bölersek bölüm 5, kalan 4
  • --> SATIR SAYISI = bölüm+1 = 5+1 = 6 (kalan 0 olmadığı için +1 ekledik, eğer kalan 0 olsaydı satır sayısı = bölüm olacaktı)
  • --> DOLDURMA HARFİ SAYISI = sarım sayısı-kalan = 6-4 = 2

Böylece şerit sarmaldan ayrıldığında aşağıdaki şekilde bir görüntü oluşacaktır:



Dolayısıyla şifreli metin "GUYKMİİLEOENZUDNRDLŞİGKEİMDREXBAEEZX" şeklinde bulunur (sarımların ardışıklığından, yani yukarıda oluşturduğumuz tabloda sıra sıra sütunları okuyarak elde edeceğimiz metindir). Alice, Bob'a bu metni içeren şeridi veriyor.

Örnek (Şifre Çözme): Bob, Alice'ten "GUYKMİİLEOENZUDNRDLŞİGKEİMDREXBAEEZX" şifreli metnini içeren şeridi almıştır. Ayrıca bu şifreli metnin Scytale sarmalı ile oluşturulduğunu ve şeridin sarım sayısının (yani anahtarın) 6 olduğunu biliyor (ya da, Alice'in kullandığı sarmalın bir eşi de Bob'da vardır diyebiliriz). O halde Bob, bu şeridi sarım sayısı 6 olacak şekilde bir sarmala sarar ve metni satır satır okursa "GİZLİ BULUŞMA YEDİDE KONGRE MERKEZİNDE" düz metnine ulaşır. Dikkat ediniz ki,
  • Şifreli metnin harf sayısı = 36
  • Anahtar (sarım sayısı) = 6
  • --> SATIR SAYISI = 36/6 = 6
  • --> Şifreli metin, 6 (= satır sayısı) harfli bloklara ayrılırsa sarımlar elde edilmiş olur ve böylece düz metne ulaşılabilir:
    • "GUYKMİ" --> 1. SARIM
    • "İLEOEN" --> 2. SARIM
    • "ZUDNRD" --> 3. SARIM
    • "LŞİGKE" --> 4. SARIM
    • "İMDREX" --> 5. SARIM
    • "BAEEZX" --> 6. SARIM
PYTHON KODU

Bu kodu kopyalayıp OnlineGDB (https://www.onlinegdb.com) sitesinde çalıştırabilirsiniz: 

https://github.com/altugbeyhan/KriptolojiBlogSerisi/blob/main/Ders4-Scytale.py

ÇIKTI:

ŞİFRELİ METİN: GUYKMİİLEOENZUDNRDLŞİGKEİMDREXBAEEZX

DÜZ METİN: GİZLİBULUŞMAYEDİDEKONGREMERKEZİNDEXX


Siz de deneyin! "İSTİKBAL GÖKLERDEDİR" düz metnini Scytale sarmalına 4 turda sarılmış şerit üzerinde şifreleyin. Ardından elde ettiğiniz şifreli metni deşifre ediniz. Ayrıca gerçek hayatta da bu şifrelemeyi mutlaka deneyin.


Bir sonraki yazıda görüşmek üzere!

Kriptoloji Serisi - 3: Yerine Koyma (İkame) Şifrelemesi


27/02/2024 

Merhaba, hoş geldiniz. Hazırsanız hemen başlayabiliriz!


Bir önceki yazıda "yer değiştirme" kavramını ele almıştık. Şimdi "yerine koyma (ikame)" kavramına bakalım. Yer değiştirme şifrelemesinde şifreli metnin düz metnin harflerinin sıralanması ile elde edildiğini hatırlayınız. Yerine koyma şifrelemesinde ise şifreli metinde düz metinde olmayan harfler bulunabilmektedir. Yöntem, her bir harfin başka bir harf ile değiştirilmesi esasına dayanır. Şimdi detaylıca ele alalım.


Yerine Koyma (İkame) Şifrelemesi (Substitution Cipher): Bir alfabenin her bir harfine karşılık, anahtar tarafından belirlenen başka bir harf atanır. Yerine koyma yöntemlerini basitçe üçe ayırabiliriz:


1) Tekli Alfabetik Yerine Koyma (Monoalphabetic Substitution Cipher): Alfabedeki her bir harf, bir ve yalnız bir harf ile eşlenir. Dolayısıyla, düz metindeki özdeş karakterlerin şifrelenmesi sonucu aynı karakter elde edilir. Benzer şekilde, şifreli metindeki özdeş karakterlerin deşifresi sonucunda da aynı karaktere dönülür. Tarihten bazı örnekleri şunlardır:

  • Temura - Atbeş, Avgad ve Albam (Temurah - Atbash, Avgad and Albam)
  • Sezar (Caesar)
  • ROT13
  • Alberti
  • Afin (Affine)


Örnek (Şifreleme): Alice, "MATEMATİK" düz metnini aşağıdaki Q klavye üzerinde her bir harfi bir sağındaki ile şifreleyecektir (yalnızca harfler ile şifreleme işlemi yapıldığını, diğer tuşların görmezden gelindiğini varsayalım).




Yukarıdaki "Q klavye" ve "bir sağındaki" karakter ile şifreleme işleminin bu algoritmada anahtar görevi gördüğüne dikkat edelim. Anahtarı K=(Q,1) şeklinde ifade edebiliriz.

Her ne kadar klavye üzerinde görmesi kolay olsa da, bir atama tablosu çıkarmayı görmekte fayda var. Aşağıdaki atama tablosu aracılığıyla şifreleme yapabilir ve çözebilirsiniz (1. satır düz metin karakterlerini, 2. satır ise eşlenen şifreli metin karakterlerini göstermektedir):



Bundan faydalanarak düz metni aşağıdaki şekilde şifreleyebiliriz:

M --> Ö
A --> S
T --> Y
E --> R
M --> Ö
A --> S
T --> Y
İ --> A (sağında harf olmadığı, yani taştığı için en soldaki harf ile eşlendi)
K --> L

Böylece Alice şifreli metni "ÖSYRÖSYAL" olarak bulur (dikkat edin, düz metinden bambaşka harfler ortaya çıktı). Alice bu metni Bob'a gönderir.

Örnek (Şifre Çözme): Bob, Alice'ten "ÖSYRÖSYAL" şifreli metnini almıştır. Bob, Alice'in yukarıdaki klavyeyi kullandığını ve her karakteri bir sağındaki ile şifrelediğini bilmektedir. O halde Bob da aynı klavyeyi kullanarak ve her karakteri "bir solundaki" ile eşleyerek düz metne dönebilir:

Ö --> M
S --> A
Y --> T
R --> E
Ö --> M
S --> A
Y --> T
A --> İ (solunda harf olmadığı, yani taştığı için en sağdaki harf ile eşlendi)
L --> K

O halde Bob düz metni "MATEMATİK" olarak elde eder. 

Not: Oluşturulan bu yerine koyma yöntemi tekli alfabetiktir. Çünkü dikkat edilirse her bir harf, bir ve yalnız bir harf ile eşlenmiştir. Örneğin, düz metindeki tüm "M" harflerinin yerine şifreli metinde "Ö" konmuştur. Benzer şekilde, şifreli metindeki tüm "Y" harflerinin düz metinde karşılığı "T" harfidir. Çoklu alfabetik yerine koyma yöntemlerinde ise aynı harfin birden fazla harf ile eşlenebildiğini göreceğiz.

M  A  T  E  M  A  T  İ  K
Ö  S  Y  R  Ö  S  Y  A  L

PYTHON KODU
ÇIKTI

ŞİFRELİ METİN: ÖSYRÖSYAL
DÜZ METİN: MATEMATİK

Siz de deneyin! "MATEMATİK" düz metnini bu sefer aşağıdaki "F klavye" üzerinde ve harfleri "2 harf solundaki" ile eşleyerek şifreleyin. Yani anahtar bu sefer K=(F,-2) olacak. Atama tablosunu kendiniz oluşturmayı ayrıca deneyin.





2) Çoklu Alfabetik Yerine Koyma (Polyalphabetic Substitution Cipher): Tekli alfabetik yerine koymada her harf bir ve yalnız bir harf ile eşleniyordu. Çoklu alfabetik yerine koymada ise alfabedeki her bir harf, birden fazla harf ile eşlenir. Yani düz metindeki özdeş karakterlerin şifrelenmesi sonucu farklı karakterler elde edilebilir. Benzer şekilde, şifreli metindeki özdeş karakterlerin deşifresi sonucunda da farklı karakterlere dönülebilir. Tarihten bazı örnekleri şunlardır:
  • Trithemius
  • Bellaso
  • Vigenère
  • Otomatik Anahtar Şifrelemesi (Autokey/Autoclave Cipher)
  • Çalışan Anahtar Şifrelemesi (Running Key Cipher)

Örnek (Şifreleme): Alice, Bob'a "ASLA ASLA DEME" düz metnini şifreleyip iletmek istiyor. Bunun için öteleme anahtarını K=(1,2,3) olarak seçiyor. Bu anahtarı, şifreleme işleminde düz metindeki harfleri sırasıyla 1, 2, 3, 1, 2, 3, ... şeklinde ileriye ötelemek için kullanacaktır. O halde Alice, düz metni aşağıdaki şekilde şifreler:



Böylece Alice, şifreli metni "BTOBCUMCGFOĞ" olarak elde eder. Dikkat edilirse düz metindeki A harfleri hem B hem de C şeklinde şifrelenmiştir. Benzer şekilde, şifreli metindeki O harfi ise hem L hem de M harfi olarak deşifre edilecektir. Alice bu metni Bob'a gönderir. Bu sebeple bu şifreleme yöntemi "çoklu yerine koyma" olarak anılır.

Örnek (Şifreleme): Bob, Alice'ten "BTOBCUMCGFOĞ" şifreli metnini almıştır. Ayrıca öteleme anahtarının K=(1,2,3) olduğunu biliyor. O halde Bob, şifreli metni deşifre etmek için harfleri sırasıyla 1, 2, 3, 1, 2, 3, ... şeklinde geriye öteleyecektir:



ÇIKTI

ŞİFRELİ METİN: BTOBCUMCGFOĞ
DÜZ METİN: ASLAASLADEME

Siz de deneyin! Sevdiğiniz bir sözü K=(1,9,2,3) anahtarı ile, düz metnin harflerini sırasıyla 1, 9, 2, 3, 1, 9, 2, 3, ... ileri öteleyerek şifreleyiniz. Ardından, elde ettiğiniz şifreli metni çözerek düz metne ulaşınız.

3) Çoklu Harfle Yerine Koyma/Blok Şifreleme (Block Cipher): Bu yerine koyma yönteminde düz metin bloklar halinde temsil edilir ve şifreleme işlemi bloklar ile gerçekleştirilir. Blok şifreleme yöntemlerinde bloklar, sıklıkla lineer cebrin yapı taşı olan matrisler ile ilişkilendirilir. Tarihten bazı örnekleri şunlardır:
  • Polybius
  • ADFGX ve ADFGVX
  • VIC
  • Playfair
  • İkili Blok (Bifid Cipher)
  • Üçlü Blok (Trifid Cipher)
  • Dört Kare (Four-square Cipher)
  • Hill 
  • Afin Hill (Affine Hill Cipher)
  • Veri Şifreleme Standardı (DES - Data Encryption Standard)
  • Gelişmiş Şifreleme Standardı (AES - Advanced Encryption Standard)

Örnek: Bir önceki örnek blok şifreleme olarak da değerlendirilebilir. Çünkü anahtar K=(1,2,3) olduğu için metni üç harfli bloklara ayırıp her bir bloğu ayrı ayrı şifrelemiş olduk aslında. Blok şifrelemeyi şu şekilde görebiliriz (matris ifadesiyle):

(Şifreleme)

DÜZ METİN: "ASLA ASLA DEME"
DÜZ METİN BLOKLARI: "ASL", "AAS", "LAD", "EME"
ANAHTAR: (1,2,3)


ŞİFRELİ METİN: "BTOBCUMCGFOĞ"

(Şifre Çözme)

ŞİFRELİ METİN: "BTOBCUMCGFOĞ"
ŞİFRELİ METİN BLOKLARI: "BTO", "BCU", "MCG", "FOĞ"
ANAHTAR: (1,2,3)


DÜZ METİN: "ASLA ASLA DEME"

Bir önceki örnekte her harfin nasıl şifrelendiğini gördük. Mesela ilk A harfi, B şeklinde şifrelenmişti. Bu örnekte ise aslında bloklar şifreleniyor gibi görmeliyiz. Dolayısıyla "ASL" bloğu "BTO", "AAS" bloğu "BCU", "LAD" bloğu "MCG" ve "EME" bloğu ise "FOG" şeklinde şifrelendi. Burada harf bazında değil, gördüğünüz üzere blok bazında şifreleme işlemi yapıldı. Çoklu alfabetik yerine koyma yöntemiyle çok daha net ayrışan örnekleri gelecekte ele alacağız. Blok şifreleme başlı başına bir konu, detaylıca inceleyeceğiz. Şimdilik bu kadar yeterli olacaktır. 

Umarım faydalı olmuştur. Bir sonraki yazıda görüşmek üzere!

Kriptoloji Serisi - 2: Yer Değiştirme Şifrelemesi


26/02/2024

Merhaba, tekrardan hoş geldiniz! 

Umarım ilk yazım kriptolojinin temel terminolojisini size iyi bir şekilde tanıtmıştır. Artık ufaktan şifrelemeye ve şifre çözmeye başlıyoruz, fakat tarihten özel algoritma örneklerini incelemeye hemen başlamak yerine başlangıçta önemli temel kavramların oturtulması üzerine daha çok çalışacağız. 

Gelecekteki yazılarda birçok algoritma örneğini inceleyeceğiz, ancak bahsettiğim kavramların anlaşılması ile bu çok daha kolay olacaktır. Bu yüzden ilk yazılarda kavramsal bir başlangıç yapmayı uygun gördüm.

Hazırsanız, kaldığımız yerden devam edelim. Buradan itibaren anlatımlarımı kod parçacıkları ile destekleyeceğim. Tüm kodlara aşağıdaki GitHub deposundan erişebilirsiniz:

https://github.com/altugbeyhan/KriptolojiBlogSerisi/


Yer Değiştirme Şifrelemesi (Transposition/Permutation Cipher): Düz metnin harflerinin kendi içinde sıralanması ilkesine dayanır. Harflerin nasıl sıralanacağını sıralama anahtarı belirler. Aşağıda bazı yer değiştirme yöntemleri verilmiştir (bu yöntemlerin bazılarına sonraki yazılarda değineceğiz):

  • Scytale Yöntemi (Scytale Cipher)
  • Rota Yöntemi (Route Cipher)
  • Zikzak Yöntemi (Rail Fence Cipher)
  • Sütun Yöntemi (Columnar Transposition Cipher)
  • Myszkowski Yöntemi (Myszkowski Transposition Cipher)
  • Çift Yer Değiştirme Yöntemi (Double Transposition Cipher)


Şimdi, yer değiştirme şifrelemesinin mantığını veren iki adet örneği inceleyelim.


Örnek 1 (Şifreleme): Alice, "VERİ" düz metnini yer değiştirme ile K=(3421) sıralama anahtarını kullanarak şifrelemek istiyor. Bunun için düz metnin harflerini sayılar ile

V    E    R    İ

1    2    3    4

şeklinde eşleyecektir. Ardından, eğer Alice harflerin yerini anahtara göre değiştirirse

R    İ    E    V

3    4    2    1

olur. Dolayısıyla şifreli metin "RİEV" şeklinde bulunur. Alice bu metni Bob'a gönderiyor.

Örnek 1 (Şifre Çözme): Bob, Alice'ten "RİEV" metnini aldı. Ayrıca bu metnin yer değiştirme ile K=(3421) sıralama anahtarının kullanılarak elde edildiğini biliyor. O halde Bob, bu metnin harflerini sayılar ile

R    İ    E    V

3    4    2    1

şeklinde eşleyecektir. Böylece, düz metni elde etmek için harfleri (1234) şeklinde sıralarsa

V    E    R    İ

1    2    3    4

düz metnini elde edecektir.


Bu oldukça basit bir örnekti. Şimdi benzer bir örneği daha uzun bir metin ile ele alalım.


Örnek 2 (Şifreleme): Alice, "İSTANBUL TEKNİK" metnini yer değiştirme ile K=(35214) sıralama anahtarını kullanarak şifrelemek istiyor. Bunun için, öncelikle metni beş harfli bloklara ayırmalıdır (genellikle boşlukları ihmal edip düz metni boşluksuzmuş gibi görmeyi tercih edeceğiz):

İSTAN    BULTE    KNİK_

Görüldüğü üzere beş harfli bloklara ayırma işleminde son grubun harf sayısı beşten az olabilmektedir. Alice, bu eksikliği gidermek için doldurma (padding) işleminden yararlanacaktır. Bu işlem ile son blokta boş kalan yerlere rastgele harfler atanır:

İSTAN    BULTE    KNİKX

Burada X yerine herhangi bir karakter yazılabilir. Yapılan bu işleme doldurma denir ve özellikle blok şifreleme algoritmalarında sıkça kullanılan bir işlem olduğundan bu örnekte yer verdim. Devam edelim.

Şimdi Alice, her bir bloğu K=(35214) sıralama anahtarını kullanarak şifreleyecek:



Böylece Alice, "TNSİALEUBTİXNKK" şifreli metnini elde etmiştir. Alice bu metni Bob'a gönderiyor.

Örnek 2 (Şifre Çözme): Bob, Alice'ten "TNSİALEUBTİXNKK" şifreli metnini aldı. Bob bu metnin yer değiştirme ile K=(35214) sıralama anahtarı kullanılarak elde edildiğini biliyor. O halde Bob, bu metni beş harfli bloklara aşağıdaki şekilde ayıracak ve ardından her bir bloğu (12345) şeklinde sıralayarak düz metne ulaşacaktır:



Böylece Bob, "İSTANBUL TEKNİK" düz metnine ulaşır.


PYTHON KODU

Bu kodu kopyalayıp OnlineGDB (https://www.onlinegdb.com) sitesinde çalıştırabilirsiniz: 

https://github.com/altugbeyhan/KriptolojiBlogSerisi/blob/main/Ders2-YerDegistirme.py

ÇIKTI:

ŞİFRELİ METİN: TNSİALEUBTİXNKK

DÜZ METİN: İSTANBULTEKNİKX


Şimdi siz deneyin! Adınız soyadınızı yer değiştirme ile K=(321) sıralama anahtarını kullanarak şifreleyin. Ardından, elde ettiğiniz şifreli metni çözerek tekrar adınız soyadınıza ulaşın (Bu örneği önce mutlaka elle yapınız, daha sonra kod ile teyit edebilirsiniz).


Not: Yer değiştirme şifrelemesinde dikkat edilmesi gereken, düz metnin karakterlerinin yalnızca kendi içinde sıralandığı, başka karakterler ile değiştirilmediğidir. Başka karakterlerle değiştirme işlemi, "yerine koyma" altında bir sonraki yazıda ele alınacaktır.


Bir sonraki yazıda görüşmek üzere!

Kriptoloji Serisi - 1: Temel Kriptoloji Terminolojisi ve Kitap Tavsiyeleri


25/02/2024

Herkese merhaba!

Serinin ilk yazısında temel kriptoloji terminolojisini tanıtacağım. Ayrıca literatürü kolaylıkla takip edebilmeniz adına kavramları İngilizceleriyle birlikte vereceğim. Yazının sonunda bazı kitap tavsiyelerim bulunmaktadır. Faydalı olmasını dilerim.

İsterseniz kriptoloji hakkında hazırlamış olduğum yoğun içerikli videoyu da izleyebilirsiniz: 

https://www.youtube.com/watch?v=_Xc84ISoG1w

Hazırsanız başlayalım!



Kriptoloji (Cryptology): Matematiğin gizli yazılar veya şifreli belgeler ile ilgilenen alt dalıdır (kısaca şifrelerin bilimi diyebiliriz). İki alt başlık altında incelenmektedir:

  • Kriptografi (Cryptography): Verilerin güvenli bir şekilde şifrelenmesi ile ilgilenir ve bu amaca yönelik çözümler önerir. 
  • Kriptanaliz (Cryptanalysis): Şifreli verilerin çözülmesi, kırılması ve önerilen çözümlerin güvenlik analizi ile ilgilenir.

Not 1: Kriptoloji kelimesinin yerine kriptografi kelimesinin kullanılabildiğini görebilirsiniz. Doğru kullanıma dikkat ediniz.

Not 2: Kriptoloji, hatta özellikle "kripto" kelimesini duyunca aklınıza ilk gelen kripto paralar oluyorsa bu normaldir. Şüphesiz bu alanın meşhur olmasında kripto paraların emeği büyük. Ancak yine de hatırlamakta fayda var, kripto paralar gücünü kriptolojiden almaktadır. https://www.cryptoisnotcryptocurrency.com sitesinin de söylediği üzere:

KRİPTO, KRİPTO PARA DEMEK DEĞİLDİR ಠ_ಠ
KRİPTOGRAFİYİ İFADE EDER

Not 3: Başlangıç aşamasında sade bir giriş olması açısından kriptolojinin yalnızca "güvenli/şifreli iletişim (secure/encrypted communication)" yönünü ele almayı tercih edeceğiz. 

Kriptoloji Uygulamaları: Günümüzde kriptoloji, şifreli iletişimden çok daha fazlasıdır ve şifreli iletişim dışında da birçok farklı uygulaması bulunmaktadır. Ancak bu uygulamaları ve detaylarını gelecekteki yazılarda ele almak daha uygun olacaktır. Bazı uygulamalar aşağıda verilmiştir:
  • Dijital İmzalar (Digital Signatures)
  • Kimlik Belirleme (Identification)
  • Anahtar Kurulumu (Key Establishment)
  • Sır Paylaşımı (Secret Sharing)
  • Güvenlik Protokolleri (Security Protocols)
  • Dijital Para (Digital Currency)

Temel Şifreli İletişim Akışı Şeması: Aşağıdaki kavramları öğrenip şemayı anlamaya çalışınız.




  • Gönderici (Sender): Şifreli veriyi gönderen taraftır.
  • Alıcı (Receiver): Şifreli veriyi alan taraftır.
  • Şifreleme (Encryption): Bir veriyi anlaşılması zor bir forma çevirme işlemidir.
  • Şifre Çözme/Deşifreleme (Decryption): Şifreleme işlemi sonucunda elde edilen verinin tekrar eski ve anlaşılır haline çevrilmesi işlemidir.
  • Kriptosistem/Şifre (Cryptosystem/Cipher): Şifreleme ve şifre çözme işlemlerinde kullanılan algoritma veya algoritmalar bütünüdür.
  • Düz Metin (Plaintext): Şifreleme işlemi uygulanan veya şifre çözme işlemi sonucu elde edilen veridir.
  • Şifreli Metin (Ciphertext): Şifreleme işlemi sonucu elde edilen veya şifre çözme işlemi uygulanan veridir.
  • Anahtar (Key): Şifreleme ve şifre çözme işlemlerinde kullanılan sembol veya semboller dizisidir.

Bir Şifreli İletişim Örneği:
  • Ön anlaşma süreci: Alice ile Bob, şifreli iletişimi afin (affine) şifreleme algoritması altında K=(27,26) anahtarını kullanarak gerçekleştirmek üzere anlaşmışlardır. (Not: Afin şifreleme yönteminin detaylarını şu an için es geçip olaya sadece girdi-çıktı anlayışı ile yaklaşacağız. Sonraki yazılarda -afin şifreleme de dahil olmak üzere- bazı şifreleme algoritmalarını matematiksel detaylarıyla birlikte ele alacağız.)

  • Şifreleme işlemi: Alice, Bob'a "UMS OTUZ BEŞ" düz metnini şifreleyip göndermek istesin. Alice, düz metni afin şifreleme yöntemi altında K=(27,26) anahtarı ile şifrelediğinde "GÜK SHGZ UNİ" şifreli metnini elde etmiş ve ardından Bob'a bu şifreli metni iletmiştir.

  • Şifre çözme işlemi: Bob, Alice'ten "GÜK SHGZ UNİ" şifreli metnini almıştır. Bob, K=(27,26) anahtarını kullanarak şifre çözme işlemini yapar ve "UMS OTUZ BEŞ" düz metnine ulaşır. Böylece şifreli iletişim gerçekleşmiş olur.

Özetle,
  • Düz Metin: "UMS OTUZ BEŞ"
  • Kriptosistem/Şifre: Afin Şifreleme
  • Anahtar: (27,26)
  • Şifreli Metin: "GÜK SHGZ UNİ"
Not: Şifre ve şifreli metin kavramları arasındaki farka dikkat ediniz.

Şimdilik terminolojiyi tanımak adına bu kapalı örnek yeterli olacaktır, ancak bu terminolojiyi hep kullanacağımızı belirtmek isterim. Ele alacağımız açık örneklerle bu kavramlar çok daha net anlaşılacaktır.

Kriptoloji Öğrenmek İçin Bazı Kitap Tavsiyeleri: Burada önerdiğim kitaplar dışındaki kitapları da araştırabilirsiniz. İşte benim tavsiyelerim (benim açımdan bu kitaplar kriptoloji alanında ilk üç sıradadır):
  • Prof. Dr. Gülçin Çivi Bilir - Caesar'ın Anahtarı: Geçmişten Günümüze Klasik Şifreleme Yöntemleri (İTÜ Yayınevi)
    • Bu kitabın yeri, 2 yıl süren yazım sürecine matematik bölümünden sınıf arkadaşım İlayda Altınkol ile yoğun çalışmalar yaparak katkı sağlamış olmamız (mizanpaj, grafik tasarım, olimpiyat düzeyinde soru yazımı vb.) açısından bende apayrıdır. Bir araştırma kitabı niteliği taşımakla birlikte 40 klasik şifreleme algoritmasını matematiksel detaylarıyla içeren oldukça kapsamlı ve edebi yönü güçlü bir kitaptır. Bu açıdan kitabın bu alandaki önemli bir boşluğu kapattığını düşünüyorum. 
    • Kitap hakkında detaylı bilgi: https://ituyayinevi.itu.edu.tr/yayinlar/caesarinanahtari
    • Tanıtım videosu: https://www.youtube.com/watch?v=v2D7TUQ102w



  • Simon Singh - Şifre Kitabı: Antik Mısır'dan Kuantum Bilgisayarlara Gizlilik Bilimi (Buzdağı Yayınevi)



  • Wade Trappe, Lawrence Washington - Introduction to Cryptography with Coding Theory (Pearson Education)



Umarım faydalı olmuştur. Bir sonraki yazıda görüşmek üzere!

KLASİKTEN KUANTUMA ŞİFRELEME BİLİMİ (KRİPTOLOJİ)



ELE ALINAN BAŞLIKLAR: TEMEL KRİPTOLOJİ KAVRAMLARI, KERCKHOFFS PRENSİBİ, SKYTALE SARMALI, CAESAR ALGORİTMASI, RAIL FENCE (ZİK ZAK) ALGORİTMASI, VIGENÈRE ALGORİTMASI, KABA KUVVET SALDIRISI, KLASİK BİLGİSAYARLAR, BİT KAVRAMI, KLASİK MANTIK KAPILARI, ASCII TABLOSU, STEGANOGRAFİ, EN AZ ANLAMLI BİT METODU (LSB), SİMETRİK VE ASİMETRİK ANAHTARLI ŞİFRELEME, VERİ ŞİFRELEME STANDARDI (DES), GELİŞMİŞ ŞİFRELEME STANDARDI (AES), RSA, KUANTUM BİLGİSAYARLAR, YOUNG ÇİFT YARIK DENEYİ, DOLANIKLIK VE SÜPERPOZİSYON, SCHRÖDİNGER'İN KEDİSİ, KÜBİT KAVRAMI, KUANTUM MANTIK KAPILARI, IBM KUANTUM BİLGİSAYARLARI, KUANTUM DEVRE TASARLAMA, SHOR ALGORİTMASI, KRİPTOLOJİNİN GELECEĞİ.