Aşağıda yazıyı sayfa üzerinden pdf olarak okumanız için bir araç var (bu araçla dökümanı tam ekran okuyabilir ve kaydedebilirsiniz). Onun altına yazının orjinal halini de koydum. En son olarak da, bilgisayarına indirip okumayı tercih edecekler için pdf dosyasını koydum. Yazılarımdaki her türlü hata, gerek yazım hatası gerek konsept hatası olsun, için sizden gelecek önerilere şimdiden çok teşekkür ederim.
1. GİRİŞ
Kriptografi, bir mesajın yada bilginin geçici olarak okunamaz hale dönüştürülerek hedefine ulaştırılması ve karşı tarafta bilginin tekrar okunabilir hale döndürülmesi için kullanılan şifreleme konusuna verilmiş genel bir ad. Peki internette Kriprografi nasıl ve ne şekilde kullanılıyor? Farkında olmasak da, internet üzerinden bankacılık işlemleri yaparken, yada şifrelenmiş e-posta yollarken kriptografi hep iş başında oluyor. Altyapısı çok karmaşık olan bu sistemi yüzeysel olarak açıklamaya başlayalım.
2.1.Neden Kriptografi (şifreleme) kullanıyoruz?
Kriptografide amaç verinin şifrelenmesi ve hedef bilgisayarda eski haline yani şifresiz okunabilir haline çevrilmesi. Örnek olarak; Gmail hesabınıza girmek için kullanıcı adı ve şifre yazıyorsunuz. Yazdığınız şifre ve kullanıcı adı herhangi birinin eline geçmemeli ve ya geçse bile sizden başkası tarafından okunamamalı. İnternet üzerinden gmail sunucularına gönderdiğimiz bu şifrenin güvenilir olarak gmail bilgisayarına ulaşmasından emin olmamız gerekiyor. İşte şifreleme bu noktada devreye giriyor. Siz görmesenizde, arkaplanda e-posta şifreniz kriptografik olarak şifreleniyor ve gmail bilgisayarlarına şifrelenmiş haliyle yollanıyor ki, arada sizin internet hattınızı dinleyen olası kötü adamlar e-posta şifrenizi göremesin.
2.2. Madem şifreliyoruz, önce bir şifre gerek!
Şifreleme sürecinde, düz bir veriyi(mesajı) okunamaz hale getirmek için çok kompleks matematiksel algoritmalar kullanılıyor. Bu algoritmalara örnek olarak DEA (Data Encryption Algorithm) ve AES (Advanced Encryption Algorithm) gösterilebilir. Bu algoritmalar, kendilerine gelen mesajı belli parçalara bölüp her parça üzerinde matematiksel işlemler gerçekleştiriyor. Klavyede yazdığımız harfler bitlere (bit 0 yada 1 olabilir, bilgisayarlar makine dili olan bitler yani 0 ve 1 ler üzerinden anlaşıyor) dökülüyor, ve bu bitler üzerine karmaşık ve rastgele olarak matematiksel fonksiyonlar uygulanıyor. Fakat önemli bir nokta var; bu algoritmalar belli bir süre sonra ya art niyetli kişiler tarafından bulunuyor ya da geliştiriciler tarafından açıklanıyor. Açıklanmasının sebebi ise, algoritmadaki eksikliklerin yada geliştirilmesi gereken kısımların ilgilenen kişiler tarafından görülmesi ve farkına varılması, bunun sonucunda algoritmanın geliştirilmesinin amaçlanması.
Peki algoritmalar herkes tarafından biliniyorsa, bu işin içindeki gizlilik nerde? Cevap şifre yada anahtar. Bir kriptografi algoritmasına gizliliği katan tek faktör şifre. Bu yüzden çok sıkı bir şekilde korunması ve saklanması gerekiyor. Şifrelerin büyük bir çoğunluğu 512 bit uzunluğuna kadar uzanıyor; bu da 0 dan 2^512 ye kadar bir sayı demek. Şifrenin içeriğine göre, kriptografik algoritmanın işleyişi değişiyor. Yani şifredeki bir tane bile bit değişiminin sonucu bambaşka bir şifrelenmiş mesaj olarak sonuçlanıyor.
Kriptografide iki tane şifreleme türü var. Simetrik ve asimetrik. Simetrik şifrelemede kriptolayarak göndermek istenilen mesaj bir şifre tarafından algoritmaya sokuluyor ve şifreleniyor. Haliyle, bu şifrelenmiş mesajı alan tarafında mesajı okunabilir yani çözülmüş haline geri döndürmesi gerekiyor. Şifrelenmiş mesajı alan taraf yine aynı simetrik şifreyi kullanarak mesajı açıyor. Yani simetrik şifrelemede, kriptolamak ve çözmek için kullanılan anahtarlar (şifreler) aynı.

Simetrik Şifreleme - Şekil 1
Asimetrik şifrelemede ise mesajı şifrelerken kullanılan anahtar ve çözmek için kullanılan anahtarlar farklı. Diyelim mesajı A şifresiyle kriptoladınız ve gönderdiniz. Mesaj eski haline sadece B anahtarıyla çevrilebiliyor. Tam tersi yönde de B anahtarıyla şifrelenen bir mesaj sadece A anahtarıyla çözülebiliyor. A ve B birbirinden ayrılmaz ikili durumdalar.

Asimetrik Şifreleme - Şekil 2
Peki neden iki ayrı bir sisteme gerek duyuyoruz? Simetrik sisteme bakarsak; kriptolamak ve çözmek için kullanılan anahtarların mesajı gönderen ve alan tarafların ikisinde de bulunması gerekiyor ki sistem çalışsın. Bunun sonucunda bu şifrenin gönderici ve alıcı taraflara güvenli olarak iletilmesi gerekiyor. Bu başlı başına bir sorun. İkinci olarak simetrik şifrelemede mesajın kim tarafından şifrelendiği açık değil. Yani ben size 5 dakka içinde simetrik anahtarla şifrelenmiş bir mesaj gönderebilir ve 10 dakika sonra bunu inkar edebilirim. Aksini kanıtlayamazsınız çünkü mesajı açmak için aynı şifre sizde de bulunuyor. Çok rahat bir şekilde mesajı göndermediğimi ve bunun sizin hayal dünyanızda uydurduğunuz bir olay olduğunu söyleyebilirim.
Asimetrik şifreleme bu sorunlara çözümler sunuyor. İlk soruna yani şifrenin taşınması ve taraflara dağıtılmasına bakarsak; asimetrik şifrelemede mesajı şifreleyen tarafın kullandığı anahtarın çözücü eşi alıcı tarafında tutuluyor. Bu sistem de bu anahtarlardan birine “açık” (yani herkes tarafından öğrenilebilir ve kullanılabilir) diğerine ise “gizli” (sadece taraflardan birine ait) anahtar deniliyor. “Gizli” anahtar sadece ve sadece bir tarafa ait. Yani sizin bir “gizli” anahtarınız varsa bunun sizden başkası bilemez, sizin için oluşturulmuş ve sadece sizin tarafınızdan kullanılabilen bir anahtar. Bu anahtarın eşi olan açık anahtar ise “Anahtar kütüphanelerinde” tutuluyor. Bunlara örnek olarak Verisign’ı gösterebiliriz. Yani size kriptolanmış bir anahtar yollamak isteyen biri, bu anahtar kütüphanelerinden birinden sizin “açık” anahtarınızı alıyor ve mesajı bu “açık” anahtarla şifreleyip size gönderiyor. Bu “açık” anahtarın çözücü eşi olan “gizli” anahtar zaten sadece sizde var. Bu şekilde mesajı aldıktan sonra siz çözebiliyorsunuz.
Dijital imzanın fiziksel hayatta kullanığımız imzayla karıştırılmaması gerekiyor. Dijital imza, karşı tarafa (yani alıcı bilgisayara yada sisteme) bilgiyi bizim gönderdiğimizi kanıtlamamızı sağlıyor, bu sayede veri transferi öncesinde güven ortamını oluşturma amacıyla kullanılıyor. Örnek vermek gerekirse; benim size mail yolladığımda, sizin mailin benim tarafımdan yollandığından resmi olarak emin olmanız dijital imza yoluyla sağlanıyor. Benim dijital imzamın yani kimliğimin bulunduğu veri paketine ise Dijital Sertifika deniliyor. Sistemin işleyişine bakmadan önce yukarıda okuduğunuz konseptleri kullanarak bir örnek oluşturalım.
Örnek sistemimizde masumMehmet, kötüAhmet ve masumAyşe adında 3 kullanıcnın olduğunu düşünün. İsimlere takılmasak iyi olur. MasumMehmet MasumAyşe’ye “seni seviyorum” mesajını yollayacak. KötüAhmet de masumayşenin eski sevgilisi olsun. masummehmet seniseviyorum mesajını güvenli olarak ayşeye yollamak zorunda ki, ayşe hem mesajın gerçekten mehmetten geldiğinden emin olsun, hem de 2 tarafta mesajda herhangi bir oynama yapılmadığını bilsin. Bu durumda, masummehmet masumayşeye seniseviyorum verisini içeren paketi yollamadan once su asamalardan geçiyor:

1. Mehmet Ayşe’ye göndermek istediği “seni seviyorum” mesajını hazırlar
2. Mehmet sadece kendisine ait olan ve kimsenin bilmediği “gizli anahtar” la mesajı şifreler
3. Bu aşamada mesaj şifrelenmiş olarak gönderilmeye hazırdır. Önceden anlattığım üzere, mesajı açmak ve bilgiyi okumak isteyen kişi, mesajı sadece mehmet’in açık anahtarıyla açabilir.
4. Şifrelenmiş mesaj Ayşe’ye ulaşır
5. Ayşe mesajı okumak için mehmet’in açık anahtarını kullanır
6. Ayşe şifrelenmiş paketi mehmet’in açık anahtarıyla açar ve okur. Şifrelenmiş mesaj sadece mehmet’in açık anahtarıyla açılabildiği ve bu açık anahtarın sadece eş gizli anahtarla şifrelenmiş mesajda kullanılmasından dolayı, Ayşe mesajın mehmet’ten geldiğinden emin durumdadır.
Yukarıdaki örnekte görüldüğü gibi, mehmet mesajını dijital olarak imzaladıktan sonra, Ayşe mehmet’in açık anahtarını kullanarak, mesajın mehmet tarafından gönderildiğinden emin olur. Yukarıdaki basitçe açıklamaya çalıştığım metodolojiyi anladıysanız, bu metodun resmi olarak Dijital İmza standardında nasıl kullanıldığına geçebiliriz. Gerçek hayatta yukarıdaki transfere “Hash” (karmaşıklık) adı verilen bir aşama daha katılıyor. Bu aşamanın sisteme dahil edilmesinin sebebi mesajın transfer esnasında içeriğinin (Integrity) bozulmadığından emin olmak. Sisteme “Hash” işlemini dahil etmeden once “Hash” nedir bir bakalım:
Basitçe “hash”, gönderilecek verinin (bilginin yada mesajın) belirli bir fonksiyona sokulup, sonucunda matematiksel olarak tek bir sonuç elde edilmesidir. Tabiki bütün bu matematiksel işlemler bilgisayar dilinde yani bitler üzerinde yapılıyor. Farzedelim “akşam saat 9 da dost kitabevinin önünde” mesajını göndermek istiyorsunuz. Bu mesajın bilgisayar dilinde karşılığı doğal olarak 0 ve 1 lerden oluşan bir dizi olacak. Bu dizi de tamamen hayali olarak örnek vermek gerekirse; 0100111001010011 olsun. 0100111001010011 “hash” fonksiyonuna dahil olduktan sonra hash sonucu tamamen farklı 0100001011011010 olacak. Önemli nokta ise hash sürecinin sadece tek yönlü olması. Yani, hash fonksiyonu sonucu ortaya çıkan bilgiden hash öncesi orjinal bilgiyi elde etmenin yolu yok. Bu süreci kimyasal bir reaksiyon gibi düşünebilirsiniz. Yumurta pişirildikten sonra yumurtanın eski haline dönüştürülmesi imkansızdır. Bu durumda hash sonucu karşıdaki bilgisayara gönderildiği esnada, orjinal mesajın da hash sonucuyla birlikte gönderilmesi gerekiyor. Alıcı bilgisayar, orjinal mesaja hash fonksiyonunu uygulayıp, çıkardığı sonucu kendisine orjinal mesajla gönderilen hash sonucuyla karşılaştırıyor. Eğer alıcı bilgisayarın oluşturduğu hash sonucu, mesajla birlikte gönderilen hash sonucuyla aynıysa, alıcı bilgisayar kendisine gelen orjinal mesajın üzerinde oynama yapılmadığından emin olmuş oluyor.
Hash sonucunun orjinal mesajla birlikte gönderilmesinin tek sebebi, orjinal mesajın gönderim sırasında değişikliğe uğramadığından emin olmak. Bu hash sürecinin dijital sertifika (imza) sürecine dahil edilmesinin sebebi de tam olarak bu. Bildiğiniz gibi dijital imza mesajın göndericiden geldiğinden emin olmaktı. Hash ‘le birlikte mesajın hem gerçekten beklediğimiz göndericiden geldiğinden hem de mesajın oluşturulduğu gibi değişikliğe uğramadan bize geldiğinden emin oluyoruz. Bu sırada kullanılan şifreleme ise mesajın alıcı ve gönderici dışında kimse tarafından okunmadığından her iki tarafında emin yapıyor. Şimdi tam olarak resmi “dijital sertifika” alışverişine bakabiliriz:

1- Mehmet “seni seviyorum” mesajını hash fonksiyonuna sokar ve çıkan hash sonucunu gizli anahtarıyla şifreler.
2- Mehmet ayşeye mesajı göndermeden once mesajın kendisiyle birlikte mesajın şifrelenmiş hash sonucunu birbirine ekler. Daha sonra ayşeye mesajı yollar.
3- Ayşe birbirine eklenmiş halde gelen paketten mesajın kendisini yani “seni seviyorum” verisini ayırır ve aynı hash fonksiyonundan geçirir.
4- Ayşe aynı zamanda hash sonucunu birbirine ekli paketten ayırır, mehmetin açık anahtarıyla şifrelenmiş hash sonucunu açar.
5- Ayşe, 3 ve 4. Aşamalardaki hash sonuçlarını birbiriyle karşılaştırır. Sonuçlar aynıysa, Ayşe mesajın üzerinde oynama yapılmadığından emin olabilir ve mesajı güvenle okuyabilir.
Dijital sertifika, dijital kimlik yada dijital imzanın resmi olarak işleyişi yukarıdaki gibi oluyor. Farkedilebileceği gibi, dijital sertifikanın amacı bilgiyi yollayan taraftan emin olunması ve bilgiyi yollayanın aksini iddia edememesi. Mesajın kriptolanması (şifrelenmesi) dijital imza için birinci derecede önem taşımıyor. Bu sonuca nerden varıyoruz? Yukarıdaki örneğe dikkatle bakarsak, mesajın transfer esnasında başka bir kişi tarafından okunması sürpriz olmaz. Çünkü mesajın aslı paket içinde açık olarak yolculuk ediyor. Fakat, herhangi bir kötü kişi (örnek olarak kötüahmet) mesajı okusa bile içeriğinde değişiklik yapamıyor. Yaptığı anda, hash sonuçları farklılık gösterecek. Bununla birlikte kötüahmet mesajı mehmetin açık anahtarıyla açtıktan sonra değişiklik yapıp yollamak isterse, yeni hash sonucunu mehmetin gizli anahtarıyla şifrelemek zorunda ki, bud a mümkün değil; çünkü gizli anahtar sadece mehmette bulunuyor.
Mesajın kimse tarafından okunmaması mehmet ve ayşe arasında oluşturulacak güvenli (şifreli) iletişim yolu sayesinde sağlanıyor. Daha açık olarak; dijital imza dışında bütün paket transferleri sadece mehmet ve ayşe tarafından bilinen bir anahtarla şifreleniyor. Bu aşamadan sonra tam olarak güvenli sayabileceğimiz veri transferi yapılmış oluyor.
Dökümanın birinci kısmını indirmek için: Kriptografi_ve_Kull_Alan_I.pdf
Bilgiselhayat'a hosgeldin, umarim yazilari severek okur ve onlardan faydalanabilirsiniz. Icerigi RSS olarak almak isterseniz lütfen buraya tiklayin. Ziyaretiniz için tesekkürler!

Yazıyı beğendiyseniz, sadece benzer yazıları içeren kategoriyi RSS olarak almak için tıklayın:




(2 değerlendirme, ortalama: 4.5//maks: 5)
