Kavramlar
Önceki Linux'ta GPG Kullanımı Sonraki
Kavramlar
GnuPG simetrik şifreler, genel anahtarlı şifreler ve tek yönlü haşlama :-) gibi çeşitli kriptografik kavramlar kullanır. Bu kavramları çok iyi bilmeden de GnuPG kullanabilirsiniz ancak, onları biraz bile anlamak GnuPG'yi akıllıca kullanmak için gereklidir.
Bu kısımda GnuPG'de kullanılmış olan kriptografik kavramlar ele alınmıştır. Başka kitaplarda bu konular daha ayrıntılıdır. Bu öğretiyi izleyebileceğiniz iyi bir kitap Bruce Schneier'in "Applied Cryptography" kitabıdır.
Simetrik Şifreler
Simetrik şifre, hem şifreleme hem de şifre çözme için aynı anahtarın kullanıldığı bir şifredir. Haberleşirken bir simetrik şifreyi kullanan iki taraf, anahtarın diğer tarafta mevcut olduğunu varsayar. Bu varsayımdan hareketle gönderici bir mesajı anahtarı kullanarak şifreler ve onu alıcıya gönderir. Alıcı da bu gönderinin şifresini anahtarı kullanarak çözer. Bir örnek olarak, German Enigma bir simetrik şifredir ve günlük kullanılan anahtarlar kod kitabında dağıtılmıştır. Her gün gönderen ya da alan radyo operatörü günün anahtarını bulmak için kod kitabının kendindeki kopyasından yararlanır. Gün içindeki radyo trafiği günün anahtarı kullanılarak şifrelenir ve şifresi çözülür. Simetrik şifrenin günümüzdeki örnekleri arasında 3DES, Blowfish ve IDEA sayılabilir.
İyi bir şifre güvenliğin tamamını anahtara yükler, algoritmaya değil. Başka bir deyişle, hangi şifrenin kullanıldığını bilse bile bu şifrenin saldırgana hiçbir yardımı olmamalıdır. Sadece algoritmanın ne olduğu bilgisine gereksinimi olan anahtarı ele geçirir. GnuPG içinde kullanılan şifreler bu özelliğe sahiptir.
Güvenliğin tamamının anahtarda olmasından dolayı, anahtarın tahmin edilmesinin güçlüğü önemli bir faktördür. Başka bir deyişle, olası anahtarların kümesinin, vs. anahtar uzayının çok geniş olması gerekir. Los Alamos'dayken, Richard Feynman kasa açma yeteneği ile ümlüydü. İşin esrarını arttırmak için yanında içinde eski bir steteskop da bulunan bir alet çantası taşırdı. Gerçekte, doğru birleşimlerin sayısını zekice yöntemlerle düşürerek doğru birleşimi bulmak için bunları denemek yolunu kullanırdı. Başka bir deyişle, anahtar uzayını küçültürdü.
İngiltere II. Dünya Savaşı sırasında anahtarları keşfetmek için makina kullandı. Alman radyosu German Enigma çok geniş bir anahtar uzayı kullanıyordu, ama İngiltere de Bombes adını verdikleri bir makina ile deneyerek günün anahtarını bazan buluyordu.[23] Bazan günün anahtarı birkaç saat içinde bulunabilirken bazan bu hiç mümkün olmuyordu. Bombes genel amaçlı bir hesap makinası değildi, ama günümüz hesap makinalarının öncülerinden biriydi.
Bugün, bilgisayarlar anahtarları çok çabuk tahmin edebilmesi anahtar uzunluğunun günümüz kriptosistemleri için önemini arttırmaktadır. DES şifresi 56 bitlik bir anahtar kullanır. Bu da 256 yani 72,057,594,037,927,936 tane olası anahtar demektir. Bu büyük bir miktarmış gibi görünse de günümüzdeki sıradan bir bilgisayar günlerle ifade edilen bir sürede tüm anahtar uzayını tarayabilmektedir. Bu işe hasredilmiş bir bilgisayarla ise birkaç saat sürmektedir. Diğer yandan daha yakın zamanlarda 3DES, Blowfish, IDEA gibi 128 bitlik anahtarlar kullanan şifreler tasarlanmıştır. Bunlarla çok daha fazla sayıda, 2128 tane anahtar üretilebilir. Bu öyle büyük bir sayıdır ki, dünyadaki tüm bilgisayarlar birarada çalışıp tüm anahtar uzayını taramaları evrenin yaratılmasından zamanımıza kadar geçen süreden fazlasına ihtiyaç duyacaktır.
Genel Anahtarlı Şifreler
Simetrik şifrelerle igili asıl sorun onların güvenlikleri ile değil, anahtar değişimi ile ilgilidir. Güvenli haberleşme için gönderici ve alıcı anahtarlarını değiş-tokuş ederler de, bu değiş-tokuşun yapıldığı haberleşme kanalı ne kadar güvenlidir? İşte bu noktada saldırganın işi kolaydır, anahtarın yolunu kesmeye çalışacak sonra da anahtar uzayındaki tüm anahtarları deneyecektir. Bir diğer sorun da gerekli anahtarların sayısı ile ilgilidir. Haberleşmek isteyen n kişi varsa haberleşme gizliliğine ihtiyaç duyan kişilerin her çifti için n(n-1)/2 anahtar gerekecektir. Bu küçük bir grup için sorun değildir ama bu grup çok kısa sürede çok büyük bir grup haline gelir.
Genel anahtarlı şifreleme ile anahtar değişimi sorunu tamamen ortadan kalkmaktadır. Bir genel anahtarlı şifre mesajların gönderilmesi sirasında bir anahtar çifti kullanır. Başka iki anahtarı da mesajı alan taraf kullanır. Anahtarlardan biri genel anahtardır ve herkese verilebilir, diğeri ise gizli anahtardır ve anahtarın sahibi tarafından herkesten gizlenir. Bir gönderici göndereceği mesajı alıcının genel anahtarı ile şifreler ve alıcı da bu mesajı kendi gizli anahtarı ile çözer.
Bu protokol simetrik şifrelerin doğasında olan anahtar değişimi sorununun çözümüdür. Gönderici ve alıcının diğerinden bir anahtar kabul etmeye ihtiyacı yoktur. Gizli haberleşmenin yapılmasından çok önce gönderici alıcının genel anahtarının bir kopyasını zaten almış olur. Diğer yandan aynı genel anahtarın kopyalarını alıcı ile gizlilik gerektiren iletişim gerçekleştirmek isteyen herkes tarafından kullanılabilir. Bu durumda n kişi için sadece n anahtar çifti gerekir.
Genel anahtarlı şifreleme tuzak kapılı tek yönlü işlev (one-way trapdoor function) üzerine inşa edilmiştir. Bir tek yönlü işlevin hesaplanması kolay olduğu halde tersinin hesaplanması çok zordur. Örneğin asal sayıların çarpımlarından oluşan bir sayıyı elde etmek kolaydır ancak böyle bir sayıyı asal çarpanlarına ayırmak daha zordur. İşte tuzak kapılı tek yönlü işlevde böyle birşeydir ancak onun bir tuzak kapısı vardır yani bilginin bazı parçaları bilinir, böylece tersini hesaplamak kolaylaşır. Örneğin iki asal sayının çarpımından oluşan bir sayıyı asal çarpanlarına ayırmak, çarpanlarından biri bilindiğinde çok kolay olur. Bir genel anahtarlı şifre asal sayıların çarpımları üzerine kurulur. Bir genel anahtar iki çok büyük asal sayının çarpımıdır ve şifreleme algoritması mesajı şifrelerken bu birleşimi kullanır. Şifreyi çözen algoritmanın asal çarpanları bilmesi gerekir. Gizli anahtar bu çarpanlardan birini içeriyorsa şifrenin çözülmesi kolay olur ancak çarpanlardan biri bile bilinmiyorsa çözüm çok çok zor olur.
İyi bir simetrik şifredeki gibi iyi bir genel anahtarlı şifre de güvenlik ihtiyaçlarının tamamını anahtara yükler. Burada da anahtarın uzunluğu sistemin güvenilirliğinin ölçüsüdür. Ancak bir simetrik şifreleme anahtarının uzunluğu ile bir genel anahtarlı şifreleme anahtarının uzunluğu arasındaki göreli bir ilişkiyle güvenilirlik derecesini ilişkilendirmek bir ölçü değildir. Bir deneme yanılmalı saldırıda 80 bitlik anahtarlı bir simetrik şifreyi oluşturan anahtarı bulmak için saldırgan 280 anahtarı tek tek deneyecektir. Bir genel anahtarlı şifre üzerine böyle bir saldırı yapıldığında saldırgan, 512 bitle kodlanmış (155 haneli bir sayı) birleşiminin çarpanlarını bulmaya çalışacaktır. Saldırganın iş yükü temel olarak saldırdığı şifreye bağlıdır. Simetrik şifreler için günümüzde 128 bit yeterli olurken, günümüzdeki çarpanlara ayırma teknolojisi gözönüne alındığında, genel anahtarlarda 1024 bitin yeterli olacağı anlaşılmaktadır.
Melez Şifreler
Genel anahtarlı şifreler her derdin devası değildir. Birçok simetrik şifre güvenlik noktasından bakıldığında daha sağlamdır, genel anahtarlı şifreleme ve şifre çözme işlemi ise simetrik sistemlerdeki aynı tür işlemlerle karşılaştırıldığında daha masraflıdır. Buna rağmen genel anahtarlı şifreleme simetrik şifreleme anahtarlarının dağıtımı için faydalı bir araçtır ve bu, melez şifreleme sistemlerinin nasıl çalıştığı hakkında bir fikir verir.
Bir melez şifre hem simetrik şifreyi hem de genel anahtarlı şifreyi kullanır. Bu mekanizma, bir simetrik şifreyi paylaştırmakta bir genel anahtarlı şifreyi kullanır. Simetrik şifreyi taşıyan mesaj genel anahtarla şifrelendikten sonra alıcısına gönderilir. Simetrik anahtar paylaşımının güvenliği için gönderilen her mesaj için farklı simetrik anahtar kullanılır. Bu nedenle, bazan ona oturum anahtarı dendiği de olur.
Hem PGP hem de GnuPG melez şifreleri kullanmaktadır. Oturum anahtarı, genel anahtarlı şifre kullanılarak şifrelenir ve gönderilecek mesaj da simetrik şifre ile şifrelenerek her ikisi otomatik olarak bir paket içinde birleştirilir. Alıcı gizli anahtarını kullanarak oturum anahtarının şifresini çözer ve elde ettiği oturum anahtarı ile mesajın şifresini çözer.
Bir melez şifre, kullandığı genel anahtarlı veya simetrik şifreden daha sağlam değildir. Bunlardan zayıf olanı kadar zayıftır. PGP ve GnuPG için genel anahtarlı şifre çiftin daha zayıf olanıdır. Bereket versin ki, yine de, eğer bir saldırgan oturum anahtarını ele geçirirse sadece bu oturum anahtarı ile şifrelenmiş mesajı okuyabilecektir. Başka bir mesajı okumak için benzer işlemleri yeniden yapmak zorundadır, çünkü oturum anahtarı her mesaja özeldir.
Sayısal İmzalar
Bir hash işlevi, girdisini bir sonlu sayılar kümesi içindeki bir değerle eşleştiren bir işlevdir. Genel olarak bu küme doğal sayılar aralığıdır. Basit bir hash işlevi x'lerin tamsayılardan oluştuğu f(x) = 0 eşitliği ile ifade edilir. Daha ilginç bir hash işlevi ise f(x) = x mod 37 dir. İşlevdeki x'in değeri, x'in 37 ile bölünmesinden kalandır.
Bir belgenin sayısal imzası belgeye bir hash işlevinin uygulanmasının sonucudur. Kullanım amacına uygun olarak, bir hash işlevi iki önemli özelliğinin sağlanmasını gerektirir. İlki, aynı değere haşlanan iki belgenin bulunması zor olmalıdır. İkincisi ise, verilen bir hash değerini sağlayan bir belgenin bulunması zor olmalıdır.
Bazı genel anahtarlı şifreler[24] belgeleri imzalamakta kullanılabilir. İmzacı belgeyi kendi gizli anahtarı ile şifreler. İmzayı kontrol etmek ve belgeyi görmek isteyen biri basitçe imzacının genel anahtarını kullanarak belgenin şifresini çözer. Bu algoritma, iyi bir hash işlevinin gerektirdiği iki özelliği sağlar, fakat pratikte, bu algoritma kullanışlılık bakımından çok yavaştır.
Bir alternatif de, bu iki önemli özelliği sağlamak üzere tasarlanmış hash işlevleri kullanmaktır. SHA ve MD5 bu algoritma için örnek olarak verilebilir. Bu algoritma kullanıldığında, bir belge onunla hash'lenerek imzalanmıştır ve hash değeri de imzadır. Bir başka kişi imzayı, belgenin ondaki kopyasını ayrıca hash'leyerek ve bu hash değerini orjinal belgenin hash değeri ile karşılaştırarak kontrol eder. Bu iki değer aynıysa belgeler de birbirinin aynıdır.
Şüphesiz, şimdiki sorun imza denetimi ile etkileşecek bir saldırgana izin vermeksizin sayısal imzalarda hash işlevinin kullanılmasıdır. Belge ve imza şifrelenmeksizin gönderilirse, bir saldırgan belgeyi değiştirebilir ve alıcının bilgisi dışında değişmiş belgeye uygun bir imza üretebilir. Eğer sadece belge şifrelenmişse, saldırgan imzayı tahrif ederek imza denetiminin başarısız olmasına sebep olabilir. Bir üçüncü seçenek de belgenin ve imzanın bir melez genel anahtarlı şifreleme kullanarak şifrelenmesidir. İmzalayan, kendi gizli anahtarını kullanır, diğer herkes belgeyi ve imzayı kontrol etmek için onun genel anahtarını kullanır. Buradan sesler iyi geliyor da, etkisi yok. Eğer bu algoritma gerçekten belgeyi güvenilir kılıyorsa, belgenin tahrif edilmesine karşı da güvenilir olacaktır ve imzaya gerek kalmayacaktır. Yine de bir takım sorunlar hala vardır; imza ve belgenin ikisini birden tahrif edilmekten koruyamaz. Bu algoritmada, simetrik şifrenin oturum anahtarı imzalayanın gizli anahtarı kullanılarak şifrelenir. Başkaları oturum anahtarını elde etmek için genel anahtarı kullanabilir. Bu sebeple, saldırgan için oturum anahtarını elde etmek kolaydır ve onu kullanarak yerine koyduğu belgeleri ve imzaları şifreleyip göndericinin ismiyle başkalarına gönderebilir.
Çalışan bir algoritma sadece imzayı şifrelemek için bir genel anahtar algoritmasının kullanıldığı algoritmadır. Hash değeri imzalayanın gizli anahtarı kullanılarak şifrelendiğinden herhangi biri genel anahtarı kullanarak imzayı kontrol edebilir. İmzalı belge herhangi bir algoritma kullanılarak gönderilebilir, belge genel amaçlı ise hiçbir şifreleme de yapılmayabilir. Belge değişikliğe uğrarsa, imza denetimi başarısız olacaktır, ancak bu, imza denetiminin tam olarak neyi yakalayacağının varsayıldığı ile ilgilidir. Sayısal İmza Standardı (DSA - Digital Signature Standard) tam da yukarıda anlatıldığı gibi çalışan bir genel anahtarlı imza algortimasıdır. DSA, GnuPG tarafından kullanılan birincil imzalama algoritmasıdır.
Belge ile ilgili görüş ve önerilerinizi lütfen iletmekten çekinmeyiniz. GNUPG, açık anahtarlı kriptografi teknikleri üzerine temellenmiş bir uygulamadır. Açık anahtarlı kriptografi hakkında daha geniş bilgiyi http://zion.comu.edu.tr/~evreniz/belgeler/pkc/pkc.html adresinden temin edebilirsiniz.


[23] II. Dünya Savaşı sırasında İngiltere kıyılarında karaya oturan bir Alman denizaltısında daktilo makinasına benzer bir makina buldular. Bu makinanın günün anahtarını üreten makina olduğunu keşfettiler ve bu makinaya Bombes adını verdiler.
[24] Şifre, gerek genel anahtarın gerekse gizli anahtarın şifreleme algoritması tarafından genel anahtar olarak kullanılabilmesi özelliğine sahip olmalıdır. RSA bu algoritmaya uygunken ElGamal uygun değildir.
Önceki Üst Ana Başlık Sonraki
İmzalama ve Doğrulama Başlangıç Yasal Açıklamalar
Bir Linux Kitaplığı Sayfası