|   Pierre Loidreau
 <pierre.loidreau/at/ensta.fr>
 
 Yazar hakkında:
 
 
    Pierre ENSTA(Ecole Nationale Supérieure de
    Techniques Avancées) da araştırma görevlisi olarak
    çalışmaktadır. Araştırma konusu "Kripto Sistemler" de
    hata düzeltme kodlar teoremidir. Linux ile hergün
    uğraşan Pierre sıksık tenis oynamaktadır.
     
 Türkçe'ye çeviri:
 Mehmet Berkay Abi <berkay_abi(at)hotmail.com>
 
 İçerik:
 | 
 
| Kriptografiye Giriş  Özet:
 
 
    Bu yazı ilk olarak Fransa'da yayınlanan Linux Magazine dergisinin güvenlik ağrıklı
    bir sayısında yayınlanmıştır. Derginin editörü, yazarlar ve çevirmenler bu özel
    sayıda yer alan tüm yazıları LinuxFocus'ta yayınlanmasını nazikçe kabul ettiler. Buna göre,
    yazılar İngilizce'ye çevirilir çevirilmez LinuxFocus'ta yayınlanacaktır. Emeği geçen
    herkese çok teşekkür ederim. Bu özet, diğer yazılarda aynen tekrarlanacaktır.
    _________________ _________________ _________________
 
 | 
     
Neden Kriptoloji - 2500 yıllık tarihi
    
    Kriptolojinin kökeni muhtemelen insanlığın varoluşunun
    başlangıçlarına, insanların iletişim kurmayı
    öğrenmeye başlamalarına kadar gitmektedir.
    İletişimlerinin gizliliğini garanti altına almak için
    araçlar bulmaya çalışmışlardır. Bununla beraber,
    mesajları şifrelemek için bilimsel methodların ilk
    kullanımı eski Yunanlılarla
    bağdaşlaştırılabilir. Tahminen milattan önce 6
    yıllarında, "scytale" isimli değnek
    kullanmışlardır. Gönderici şerit halindeki
    kağıdı değnek etrafına sarar ve mesajını
    boylamasına bu kağıt üzerine yazardı. Daha sonra
    kağıdın kıvrımlarını açarak düz hale getirir
    ve göndereceği adrese yollardı. Değneğin
    genişliği (gizli anahtar gibi davranan) bilgisi
    olmaksızın mesajın deşifre edilmesi olanaksız
    olmaktadır. Daha sonraları Roma orduları
    iletişimlerinde Sezar 'ın (alfabede 3 harf kaydırma)
    şifrelemesini kullanmışlardır.
    
    
    Sonraki 19 yüzyıl, çeşitli şifreleme teknikleri
    geliştirilmeye adanmıştır. 19. yüzyılda Kerchoffs
    modern şifrelemenin prensiplerini yazdı. Bu prensiplerin birisi,
    şifreleme sisteminin güvenilirliğinin şifreleme prosesine
    bağlı olmadığını, kullanılan şifreye
    bağlı olduğunu belirtir.
    
    
    Böylece bu andan itibaren şifreleme sistemlerinin bu ihtiyaçlarla
    buluşması beklenirdi. Fakat varolan sistemler matematiksel
    altyapı ve buna bağlı olarak ölçüm araçlarından yoksunlardı. Birisi en
    sonunda şifrelemenin nihai hedefine erişecek ve %100 güvenli sistemi
    bulacaktı. 1948 ve 1949 yıllarında Claude Shannon 'un "A Mathematical Theory
    of Communication" ve "The Communication Theory of Secrecy Systems"
    isimli yazılarıyla şifrelemeye bilimsel altyapı eklendi. Bu yazılar
    bütün umut ve önyargıları süpürüp götürdü. Shannon, bir kaç yıl öncesine
    ait olan Vernam 'ın şifrelemesinin (One Time Pad olarak isimlendirilen
    şifreleme) varolan tek koşulsuz güvenli sistem olduğunu ispatladı. Ne
    yazık ki Vernam 'ın şifrelemesi de pratikte kullanışlı değildi...
    Bugünlerde güvenlik sistemlerinin değerlendirilmesinde sayısal
    güvenliğin temel alınmasının nedeni budur. Bilinmeyen saldırının
    zorluğu, olası bütün olası anahtarların aranmasından daha iyiyse gizli
    anahtar şifrelemesi güvenlidir.
    
     
AES (Advanced Encryption Standard)(Gelişmiş Şifreleme Standardı)
    Ekim 2000 içerisinde, NIST (National Institute of Standards and
    Technology) , seçilen 15 aday arasında yeni bir gizli anahtar şifreleme
    standardının onaylandığını bildirdi. Yeni algoritma standardı, anahtar
    boyutlarının çok küçük olmaya başladığı eski DES algoritmasının yerine
    alacaktı. Mucitleri olan Rijmen ve Daemen 'in isimlerinden oluşan Rijndael,
    geleceğin gelişmiş şifreleme standardı olarak seçildi.
    
     
     Rijndael, bir Blok şifrelemesinin, mesajların 128-bitlik blok
    parçalarıyla şifrelenmesiyle olacağını bildirir. 128, 192 veya 256 bit
    anahtarlar kullanılan farklı seçenekleri bulunmaktadır. DES, 56 bitlik
    anahtar ile 64 bitlik bloğu şifrelemektedir. Triple DES (üçlü DES) ise
    genellikle 112 bitlik anahtar ile 64 bitlik blokları şifrelemektedir.
    
    
    
       
    
    
    
 Şekil 1: AES tekrarlamaları
    
    
    Geliştirilmiş şifreleme standardının (AES) işlemsel yolu
    Şekil 1 de gösterilmiştir. İlk olarak bir gizli anahtar K0
    bit seviyesinde mesaj ile XOR işlemine tabi tutulur. Daha sonra bütün
    blok şifrelere, F fonksiyonu K0 anahtarından belirli
    bir yordam ile üretilen alt anahtarlar kullanılarak uygulanır.
    
    AES için, F fonksiyonu 10 kez tekrarlanır.
    
      - 
      Şekil 2, F fonksiyonunun tekrarlanma sürecini göstermektedir. 128
      bitlik blok, giriş olarak alınan 16 byte'ı alır.İlk
      olarak S (yerine koyma) her byte
      için uygulanır. Daha sonra 16 byte için ikinci bir P permutasyonu
      uygulanır. Anahtar genişletme yordamı ile oluşturulan i
      128 bitlik alt anahtar önceki sonuca bit seviyesinde eklenir.
      
- 
      n. tekrarın Ki anahtarı, anahtar geliştirme yordamında (n-1).
      tekrarda oluşan K(i-1) alt anahtarı ile K0 gizli anahtarının
      kullanımından elde edilir. Anahtar genişletme yordamı Şekil
      3 de gösterilmiştir. K(i-1) anahtarının 16 baytı, 4 baytlık
      4 parça halinde işleme alınırlar. Son 4 byte, S (yerine koyma)
      kullanılarak (F fonksiyonun uygulanan S) değiştirilir. Daha
      sonra, ilk 4 sonuç byte'ı alpha elementine eklenir. Bu element,
      önceden tanımlanan ve tekrar sayısına bağlı
      olan byte'dır. En son olarak, Ki 'yi elde etmek için 4 byte K(i-1)'in
      ilk 4 byte 'ına eklenir. Daha sonra sonuç diğer 4 byte'a eklenir...
      
 
    
    
    Şekil 2: F FonksiyonuF
    
    Şimdi, yer değiştirmelerin nasıl yapıldığına ve neden
     ai kullanıldığına
    kısaca bakalım. Teknik olarak (ve basit nedenlerden dolayı) bir byte,
    sınırlı alan denilen ve basit işlemlerin (ekleme,  çarpma, ters alma
    gibi) yapılabildiği 256 element takımının bir elementi olarak ele
    alınabilir. Gerçekte, S yer değiştirmesi daha önceden ters alma olarak ifade
    edilmişti. S yer değiştirme, çok basit operasyon için belirlenmiş ve kolayca
    uygulanabilirdi. ai 
    elementi, bir elementin i kuvvetinin yüksekliğine tekabül eder. Benzer
    dikkat edilecek noktalar, AES 'in uygulanmasını daha verimli kılmaktadır.
    
		AES byte bazında operasyonlar üzerine kurulmasının yanında, 2 önemli
        avantaj sağlamaktadır:
		
			- 
			AES 'in katıksız yazılım uygulaması çok hızlıdır. Örneğin Pentium
            200Mhz üzerinde çalışan bir C++ uygulaması, 70Mbit/s şifreleme
            performansı göstermektedir ;
- 
				AES 'in ayrı ve lineer şifreleme analizlerinin direnci S-Box
                seçimine bağlı değildir. DES için S-Box 'ların NSA için açık
                içerdiğinden şüphelenilmektedir. Aslında bütün operasyonlar
                basittir.
 
    
    
		Şekil 3: Anahtar genişletme yordamı
     
Genel anahtar (Public key) kriptografisi
    1976 yılında Diffie ve Hellman, şifrecilere gerçekten büyük kazanç
    sağlayan "New Directions in Cryptography" isimli bir makale yayınladılar. Bu makale genel anahtar (public
    key) şifreleme kavramını tanıştırmıştır. Gerçekten, o zamanlar bilinen
    algoritmalar (simetrik özel anahtar algoritmaları), network benzeri
    iletişim metotlarına girince görülen ihtiyaçları daha fazla karşılayacak gibi gözükmüyordu.
    
   Temel olarak, yeni fikirlerinin çekirdeğini tek yönlü fonksiyonlarına
        açılan kapı kavramlarıyla tanıştırma vardı. Bu tür sistemler tek yönde
        kolayca işletilebilir, fakat fonksiyonun kendisinden geldiği herkesçe
        bilinen gizli tuzağı bilmeden dönüştürmek sayısal olursuz yaratıyordu.
        Ayrıca, genel anahtar fonksiyon gibi davranıyordu, sayılı insanın
        bildiği tuzak özel anahtar olarak adlandırılıyordu. Bütün bunlar, Alice
        ve Bob 'un dünyaya gelişini sağladı. Alice ve Bob, kendilerini dinlemeye
        veya iletilişimi değiştirmeye çalışanları yenerek iletişim kurmaya
        çalışan iki insandır.
   
   Tabi ki, mesajın deşifre edilmesi için alıcı olan kişi gizli tuzağı
        kullanarak fonksiyonu dönüştürmelidir.
    
    Genel anahtar şifreleme sistemlerine en iyi örnek (ve
    de en kolayı) iki sene sonra 1978 de yayınlandı. Kısaca RSA olarak
    adlandırılan Rivest, Shamir ve
		Adleman  üçlüsü tarafından bulundu. Tamsayının çarpanlarına
    ayrılması gibi matematiksel zorluk içeriyordu. Özel anahtar, kabaca
    aynı boyutlardaki iki asal sayı olan p ve q ile (p-1) ve (q-1) 'a
    bağımlı asal d 'nin oluşturduğu  (p,q,d) şeklinde 
    üçlü bir yapıdaydı. Genel anahtar ise n=pq olan n değeri ile
    (p-1)(q-1) 'nin katsayısı olan d 'nin tersi olan e  ye bağlı
    olarak (n,e) çiftinden oluşmaktaydı. ( Örneğin ed = 1 mod(p-1)(q-1)). Sözgelimi
    
      ed = 1 mod(p-1)(q-1).
    
    
    
    
		Alice'nin Bob'a yazı göndermek istediğini ve Bob'a ait genel
    anahtar (n,e) ile şifreleme yaptığını varsayın. İlk olarak mesajı n'den daha
    küçük olan bir m tamsayısı ile dönüşüm yapar,
    
      c = me mod
      n,
    
    
    
    ve c sonucunu Bob'a gönderir. Kendi tarafında Bob, (p,q,d)
    özel anahtarları ile mesajı işleme alır:
    
      cd mod n =
      med mod n =
      m.
    
    
    
    RSA için, tek yönlü tuzak fonksiyonu, n 'den küçük olan bir x
    tamsayısını xe mod n 
    değeriyle ilişkilendiren fonksiyondur.
    
    
		RSA'dan sonra  bir çok genel anahtar şifreleme sistemleri
    geliştirildi. Şu an RSA 'ya alternatif olabileceklerin en ünlüsü ayrık
    logaritmayı temel alan şifreleme sistemidir.
    
     
Kriptolojinin modern kullanımı
    Gerçekten, genel anahtar
    şifrelemesi ilgi çekicidir, çünkü kullanımı kolaydır ve bugüne kadar
    çözülemeyen birçok güvenlik problemini çözmüştür. Tam olarak, bazı kimlik
    denetimi problemlerini çözer:
    
			- 
     	Bireyleri Tanımlama: Bugünün anonim iletişimlerini kullanma;
      Alice, konuştuğu kişinin kendisini aldatmadığından ve Bob'u
      taklit etmediğinden emin olmak ister. Böylece tanımlayıcı bir
      protokol kullanır. Bir çok sayıda tanımlayıcı protokol vardır ve
      genellikle RSA veya ayrık logaritma prensiplerine bağlıdırlar.
      
- 
      Döküman doğruluğu ispatı : Dijital imza sayesinde bir otorite
      dokümanların doğruluğu denetler. İmzalama, doküman ile
      otoritenin girişinin belirli işlemleri ile  oluşan bir kaç
      bitin veya MD5 ile SHA benzeri karıştırma algoritmalarının
      kullanımıyla oluşan bitlerin dokümana eklenmesiyle elde edilir.
      Dokümana erişim yetkisi olan herhangi bir kişi, imzanın
      gerçekten otorite tarafından atıldığını doğrulayabilir. Bu iş
      için imza şemaları kullanılır. İmza şemalarının en ünlüsü
      Elgamal imza şemasıdır. Elgamal ayrık logaritma problemlerine
      dayanmaktadır.
      
Ayrıca, genel anahtar şifrelemesi , özel anahtar şifrelemesinde
    olduğu gibi şifrelemeyi, iletişimin gizliliğini garanti etmektedir.
    
    Alice 'in Bob ile gizlice iletişim kurmak istediğini düşünün. Alice Bob'un
    genel anahtarını dizinden ulaşarak alır ve mesajını bu şifreyi kullanarak
    şifreler.  Bob şifreli mesajı aldığı zaman, kendisinin özel anahtarını
    kullanarak mesajı çözer ve temiz mesaja okuyabilir. Her iki anahtar çok
    farklı rollere sahiptir, bu yüzden bu sistemlere Asimetrik Şifreleme
    Sistemleri denilmektedir. Şifreleme ve deşifreleme için aynı anahtarı
    kullanan sistemlere Simetrik Şifreleme Sistemleri denilmektedir.
    
    
    
    Genel anahtar şifrelemesinin, özel anahtar şifrelemesine göre önemli
    yararı daha vardır. Gerçekçi olunursa, n kişinin özel anahtar şifrelemesini
    kullanması durumunda grup içerisinde her kişi için bir farklı özel anahtar
    ihtiyacı olmaktadır. Böylece n(n-1) adet anahtar yönetimi olacaktır. Eğer n
    binlerce kullanıcı olursa o zaman milyonlarca anahtar yönetimi söz
    konusudur... Bundan başka gruba yeni bir kullanıcı eklemesi kolay bir iş
    olmamaktadır, yeni kullanıcının gruptaki herkesle iletişim kurabilmesi için
    n adet yeni anahtar yönetimi söz konusu olacaktır. Daha sonra, yeni
    anahtarların gruba yollanması gerekmektedir. Aksine, asimetrik sistemlerde,
    kullanıcıların n adet genel anahtarları genel bir dizinde tutulur, yeni bir
    kullanıcı eklemesinde kullanıcının genel anahtarı dizine eklenmesi yeterli
    olacaktır.
     
Public (genel) veya secret(gizli) anahtar kullanımı : Farklılıkları
		Bir önceki paragrafta genel anahtar şifrelemesinin özel anahtar
    şifrelemesinin çözemediği bir çok problemi çözebildiği ifade edildi. Bu
    noktada  AES'in neden düzenlendiği merak edilebilir. Bu tercihin
    iki temel açıklaması vardır;
   
			- 
				İlki pratik bir sebeptir. Genel olarak genel anahtar şifrelemesi
        çok yavaştır. Örneğin, RSA 'nın yazılım uygulaması AES 'e
        nazaran binlerce kat daha yavaştır ve RSA donanım uygulaması için dizayn
        edilmemiştir. Bilgi gönderimi bugün için çok kritiktir,
        şifreleme algoritmasınca oluşan bir sınırlama kabul edilemez.
			
- 
				İkincisi, genel anahtar şifrelemesinin dahili yapısı diğer
        güvenlik problemlerine neden olmaktadır.
				
 Örneğin, genel anahtar şifreleme sistemleri, özel anahtar
        sistemlerine nazaran daha geniş anahtar boyutları gerektirir.
        Gerçekte, özel anahtar şifreleme sistemlerinde anahtar
        uzunluğuna önem verilmektedir. Bu nedenle, bu sistemlerin kaba
        kuvvet saldırıları ile yenilebileceği görülmektedir. Örneğin
        bütün oalsı anahtarların numaralandırılması... Eğer anahtar
        uzunluğu 128 ise 2128  numaralandırma olmaktadır.
 Fakat genel anahtar şifrelemesinde, anahtar boyutu aynı sistem
        düşünüldüğü zaman ilgiye değer bir parametre olmaktadır.
        Örneğin, 512 bitlik anahtara sahip RSA, 128 bitlik anahtarlı
        AES'e göre daha güvensizdir. Genel anahtar şifrelemesini doğru
        olarak hesaplayabilmenin tek yolu, en iyi bilinen saldırıyı
        hesaplamaktır ve bu biraz farklıdır:  Yeni bir buluşun
        sistemin güvenliğiyle uyuşacağını kimse bilemez. Son zamanlarda,
        bir grup araştırmacı 512 bit tamsayıyı çarpanlarına ayırdı.
        Sonuç olarak 1024 bit tamsayılar kullanımı en doğru güvenlik
       seviyesi için doğru olacaktır.
Sonuç olarak, şifreleme için mümkünse özel anahtar algoritmaları
        tercih edilir. Zimmermann ilginç bir hibrit çözüm  üzerine çalıştı.
        Temel olarak, Alice ve Bob bütün özellikleri ile özel anahtar
        algoritmasıyla iletişim kurmak istediklerinde;
		
			- 
			Alice ve Bob, bir anahtar değişim protokolü kullanarak özel anahtar
            için anlaşıyorlar. Anahtar değişim protokolleri genel anahtar
            şifrelemesi kullanmaktadır. En ünlü protokollerin birisi, Diffie-Hellman'ın
            algoritmasına dayanmaktadır.
- 
				Daha sonra onlar IDEA algoritması ile iletişim kurarlar.
			
İletişimi tamamladıklarında, üzerinde anlaşılan oturum anahtarı
    atıldı. Böyle bir sistem, hem genel anahtar şifreleme sistemlerini hem
    de genel anahtar şifreleme sistemlerini kullanır. Genellikle bunun gibi
    sistemlerin en güvensiz parçasının anahtar değişim protokolü olduğu
    düşünülür.Kaynakça
		Şifreleme Tarihi :
  
      - S. Singh : Histoire des codes secrets. Jean-Claude Lattès, 1999.
- D. Kahn : The Codebreakers: the story of secret writing. MacMillan publishing, 1996.
AES için :
    
		Genel Şifreleme:
    
    
  
 
Bu yazı için görüş bildiriminde bulunabilirsiniz
Her yazı kendi görüş bildirim sayfasına sahiptir. Bu sayfaya yorumlarınızı yazabilir ve diğer okuyucuların yorumlarına bakabilirsiniz.
<--, Bu sayının ana sayfasına gider 
2004-01-10, generated by lfparser version 2.45