Ünite 4: Açık Anahtar Şifreleme ve Mesaj Doğrulama

Giriş

Simetrik anahtar şifreleme yöntemleri uzun yıllardır bir mesajın bir kullanıcıdan diğer bir kullanıcıya gizli bir şekilde ulaştırılmasında kullanılmıştır. Kullanıcılar arasında gizli anahtarların dağıtılması, mesaj içeriğinin değişime uğrayıp uğramadığının doğrulanması, mesajı oluşturan kişinin kimliğinin onaylanması gibi gereksinimleri sağlamak amacıyla 1976 yılında açık anahtar şifreleme yöntemi ortaya konmuştur.

Açık anahtar şifreleme yöntemlerinde kullanıcının birbiriyle ilişkili iki anahtarı vardır. Bu iki anahtar birbirinden bağımsız değildir:

  • Bu anahtarlardan biri açık anahtar olarak adlandırılır. Açık anahtar başkaları tarafından bilinebilir. Açık anahtar, mesajların şifrelenmesinde ve dijital imzalarda mesajı gönderenin kimliğinin doğrulanmasında kullanılır.
  • İkinci anahtar, gizli anahtar olarak bilinir. Gizli anahtarın sadece kullanıcının kendisi tarafından bilindiği kabul edilir. Gizli anahtarın ifşa olması durumunda gizlilik söz konusu değildir. Gizli anahtar, şifrelenmiş metinlerin çözülmesinde ve dijital imzaların oluşturulmasında kullanılır.

Güvenlik sistemlerinin sağlaması gereken birçok güvenlik servisleri bulunur. Farklı uygulamalar için değişik servislerin önemi vardır. Bu güvenlik servislerinden bazıları kısaca şöyle açıklanabilir:

  • Gizlilik: Sadece yetkili kişilerin mesajı okuyabilmesidir.
  • Mesaj bütünlüğü: Yetkisi olmayan kişilerin iletim halindeki mesaj içeriğinde hiçbir değişiklik yapamamalarıdır.
  • Kimlik doğrulama: Mesajı oluşturan kişinin kimliğinin onaylanmasıdır.
  • İnkar edememe: Mesajı oluşturan kişinin, oluşturduğu mesajı inkâr edememesidir. Ayrıca mesajı alan kişi, mesajın içeriğini değiştirerek başka mesaj aldığı iddiasında bulunamaz.
  • Erişim kontrolü: Kullanıcılar kendilerine verilen yetkiler doğrultusunda servislerden faydalanmalıdır. Her kullanıcı kaynaklara, kendisine verilen yetkinin izin verdiği ölçüde erişebilir olmalıdır.
  • Kullanılabilirlik: Kullanıcıların, servisleri arzu ettikleri zaman kullanabilmesine imkân verilmelidir. Genel olarak, kaynaklara erişim yetkisi olan kullanıcıların erişim yetkisi oldukları zaman dilimlerinde bu kaynaklara erişebilmeleri anlamına gelir.
  • • Fiziksel güvenlik: Donanımın kötü niyetli kişiler tarafından fiziksel olarak zarara uğratılması engellenmelidir. Gerekli donanım güvenlik önlemleri alınmış olmalı ve çevresel faktörler ile doğal afetlere karşı korunaklı binalarda saklanmalıdır.
  • Denetim: Özel durumların kayıt altına alınması ile bir yanlış işlemin veya kötü niyetli kullanımın kim veya kimler tarafından yapıldığının tespit edilmesine imkân verilmelidir.

Açık Anahtar Şifreleme Algoritmaları

Açık anahtar şifreleme algoritmaları şifreleme ve çözme için farklı iki anahtar kullandıklarından asimetrik şifreleme olarak isimlendirilir. Simetrik şifreleme algoritmalarının yetersiz kaldığı durumlarda güvenlik servislerinin sunulması amacıyla özet fonksiyonları ve asimetrik şifreleme algoritmaları kullanılmaktadır. Simetrik anahtar şifreleme algoritmalarının en önemli problemi, gizli anahtarların dağıtılması olarak tanımlanan anahtar paylaşım problemidir.

Farklı bir teknik ile yukarıda açıklanan servislerin sağlanması ve gizli anahtarların dağıtılması gerekir. Bu açığı gidermek için açık anahtar şifreleme algoritmaları geliştirilmiştir. Diffie-Hellman-Merkel tarafından açık anahtar şifreleme yöntemde simetrik şifrelemenin aksine her kullanıcının birbiri ile ilişkili bir açık ve bir gizli olmak üzere iki anahtarı vardır. Kullanıcı açık anahtarını herkes ile paylaşabilir fakat gizli anahtarını yalnızca kendisinin bilmesi gerekmektedir. Açık anahtar ve gizli anahtar matematiksel bir ilişki ile birbirlerine bağlanmıştır.

Açık anahtar şifreleme yöntemleri, gerek dayandıkları matematiksel yöntemlerin uzun ve karmaşık hesaplamalar gerektirmesi, gerek anahtar uzunluklarının simetrik anahtar şifreleme yöntemlerine göre daha uzun olmasından dolayı gizli anahtar şifreleme algoritmalarına göre daha yavaş çalışmaktadırlar. Simetrik ve asimetrik anahtar şifreleme algoritmalarının birbirlerine göre avantaj ve dezavantajları vardır.

Açık anahtar şifreleme yöntemlerinde üç farklı tek yönlü fonksiyon kullanılmıştır. Bu fonksiyonlar;

  • Tam sayıyı asal çarpanlarına ayırma,
  • Ayrık logaritma ve
  • Eliptik eğriler fonksiyonlarıdır.

Tam sayıyı asal çarpanlarına ayırma ve ayrık logaritma yöntemlerinde kullanılan anahtar uzunlukları 1024, 2048, 3072 bit gibi oldukça uzundur. Eliptik eğri yöntemlerinin anahtar uzunlukları her iki yönteme göre daha kısadır.

Açık anahtar şifreleme algoritmalarının uygulanabilmesi için bazı şartları sağlamaları gerekmektedir:

  • Öncelikle kullanıcılar, hem açık hem de gizli anahtarlarını kolaylıkla hesaplayabilmelidir.
  • İkinci olarak, şifreleme fonksiyonu ve ilgili anahtar kullanılarak şifreli mesaj kolaylıkla hesaplanmalıdır.
  • Üçüncü gereksinim ise şifre çözme fonksiyonu ve ilgili anahtar kullanılarak şifreli metinden açık metin elde etmenin kolaylıkla yapılabilmesidir.
  • Dördüncü gereksinim ise gizli anahtarın elde edilmesi ile ilgilidir.
  • Beşinci gereksinim kötü niyetli kişiler açık anahtarı ve şifreli metni elde etseler bile, gizli anahtara ulaşmaları hesaplama açısından olanaksız olmalıdır.
  • Son gereksinim, açık ve gizli anahtarın şifreleme ve şifre çözme işlemleri için herhangi bir sırada yapılabilmesine olanak sağlaması olarak açıklanabilir.

Eğer elimizde iki veya daha fazla şifreleme algoritması varsa, bunlardan birinin şifreleme algoritması olarak seçilmesi gerekmektedir. Bu seçimin belli kriterlere göre yapılması gerekir. Bu kriterler;

  • Güvenlik,
  • Performans ve
  • Kolay kullanılabilirlik olarak sıralanır.

Simetrik şifreleme algoritmaları açık anahtar şifreleme algoritmalarına göre daha hızlı olduklarından, bir mesajın gizli olarak alıcıya ulaşması için simetrik şifreleme algoritmaları kullanılır. Açık anahtar şifreleme algoritmalarının ise en önemli iki uygulama alanı vardır.

  • Bunlardan birincisi oturum anahtarının kullanıcılar arasında güvenli bir şekilde paylaşılması,
  • İkincisi ise dijital imza ya da diğer adıyla elektronik imza uygulamasıdır.

Kısaca açık anahtar şifreleme algoritmaları, oturum anahtarı paylaşımı, dijital imza, inkar edilemezlik ve güvenli veri saklama amacıyla kullanılabilir.

Bütün şifreleme algoritmalarına karşı saldırılar gerçekleştirilebilir. Bu saldırıların amacı, gizli anahtarları ele geçirerek şifrelenmiş mesajlardan orijinal mesajlara ulaşmaktır. Açık anahtar şifreleme algoritmalarına karşı değişik saldırılar olabilir. Kötü niyetli kişilerin bu saldırıları gerçekleştirmeleri için üç şey gerekir:

  • Öncelikle saldırıları gerçekleştirmek için motivasyon gereklidir.
  • İkinci olarak, kötü niyetli kişilerin saldırıları gerçekleştirmek için kullanacakları bir metot olmalıdır.
  • Üçüncü olarak, kötü niyetli kişilerin ihtiyaç duyacağı şey fırsat olarak sıralanabilir.

Bunların biri eksikse saldırının gerçekleşmesi beklenemez.

Açık anahtar şifreleme algoritmalarına karşı yapılabilecek değişik saldırılar vardır:

  • Bunlardan birincisi, açık anahtar bilgisini kullanarak gizli anahtara ulaşmak şeklinde açıklanabilir.
  • İkinci bir saldırı türü, açık anahtar bilgisi ve bu anahtarla şifrelenmiş şifreli metin bilgisinden yola çıkarak gizli anahtarı elde etmeye çalışmak olabilir.
  • Diğer saldırı türü, bütün şifreleme algoritmalarına karşı gerçekleştirilen en yaygın ataklardan biri olan kaba kuvvet atağıdır.

RSA

RSA, eliptik eğriler yöntemiyle, daha kısa anahtarlar kullanmasına rağmen en yaygın olarak kullanılan ve bilinen açık anahtar şifreleme yöntemidir. Kısa metinlerin şifrelemesinde, dijital imza oluşturmada ve simetrik yöntemler için gerekli gizli anahtarın kullanıcılara dağıtılmasında kullanılır.

RSA algoritmasında, hem anahtarların üretilmesinde hem de şifreleme ve çözmede, üs alma ve modüler hesaplama gibi uzun zaman gerektiren işlemler yapılmaktadır.

RSA algoritmasını hızlandırmak için kullanılması tavsiye edilen yöntemler;

  • Çin Kalan Teoremi,
  • Hızlı üs hesaplama ve
  • Küçük açık anahtar seçme gibi yöntemlerdir.

RSA asimetrik şifreleme algoritması genel olarak mesaj şifreleme ve çözme, dijital imza ve anahtar paylaşımı için kullanılabilir.

Diffie-Hellman şifreleme algoritmasının uygulama alanı RSA’ye göre daha sınırlıdır. Açık anahtar veya asimetrik şifreleme algoritması olan Diffie-Hellman, aslında anahtar değişimi protokolü olarak bilinir. Özelleştirildiği işlem olan anahtar paylaşımı konusunda diğer algoritmalara göre daha başarılı bir algoritmadır. Bu algoritmanın en önemli problemi, öncesinde kimlik doğrulama yapılması gerekliliğidir.

Diffie-Hellman şifreleme algoritmasının güvenliği ayrık logaritma hesaplanmasının zorluğuna dayanmaktadır. RSA şifreleme algoritmasının güvenliği ise verilen bir n sayısının çarpanlarına ayrılmasının zorluğuna dayanmaktadır.

ElGamal şifreleme sistemi, Taher ElGamal tarafından 1985 yılında ayrık logaritma üzerine kurulan bir açık anahtar şifreleme yöntemidir. ElGamal algoritmasının güvenliği de ayrık logaritmaların hesaplanmasının zorluğuna dayanmaktadır.

RSA, Diffie-Hellman ve ElGamal açık anahtar şifreleme algoritmalarına ek olarak başka açık anahtar şifreleme algoritmaları da vardır. Bunlar arasında;

  • Eliptik eğri şifreleme algoritması,
  • Dijital imza algoritması ve
  • Paillier şifreleme sistemi gibi algoritmalar sayılabilir.

Açık anahtar şifreleme algoritmalarının temel olarak altı bileşeni vardır. Bunlar;

  • Açık metin kümesi,
  • Şifreli metin kümesi,
  • Şifreleme fonksiyonu,
  • Şifre çözme fonksiyonu,
  • Açık anahtar ve
  • Gizli anahtar olarak sıralanabilir.

Güvenlikleri, bu algoritmaları kırmak için yapılan hesaplamaların zorluğuna dayanır. Anahtar uzunluğu güvenlikleri açısından çok önemlidir. Matematiksel fonksiyonlara dayandıklarından simetrik şifrelemeye göre daha yavaştırlar. Gizli anahtar şifreleme algoritmaları bit tabanlı basit operasyonlara dayandığından daha hızlıdır.

Dijital İmza

Elektronik ortamda bir mesajın kime ait olduğunu kanıtlamak için bir açık şifreleme algoritması olan dijital imza kullanılır. Dijital imza günlük hayatta kullanılan ıslak imzadan farklı olarak her seferinde farklı bir değere sahip olmaktadır. Dijital imza fonksiyonunun bir girdisinin açık metin olmasından dolayı metinlerin farklı olması durumunda her seferinde farklı imzalar üretilecektir.

Dijital imza hem mesajlaşmada kimlik doğrulamayı sağlayarak haberleşen iki kişiyi, kötü niyetli üçüncü kişilere karşı hem de haberleşen kişileri inkâr etme ihtilaflarında birbirlerine karşı korumaktadır.

Dijital imzanın, imzalanan metne bağlı bir örüntüsü olmalıdır. Dijital imza benzersiz olmalıdır. Dijital imzaları üretmek hesaplama açısından kolay olmalıdır. Göndericiden gelen imzaları tanımak ve doğrulamak kolay olmalıdır. Göndericinin oluşturduğu dijital imzayı kötü niyetli kişiler oluşturamamalıdır. Gönderici dijital imzanın bir kopyasını kolaylıkla oluşturarak saklayabilmelidir.

RSA dijital imza protokolü RSA şifreleme algoritmasına dayanmaktadır. En yaygın olarak bilinen ve kullanılan dijital imza protokolüdür.

RSA dijital imzalamasına ek olarak, daha önce açıklanan ElGamal şifreleme algoritması da dijital imza için kullanılabilir.

Dijital imza algoritması (DSA-Digital Signature Algorithm) ayrık logaritma prensibine göre tasarlanmıştır. Fakat ElGamal dijital imza protokolüne göre daha yaygın olarak kullanılmaktadır. DSA algoritması, sadece dijital imza üretmek amacıyla tasarlanmıştır. RSA ve ElGamal algoritmalarında olduğu gibi şifreleme amaçlı kullanılmaz.

Özet Fonksiyonları

Özet fonksiyonu, değişken uzunlukta bir mesajı girdi olarak alır ve sabit uzunlukta bir çıktı mesajı üretir. Özet fonksiyonları dijital imza oluşturulması, parolaların saklanması, Internet üzerinden indirilen bir dosyanın içerik olarak tam ve doğru indirildiğinin doğrulanması veya mesajın iletim sırasında yetkisi olmayan kişiler tarafından içeriğinin değiştirilip değiştirilmediğinin kontrol edilmesi gibi birçok alanda kullanılmaktadır. Özet fonksiyonları bu işlevlerini herhangi bir anahtar kullanmadan yerine getirir.

Dijital imzalamada bütün metin imzalanabilir. Bunun anlamı, bütün metnin şifrelenmesidir. Bu durumda uzun bir metin için mesajın sonuna, verimsiz şekilde metin boyutu kadar dijital imzanın eklenmesi gerekmektedir. Bu işlemin bazı sakıncaları vardır:

  • Birinci dezavantajı, gereksiz yere mesaj boyutunu iki katına çıkarmak suretiyle daha uzun bir mesajın ağ üzerinden gönderilmesi gerekmesidir.
  • İkincisi ise dijital imza oluşturmak ve kontrol etmek için gereken zamanın uzamasıdır.

Bu dezavantajlara ek olarak, hem mesajın hem de imzanın bazı bloklarının yerlerinin değiştirilmesi sonucu güvenlik açığı oluşabilmektedir.

Bunun yerine herhangi bir boyutta verilen bir metnin daha kısa ve sabit uzunlukta özeti elde edilebilir. Bütün mesaj yerine bu özet şifrelenerek mesaj imzalanmış olur.

Özet fonksiyonları bazı özelliklere sahip olmalıdır. Öncelikle özet fonksiyonu mesaj uzunluğundan bağımsız olmalıdır. Ayrıca, özet fonksiyonu için performans önemlidir, kısa bir zaman zarfı içerisinde çıktı üretmelidir.

Özet fonksiyonları güvenli olmaları açısından;

  • Ön-görüntü direnci (tek yönlülük),
  • İkinci ön-görüntü direnci (zayıf çakışma direnci) ve
  • Çakışma direnci (güçlü çakışma direnci) özelliklerine sahip olmalıdır.

İki türlü özet algoritması vardır:

  • Birinci türde sadece özet değeri üretmek amacı ile tasarlanmış MD ve SHA ailesi algoritmalar vardır. Bu algoritmalar, Merkle-Damgard yöntemini kullanır.
  • İkinci grupta ise simetrik blok şifreleme algoritmaları kullanılarak elde edilen özet fonksiyonları yer almaktadır.