Kriptografi, gizlilik, kimlik denetimi, bütünlük gibi bilgi güvenliği kavramlarını sağlamak için çalışan matematiksel yöntemler bütünüdür. Bu yöntemler, bir bilginin iletimi esnasında karşılaşılabilecek aktif ya da pasif ataklardan bilgiyi -dolayısıyla bilgi ile beraber bilginin göndericisi ve alıcısını da- koruma amacı güderler.
Bir başka deyişle kriptografi, okunabilir durumdaki bir bilginin istenmeyen taraflarca okunamayacak bir hale dönüştürülmesinde kullanılan tekniklerin tümü olarak da gösterilir.
Bilgi Güvenliği Kavramları
Bir bilginin güvenli olarak iletileceğinden ya da elde edilmiş bir bilginin güvenli bir şekilde elde edilmiş olduğundan bahsedilebilmesi için, kullanılan iletişim sistemlerinin sahip olması beklenebilecek bazı güvenlik kavramları vardır:
Gizlilik (privacy/confidentiality): Bilgiyi görme yetkisi olanlar dışındaki herkesten gizli tutmak.
Kimlik denetimi (authentication/identification): İletimi gerçekleştirilen bir mesajın göndericisinin gerçekten gönderen kişi olduğu garantisi.
Bütünlük (integrity): Bütünlük bir bağlantının tamamı ya da tek bir veri parçası için, mesajın gönderildiği gibi olduğuna, üzerinde hiçbir değişiklik, ekleme, yeniden düzenleme yapılmadığı garantisi.
Reddedilmezlik (non-repudiation): Göndericinin iletilen mesajı inkar edememesi (böylece bir mesaj gönderildiğinde alıcı göndericinin mesajı gönderdiğini ispatlayabilir).
Erişim kontrolü (access control): İzinsiz kişi ya da uygulamaların erişmemeleri gereken kaynaklara erişemeyecekleri garantisi (ağ güvenliği bağlamında, erişim kontrolü, ana bilgisayar sistemlerine erişimleri kontrol etme ve limitlendirme yetisidir. Bu kontrolü başarmak için, erişimi kazanmaya çalışan her varlık ilk olarak tanımlanmalı veya doğrulanmalıdır. Erişim kontrolü servisleri kimlik denetimi yapılmış varlıkların kaynaklara ancak kendilerine izin verilen şekilde erişebilecekleri garantisini vermekle yükümlüdür).
Bu temel kavramlar dışında zaman bilgisi, tanıklık, anonymity, sahiplik, sertifikalandırma, imzalama gibi kavramlardan da bahsedilebilir.
Kriptografik Sistemlerin Esasları
Esas kelimesi ile bir kriptografik sistem içerisinde kullanılan temel işlevlerden bahsedilmektedir. Bir kriptografik sistem, bilgi güvenliğini sağlamak için bir araya getirilmiş birçok küçük yöntemler bütünlüğü olarak görülebilir. Bu yöntemler yapıları itibarı ile üç ana grupta incelenebilirler:
- Anahtarsız şifreleme
- Gizli anahtarlı şifreleme
- Açık anahtarlı şifreleme
Kriptografik Protokoller
Kriptografi sadece bilgi saklaması ve aktarması problemine güvenli bir çözüm aramaktan ibaret değildir. Elektronik imza, elektronik para ve elektronik seçim vs. gibi farklı kullanım alanları da bulunmaktadır. Bu problemlere çözüm getiren protokoller, bahsi geçen şifreleme sistemlerine ek olarak, “kriptografik temel taşları” diyebileceğimiz yöntemler kullanmaktadır. Bunlardan bazıları şunlardır:
- Sır Paylaşımı
- Sıfır Bilgi Ispatları
- Kör İmzalar
Kriptolojinin Tarihçesi
Kriptoloji çok eski çağlardan beri insanoğlu tarafından kullanılmaktadır. Bu tarihçeye kısaca bakacak olursak:
MÖ 1900 dolaylarında bir Mısırlı kâtip yazdığı kitabelerde standart dışı hiyeroglif işaretleri kullandı.
MÖ 60-50 Julius Caesar (MÖ 100-44 ) normal alfabedeki harflerin yerini değiştirerek oluşturduğu şifreleme yöntemini devlet haberleşmesinde kullandı. Bu yöntem açık metindeki her harfin alfabede kendisinden 3 harf sonraki harfle değiştirilmesine dayanıyordu.
725-790 Abu Abd al-Rahman al-Khalil ibn Ahmad ibn Amr ibn Tammam al Farahidi al-Zadi al Yahmadi, kriptografi hakkında bir kitap yazdı (Bu kitap kayıp durumdadır). Kitabı yazmasına ilham kaynağı olan, Bizans imparatoru için Yunanca yazılmış bir şifreli metni çözmesidir. Abu Abd al-Rahman, bu metni çözmek için ele geçirdiği şifreli mesajın başındaki açık metni tahmin etme yöntemini kullanmıştır.
1000 – 1200 Gaznelilerden günümüze kalan bazı dokümanlarda şifreli metinlere rastlanmıştır. Bir tarihçinin dönemle ilgili yazdıklarına göre yüksek makamlardaki devlet görevlilerine yeni görev yerlerine giderken şahsa özel şifreleme bilgileri (belki şifreleme anahtarları) veriliyordu.
1586 Blaise de Vigenère(1523-1596) şifreleme hakkında bir kitap yazdı. İlk kez bu kitapta açık metin ve şifreli metin için otomatik anahtarlama yönteminden bahsedildi. Günümüzde bu yöntem hala DES CBC ve CFB kiplerinde kullanılmaktadır.
1623‘de Sir Francis Bacon, 5-bit ikili kodlamayla karakter tipi değişikliğine dayanan stenografı buldu.
1790‘da Thomas Jefferson, Strip Cipher makinesini geliştirdi. Bu makineyi temel alan M-138-A, ABD donanmasının 2.Dünya savaşında da kullandı.
1917‘de Joseph Mauborgne ve Gilbert Vernam mükemmel şifreleme sistemi olan “one-time pad”‘i buldular.
1920 ve 1930‘larda FBI içki kaçakçılarının haberleşmesini çözebilmek için bir araştırma ofisi kurdu.
William Frederick Friedman, Riverbank Laboratuvarlarını kurdu, ABD için kriptoanaliz yaptı, 2. Dünya savaşında Japonlar’ın Purple Machine şifreleme sistemini çözdü.
II. Dünya savaşında Almanlar Arthur Scherbius tarafından icat edilmiş olan Enigma makinasını kullandılar. Bu makine Alan Turing ve ekibi tarafından çözüldü.
1970‘lerde Horst Feistel (IBM) DES’in temelini oluşturan Lucifer algoritmasını geliştirdi.
1976‘da DES (Data Encryption Standard), ABD tarafından FIPS 46(Federal Information Processing Standard) standardı olarak açıklandı.
1976 Whitfield Diffie ve Martin Hellman Açık Anahtar sistemini anlattıkları makaleyi yayınladılar.
1978‘de Ronald L. Rivest, Adi Shamir ve Leonard M. Adleman: RSA algoritmasını buldular.
1985‘de Neal Koblitz ve Victor S.Miller ayrı yaptıkları çalışmalarda eliptik eğri kriptografik (ECC) sistemlerini tarif ettiler.
1990‘da Xuejia Lai ve James Massey: IDEA algoritmasını buldular.
1991‘de Phil Zimmerman: PGP sistemini geliştirdi ve yayınladı.
1995‘de SHA-1 (Secure Hash Algorithm) özet algortiması NIST tarafından standart olarak yayınlandı.
1997‘de ABD’nin NIST (National Institute of Standards and Technology) kurumu DES’in yerini alacak bir simetrik algoritma için yarışma açtı.
2001‘de NIST’in yarışmasını kazanan Belçikalı Joan Daemen ve Vincent Rijmen’e ait Rijndael algoritması, AES (Advanced Encryption Standard) adıyla standart haline getirildi.