“Şifrelemenin tarihi” adlı birinci yazımda, şifrelemenin tarihi, önemi ve geçmişteki bazı algorithmalardan örnekler vermiştim. Bu yazıda ise şifreleme biliminin içeriği, günümüz şifreleme algoritmaları hakkında bilgi bulabilirsiniz.
Şifreleme Bilimi (cryptology) Nedir ?
Şifreleme bilimi temel olarak verilerin güvenliliği, şifrelenmesi ile ilgilenen bilim dalıdır. Veriye (bilgiye) -matematiksel yöntemler kullanarak- istenmeyen kişiler tarafından ulaşılmasını engellemeye çalışır. Her bilim dalı kendi içinde dallara ayrılır. Kriptografi, bilginin şiftelenmesi ile ilgilenir. Temel amacı bilginin güvenli taşınmasıdır. Kriptoanaliz, şifrelenmiş bilgiyi çözmek, adından da anlaşılabileceği gibi analiz etmekte kullanılır.
Şifreleme Algoritmaları
Temel olarak iki tür algoritma vardır. Simetrik ve asimetrik şifreleme.
Simetrik Anahtar Şifreleme (symmetric-key cryptography)
Bu tür şifreleme algorithmaları, veriyi şifrelemek için gizli bir anahtar kullanılır. Şöyle düşünebilirsiniz, arkadaşınıza bir mesaj iletmek istiyorsunuz, ve yalnızca arkadaşınızın bildiği bir şekilde veriyi değiştiriyorsunuz, arkadaşınız değiştirme yönetimini bildiği için mesajınızı okuyabiliyor. Bu örnekte yönteminiz anahtarınız, mesajınız ise veri olur. Bir önceki yazıyı okuyanlar için kısa bir örnek daha yazayım, harfleri kaydırarak yapılan şifrelemede yani Sezar Şifrelemesinde, Sezar karşı tarafa, harfleri belli bir sayıda kaydırılmış metin gönderiyordu. Karşı taraf bu metni doğru okuması için harflerin kaç harf kaydırıldığını bilmesi gerekli. İşte bu bilgi anahtar oluyor ve anahtar kullanan ( gizli bir anahtar ) algoritmalara , simetrik anahtar şifreleme denir. Anlaşılır olması açısından bir örnek yapalım birlikte;
Şimdi size simetrik anahtar yöntemi kullanarak bir mesaj göndereyim.
Anahtarimiz şu: İlk harfi okudukdan sonra, birer atlayarak oku. (Bu anahtarı kimseye söylemiyorsunuz, sizin ve benim dışımda kimse bilmiyor. )
Şifrelenmiş metin: bjetnsirmuaıdoıkmhosnruzr (Anahtara göre bir metin gönderiyorum size.
Bu metni okumak için anahtarı kullanıyorsunuz ve sonuç:
bjetnsirmuaıdoıkmhosnruzr
Düz metin = “benimadimonur”
En çok bilinen simetrik anahtar kullanan algoritmalar:
- AES
- DES
- Triple DES
- Blowfish
- Rc5
- Twofish
Asimetrik şifreleme Açık anahtarlı şifreleme ( Public-key cryptography )
Simetrik şifrelemenin tersine, asitmertikte iki anahtar kullanılır. Gizli anahtardan birisi yalnızca veriyi okumak isteyen kişi tarafından kullanılır. Diğeri ise açık anahtar olarak işlev görür. Adından da anlaşılabileceği gibi bu anahtar herkes tarafından bilinebilir ve kullanılabilir. Bunun neresi güvenli diyebilirsiniz. Ama bu anahtar veri okumaya değil yalnızca veriyi şifrelemek için kullanılıyor. Yani tek yönlü, yalnızca veri şifreliyor. Veriyi okumak içinse gizli anahtara ihtiyacınız var. Bu durumda açık anahtarı herkesle paylaşabilirsiniz, size güvenli mesaj göndermek isteyen biri, sizin açık anahtarınız ile mesajı şifreler ve size gönderir. Eğer mesaj başkasının eline geçerse, gizli anahtar olmadığından dolayı, mesajı okuyamaz. Mesaj sizin elinize ulaştığında ise bunu gizli anahtarınız ile çözer ve okursunuz.
Simetrik şifrelemeye göre daha yavaştır (Simetrik şifreleme için elektronik devreler kullanıldığını düşünürsek, bu gayet doğal). Temelinde bazı çözümü zor matematiksel fonksiyonları kullanılır ki bunlardan biri çok büyük sayıların asal çarpanlarının bulunmasıdır. Algorithmaları anlatırken, asimetrik şifreleme ile ilgili daha detaylı bilgi bulabileceksiniz.
- Rsa
- Robin
- Merkle-Hellman
Daha fazlası için wikipedia.org’u ziyaret edebilirsiniz.
Bir anahtar kullanıp kullanmadıklarına göre şifreleme algoritmalarını simetrik ve asimetrik olmak üzere ikiye ayırdık. Bunun dışında şifreleme yaparken kullandığı yönteme görede algoritmalar block ve stream chiper olmak üzere ikiye ayrılıyorlar. Şimdi nedir bunlar, hangi algoritmalar hangisini kullanıyor bir bakalım.
Stream Chiper
Artık elimizdeki düz metni öğrendiğimiz algoritmalara göre şifreleyebiliyoruz. Daha önce öğrendiğimiz one time pad algoritmasını hatırlayalım (Veri güvenliği yazı dizisi – 2). Düz metnimizdeki karakterlerin (harflerin) sayısal değerlerini, anahtarımızdaki harflerin sayısal değerleri ile topluyorduk, elde ettiğimiz sonucları – eğer toplam sayı alfabedeki harf sayısını aşıyorsa mod işlemi kullanarak – tekrar harflere çeviriyorduk. Bunu tekrar hatırlamamızdaki sebeb şifrelemenin harf harf yaptığımıza dikkat çekmek istemem. Stream chiper şifrelemenin bit veya byte (8 bit) kullanarak yapıldığı şifreleme türüdür. Düz metninizdeki her bit veya byte teker teker şifrelenir. Genel olarak – ileride göreceğimiz algoritmaların tamamında – şifreleme için xor (mod2 de toplama işlemi) kullanılır. Bunun nedeni sanırım aynı değer ile tekrar xor işlemi yaptığınızda ilk değeri elde etmemiz, yani deşifreleme işleminin kolaylığından.
Örnekleri;
- Enigma
- Rc-4
- A5
Block Chiper
Block chiper adından da anlaşılabileceği gibi, şifreleme için bit veya byte yerine belli uzunluktaki bitlerin oluşturduğu blokları kullanır. Düzmetin genellikle 32′nin katı olucak şekilde bit gruplarına ayrılır. En çok block chiper için 64 bitlik blocklar kullanılır, bu yüzden düz metnimizi 64 bitlik 10 gruba böldüğümüzü düşünelim. Daha sonra her grup tek tek şifrelenerek şifrelenmiş gruplar oluşur. En sonunda şifrelenmiş grupları birleştirerek şifrelenmiş metin elde edilir. Tabiki gerçek uygulamalarda herşey bu kadar basit ve mükemmel olmuyor. Kafanıza şöyle bir soru gelmiş olabilir, “Ya 90 bitlik bir düzmetnim varsa ? O zaman geriye kalan 26 bitlik veri nasıl şifrelenecek ?” veya “Kaç block olacağını yada her bloktaki bit sayısı nasıl belirleniyor ?” diye bir soruda soruyor olabilirsiniz. Bunlar gayet normal ve bir o kadar da güzel sorular ama bu yazının konusunun dışında, fazlaca detay olduğunu düşündüğüm konular. Bu yüzden bunların cevabını bulamadıysanız kişisel olarak bana ulaşırsanız size yardım edebilirim.
Block Chiper kullanan bazı algoritmalar;
- AES
- Blowfish
- CAST5
- DES
- IDEA
- RC6
- Serpent
- Twofish
Kriptoanaliz (Cryptanalysis)
Kriptoanaliz, şifreleme bilimindeki şifreleri çözmek için kullanılan yöntemlerin bütünüdür. Amacı şifrelenmiş metinlerden, çeşitli saldırı yöntemleri kullanarak düz metni elde etmektir. Kriptoanaliz kendi içinde bir çok saldırı tekniği içerir ki bunlardan bazıları:
- Deneme yanılma yöntemi ile yapılan saldırılar (Brute-force attack)
- Yalnızca şifrelenmiş metin üzerine yapılan saldırılar Şifreli Metin Saldırısı (Cipher-text only Attack)
- Şifrelenmiş ve düz metni elde edilerek yapılan saldırılar açık mesaj saldırısı (Known plain text Attack)
Bu yazınında sonuna geldik, bu bilgileri ileride kullanacağız bu yüzden basit olarak ne nedir bilmenizde fayda var. Diğer yazımda günümüzde kullanılan bir kaç algoritma ile örnekler çözüp, şifreleri kırmaya çalışacağız.
Kaynaklar:
http://en.wikipedia.org/wiki/Public-key_cryptography#Examples
http://tr.wikipedia.org/wiki/A%C3%A7%C4%B1k_anahtarl%C4%B1_%C5%9Fifreleme
http://cekirdek.uludag.org.tr/~meren/belgeler/aak/acik_anahtarli_kriptografi.pdf
Bu yazı toplam 343 kere görüntülenmiştir.
İlgili Yazılar:
Yazar Hakkında
Yazar: Onur AKTAŞ
Hakkında / İlgi Alanları: Php, Python, Java, Güvenlik, Algoritmalar, Fotoğraf, Kitap, Sinema




