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örülebilir.
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ı katip 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 bir araştırma ofisi kurdu.
* William Frederick Friedman, Riverbank Laboratuarlarını kurdu, ABD için kriptoanaliz yaptı, 2. Dünya savaşında Japonlar'ın Purple Machine şifreleme sistemini çözdü.
* 2. 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.
Bütün türlerini paylaşmak isterdim fakat çok uzun olduğu kanatindeyim.Sadece en çok bilinen yöntemlerden RSA'yı paylaşıyorum sevgili üyeler:
RSA bir tür Açık anahtarlı şifreleme yöntemidir. Güvenliği, tam sayıları çarpanlarına ayrımanın algoritmik zorluğuna dayanır. Hem mesaj şifreleme hem de elektronik imza amacıyla kullanılabilir
RSA algoritması 1977'de Ron Rivest, Adi Shamir ve Len Adleman tarafından yaratılmıştır ve RSA da bu üç kişinin soy isimlerinin ilk harflerinin bir araya getirilmesi ile oluşturulmuştur. Anahtarlar şu şekilde üretilir:
1. İki adet birbirinden değişik asal sayı seçin, bunların adını da p \, ve q \, koyalım. Bu sayılar ne kadar büyük olursa şifreyi kırması o kadar zor olacaktır.
2. n = p q \, hesaplayın.
3. Bu sayıların totientı olan \phi(n) = (p-1)(q-1) \, hesaplayın.
4. Bir tam sayı üretin ve adını da e \, koyun. Bu sayı, 1 < e < \phi(n) \, koşuluna uygun olmalı ve \phi(n) \, ile en büyük ortak böleni 1 olmalıdır (başka bir deyişle \phi(n) \, ve e \, kendi aralarında asal olmalıdır).
5. d e \equiv 1 \pmod{\phi(n)} olacak şekilde bir d \, üretin.
Göreceğiniz üzere, p \,, q \,, d \, ve e \, sayılarının sadece içinde olabileceği bir aralık önceden bilinebilir. Bu dört sayının hangileri olacağı anahtar üreticisi (yazılım) tarafından anahtar üretimi sırasında rastgele seçilir.
Şifreleme için olan anahtar, yani ortak anahtar şu verileri içerir:
* n \,, yani modulus
* e \,, yani ortak üs (bazen şifreleme üssü de denir)
Şifreyi çözmek için olan anahtar, yani özel anahtar şu verileri içerir:
* n \,, yani modulus
* d \,, yani özel üs (bazen şifre çözme üssü veya deşifre üssü de denir)
Öte yandan, pratikte hesapları kolaylaştırmak için başka bir özel anahtar saklanır:
* p \, ve q \,, yani anahtar üretiminde kullanılmış asal sayılar
* d \ mod (p-1) \, ve d \ mod (q-1) \, (genelde dmp1 ve dmq1 olarak adlandırılır)
* (1/q) \ mod(p)\, (genelde iqmp olarak adlandırılır)
Örnek
Anahtarın parçaları olarak şu sayıları seçelim:
p = 61 — ilk asal sayı (gizli)
q = 53 — ikinci asal sayı (gizli)
n = pq = 3233 — modulus (paylaşılabilir)
e = 17 — ortak üs (paylaşılabilir)
d = 2753 — özel üs (gizli)
Bu durumda ortak anahtar (e, n), gizli anahtar ise (d, n) dir.
Bu durumda şifreleme fonksiyonu şudur:
şifrele(veri) = verie mod n = veri17 mod 3233
Ve çözme fonksiyonu ise:
çöz(şifre) = şifred mod n = şifre2753 mod 3233
Şimdi, 123'ü şifrelelim:
şifrele(123) = 12317 mod 3233 = 855
Dolayısıyla 123'ün bu anahtarlar ile şifrelenmiş hali 855'tir. Şimdi, 855'i deşifre edelim:
çöz(855) = 8552753 mod 3233 = 123
özeller için ise (alt)1452