17.08.19/17:03

Kriptografi: Şifreleme Temelleri

Başlatan data_grrr, 01.03.07/07:16

« önceki - sonraki »

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

data_grrr

01.03.07/07:16 Son düzenlenme: 01.03.07/07:20 data_roze
kaynaklar: wiley, wikipedia

Kriptografi: Şifreleme Temelleri

Kriptografi Soğuk Savaş'ın ardından Internet'in ve bilgisayarların yaygın halde kullanılır olmasıyla özellikle kişisel gizlilik hususunda yeniden gündeme gelmiştir. Bilgisayarlar arasında paylaşmak kolaylaştıkça kişisel şeylerimizin de bu paylaşılan şeyler arasında olabileceğini çoğu zaman farketmeyiz. E-mail hesabınızın, özel dökümanlarınızın kurcalanması artık Global Köy haline gelen dünyada çok da zor değildir ve kendinizi bu köyün röntçülerinden korumak için kriptolojiyi kullanabilirsiniz.

Kriptografi sadece dosyalarınızı okunmayacak hale getirmeyi başarmaz, ayrıca kim olduğunuzu hatta kim olmadığınızı da kanıtlamada kullanılabilir. Kriptografi dosyalarınızın içeriği değiştiğinde sizi uyarabilir, size mesaj gönderen kişinin kimliğini doğrulayabilir, online iletişiminizin güvenli olmasını sağlayabilir, önemli bilgileri saklayabilir. Tüm bunların yanında kriptografiyi uygulamak için paranızın olması ya da bir dahi olmanız gerekmez.



Nedir Peki Bu Kriptografi?

Kriptografi, onu nasıl çözeceğini bilen dışında, verinin başka herkese karman çorman görünmesini sağlamaktır. Dünyada hemen hemen herşey görünümden saklanıp tekrar ortaya çıkartılabilir.

Örneğin David Copperfield, Özgürlük Heykeli'ini saklamış ve tekrar ortaya çıkarmıştır. Bunu başarmak için, yani bir şeyi kaybedip tekrar ortaya çıkarmak için bir eylem planına sahip olmanız gereklidir. Bu bir formül ya da tarif olabilir. Sihirbazlık ile kriptografi arasında doğrudan bir ilişki olmasa da ikisinin de tekrar tekrar işini yapabilmesi için bir formüle ihtiyaç duyması ortak noktalarıdır.

Formül Nedir O Zaman?

Kriptografide veriyi saklamanın sihirli yolu bir algoritma kullanmaktır. Algoritma, veriyi şifreleyen programlara verinin nasıl şifrelenmesi ve deşifre edilmesi gerektiğini anlatan açık ve net talimatlardır.

Basit bir algoritma şuna benzer:

Adım 1: verideki bütün "e" leri sil.
Adım 2: "t" harfini, 7 rakamıyla değiştir.
Adım 3: verinin dizilişini tersine çevir ve baştan sona yeniden yaz.

Fakat bu gerçek bir algoritma olamayacak kadar basittir. Fakat işin özü buna benzer.


Gerçek bir algoritma ise şuna benzer:

DES (Data Encryption Standard) adı verilen bu algoritma 1977'de ABD tarafından kullanılmıştır. Burada anlatılanı şimdilik tamamen anlamanız gerekmez.
Örnek olması açısından verilmiştir.

DES ne yapar?
(sıralama mantığın anlaşılması için yapılmıştır, yoksa farklıdır)

Öncelikle kullanıcıdan şifrelenmesi gereken düz metni (ya da veriyi) alır.
Bunu 64 bitlik bloklara ayırır ki her bloğu ayrı ayrı şifreleyip çıkartabilsin.
Bu blokları (yani metnin hepsini) sadece kullanıcının deşifre edebilmesi için kullanıcıdan ham bir anahtar alır ve bunu permütasyon ve yer değiştirmeler uygulayarak tamamen kullanıcıya özel hale getirir. Bunu aşağıdaki algoritma ile yapar.
(Bir anahtarcıya evinizin anahtarını yaptırdığınızı düşünün ve ona anahtarın ham maddesini verdiğinizi, anahtarcının da bunu tamamen size özel yaptığını)

Düz metin blokları 64 bit olduğundan anahtar da 64 bit olmalıdır. DES önce kullanıcıdan aldığı anahtarı 64 bitten 56 bite düşürür. Bu atılan bitler veri doğrulama için kullanılan parity bitleridir.

Daha sonra ise bu 56 bitlik ham orijinal anahtar üzerinde aşağıdaki permütasyonu uygular. Buna göre permütasyon uygulanmış bloğun 1. biti, orijinal anahtarın 57. bitidir. Aynı şekilde 2. bit, orijinal anahtarın 49. biti, böyle devam ederek, 56. biti orijinal anahtarın 4. biti olur.

Grafiği -
57 49 41 33 25 17 9
1 58 50 42 34 26 18
10 2 59 51 43 35 27
19 11 3 60 52 44 36
63 55 47 39 31 23 15
7 62 54 46 38 30 22
14 6 61 53 45 37 29
21 13 5 20 12 4


Tabi bu algoritmanın daha sayfalar tutan devamı vardır ama bu algoritma bile güvenlik açıkları yaratmıştır.

...şifre nedir, anahtar nedir, encrypt-decrypt etme nedir, bit, byte vs. daha sonra yazacam...

Amon

en onemli ve en cok kullanilan sifreleme tekniklerinden MD5 (linux icin) algoritmasi, ayrica en kolay kirilandir.
algoritmayi kirmak cok kolay ama o dosyaya ulasmak cok zordur :)

-----------------------------------------------------------------
birde windows in sifreme icin kullandigi .pwd uzantili dosyalar vardir. bunlarin da kirimi  kolay oldugu gibi, (disardan) ulasimi artik cok zordur.
-------------------------------------------------------------------
php, asp gibi  programlama dillarinde bir yere sifrenizi girince yildiz seklinde cikan sifreleri gercek haliyle gormek icin sayfanin kodlarina bakabilirsiniz.

phpnin genellikle yasadigi en buyuk aciklardandir.
ama bu acigi en cok java yapar. ozellikle eski versiyonlari password leri gecmeyi ve hatta bulmayi cok cok kolay hale getirmistir.

oyleki javanin eski versiyonlarinda,  sayfa koduna girince
pass=null
yazacak kadar acik bir kodlama diliyle sayfa gizlenmistir.

oysa gunumuz teknolojisinde, sayfa kodlarinda artik hicbir bilgi bulunmadigi gibi, sifre icin kullanilan md5 yada pwd dosyalarinin isimlerini bile ayri bir algoritmanin arkasina koyarlar. boylece sifrenin kullanimi ve testi icin hangi dosyalari kullandigini anlayamazsiniz. php nin acik kodlu halde, durmadan gelismesinin bir sonucudur bunlar.

data_grrr

burada türkçede yanlış şekilde alışık olduğumuz bir şeyi düzeltmek gerekiyor
o da password un dilimizde şifre olarak yer etmesi  - ki paroladır doğrusu
cypher ya da cipher yani şifre esas olarak şifrelemeyi ve deşifrelemeyi yapan kodun (yani algoritmanın) kendisidir ve kullanılan anahtara göre şifrelenen veriyi karmaşık hale getirir.
parolaların kriptografi ile ilgisi bazı şifreleme tekniklerinde anahtarın kendisi olmasıdır. ki onlara da değinmek gerekicek.
belirttiğin gibi bu parolalardan yola çıkarak bazı dosyalar (hash) yaratılıyor ve bunlar gerek parolanın kendisinin korunmasında gerek de dosya içeriklerinin şifrelenmesinde, deşifre edilmesinde kullanılıyor. ama bunları basitçe açmak lazım.