♪ (müzik) ♪ İnternet: Şifreleme ve Genel Anahtarlar Merhaba, ismim Mia Gil-Epner. Kaliforniya Üniversitesi, Berkeley'de Bilgisayar Bilimleri eğitimi alıyorum ve Savunma Bakanlığında bilgiyi güvenli tutmaya çalışıyorum. İnternet açık ve genel bir sistemdir. Bilgiyi, paylaşımlı kablo ve bağlantılar üzerinden alır ve göndeririz. Fakat açık bir sistem olmasına karşın pek çok özel veri alışverişi de yaparız. Örneğin kredi kartı ve banka bilgileri, parolalar ve e-postalar. Peki tüm bu özel bilgiler nasıl gizli tutuluyor? Her türlü veri, asıl metni gizlemek için mesajı karıştıran veya değiştiren "şifreleme" adlı bir işlemle gizli tutulur. "Şifre çözme", mesajı okunabilir kılmak için çözme sürecidir. Fikir basittir, insanlar bunu yüzyıllardır yapıyor. En bilinen şifreleme yöntemlerinden biri "Sezar Şifrelemesi"dir. Adını, Romalı general Julius Sezar'dan almıştır. Askeri komutlarını, düşman yakalarsa okuyamasın diye şifrelemiştir. Sezar Şifrelemesi bir "algoritma"dır. Asıl mesajdaki her bir harf alfabedeki belli bir sayı sonrakinin yerini tutar. Yalnızca gönderici ve alıcının bildiği bir sayıysa "anahtar" olur. Okuyucunun gizli mesajı çözmesini sağlar. Asıl mesajınız "HELLO (merhaba)" olsun. Sezar Şifreleme algoritmasını 5 anahtarıyla kullanırsanız şifreli mesajınız şöyle olacaktır: Mesajı çözmek için alıcının işlemi geriye çevirmesi yeterlidir. Fakat Sezar Şifrelemesinin önemli bir sorunu vardır. Herhangi biri, olası tüm anahtarları deneyerek şifreli mesajı kolaylıkla çözebilir. Ve İngilizce alfabede yalnızca 26 harf bulunur. Yani bir mesajı çözmek için en fazla 26 kez denemeniz gerekir. 26 olası anahtarı denemek zor değildir, en çok bir iki saat alır. O yüzden biraz zorlaştıralım. Her harfi aynı sayı kadar kaydırmak yerine her bir harfi farklı bir sayı kadar kaydıralım. Bu örnekte, 10 haneli bir anahtar daha uzun bir mesajı şifrelemek için bir sonraki harfin ne kadar ilerletileceğini gösterir. Sanırım bu anahtar işleri oldukça zorlaştıracak. 10 haneli şifreleme kullandığınızda 10 milyar olası anahtar çözümü olabilir. Herhangi bir insanın bunu çözmesinin olanaksız olduğu açık. Yüzyıllar sürerdi. Fakat günümüzde ortalama bir bilgisayarın 10 milyar olasılığı denemesi sadece birkaç saniye sürer. Yani modern dünyada kötü adamlar kalemle değil bilgisayarla silahlanırlarsa mesajları kırılamayacak kadar zor biçimde ve güvenle nasıl şifreleyebilirsiniz? Çok zor, makul bir sürede hesaplanamayacak kadar çok olasılık olması anlamına gelir. Günümüzün güvenli iletişimleri 256 bit'lik anahtarlar ile şifrelenir. Kötü adamın mesajınızı yakalayan bilgisayarının bunca olasılığı denemesi gerekir. Ta ki anahtarı bulup mesajı kırana kadar. 100000 süper bilgisayarınız olsa, her biri saniyede milyarlarca anahtar denese bile 256 bit'lik bir şifrelemeyle korunan tek bir mesajı çözmek için her bir seçeneği denemeleri trilyonlarca yıl alırdı. Elbette bilgisayar çipleri her yıl iki kat hızlanıyor ve boyutları yarıya iniyor. Bu üstel gelişim hızı devam ederse günümüzün çözülmesi imkansız problemleri önümüzdeki birkaç yüzyılda çözülebilir hale gelecek ve 256 bit, güvenli olmaktan çok uzak olacak. Aslında, mevcut durumda bile bilgisayarların hızına yetişmek için standart anahtar uzunluğunu artırmak zorundayız. İyi haber! Daha uzun bir anahtar kullanmak şifreli mesajları çözmeyi zorlaştırmıyor fakat bir şifreyi çözmek için gereken tahmin sayısını üstel olarak artırıyor. Göndericinin ve alıcının bir mesajı karıştırmak ve çözmek için aynı anahtarı paylaşmasına "Simetrik Şifreleme" denir. Simetrik Şifrelemeyle, Sezar Şifrelemesinde olduğu gibi gizli anahtar iki kişi arasında özel olarak önceden kararlaştırılmalıdır. İnsanlar için harika bir çözüm fakat intenet açık ve geneldir. Yani iki bilgisayarın özel olarak buluşup genel bir anahtara karar vermesi imkansız. Bilgisayarlar ise asimetrik anahtarlar kullanır. "Asimetrik Şifreleme" Herkesle paylaşılabilen bir genel anahtar ve paylaşılmayan özel bir anahtar. "Genel Anahtar" veri şifrelemek için kullanılır ve herkes tarafından gizli bir mesaj oluşturmak için faydalanılabilir. Fakat bu gizli mesaj, sadece özel anahtara erişimi olan bir bilgisayarla çözülebilir. Bunu biraz matematikle halleder. Ama o konuya hemen girmeyeceğiz. Şöyle düşünün, diyelim ki herkesin posta bırakabileceği kişisel bir posta kutunuz var ama bunun için bir anahtara ihtiyaçları var. Teslimat anahtarının kopyasını yaptırıp arkadaşınıza gönderebilirsiniz veya herkese açık hale getirebilirsiniz. Arkadaşınız veya başka biri teslimat alanına mesaj bırakmak için genel anahtarı kullanabilir. Fakat aldığınız gizli mesajlara erişmek için posta kutunuzu özel anahtarınızla sadece siz açabilirsiniz. Siz de arkadaşınızın posta kutusuna ait genel teslimat anahtarını kullanarak ona güvenli bir mesaj gönderebilirsiniz. Böylece insanlar özel bir anahtar kararlaştırmaya gerek duymadan güvenli mesajlar alıp gönderebilir. Genel Anahtar Şifrelemesi, açık internetteki tüm güvenli mesajların temel taşıdır. Web'de gezinirken bizi koruyan "Güvenlik Protokolleri SSL ve TLS" dahil. Tarayıcınızın adres çubuğunda bu minik "kilidi" veya "https" harflerini gördüğünüzde bilgisayarınız bunu kullanır. Bilgisayarınız, girdiğiniz web sitesiyle güvenle veri alışverişi yapmak için Genel Anahtar Şifrelemesi kullanıyor demektir. İnternete ne kadar insan girerse o kadar özel veri aktarılır. Veriyi güvenli kılma ihtiyacı daha da önemli hale gelir. Bilgisayarlar hızlandıkça bilgisayarların kıramayacağı zorlukta yeni şifreleme yolları bulmak zorunda kalacağız. İşte bu benim işim ve her daim değişiyor.