top of page

Kriptografi Nedir? Şifreleme İşlemi Nasıl Yapılır?

Güncelleme tarihi: 17 Oca


Kriptografi Nedir?

Kriptografi Nedir?

Kriptografi, aslında temel olarak okunabilir durumdaki bir verinin istenmeyen taraflarca anlaşılamayacak bir hale dönüştürülmesinde kullanılan yöntemlerin tümüdür ve matematik bilimini kullanarak şifreleme (encryption) ve şifre çözme (decryption) işlemlerinin arkasındaki mantığı araştırır. Kriptografi en basit tabirle şifre bilimidir.

Kriptografi ‘nin encryption (Şifreleme) ve descryption (şifre çözme) olarak iki aşaması bulunmaktadır ve dört temel amaca sahiptir. Bunlar:

  • Gizlilik: Gizli kalması gereken bilgilerin, başka kişilerin eline geçmesini engellemek.

  • Kimlik Denetimi: Şifreleme yapan kişi ile çözen kişi bellidir. Şifreleme kullanılmasaydı, mesajı aynı isimle herhangi biri iletebilirdi.

  • Bütünlük: Orijinal mesajın gönderildiği gibi olduğunu, üzerinde hiçbir değişiklik, ekleme, çıkarma ve yeniden düzenleme yapılmadığını garanti altına almak.

  • Erişim Kontrolü: İzinsiz kişi ya da uygulamaların erişmemeleri gereken kaynaklara erişmelerinin engellenmesi.

Şifreleme ve Kripte Etme Farkı Nedir?

Şifreleme, bir verinin bir alıcıya aktarılırken değiştirilip değiştirilmediğini öğrenmemizi sağlar. Kriptolamadan farklı olarak şifreleme işleminde bir descryption işlem yoktur. Veri şifreli gönderilir ve gönderim esnasında müdahale olduysa bütünlüğünü bozulur. Örnek vermek gerekirse; bir alıcıya gelen bir e-fatura XML’ini GİB’in e-fatura görüntüleyicisinde doğrulabiliriz. Fakat faturanın içerisinde para birimi alanın değiştirip tekrar doğrulamak istersek bize “geçersiz imza” diyecektir.

Şifrelemenin bir diğer amacı da gizlilik sağlamaktır. Bir web sitesinde kullanıcı adı ve şifresiyle login olduğumuzu düşünelim. Veri tabanında kullanıcı tablosuna yazılan düz yazı şeklindeki şifre, bir hacker saldırısında ele geçirilebilirken eğer biz şifremizi hashleyip bu hashi tabloya kayıt edersek oturum açma işleminde şifre hashi ile veri tabanındaki hash kıyaslanıp login olunabilecektir. Hacker veri tabanını ele geçirse bile hashi çözmeye ayrıca vakit harcaması gerekir.

Şifreleme algoritmalarının bir diğer avantajı da girdi ne olursa olsun çıktı hep aynı uzunluktadır. Eğer MD5 ise 32 karakter SHA-256 ise 64 karakter uzunluğundadır.

Şifreleme (Encryption) İşlemi

Bir veriyi şifrelemek istediğimizde, Kriptoloji bilimi bize bu işlemi yapabilmek için iki adet seçenek sunmaktadır, bunlar Simetrik (Symmetric) ve Asimetrik (Asymmetric) encryption yöntemleridir. Bu kavramların ne anlama geldiğine hızlıca değinelim.

Simetrik Şifreleme (Symmetric Encryption)

Symmetric Encryption işlemi, aslında yukarıdaki figürden de görebileceğimiz şekilde, bir veri şifrelenirken (encryption) ve şifresi çözülürken (decryption) iki aşamada da aynı Secret Key’in, yani aynı Şifreleme Anahtarı’nın kullanıldığı şifreleme türüdür. Buradan aslında sizlerin de tahmin edebileceği gibi, iki aşamada da aynı anahtarın kullanılması paylaşılan verinin gizliliği ve güvenliği açısından bazı problemler doğurabilir. Simetrik Şifreleme işleminin artılarından veya eksilerinden bahsetmeden önce, öncelikle Simetrik Şifreleme yapan şifreleme algoritmalarına örnek vermemiz gerekirse, bunlara:

  • Blowfish Encryption

  • AES Encryption

  • RC4 Encryption

  • DES Encryption

gibi popüler olan ve yaygın şekilde kullanılan şifreleme algoritmaları örnek verilebilir.

Simetrik Şifreleme’nin Avantajları Nelerdir?

Simetrik Şifreleme’nin ilk ve belki de en önemli avantajı, son derece güvenli olmasıdır. Örnek olarak AES algoritmasını ele alalım; AES şifreleme algoritması kullanılırken şifrelemek istediğimiz veriye eğer 256-bit seviyesinde bir şifreleme işlemi uygularsak, gerçekten çok çok güçlü bir bilgisayarın bile bu şifreyi brute-force attack yöntemiyle elde etmesi milyonlarca yıl sürebilir. Simetrik Şifreleme yönteminin bu kadar güçlü ve güvenli olmasının sebebi, temelindeki algoritmasının güvenli olmasından kaynaklanmaktadır.

Simetrik Şifreleme’nin ikinci avantajı, çok büyük miktarlarda olan verileri Asimetrik Şifrelemeye göre çok daha hızlı işleyerek şifreler ve şifresini tekrar geri çözer. Bu da yapmak istediğimiz bir şifreleme işleminde performansı arttırmaktadır.

Simetrik Şifreleme’nin Dezavantajları Nelerdir?

Simetrik Şifreleme çok güçlü ve güvenli bir algoritmaya sahip olabilir, ancak maalesef bu işlemi yaparken kullanılan şifreleme anahtarı yukarıdaki figürde de görülebileceği gibi encryption ve decryption işlemleri için aynıdır ve bu anahtar encrypt edilmiş veriyi decrypt etmek isteyen karşı taraftaki birine iletilirken ele geçirilirse, gönderilmekte olan veri çok kolay bir şekilde decrypt edilerek ele geçirilebilir. Bu da Simetrik Şifreleme yönteminin en büyük dezavantajıdır.

Asimetrik Şifreleme (Asymmetric Encryption)

Asimetrik Şifreleme yönteminde, Simetrik Şifreleme yönteminden farklı olarak verinin encryption aşamasında bir şifreleme anahtarı (Public Key), decryption aşamasında ise başka bir şifreleme anahtarı (Private/Secret Key) kullanılmaktadır. Peki, nedir bu Public ve Private Key?

Public Key

Public Key, şifrelemek istediğimiz verinin şifrelemesi aşamasında üretilen anahtardır. Bu anahtar her yerde veya herhangi birinin elinde bulunabilir, Public Key’in başkası tarafından ele geçirilmesi verinin güvenliği / gizliliği bakımından bir problem teşkil etmemektedir çünkü bu anahtar şifrelenmiş verinin decryption işlemi için kullanılamaz. “Madem bu Public Key decryption işlemi için kullanılamaz, o zaman neden var?” sorusu kafanızda canlanmış olabilir, buna da Private Key’i açıklarken değineceğiz.

Private Key

Private Key, Public Key’in aslında karşıt görevini gerçekleştiren, şifrelenmiş verinin şifresinin çözülme aşamasında, yani decryption aşamasında kullanılan anahtardır. Burada, hem Public Key’in açıklamasının son kısmında akıllarda oluşabilecek soruya yanıt olarak hem de dikkat etmemiz gereken önemli bir nokta olarak, bir Public Key kullanılarak şifrelenmiş bir verinin decryption işlemi sadece o Public Key’e ait Private Key ile çözülebilir, yani buradan bu iki şifreleme anahtarının aslında birlikte kullanıldığını anlayabiliriz çünkü Private Key bir nevi Public Key’i decrypt ediyor. Hepimizin buradan anlayabileceği gibi, Asimetrik Şifreleme ile şifrelenmiş bir veri transferinde asıl korumamız gereken şifreleme anahtarı Private Key’dir.

Public ve Private Key validation işlemine dair daha spesifik bir örnek olarak SSH bağlantısını gösterebiliriz. Hedef bir sunucuya karşı bir SSH bağlantısı açmak istediğimizde, bunu gerçekleştirebilmek için ya bağlantı sağlamak istediğiniz kullanıcının şifresini bilmeniz gerekmektedir ya da hedef sunucu içerisinde tanımlanan ve genellikle “id_rsa”ismiyle yer alan SSH Private Key değerine sahip olmanız gerekmektedir. Aynı işlemi yine genellikle “id_rsa.pub” şeklinde bulunan Public Key dosyasıyla gerçekleştiremezsiniz çünkü sunucu içerisinde bulunan Private Key’i dışarıdan gönderdiğiniz bir Public Key ile validate edemezsiniz, ancak sizin elinizde olan bir Private Key değerini içeride bulunan Public Key değeri ile validate edebilir ve bağlantınızı sağlayabilirsiniz.

Asimetrik Şifreleme algoritmalarına örnek olarak:

  • RSA

  • Diffie-Hellman

  • ECC

gibi çokça kullanılan şifreleme algoritmaları örnek gösterilebilir.

Asimetrik Şifreleme’nin Avantajları Nelerdir?

Asimetrik Şifreleme ile Gönderici’den Alıcı’ya gönderilen bir mesajın gerçekten doğru Gönderici tarafından gönderildiği doğrulanabilir.

Asimetrik Şifreleme ile Simetrik Şifreleme’nin en büyük problemi olan anahtar gizliliği problemi çözülmektedir.

En önemli avantajlarından biri ise transfer edilen şifrelenmiş verinin transfer aşamasında herhangi bir şekilde bir değişikliğe uğrayıp uğramadığı alıcı tarafından teyit edilebilir.

Asimetrik Şifreleme’nin Dezavantajları Nelerdir?

Asimetrik Şifreleme, Simetrik Şifreleme’ye göre verileri daha yavaş işlemektedir.

Şifrelenen verinin şifresinin çözülmesi için, kullanıcı o verinin Public Key’ine ait Private Key’ine de sahip olmalıdır ancak kullanıcı bu Private Key’i kaybederse şifrelenen veri hiçbir şekilde geriye döndürülemeyebilir.

Blockchain Yapısı

Blockchain üzerinde sahtekarlık yapılması neredeyse imkansız veri tabanında kaydedilen bir günlüktür. Her bir kaydın zaman damgası vardır ve bir blok dolunca başka bir blok üretiliyor ve bu bloklar birbirine bağlı.

Chain yapısını şu şekilde düşünebiliriz. Bir günlüğün sayfasını ele alalım. Bunu günlüğü SHA256 ile şifrelediğimizde 64 karakterlik bir çıktı alırız. Kırması zordur.

Bu sayfada 200 kelime olduğunu varsayalım. Her bir kelimeyi hashlersek ve her hashimizi 2li gruplayıp tekrar hashlersek; ta ki ağaç dalları gibi tek bir gövde olana kadar. O zaman bu bağıl hashlerden sadece birinin üzerinde değişiklik yapılması tüm sayfayı okunamaz hale getirir. Her bir günlük sayfası bir blocktur ve her block birbirlerine tıpkı birbiri ardına gelen günlük sayfası gibi bağlıdır.

103 görüntüleme0 yorum

Son Yazılar

Hepsini Gör
bottom of page