Açık anahtarlı şifreleme

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) anahtardı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ğinin doğruluğu 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ı bulunmamaktadı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 yalnı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ı şifreleme 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.Eğer bir anahtar mesajı şifrelemede kullanılmış ise, o takdirde şifreyi çözmek için sadece o çiftin diğer anahtarı kullanılabilir. Her ne kadar, açık ve gizli anahtar çiftleri matematiksel olarak birbirlerine bağlı olsalar da, bir anahtardan diğerinin elde edilmesi pratikte mümkün değildir. Bir başka deyişle, bir kişi açık anahtarı bilse de, gizli anahtar kopyalanmaktan ya da değiştirilmekten korunmuş durumdadır. Bu sebeple açık anahtarınızı rahatça herkesin kullanımına sunabilirsiniz, ancak gizli anahtarınızın gizli kalması çok önemlidir. Açık anahtar, gizli anahtar ile imzalanmış mesajın doğrulanmasında veya sadece gizli anahtarın şifresini çözebileceği şekilde mesajı şifrelemede kullanılır. Eğer birisi size şifreli mesaj yollamak istiyorsa, sizin açık anahtarınızı kullanarak şifreler ve siz, anahtar çiftinin gizli anahtara sahip olan tek kişisi olarak mesajı deşifre edersiniz.Güvenli bir iletişim kanalına sahip olmayan iki tarafın kullanacakları bir anahtarı güvenli olarak belirlenmesi (Diffie-Hellman, ElGamal) ya da var olan bir simetrik anahtarın güvenli olarak değiş tokuş edilmesiSayısal imzalar (RSA, DSA, Merkle) aracılığıyla kimlik doğrulama (authentication) ve bilgi bütünlüğünün korunması (integrity)Asimetrik şifreleme sistemlerinde her kullanıcının sadece kendi gizli anahtarını gizli tutması yeterlidir. Bunun aksine (n) tane kullanıcının bulunduğu bir simetrik şifreleme sisteminde gizli tutulması gereken anahtar sayısı her kullanıcı için (n-1) tanedir. Bu da sistem için büyük bir depolama yükü oluşturur.Ayrıca simetrik sistemlerde anahtarların kesinlikle güvenli yollardan kullanıcılara ulaştırılması gerekmektedir. Örneğin değişik kıtalarda yaşayan kişilerin internet gibi herkese açık (güvensiz) bir ortam üzerinden güvenli bir şekilde haberleşmesi ya da alışveriş yapması için anahtarlarını değiş-tokuş etmeleri pratikte mümkün değildir. Açık anahtarlama altyapısı kullanan sistemlerdeyse anahtar değiş-tokuşu güvensiz bağlantılar üzerinde belli önlemleri almak şartıyla güvenli bir şekilde yapılabilir.Simetrik şifreleme sistemleriyle karşılaştırıldığında, asimetrik sistemler çok daha yavaştır. Bu, şifrelemede kullanılan anahtarların uzunluğu ve yapılan işlemlerin karmaşıklığından kaynaklanmaktadır.Asimetrik şifreleme yöntemiyle şifrelenmiş bir bilgiyi aynı anda değişik kullanıcılara gönderebilmek için aynı bilginin her alıcı için ayrı ayrı şifrelenmesi gerekmektedir. Bu da şifreleme için ayrı bir yük getirmektedir.Bu amaçla asimetrik ve simetrik şifreleme sistemlerinin avantajlı yönlerini bir arada kullanan hibrid sistemler kullanılmaktadır. Hibrid sistemlerde şifreleme için simetrik anahtarlar kullanılırken, bu anahtarların iki taraf arasında taşınması için asimetrik yöntemler kullanılmaktadır.Bir diğer sorun ise, asimetrik sistemlerin güvenliğinin henüz daha ispatlanmamış varsayımlara dayandırılmasıdır. Asimetrik sistemlerde güvenlik tek-yönlü-fonksiyonlara dayandırılmaktadır. Bu fonksiyonların kendisinin hesaplanması "kolay", tersinin hesaplanması "imkânsız"dır. İmkânsızdan kasıt, fonksiyonun tersinin hesaplanmasının polinomial süre içerisinde imkânsız olmasıdır. Ancak ters alma işlemini hızlandıracak yöntemlerin var olmadığı henüz ispatlanmış değildir.