Simetrik, Asimetrik ve Hibrid Kripto Algoritmaları

PHP ile Resim Kriptolama başlıklı yazımızda şifreleme algoritmalarından bahsetmiştik. Bu algoritmaların asimetrik ve simetrik olmak üzere ikiye ayırıp resim kriptolama üzerinde uygulamasını yapmıştık. Bu yazımızda simetrik ve asimetrik kripto algoritmalarından daha ayrıntılı bir şekilde bahsedeceğiz. Sadece asimetrik kripto algoritmaları ya da sadece simetrik kripto algoritmalarının kullanılmasından kaynaklanan sorunları minimuma indirmek için nasıl bir yöntem uygulayabileceğimizi göreceğiz. Sadece simetrik ya da sadece asimetrik kripto algoritması kullanmak yerine bu iki algoritmayı da kullanarak hibrid kripto algoritması oluşturacağız.

Şifreleme Algoritmasının SeçilmesiAsimetrik ve Simetrik Kripto Algoritmaları

Güçlü kripto algoritmaları gelişmiş matematiksel teorilere dayanır. Genellikle kripto algoritmalarının güçlü olup olmaması verilen anahtarın boyutuna bağlıdır. Anahtar olmadan çözülmeye çalışılan kriptolanmış bilgilerin dekriptolanması çok uzun sürer.

Kripto algoritmalarının karmaşıklığından dolayı bu algoritmaları anlamak matematik altyapısı gerektirir. Çoğu ticari ve resmi kurumlar National Institute of Standards and Technology (NIST) kurumunun güçlü kripto sistemleri ile ilgili önerilerine güvenirler.

NIST asimetrik algoritmaları RSA, DSA ve ECDSA olmak üzere üçe ayırır. ECDSA diğer asimetrik algoritmalara göre daha yenidir. RSA büyük çaplı anahtar boyutlarına izin verdiği için daha çok mesleki algoritmalarda kullanılır.

RSA Anahtarı İle İlgili Problemler

Asimetrik algoritmaların anahtar çözme probleminin yanında bir başka problemi daha var. RSA algoritmaları doğası gereği sadece limitli miktarda yazıyı şifreleyebilir. Mesela anahtarınız 2048 bit ise maksimum 256 bytelık mesajı şifreleyebilirsiniz. Hataları özetleyecek olursak, asimetrik algoritmalarda şifrelenecek yazı boyutundan ödün verilirken simetrik algoritmalarda güvenlikten ödün veriliyor.

Çözüm

Yukarıda bahsettiğimiz problemin çözümü mesajı simetrik algoritmayla şifrelemek sonra simetrik şifrelenen mesajın anahtarını asimetrik olarak şifreleyip mesajla birleştirmek. İki şifreleme algoritmasını da birleştirdiğimiz için bu algoritmaya hibrid kripto algoritması diyoruz. Kurduğum cümlenin karmaşık olduğunun farkındayım. Bir kere daha yavaş bir şekilde okursanız ne dediğimi anlayacaksınız 🙂

Şimdi şifreleme ve şifre çözme işlemlerini adım adım anlatalım

Şifreleme (Kriptolama)

  1. Alıcı anahtar çifti oluşturur ve göndericiye genel anahtarı gönderir.
  2. Gönderici rastgele simetrik anahtar oluşturur be bunu mesajı şifrelemek için kullanır.
  3. Gönderici mesajı simetrik anahtarla kriptolar.
  4. Gönderici simetrik anahtarı alıcının genel anahtarıyla kriptolar.
  5. Gönderici kriptolu simetrik anahtarı ve kriptolu mesajı birleştirir.
  6. Gönderici mesajı alıcıya iletir.

Şifreyi Çözme (Dekriptolama)

Alıcı kriptolu mesajı aldıktan sonra sırayla aşağıdaki işlemler gerçekleştirilir.

  1. Alıcı gelen veriyi kriptolu mesaj ve kriptolu simetrik anahtara ayırır.
  2. Alıcı simetrik kriptolu simetrik anahtarı kendi özel anahtarı ile dekriptolar.
  3. Alıcı kriptolu mesajı dekriptolanmış simetrik anahtarla çözer.
About This Author

Uzun yıllardır yazılım ile uğraşıyorum. PHP ile başladığım yazılım hayatıma şu an PHP'nin yanında Swift ve Python ile devam ediyorum. Bu güne kadar bir çok proje geliştirdim ve yeni projeler geliştirmeye de devam ediyorum. Bu sitede yazılımseverlere faydalı bilgiler vermeye, yazılım geliştirmeye, öğrendiklerimi paylaşmaya, yeni başlayanlara yol göstermeye ve onlara yardımcı olmaya çalışıyorum.

Post A Reply