Bu yazı, blockchain üzerine kişisel öğrenme sürecimin bir parçası olarak yazılmıştır. Bilgiler, çeşitli çevrimiçi kaynaklardan ve OpenAI tarafından geliştirilen dil modeli ChatGPT ile yapılan tartışmalarla harmanlanarak oluşturulmuştur. Teknik doğruluk için katkılara ve düzeltmelere açığım.
Kriptografi, son yıllarda blokzincir (blockchain) teknolojisinin gelişmesi ve yaygınlaşmasıyla oldukça sık duyulur hale geldi. Bu yazıda kriptografiye belli bir oranda giriş yapacak, ardından blokzincir için özellikle önem arz eden açık anahtar şifrelemesini inceleyeceğiz. Asimetrik kriptografinin diğer adı açık anahtar şifrelemedir; ancak öncesinde simetrik şifrelemeyi ve ona giden yolu anlaşılır kılmalıyız. Dolayısıyla kriptografiye doğru giden yolda önce "anahtar (key)"ın ne olduğunu inceleyerek başlayalım.
Başlamadan önce: Sanal dünya, yani internet, temelde herkesin erişimine açıktır. Dolayısıyla size özel, yani mahremiyet gerektiren bilgiler veya iletişimler korunmak ve gizlenmek zorundadır. Kriptografi, bilgiyi (WhatsApp gibi uygulamalar üzerinden kurduğunuz iletişimin içeriği de bir bilgidir) güvenli bir şekilde iletmek, saklamak, doğrulamak ve başka bir çok amaç için kullanılabilen matematiksel ve bilgisayar bilimleri tekniklerini içeren bir disiplindir. En basit anlatımıyla kriptografinin temel amacı, üçüncü tarafların dinleyemeyeceği ve müdahale edemeyeceği iletişim yolları oluşturmaktır. Burada amaç elbette veriye yetkisiz erişime karşı koruma altına almaktır; yalnızca belirlenen (yani izin verdiğimiz) kişilerin erişebileceği, okuyabileceği ve değiştirebileceği bir hale getirmektir.
Kriptografide "anahtar (key)" dediğimiz şey, veriyi şifrelemek (encrypt) veya şifreli veriyi çözmek (decrypt) için kullanılan bir dizi bit veya matematiksel değişkendir.
Matematik veya bilgisayar bilimlerinin derinlikleriyle ilgilenmiyorsanız, anahtarı bir çeşit özel ve benzersiz sayı dizisi olarak düşünebilirsiniz.
Şifreleme sistemlerinde ise genellikle "bit dizisi" olarak kullanılır, yani ikili (binary) sayılar (0 ve 1) ile ifade edilir.
İsminden anlaşılacağı gibi işlevi, evinize girmek için kullandığınız anahtarınızla oldukça benzerdir. Zaten ismi buradan gelmektedir.
Dijital evrende ise her şey temelde matematiğe ve sayılara dayanır. Dolayısıyla buradaki anahtarımızın bir sayı dizisi olduğunu hayal edebilirsiniz.
Eviniz ise bu dijital/sanal evrende bilgi ya da veri olarak düşünülebilir. Evinizin size özel oluşunun sağladığı mahremiyet gibi, dijital evrende de mahremiyet hakkınız vardır.
Burada daha çok iletişim özelinde inceleyeceğimiz için mesaj ve bilgi aynı şeyi ifade etmektedir.
Aşağıda basitleştirilmiş bir örnek olması için AES-256’da kullanılmak üzere rastgele üretilmiş 256 bitlik (32 bayt) bir anahtar örneği bulunmaktadır:
`101110101010111011000110101011...`
Bu sayı dizisi doğruysa, şifreyi yani kapıyı açabilirsiniz ama yanlış bir dizi girerseniz, kapınız açılmaz ve içeriye yani bilgiye erişemezsiniz.
Şifreleme (Encryption): Veriyi belirli bir algoritma ve anahtar kullanarak anlaşılmaz bir hale getirme işlemidir. Yalnızca doğru anahtara sahip olan kişiler veriyi çözebilir.
Şifre Çözme (Decryption): Şifrelenmiş veriyi tekrar orijinal haline döndürme işlemidir.
Anahtar Yönetimi (Key Management): Şifreleme ve şifre çözme işlemleri için kullanılan anahtarların oluşturulması, dağıtılması ve güvenli bir şekilde saklanması sürecidir.
Kimlik Doğrulama (Authentication): Bir kullanıcının veya sistemin kimliğini doğrulama sürecidir.
Bütünlük (Integrity): Verinin iletilirken veya saklanırken değiştirilmediğini doğrulayan mekanizmalardır.
Yetkilendirme (Authorization): Belirli bir işlemi gerçekleştirme yetkisine sahip olup olmadığını belirleme sürecidir.
Simetrik Anahtarlı Kriptografi (Symmetric-Key Cryptography)
Aynı anahtar hem şifreleme hem de şifre çözme işlemlerinde kullanılır.
İletişimde bulunan iki tarafın aynı gizli anahtara sahip olması gerekir.
Avantajı: **Hızlıdır ve düşük işlem gücü gerektirir.
Dezavantajı: Anahtarın güvenli bir şekilde paylaşılması gerekir.
Örnek: AES (Advanced Encryption Standard), DES (Data Encryption Standard). Bir mesajı AES-256 ile şifrelemek için bir 256-bit uzunluğunda bir anahtar kullanılır. Eğer bu anahtar yetkisiz kişilerin eline geçerse, mesajın şifresi kolayca çözülebilir.
Asimetrik Kriptografi (Public-Key Cryptography)
Birbirine bağlı iki anahtar kullanılır: Açık Anahtar (public key) ve Özel Anahtar (private key).
Açık anahtar (Public Key) → Herkes tarafından bilinebilir.
Özel anahtar (Private Key) → Sadece sahibi tarafından bilinmelidir.
Açık anahtar ile şifrelenen mesajlar sadece özel anahtar ile çözülebilir
Avantajı: Anahtar paylaşımı güvenlidir; sadece açık anahtar paylaşılır.
Dezavantajı: Simetrik şifrelemeye göre daha yavaştır.
Örnek: RSA, ElGamal.
Bazı algoritmalar ise bu sistemleri, daha verimli bir cebirsel yapı olan eliptik eğriler üzerinde çalıştırır. Buna
Anahtar değişimi için kullanılan en bilinen yöntemlerden biri, 1976 yılında geliştirilen Diffie-Hellman Key Exchange protokolüdür. Bu yöntem sayesinde iki taraf, güvenli olmayan bir kanal üzerinden ortak bir gizli anahtar üretebilir.Kriptografi Nerelerde Kullanılır
Aslında kriptografi, sanal ortamda gizlemek ya da herkese açık olarak paylaşmak istemediğiniz her bilgi (iletimi) için kullanılabilir. Örneğin WhatsApp uygulaması mesajlarınızı gizlemek ve güvenliğini sağlamak için end-to-end encryption kullandığını söylemektedir (birine ilk defa mesaj atacağınızda ekranda görebilirsiniz).
Asimetrik Anahtarlı Kriptografi
Her kullanıcı, bir açık anahtar (public key) ve bir özel anahtar (private key) çifti oluşturur.
Bir mesaj gönderildiğinde, mesaj alıcının açık anahtarı ile şifrelenir ve sadece alıcının özel anahtarı ile çözülebilir.
Yani sizin görmediğiniz ancak birine mesaj attığınızda oluşan iki anahtarınız vardır.
Simetrik Anahtarlı Kriptografi
Mesajlar bir oturum anahtarı (session key) kullanılarak AES-256 ile şifrelenir.
Oturum anahtarı, Diffie-Hellman anahtar değişim protokolü ile güvenli bir şekilde oluşturulur ve her oturum için yeniden üretilir.
Kriptografik Hash Fonksiyonları
Mesaj bütünlüğünü doğrulamak için SHA-256 gibi hash fonksiyonları kullanılır.
Bu sayede mesajın değiştirilip değiştirilmediği kontrol edilebilir.
Her mesaj için yeni bir oturum anahtarı kullanılır, böylece eski mesajlar ele geçirilse bile şifresi çözülemez.
Başkaları erişemiyor olsa da Meta (Facebook) WhatsApp’a sahip olduğu için metadata’ları (kim kime mesaj gönderdi, ne zaman mesaj attı gibi bilgiler) görülebilir.
Signal ve Telegram gibi alternatifler, merkeziyetsiz ve açık kaynaklı olduğunu ifade etmektedir, eğer bu doğruysa güvenlik açısından WhatsApp’tan daha iyi olduğu düşünülebilir.
Blockchain ve Kripto Paralar: Bitcoin ve Ethereum gibi sistemler, asimetrik kriptografi ve hash fonksiyonlarını kullanarak güvenli işlemler yapar.
Siber Güvenlik: İnternet üzerindeki iletişimleri güvenli hale getirmek için kullanılır (Örneğin: HTTPS, VPN).
Elektronik İmza ve Dijital Kimlik: Verilerin değiştirilemeyeceğini ve belirli bir kişi veya kurum tarafından gönderildiğini doğrular.
Dosya ve Veri Şifreleme: Bilgisayarlarda ve bulut sistemlerinde verilerin korunmasını sağlar.
Evinizi güvenli kılan duvarların arasında, güvenli bir geçiş vardır. Bu güvenli geçiş yazımızın başında ele aldığımız gibi ön kapıdır ancak ön kapının güvenli geçiş olarak kalması için anahtarınızın güvenliği önemlidir. Anahtarın kolayca kopyalanabilmesi ya da bir başkasının eline geçebilme olasılığı gibi farklı şekillerde saldırıya açık olması buradaki temel güvenlik problemidir. Eğer anahtarınız kopyalanırsa tüm güvenlik sistemi önemini yitirir ve ne duvarların ne de kapının bir anlamı kalır. Eğer anahtarı kaybederseniz ve yedeğiniz yoksa çilingir çağırıp kilidi değiştirene kadar (ki buradaki kaba kuvveti de ileride dile getireceğimiz "brute-force attack"a benzetebiliriz) içeri siz de giremezsiniz.
İşte simetrik kriptografi gerçek hayattaki ev kapısı ve anahtar örneğine oldukça benzemektedir. Bu tür kriptografide aynı anahtar hem şifreleme hem de şifre çözme işlemleri için kullanılır. Bu durum evinizin kapısını kilitlemek ve açmak için kullandığınız tek bir anahtarla aynıdır. Anahtarın bir kopyasına sahip olan herkes kapıyı açabildiği gibi burada da mesajı okuyabilir. Buradan da anlaşılacağı gibi anahtar başka birinin eline geçtiğinde evinizin güvenliği tehlike altında olduğu gibi dijital ortamda da mesajınız tehlike altındadır. Dolayısıyla dijital ortamdaki anahtarınızı da evinizin anahtarı gibi güvenli şekilde paylaşmaya özen göstermek istersiniz. Okumaya devam ederseniz dijital dünyanın muhteşem imkanları olduğunu göreceksiniz ve dolayısıyla anahtarınızı gerçek dünyadan daha güvenli sistemlerde kullanabileceksiniz.
Savaş gibi durumlarda stratejinin önemli bir parçası gizliliktir. Düşman, saldırı planlarınıza vakıf olursa savunma geliştirme fırsatı bulur ve tüm planlarınız tehlikeye girebilir. Bu nedenle antik çağlarda elçilerin taşıdığı mesajların güvenliğini sağlamak büyük önem taşırdı.
MÖ 100 civarında yaşamış olan Julius Sezar, bu ihtiyaca karşılık basit ama yaratıcı bir çözüm sundu. Okuma yazmanın yaygın olmadığı bir toplumda, mesajın yalnızca hedef alıcı tarafından okunabilmesini sağlamak üzere harfleri belirli bir anahtara göre kaydıran bir sistem kullandı. Bu yöntem günümüzde “Sezar Şifrelemesi (Caesar Cipher)” olarak anılmaktadır.
Bu şifreleme yöntemi klasik kriptografi (classical cryptosystems) içinde yer alır ve modern güvenlik açısından zayıf kabul edilse de, temel prensipleri anlamak açısından eğitici bir örnektir.
Bir alfabe ve bir anahtar seçilir. Bu anahtar, alfabenin harflerini ne kadar kaydıracağınızı belirler.
Teknik olarak alfabe mod 26 (yani 0–25) arası sayılarla temsil edilir. Ancak 0 kaydırma şifreleme sağlamadığı için uygulamada anahtar genellikle 1 ile 25 arasında seçilir.
Örneğin, aşağıdaki görselde gösterildiği gibi 3 birimlik bir kaydırma uygulandığında:
A → D,
B → E,
C → F,
...
X → A,
Y → B,
Z → C olur.
Yukarıdaki görsel, Sezar Şifrelemesini 3 birim kaydırma ile gösteriyor. Mavi harfler orijinal alfabeyi, kırmızı harfler ise 3 birim kaydırılmış versiyonunu temsil ediyor. Oklar, her harfin nasıl değiştiğini gösteriyor. Burada, orijinal mesaj açık metin (plaintext) olarak adlandırılır. Şifrelenmiş mesaj ise şifreli metin (ciphertext) olarak adlandırılır.
Sezar Şifrelemesi uygulamanın en kolay yolu, harfleri sayılara dönüştürmektir:
A = 1, B = 2, C = 3, ..., Z = 26.
Daha sonra her harfi şu formül ile şifreleriz:
Burada:
c = E(x): ciphertext (şifreleme fonksiyonu)
x E {A, B, C, …, Z} : plaintext → orijinal harfin sayısal değeri
s E {1, 2, …, 25} → kaydırma miktarı (anahtar)
mod 26 → harfler Z’den sonra tekrar başa döneceği için 26’ya göre mod alma işlemi. Pekala anahtarınız "4" ise (ingilizce alfabeye göre) bu şifreli mesajın çözümü nedir: "NSMRIHERHPSZIDMXYFG".
Gördüğünüz gibi Sezar şifrelemesi çok temel ve basit bir mekanizmaya dayanmaktadır. Günümüz için pek uygun olmasa da kendi zamanı için iyi bir çözüm olduğu düşünülebilir.
Hash Fonksiyonları (Hash Functions)
Veri için tek yönlü bir dönüşüm sağlar, yani veriyi geri döndürmek mümkün değildir.
Verinin bütünlüğünü kontrol etmek için kullanılır.
Hash fonksiyonları doğrudan bir şifreleme yöntemi değilse de, çoğu zaman symmetric-key sistemleri içinde veri bütünlüğünü ve kimlik doğrulamayı destekleyici rol oynar.
Örnek: SHA-256, MD5.
Share Dialog
theSahbaz.eth
<100 subscribers
Support dialog