Kriptografiye Giriş
    ArticleCategory:
    System Administration 
    AuthorImage:
     
 
    TranslationInfo:[Author and translation history]
    original in fr Pierre Loidreau
    fr to en Axelle Apvrille
    en to tr Mehmet Berkay Abi
    
    AboutTheAuthor
    
    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.
    
    Abstract:
    
    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.
   
    ArticleIllustration:
     
 
    ArticleBody:[The article body]
    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: