Şifreleme Algoritmaları

Bu bölümde Gizli Anahtarlı şifreleme ve Açık Anahtarlı şifrelemede kullanılan bazı şifreleme algoritmalarından bahsedeceğim.

DES (Data Encryption Algorithm)

Amerika Birleşik Devletleri tarafından kullanılan bir şifreleme algoritmasıdır. 1960’ların sonunda IBM’de çalışan Horst Feistel adlı bir araştırmacı başkanlığındaki bir grup LUCIFER adı verilen bir şifreleme sistemi geliştirmiştir. 1973 yılında ABD standartlar enstitüsü NIST(National Institute of Standards and Technology) sivil kullanım için bir standart saptamak için firmaları davet eder. Yapılan incelemeler sonucu amaca en yakın çözüm LUCIFER bulundu. 128 bitlik bir şifre anahtarına sahip LUCIFER üzerinde çalışan ABD Güvenlik Teşkilatı(NSA) uzmanları bazı düzenlemeler yaptılar ve anahtar uzunluğunu 56 bit’e indirdiler. Bu yeni algoritma 1977 yılında DES (Data Encryption Standard) olarak yayınlandı ve kısa bir zamanda başta finans endüstrisi olmak üzere birçok alanda standart halinde kullanıma alındı. DES aynı zamanda, sabit diskte veri saklamak gibi tek kullanıcılı şifreleme amaçlı da kullanılabilir.

DES algoritması gizli anahtar yönetimini kullanan Simetrik şifrelemeli bir algoritmadır. Aynı anahtar hem şifrelemeye hem de deşifrelemeye yarar. Yani şifreleyen algoritmaya(DES) şifreli bilgi verilip aynı anahtar kullanılarak algoritma tersten işletildiğinde şifre çözülür. DES günümüzdeki birçok simetrik şifreleme algoritması gibi şifreleme için Fiestel yapısını kullanılır. Fiestel yapısı şifrelenecek bloğun iki parçaya bölünmesi ve her aşamada sadece biri üzerinde işlem yapılması ve bu işleminin sonucununda bir sonraki aşamada verinin ikinci yarısına etkimesi esasına dayanan bir sarmal bir yapıdır.

DES klasik şifreleme sistemleri içinde efsanevi bir yere sahiptir ve bugün bile VISA, MASTERCARD, BKM, v.s. tüm kart sistemlerinin şifreleme omurgasını oluşturmaktadır. DES, karıştırma, yerine koyma işlemlerini son derece dikkatli ve sistematik olarak yapacak şekilde tasarlanmıştır. Bunun yanı sıra en küçük değişikliğini çok büyük farklar yarattığı çığ etkisi(avalanche effect) bulunmaktadır. Yeni tek bitlik bir değişiklik bile sonucu tamamen değiştirmekte ve değişiklikler önceden tahmin edilememektedir.

NSA incelemeleri sırasında DES şifreleme algoritmasını kendisine göre değiştirmiştir (s-box) ve neden, nasıl yaptığını açıklamamaktadır. Ancak anlaşılan nedeni IBM araştırmacılarının bilmeden NSA tarafından uzun zamandır bilinen bazı sırları keşfetmiş olmalarıdır. NSA bu değişiklikleri, DES’in gücünü artırmak için yapılmış uygun değerdeki sayılar şeklinde açıklamaktadır. Bir firmanın kendine özel bir DES yaratmak için bu sayıları kendine göre rasgele düzenlemesi tavsiye edilmemekte ve büyük bir olasılıkla şifrenin zayıflayabileceği belirtilmektedir.

Bu düzenlemeler nedeniyle şifreleme dünyasında yoğun eleştiri ve kuşkular doğmuş, NSA’ın DES içine gizli kapılar yerleştirdiği iddia edilmiştir. Diğer bir eleştiri de anahtar uzunluğunun 128 bit yerine 56 bit uzunluğa indirilmesidir. Bunun nedeni olarak da NSA bilgi işlem gücünün 56 bit şifreleri kırabilecek olması gösterilmiştir.

Buna karşın NSA, 56 bit uzunluğun kolay donanım DES tasarımına olanak sağlamak için yapıldığını belirtmiştir. Bunun da ötesinde bir süre sonra NSA bir yanlış anlama sonucu DES standardının kamuya açıklandığını, oysa onların bunu sadece donanımda uygulanacak bir sistem olarak düşündüklerini, bunu güçlendirmeye ve optimize etmeye çalıştıklarını, ancak açık olarak yayınlanan DES standardının yayınlanmasının ardında normal ticari kullanıma vermek istediklerinden güçlü bir şifreleme yönteminin piyasa çıkmasından rahatsızlık duyduklarını belirtmişlerdir.

Şifre sistemlerinin güvenliğini şifre anahtarlığının uzunluğu belirlemektedir. Genel olarak belirli bir yönteme de 10 yıl ömür biçilmektedir. DES 1999 yılı itibariyle 22 yaşındadır ve ömrü birkaç yıl uzatılmıştır. Artık yeteri derecede güvenli değildir. Birçok batı ülkesinin güvenlik servislerinin bilgi işlem kapasitesi DES şifrelerini birkaç dakika içinde kırabilecek düzeye gelmiştir. Bunun da ötesinde amatör şifre kırıcılar aranacak anahtar dilimini onbinlerce PC’ye bölerek Internet üzerinden dağıtmakta ve aynı anda onbinlerce PC çalışarak birkaç gün sonra sonuca erişebilmektedir. Bakılacak şifre adedi 256 adettir. Bu bir PC için çok büyük bir görevdir ama onbinlerce PC veya çok güçlü bilgisayarlar aranan bilgiyi kısa bir sürede bulabilirler.

TribleDES

Standart DES’in 112 veya 168 bitlik iki veya üç anahtar ile ardarda çalıştırılması ile oluşturulan bir şifreleme tekniğidir. Anahtar alanı 2 veya 2 sayısına ulaşınca bugün için veya tahmin edilir bir gelecekte çözülmesi mümkün olmayan bir kod olmaktadır. Buna “strong crypto” denilir ve en güçlü teknik imkânlara sahip ABD’nin bile çözmesi mümkün değildir.

Bu nedenle kullanımı ve yayılması sınırlanmak istenmektedir. ABD ve birçok batı ülkesi 40 bit’ten daha güçlü kripto sistemlerin ihracını kısıtlamaktadır. 40 bit, birkaç saniyede ABD güvenlik kurumu NSA tarafından çözülebilmektedir ve böylece “real-time” dinlemeyi olanaklı kılmaktadır. 56-bit bile bugün için belirli bir süre gerektirmektedir. Şüphesiz anında çözebilecek güçte bazı sistemler vardır ama sayısı sınırlıdır ve maliyeti yüksektir. Bu nedenle bu gücün ciddi işlere tahsis edilebilmesi için 40 bit üzeri şifreler kısıtlanmaktadır.

SKIPJACK

FORTEZZA donanım uyumlu sınıflandırılmış bir simetrik anahtar algoritmasıdır. Amerika Birleşik Devletleri tarafından kullanılmaktadır.

DSA (Digital Signature Algorithm)

DSA, NIST tarafından sayısal imza standardı olarak yayınlanmıştır. Amerika Birleşik Devletleri tarafından kullanılan dijital doğrulama standartlarının bir parçasıdır.

DSA “discrete logarithm” problemine dayanır ve Schnorr ve ElGamar tarafından geliştirilen algoritmalarla benzer yapıdadır. DSA algoritması da, RSA gibi açık anahtarlı bir kriptografik algoritmadır. RSA’dan farkı sadece imzalama amaçlı kullanılabilmesi, şifreleme yapılamamasıdır.

DSA algoritması şöyle çalışır:

  • p, bit uzunluğu 512 ve 1024 arasında olan bir asal sayı
  • q, bit uzunluğu 160 olan ve p-1 sayısını bölen bir asal sayı
  • g, (p-1)’den küçük herhangi bir h sayısı için g = h(p-1) / q (mod p) eşitliğini sağlayan ve 1’den farklı herhangi bir sayı olmak üzere p,q ve g sayıları uygun yöntemler kullanılarak bulunur.

KEA(Key Exchange Algorithm)

ABD tarafından kullanılan anahtar değiştirme algoritması

RC2 ve RC4

RSA veri güvenliği için Riverst tarafından geliştirilmiştir.

RSA

Hem şifreleme hem de sayısal imza atma olanağı tanıyan açık anahtarlı bir kriptografik yapıdır. 1974 yılında Diffie ve Hellman tarafından bulunan Kamuya Açık Anahtarlı şifreleme yönetimini kullanan Ronald Rivest, Adi Shamir ve Leonard Adleman, kendi isimlerinin ilk harflerinden oluşan RSA algoritmasıyla devrim yarattılar. Görünüşte son derece basit matematiksel ilişkilerle çalışan bu yöntem de iki ayrı anahtar bulunmaktadır. Anahtarlardan birisi kamuya açık, birisi de gizlidir ve sadece kendisi kullanılır. Herkes açık anahtarını yayınlar ve kendisine şifreli bir mesaj göndermek isteyen biris bu açık anahtarı kullanarak mesajı şifreler ve gönderir. Ancak mesajı sadece açık anahtarın eşi olan gizli anahtar açabilir. Gizli anahtar da sadece sahibinde bulunur. Örneğin internetten alışveriş yapan birisi, kendisini hiç tanımayan bir web sitesine giderek, sitenin kamuya açık anahtarını alır. Siteye verdiği kimlik, kart bilgilerini bu anahtarla şifreleyerek gönderir. Şifreyi sadece sitede bulunan gizli anahtar çözebilir. Böylece alış veriş yapan kişi kimlik ve kart bilgilerinin başkaları tarafından okunmadığından emin olur. Ancak web sitesi gerçekten dürüst bir satıcı mı, yoksa sahte bir site mi? Bundan emin olamayacaktır, ancak bunun da çözümü Sertifika yöntemiyle sağlanmaktadır.

Şimdi RSA yöntemini anlamak için bir örnek yapalım:

  • Şifreleme Formülü: C = M ^e  mod n
  • Deşifreleme Formülü: M = C ^d   mod n

Buradaki “mod” işlevi bölme işlemi sonucunda kalan anlamına gelir.

RSA algoritması şöyle çalışır:

  • Öncelikle p ve q olmak üzere iki adet asal sayı bulunur. Gerçekte bu sayıların çok büyük olması gerekir. Örneğin 100 ile 200 hane olması gerekir. Örneğimizde;

p = 11

q = 17

  • p ve q ‘nun asal sayıların çarpılmasıyla bir n sayısı ve (p – 1) x (q – 1)  işlemi ile de bir m sayısı elde edilir.

n =  p x q

m = (p – 1) x (q – 1)

n = 11 x 17 = 187

m = 10 x 16 = 160

  • Bundan sonra uygun bir şifreleme anahtarı e seçmemiz gerekir. Bu herhangi bir asal sayı olabilir. Tek dikkat etmemiz gereken n sayısından küçük olacak ve m sayısına görece asal olmalıdır. Yani e sayısı m sayısının bir çarpanı olmamalıdır. Örneğin 5 olamaz, çünkü 5 x 12 = 160’dır. Ama 3 olabilir. 160 3’e tam bölünemez.

e = 3

  • Şimdi çözüm anahtarı d’yi bulalım. (d x e – 1) sayısının m sayısına tam olarak bölünmesini sağlayan bir d sayısı bulunur. Aynı zamanda d<m olacaktır. Burada;

d = 107 olacaktır.

107 x 3 -1 = 2 x 160

  • Bu sonuçlardan sonra kamuya açık anahtarımızı {e,n} olarak açıklarız. Gizli anahtarımız ise {n,d} ikilisinden oluşacaktır. Bundan sonra p ve q sayılarını yok etmemiz veya gizli anahtar ile beraber saklamamız gerekir.

Açık Anahtar : {187,3}

Gizli Anahtar : {187,107}

Bu örnek çok basit bir örnektir, gerçek hayatta ise p ve q sayılarının 100 haneden fazla, n sayısının ise onbin haneden fazla olması gerekir. Dolayısıyla RSA algoritması DES algoritmasıyla karşılaştırıldığında 1000 misli yavaş çalışır.

RSA algoritmasının gücü iki büyük asal sayının çarpanlarının bulunmasının zorluğudur. Bugün itibariyle 512 bitlik RSA anahtraları kırılabilmektedir. Bunun için 3000 adet bilgisayarın 3 ay çalışması gerekmektedir. Bu nedenle çok gizli işler için 1024, askeri sırlar için ise 2048 bit gerekmektedir. RSA için kullanılan 1024 bite karşılık olarak 112 bit DES anahtarı yeterli olmaktadır. RSA anahtarları uzadıkça işlem süresi artmaktadır. Özellikle çözüm işlemi çok yavaşlamaktadır.

RSA KEY EXCHANGE

RSA algoritması üzerinde SSL tabanı için anahtar değiştirme algoritmasıdır.

SHA–1 ve MD5

Secure Hash Algorithm(SHA), Amerika Birleşik Devletleri tarafından kullanılan bir hash fonksiyonudur. Message Digest Algorithm (MD5), Rivest tarafından geliştirilmiştir.

Şifreleme yöntemleri konunun en önemli noktasıdır ama onun yanı sıra başka şeylerede gereksinim duymaktayız. Bunlardan biriside HASH algoritmalarıdır. HASH’i süper bir check digit olarak görebilirsiniz. Basit bir aritmetik formülle hesaplanan check digit tek bir haneyle önceki 15 haneyi doğrularken, SHA ve MD5 gibi algoritmalar yaklaşık 40 haneli sayılar üreterek bütün bir dokümanı doğrulayabilmektedir. Örneğin tapu senedinizin bir tarayıcı ile tarandığını ve bir BMP dosyası haline dönüştüğünü düşünün. 2019 yılında gittiğiniz Beşiktaş 17.noteri bu .BMP dosyasını MD5 hash algoritmasından geçirecek ve 40 haneli bir sayı bulacaktır. Daha sonra bu sayıyı kendi gizli anahtarını kullanarak, ardına sizin adınızı ve numaranızı ekleyecek, RSA ile şifreleyecek size 180 haneli bir sayı verecek, sizde bu sayıyı smartcard’ınıza yükleyip gideceksiniz. Herhangi bir anda artık kağıt tapuyu değil, bu .BMP dosyasını Internet üzerinden gönderecek ve 180 haneli sayıyı ekleyeceksiniz. Alıcı Beşiktaş 19.noterinin web sitesine girecek ve onun kamuya açık anahtarını alacaksınız. 2019 yılına kadar artık sayıları binlerce haneli sayılara yükseltme ve zilyonlara bölerek kalanını yapmak artık bilindiği için, daha doğrusu bunu cebinizdeki smartcard artık bildiği için ekrana sizin adınız, soyadınız, numaranız ve taranmış belgenin MD5 hash kodu gelecek. Arka plandaki Java programı ekrana gelen .BMP dosyasının MD5 hash kodunu birkez daha hesaplayarak karşılaştıracak. Evet, bu doküman doğrudur ve o tapunun sahibi de sizsiniz.

Bölüm 1: Kriptoloji Nedir?
Bölüm 2: Kriptografide Kullanılan Teknikler ve Kriptografik Uygulamalar
Bölüm 3: Gizli Anahtarlı Kriptografi
Bölüm 4: Açık Anahtarlı Kriptografi
Bölüm 5: Sayısal İmza
Bölüm 6: Şifreleme Algoritmaları
Bölüm 7: SSL (Secure Socket Layer) Nedir?

Not: Bu yazı dizisindeki bilgiler güncelliğini yitirmiş olabilir. Bu yazıları hazırladığım zaman kaynakları yazmadığım için burada belirtemedim.

Print Friendly, PDF & Email

4 yorum

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir