Kriptografi | Reeltürk


HaSimoto

Üye
Üye
15 Ocak 2019
99
10
8
PAROLA VS ŞİFRE

Şifre kelimesinin kökeni, italyanca'da "sayı" anlamına gelen "cifra" kelimesine dayanmaktadır.
Şifre ya da kriptolojideki karşılığı cipher text ( şifrelenmiş metin,bu kelimenin detaylarını Kriptoloji bölümünde göreceğiz.)paroladan çok farklı bir kavramdır. Günümüzde malesef her iki kavram da aynı şey olarak bilinmektedir.Aslında birbirlerinden farklı iki kavramdır.

Aslında cipher text, yani şifrelenmiş metin bize çok güzel bir kopya veriyor; "şifrelemek" ve "metin".
Yani ortada bir metin var ve bu metin birileri tarafından anlaşılamaz hale getirilmek için bir takım işlemlerden geçiriliyor.

Gel gelelim parolaya.. Parola ise genelde bir hesap doğrulaması için kullanılan, hesap yetkilileri dışında başka kişilerce bilinmesinin sakıncalı olduğu, herhangi bir şifreleme işleminden geçmemiş."salt" metinlere denir. Örneğin sosyal medya hesaplarınıza giriş yaparken e-mail veya kullanıcı adından sonra girdiğiniz şey şifre değil, paroladır.Benim parolamın 123456 olduğunu düşünürsek, bu metin tamamen salttır.
Herhangi bir şifreleme işleminden geçmemiştir.Kolay anlaşılabilir haldedir,ancak benden başka kişilerce bilinmesi sakıncalıdır.

Buraya kadar parolanın ne olduğunu ve şifrenin ne olacağına dair güzel bir giriş yaptık. Peki, parola ve şifrenin kavram karmaşası nereden geliyor,ona bir değinelim.

Sistemlerin,application, yani uygulama katmanları sizin parolalarınızı güvenlik açısından database'de "şifrelenmiş" olarak tutarlar.Genelde bu şifreleme yöntemleri geri dönüşümü olmayan algoritmalardır. Bunun sebebi ise, herhangi bir saldırıda olurda sistemin database'i saldırganın eline geçerse, sizin parolalarınızı "salt" olarak görüp, doğrudan size zarar vermesin.Şimdi kimse kimseyi kandırmasın, hepimiz biliyoruz; Türkiye'nin %95'inin sosyal medya hesaplarından e-mail adreslerine kadar
tüm hesaplarının parolaları aynıdır.

Yukarıda anlattıklarımı örneğe döküp bu bölüme bir son verelim. Ne demiştim; benim parolam 123456 idi.Bu parolayı kullandığım sistem, benim parolamı database'e salt olarak değil de md5 algoritmasından geçirip kaydediyor. Yani 123456 parolasının md5 algoritması ile şifrelenmiş hali yani
hash'i e10adc3949ba59abbe56e057f20f883e'dır.

TEMEL TERİMLER

PLAİN TEXT

Plain-text'in ne olduğunu aslında önceki başlıkta değinmiştik. "açık" yani "şifrelenmemiş" metin anlamına gelir.Örneğin "REELTÜRK" kelimesi bir plain-text'tir. Çünkü herhangi bir şifrelemeye tabi tutulmamıştır.

CİPHER-TEXT

Cipher-text ise plain-text'in herhangi bir algoritma ile şifrelenmiş haline verilen isimdir.
Örneğin; "REELTÜRK" kelimesinin X algoritmasına göre şifrelenmiş hali, yani cipher-text'i
"7f26fc814b40722c8c5ea1589a7caa17" gibi birşey olmalıdır.

HASH

Hash'i aslında cipher-text ile bir tutabiliriz. Bir plain-text'in şifrelenmiş haline "hash" diyoruz.

ENCRYPTİON

Fazla uzatmaya gerek yok,doğrudan Türkçe tercümesidir. Yani "şifreleme" anlamına gelir.
Diğer terimlerin aksine bir isim değil, fiildir.
Yani plain-text'i cipher-text'e dönüştürme aşamasına "encryption" diyoruz.

DECRYPTİON

Decryption da aynı encryption gibi doğrudan Türkçe çevirisi olarak kabul edilebilir. Encryption'ın tam tersi,
yani "şifre çözme" aşamasına verilen isimdir.

KEY

Key,yani anahtar, bazı şifreleme algoritmalarında plaint-text'i şifreleyip sonra tekrardan crpher-text'i çözmemiz için lazım olacak anahtar kelimeye verilen isimdir.

ALGORİTMA TÜRLERİ

Şifreleme algoritmaları temelde Simetrik ve Asimetrik olarak ikiye ayrılır.
Bu bölümde neden bu şekilde ayrıldığından ve bu türlerin tam olarak neye yaradıklarından bahsedeceğiz.

SİMETRİK

Simetrik şifreleme algoritmaları, iki taraf arasında belirlenen ortak bir keyile encryption/decryption işlemlerinin, sadece elinde key bulunan kişilerce yapılmasını garanti eden şifreleme türüdür.

iki taraf arasında önceden belirlenmiş bir key vardır.Plain-text'i şifreleyecek kişi; hem kendisinde hem de cipher-text'in ulaşacağı kişide bulunan ortak key ile elindeki plain-text'i şifreler ve karşı tarafa gönderir.
Key ile şifre cipher-text'i alan taraf ise plain-text'in hangi key'le şifrelendiğini bildiğinden dolayı, aynı key'i kullanarak tekrardan plain-text'e ulaşır. Böylelikle bu veri alışverişi sırasında şifreli metin herhangi bir 3. kişinin eline geçerse, eline geçen kişide key bulunmadığından şifreyi çözemeyecektir.

Ali ve Bekir arasında geçen diyaloga bir göz atalım isterseniz.

[IMG]


Ali ve Bekir arasında önceden belirlenen key 2'ymiş. Key'in 2 olduğunu her iki taraf da biliyor.
Key : 2

Ali'nin Bekir'e göndermek istediği mesaj; "YARINOKULDABULUSALIM"

Plain-text : YARINOKULDABULUSALIM

yukarıdaki görselde metin kaydırma, yani Sezar algoritması kullanılmış.
Şimdilik Sezar algoritmasının detaylarına girmeyeceğim Çünkü ilerleyen bölümlerde Sezar algoritmasının tüm detaylarını göreceğiz.
Şuan tek bilmemiz gereken Sezar algoritması ile şifrelendiği.

Bu şifreleme algoritması sonucunda elde ettiğimiz şifre; ACTKPQPFCQMWNFCDWNWUCNKO

Cipher-text : ACTKPQPFCQMWNFCDWNWUCNKO

Ali; elindeki plain-text'i 2 key'ini kullanarak Sezar algoritması ile şifreliyor ve yukarıdaki cipher-text'imizi oluşturuyor.Oluşan bu cipher-text Bekir'e gönderiliyor. Bekir key'in 2 olduğunu bildiği için 2 key'ini kullanarak elindeki cipher-text'iencrypt ediyor ve plaint-text'e ulaşıyor.
İşte simetrik şifreleme algoritmalarının tamamı temelde bu yöntemi kullanıyor.

ASİMETRİK

Asimetrik şifrelemenin bir diğer adı açık anahtarlı şifreleme'dir.
Simetrik algoritmaların aksine arada kullanılan key public'tir. Yani herkes tarafından ulaşılabilir vaziyettedir.

Açık anahtarlı şifreleme, şifre ve deşifre işlemleri için farklı anahtarların kullanıldığı bir şifreleme sistemidir.
Haberleşen taraflardan her birinde birer çift anahtar bulunur. Bu anahtar çiftlerini oluşturan anahtarlardan
biri gizli anahtar diğeri açık ( gizli olmayan) anahtarlardır.Bu anahtarlardan bir tanesiyle şifreleme yapılırken diğeriyle de şifre çözme işlemi gerçekleştirilir.Bu iki anahtar çifti, matematiksel olarak birbirleriyle bağlantılıdır.

Gizli anahtarın sadece bir sahibi vardır. Gizli anahtara sahip olan taraf gizli anahtar aracılığıyla,
kendi açık anahtarıyla şifrelenmiş bilgilerin şifresini çözebilir, kendisine ait sayısal imzaları oluşturabilir ya da
kendi kimliğini ispat edebilir (authentication).

Açık anahtar herkesin erişimine açıktır. Anahtarlar birbirlerinden farklı olsalar da, matematiksel olarak birbirleriyle ilişkilidirler.Açık anahtarla bilgiler sadece gizli anahtarın sahibi tarafından çözülebilecek şekilde şifrelenebilir ya da gizli anahtar sahibinin dijital imzasının ve dolayısıyla kimliğini doğruluğunu kontrol edilebilir.

Açık anahtarlı şifrelemenin uygulanmasında asimetrik anahtar algoritmaları kullanıldığı için
asimetrik şifreleme olarak da adlandırılır.Simetrik şifreleme algoritmalarının aksine, asimetrik şifreleme algoritmalarında güvenli bir "ilk anahtar değişimi"ihtiyacı bulunmaktadır. Bu algoritmaların çalışma şekli anahtarların oluşturulmasını, açık anahtarla şifreleme ve gizli anahtarla deşifreleme yapılmasını kolayca gerçekleştirirken, yanlızca açık anahtarı bilerek gizli anahtarın bulunmasını zor kılar. Bu zorluğu anahtarlar arasındaki matematiksel ilişki ( öne çıkanları örnekleri çarpanlara ayırma ve ayrık logaritma ) sağlar.

Açık anahtarlı şifreme gayet temel ve yaygınca kullanılan bir teknolojidir. Açık anahtar altyapısı internet üzerinde güvenli haberleşmeyi sağlayan TLS (SSL'in takipçisi) protokolü, güvenli e-posta haberleşmesinde kullanılan PGP protokolü ve dosya şifreleme ve çözmeye yarayan GPG gibi protokollerde kullanılmaktadır.

Asimetrik algoritmayı isterseniz Ali ve Bekir arasında geçen aşağıdaki gibi bir diyalog üzerinden değerlendirelim.