Kriptografinin birçok farklı bölümü vardır. Yine de bazı verileri şifrelemek istiyorsanız, kullanabileceğiniz iki tür algoritma vardır: simetrik şifreleme algoritmaları ve asimetrik şifreleme algoritmaları. Genel konsept aynıdır, verileri şifreleyebilirler ancak farklı ilkeler üzerinde çalışırlar ve farklı kullanım durumlarına sahiptirler. Ancak başlık farkı, şifreleme anahtarlarını açıklar. Simetrik bir şifreleme algoritması, verileri hem şifrelemek hem de şifresini çözmek için tek bir paylaşılan anahtar kullanır. Asimetrik bir şifreleme algoritması, biri şifreyi çözmek ve diğeri şifreyi çözmek için iki bağlantılı anahtar kullanır.
Simetrik şifreleme algoritmalarının özellikleri
Yukarıda belirtildiği gibi, simetrik bir şifreleme algoritmasının anahtar ayırt edici özelliği, verileri hem şifrelemek hem de şifresini çözmek için tek bir anahtar kullanmanızdır. Bu, yalnızca bir olası şifreleme anahtarı olduğu anlamına gelmez, sadece bir şeyi bir anahtarla şifrelerseniz, şifresini çözmek için aynı anahtarı kullanmanız gerekir. Bazen paylaşılan anahtarlı şifreleme olarak adlandırılır. Bunun nedeni, her katılımcının aynı anahtarı bilmesi ve dolayısıyla onu paylaşmanız gerekmesidir.
Şifrelemek ve şifresini çözmek için aynı anahtarı kullanma özelliği biraz sorun olabilir. Simetrik bir şifreleme algoritması kullanmak için, onu güvenli bir şekilde iletebilmeniz gerekir. Ancak, iletişim kurmak için güvenli bir araca sahip olmadan bunu yapamazsınız. Neyse ki, bu sorun asimetrik şifreleme ile çözülebilir, ancak anlamaya değer.
Simetrik şifreleme algoritmalarının anahtarları, en azından asimetrik şifrelemeye kıyasla oldukça küçük olma eğilimindedir. Bu, yavaş bir ağ bağlantısı üzerinden bile iletilmelerini nispeten kolaylaştırır ve güvenilmez bir ağdaki hatalara karşı daha az savunmasızdır. Simetrik şifreleme algoritmaları, asimetrik algoritmalara kıyasla da hızlıdır.
Tüm bu özellikler, simetrik şifreleme algoritmalarını özellikle verilerin toplu olarak şifrelenmesi için kullanışlı hale getirir. Bu, özellikle hız bir sorun olduğunda geçerlidir.
Akış şifreleri ve blok şifreleri
AES muhtemelen en iyi bilinen simetrik şifreleme algoritmasıdır. Çok sayıda veriyi şifreleyen hemen hemen her şeyde kullanılır ve HTTPS'de kullanılan şifreleme paketlerinin standart bir parçasıdır. AES, 128 bitlik bloklara sahip bir blok şifrelemedir. Bir blok şifresi, bir seferde veri bloklarını şifreleyerek çalışır. Her blok aynı boyutta olmalıdır. Bu, kalan veriler blok boyutundan daha büyük olduğunda iyidir, ancak bloğu tamamlamak için bir tür dolgu kullanılması gerektiği anlamına gelir.
Bir akış şifresi, bir seferde çok daha küçük miktarlardaki verileri, tipik olarak her seferinde bir bayt şifreleyerek çalışır. Bu kavramın bir varyasyonu, harfler üzerinde çalışan ikame şifresidir. Yerine koyma şifreleri, frekans analizine karşı savunmasızdır ve bu nedenle genellikle güvenilmez ve kullanılmazlar. Akış şifrelerinde bu sorun yoktur.
Simetrik algoritmalar, bilinen düz metin saldırılarına, seçilmiş açık metin saldırılarına, diferansiyel kriptanalize ve doğrusal kriptanalize karşı savunmasız olma eğilimindedir. Ancak modern algoritmalar, bu durum göz önünde bulundurularak dikkatlice tasarlanmıştır ve bu nedenle bu sorunlar bir sorun oluşturmaz.
Çözüm
Simetrik şifreleme, verileri hem şifrelemek hem de şifresini çözmek için aynı anahtarı kullanan bir şifreleme biçimidir. Bazı durumlarda, algoritmanın kendisi hem şifrelemek hem de şifreyi çözmek için aynıdır, ancak durum bu olmayabilir. Şifreleme anahtarları nispeten kısa olma eğilimindedir ve iletilmesi kolaydır. Ancak anahtarın ilgili tüm taraflar arasında iletilmesi gerektiğinden güvenli bir kanal üzerinden iletilmesi gerekir. Simetrik şifreleme algoritmaları, asimetrik şifreleme algoritmalarından çok daha hızlı olma eğilimindedir.