Yavuzlar
Ana sayfaTelegram
  • Yavuzlar
  • VulnLab
  • CodinLab
  • 📚EĞİTİM
    • PHP
      • XAMPP kurulumu
      • VS Code Kurulum
      • 1.0 PHP Nedir
      • 1.1 Dosya Oluşturma
      • 1.2 Syntax (Yazım Kuralları)
      • 1.3 PHP'de Echo ve Print
      • 1.4 PHP'deki yorumlar
      • 1.5 PHP Değişkenleri
      • 1.6 Operatörler (Operators)
      • 1.7 Veri Türünü Alma
      • 1.8 PHP'de String
      • 1.9 PHP'de Sabitler
      • 2.0 PHP'de If Else Elseif
      • 2.1 Switch Case
      • 2.2 PHP'de Döngüler
      • 2.3 PHP'de Diziler (Arrays)
      • 2.4 PHP'de Süper Global Değişkenleri
      • 2.5 PHP'de Cookie (Çerez) Ve Session (Oturum) Yöntemleri
      • 2.6 Form işlemleri
    • C++
      • 1.0 Temeller
        • 1.1 Dosya Oluşturma
        • 1.2 Syntax (Yazım Kuralları)
        • 1.3 Yorum Satırları
        • 1.4 C++ Değişkenleri
          • 1.4.1 Değişken Türleri
        • 1.5 Operatörler (Operators)
        • 1.6 Namespace
        • 1.7 Kullanıcı Girdisi (User Input)
        • 1.8 C++ Stringleri (C++ Strings)
        • 1.9 Matematik (Math) Fonksiyonları
        • 1.10 Booleans
        • 1.11 If Else
        • 1.12 Switch
        • 1.13 While Döngüsü
          • 1.13.1 Do While Döngüsü
        • 1.14 For Döngüsü
        • 1.15 Break/Continue
        • 1.16 Diziler
        • 1.17 Structures
        • 1.18 Enums
        • 1.19 References
        • 1.20 Pointers
      • 2.0 Fonksiyonlar
      • 3.0 Sınıflar
        • 3.1 OOP
        • 3.2 Sınıflar ve Objeler
        • 3.3 Sınıf Methodları
        • 3.4 Yapıcılar (Constructors)
        • 3.5 Erişim Belirleyicileri (Access Specifiers)
        • 3.6 Kapsülleme (Encapsulation)
        • 3.7 Inheritance
        • 3.8 Polimorfizm (Polymorphism)
        • 3.9 Dosyalar (Files)
        • 3.10 İstisnalar (Exceptions)
        • 3.11 Tarih ve Zaman (Date and Time)
      • 4.0 Veri Yapıları (Data Structures)
        • 4.1 Veri Yapıları ve STL
        • 4.2 Vektörler (Vectors)
        • 4.3 Listeler (Lists)
        • 4.4 Yığınlar (Stacks)
        • 4.5 Kuyruklar (Queues)
        • 4.6 Deque (Çift Uçlu Kuyruk)
        • 4.7 Küme (Set)
        • 4.8 Maps
        • 4.9 Iterator
        • 4.10 Algoritmalar
  • 🛠️ARAÇLAR
    • Aircrack-ng
    • Airgeddon
    • Arjun
    • BeEF
    • Bettercap
    • Docker
    • Gelişmiş Wireshark Kullanımı (Advanced Wireshark Usage)
    • Google Dorks
    • Hping3
    • John the Ripper
    • Metasploit Framework
    • Netcat
    • Nmap
    • OSINT Framework
    • PEASS-ng
    • Sublist3r
    • XSS Scanner
    • Wireshark
    • ZAP
    • HYDRA
  • 🖥️İŞLETİM SİSTEMLERİ
    • Linux101
    • MBR
  • 🔑KRİPTOLOJİ
    • Dijital Sertifika ve İmzalar
    • Sezar Şifrelemesi
    • Steganografi
    • Veri Şifreleme (Data Encryption)
  • 🔏Network
    • Domain Name Server (DNS)
    • Firewall Nedir? Nasıl Çalışır ?
    • Ortadaki Adam Saldırısı (Man In The Middle Attack)
    • OSI Modeli
    • Sanal Özel Ağlar (VPN)
    • World Wide Web (WWW)
  • 🔐PRIVILEGED
    • Docker Escape
  • 📨Protokoller
    • ARP
    • DHCP
    • FTP
    • HTTP/HTTPS
    • SSH
    • TCP/IP
    • UDP
    • Wİ-Fİ Güvenlik Protokolleri (WEP/WPA/WPA2/WPA3)
  • 💻SİBER TEHDİT İSTİHBARATI
    • Gelişmiş Siber Tehdit İstihbaratı Nedir?
  • 🔒WEB GÜVENLİĞİ
    • 403 ByPass
    • API Güvenliği (API Security)
    • Broken Access Control
    • Bulut Güvenliği (Cloud Security)
    • Command Injection
    • Cross Origin Resource Sharing
    • Cross Site Request Forgery (CSRF)
    • Cyber Kill Chain
    • DDoS Saldırıları
    • File Upload Zafiyeti Nedir?
    • HTTP Request Smuggling
    • Insecure Direct Object Reference (IDOR)
    • Incident Response
    • Local File Inclusion (LFI)
    • NoSQL Injection
    • Pentest 101
    • Race Condition
    • Server Side Request Forgery (SSRF)
    • Server Side Template Injection (SSTI)
    • Spring4Shell
    • Two Factor Authentication Bypass
    • XML External Entity Attack (XEE)
  • 🤖YAPAY ZEKA
    • ChatGPT for Hacking
    • Siber Güvenlik ve Yapay Zeka
    • Yapay Zeka ile Sahte Fotoğraf Tespiti
  • 🌐YAZILIM
    • Düzenli İfadeler (Regular Expressions)
    • Elasticsearch Nedir?
    • Front-end Teknolojileri
    • Golang'da Arayüzler (Interfaces)
    • Go'da Concurrency ve Uygulamaları
    • Güvenli Kodlama (Secure Coding)
    • Java Overloading vs Overriding
    • JSON Web Token (JWT)
    • Material-UI
    • NextJS Nedir?
    • ReactJS Kancalar (Hooks)
    • ReactJS Nedir?
    • Redux Toolkit
    • SOLID Yazılım Geliştirme Prensipleri
    • SQL 101
    • UI / UX Nedir?
    • Veri Taşıma Nedir? (Database Migration)
    • Versiyon Kontrol Sistemleri ve GIT
  • 🔷DİĞER
    • Bug Bounty (Hata Ödülü) Nedir?
    • Popüler Yazılımların Kurulumları
      • Ubuntu Server 24.04 LTS Kurulumu
      • Ubuntu için Güncel Docker Engine Kurlumu
    • Güvenlik Operasyonları Merkezi Nedir?
    • Honeypot (Bal Küpü)
    • IoT Güvenliği Nedir?
    • ShellShock Exploit
    • Yük Dengeleyici (Load Balancer) Nedir?
Powered by GitBook
On this page

Was this helpful?

  1. KRİPTOLOJİ

Sezar Şifrelemesi

PreviousDijital Sertifika ve İmzalarNextSteganografi

Last updated 4 months ago

Was this helpful?

Sezar şifreleme algoritmasının tarihçesi oldukça ilginç ve uzun bir geçmişe sahip. Bu algoritma, MÖ 60-50 yıllarında Roma İmparatoru Jül Sezar tarafından devlet haberleşmesinde kullanılmıştır. Sezar şifreleme yönteminin algoritması oldukça basittir. Ana mesajda bulunan herbir harfi mesajda belirtilen anahtar sayısı kadar ileri götürülerek şifreli mesaj oluşturulabilir. Örneğin, “MERHABA” kelimesi “ÖĞTJÇDÇ” olarak şifreleniyor.

Örnek; Sezar şifreleme algoritması için,

n= 3

Ham metin= Siber Vatan

Şifrelenmiş metin= Vlehu Ydwdq

Şimdi, Python ile Sezar şifreleme algoritmasını kodlayalım. Öncelikle, şifreleme işleminin nasıl çalıştığını inceleyelim.

sifrelenecekmesaj = "sibervatan"
sifrelimesaj = ''

alfabe = "abcdefghijklmnopqrstuvwxyz"

boyut = len(alfabe)
key = 3

for i in sifrelenecekmesaj:
    for j in alfabe:
        if i == j:
            degistir = alfabe.index(j)
            degistir += key

            if degistir >= boyut:
                degistir -= boyut

            sifrelimesaj += alfabe[degistir]

print(f"Şifrelenmiş Mesaj: ", sifrelimesaj)

Genel anlamda kodun çalışma mantığına bakarsak Bu örnekte, öteleme değeri 3 olarak belirlenmiştir.

Kod, ilk olarak şifrelenecek mesajı, şifrelenmiş mesajın tutulacağı değişkeni, kullanılacak alfabeyi ve alfabedeki harflerin sayısını tanımlar. sifrelenecekmesaj değişkeni, "sibervatan" değerini içerirken, sifrelimesaj değişkeni başlangıçta boştur. alfabe değişkeni, küçük harflerden oluşan İngilizce alfabeyi içerir ve boyut değişkeni ise bu alfabenin uzunluğunu (26) tutar. key değişkeni, harflerin kaç pozisyon ötelenerek şifreleneceğini belirler ve burada 3 olarak ayarlanmıştır.

Daha sonra, şifrelenecek mesajdaki her bir harfi sırasıyla ele alan bir dış döngü başlatılır. İçteki döngü ise her harfi alfabe ile karşılaştırarak eşleşen harfi bulur. Eşleşme bulunduğunda, harfin alfabedeki indexi hesaplanır ve bu index, öteleme değeri kadar arttırılır. Eğer yeni index alfabenin uzunluğunu aşarsa, alfabenin başına dönmek için index, alfabenin uzunluğu kadar azaltılır. Bu işlem, alfabeyi döngüsel olarak kullanmamızı sağlar. Son olarak, öteleme yapılmış harf, şifrelenmiş mesajın tutulduğu sifrelimesaj değişkenine eklenir.

Tüm harfler işlendiğinde, şifrelenmiş mesaj ekrana yazdırılır. Bu kodu çalıştırdığınızda, "sibervatan" mesajı 3 harf ötelenecek ve şifrelenmiş mesaj "vlehuydwdq" olarak ekrana yazdırılacaktır.

Şimdi, Sezar algoritmasıyla şifrelenmiş bir metni çözmek için bir Python kodu yazalım.

sifrelenmismesaj = "vlehuydwdq"
asilmesaj = ''

alfabe = "abcdefghijklmnopqrstuvwxyz"

boyut = len(alfabe)
key = 3

for i in sifrelenmismesaj:
    for j in alfabe:
        if i == j:
            degistir = alfabe.index(j)
            degistir -= key

            if  boyut>= degistir:
                boyut +=  degistir

            asilmesaj += alfabe[degistir]

print(f"Çözülen Mesaj: ", asilmesaj)

Kod, şifrelenmiş mesajdaki her harfi sırasıyla ele alan bir dış döngü başlatır. İçteki döngü ise her harfi alfabe ile karşılaştırarak eşleşen harfi bulur. Eşleşme bulunduğunda, harfin alfabedeki indexi hesaplanır ve bu index, öteleme değeri kadar azaltılır. Eğer yeni index negatif bir değere düşerse, alfabenin sonuna dönmek için degistir değeri alfabenin uzunluğu kadar artırılır.

Sonuç olarak, her öteleme yapılmış harf asilmesaj değişkenine eklenir. Tüm harfler işlendiğinde, çözülen mesaj ekrana yazdırılır. Bu kodun düzeltilmiş hali ile "vlehuydwdq" mesajı çözüldüğünde orijinal mesaj "sibervatan" olacaktır.

İnternet üzerinde pek çok web sitesi ve araç, Sezar şifrelemesini otomatik olarak yapmanızı sağlar. Bu araçlar, kullanıcı dostu arayüzleri sayesinde, şifrelenecek metni ve öteleme değerini (anahtar) girdikten sonra, anında şifrelenmiş veya çözülmüş metni size sunar. Bu sayede, herhangi bir programlama bilgisine sahip olmadan da Sezar şifrelemesinin temel prensiplerini öğrenebilir ve uygulayabilirsiniz. Örneğin boxentriq.com sitesinde sezar algoritmasını deneyelim.

Siteyi ziyaret ettiğimizde, karşımıza basit ve kullanışlı bir arayüz çıkıyor. İlk olarak, şifreleme işlemi için bir anahtar (key) değeri belirlememiz gerekiyor. Bu değer, metnimizin kaç harf ötelenerek şifreleneceğini veya çözüleceğini belirler. Ardından, kullanmak istediğimiz alfabeyi seçip şifreleme veya şifre çözme işlemini kolayca gerçekleştirebiliriz.

Günümüzde kriptografi, dijital güvenliğin temel taşıdır. İnternet üzerinden yapılan finansal işlemlerden kişisel verilerin korunmasına kadar her alanda şifreleme teknikleri kullanılmaktadır. Modern şifreleme yöntemleri arasında hash fonksiyonları, dijital imzalar ve açık anahtarlı şifreleme gibi karmaşık algoritmalar bulunmaktadır. Bu teknikler Sezar’ın basit alfabesel kaydırmasından çok daha ileri bir güvenlik seviyesi sunar.

Dezavantajları

Bu yöntem, o dönemdeki düşman casuslar için anlaşılması zor bir engel oluşturuyordu. Ancak zamanla sezar şifrelemesi, dilin yapısını ve harflerin sıklığını analiz eden dikkatli gözler için çözülebilir hale geldi. Bu, kriptografinin evriminde önemli bir dönüm noktası ve daha karmaşık şifreleme tekniklerinin geliştirilmesine zemin hazırladı.

-> Kaba kuvvet (brute-force) saldırısıyla çok kolay çözülür. Çünkü Şifreleme/Şifre çözme yöntemi gizli değildir.

-> Sadece 25 (temel Latin alfabesi harf sayısı) farklı deneme yeterlidir. (Anahtar uzayı 25 elemanlıdır.)

-> Şifrelemede; kullanılan alfabenin toplam harf sayısından ancak 1 eksik kadar ileri veya geri alınma tekniği uygulanabilir. Örneğin Türk alfabesi ise 28 ileri veya geri alınabilir. 29 ileri veya geri alınması aynı harfin tekrar denk gelmesini sağlar. Bu da şifrelenecek metnin şifrelenememesine yol açar.

-> Deşifre sırasında; şifreli metin üzerine istenildiği kadar ileri veya geri harf sıralaması uygulanırsa uygulansın mutlaka karmaşık harf diziminden anlamlı sözcük olan, kısacası şifrelenmiş metin kolayca ortaya çıkacaktır.

-> Düz metin (plaintext) ve formatı gizli değildir.

-> Temel Latin alfabesi için harf değiştirme şifrelemelerinde toplam 26! farklı şifre tablosu vardır.

Sezar şifrelemesi, günümüzdeki şifreleme tekniklerinin atası olarak kabul edilir ve kriptografinin tarihindeki yerini korumaktadır. Bilgi güvenliğinin önemi her geçen gün artarken, Sezar’ın antik yöntemi, dijital çağın karmaşık şifreleme tekniklerine ilham veren bir miras olarak anılmaya devam edecektir.

🔑
ilkerbingoll59 - OverviewGitHub
Bu yazı İlker Bingöl tarafından hazırlanmıştır.
Logo
Örnek Kullanım