Merhabalar! Bu yazımızda sizlere kriptografinin çıkış noktası olan, daha güvenli şifreleme yöntemlerinin ortaya çıkışıyla kullanımı giderek azalmış olsa da halen kriptografinin temeli olarak kabul edilen ve her kriptografi dersinin ilk konusunu oluşturan dizi şifrelerinin ilk örneğinden, tek kullanımlık şeritten bahsedeceğiz.
Ancak tek kullanımlık şeridi daha iyi anlayabilmek için, öncelikle şifre terimini kriptografi penceresinden tanımlayalım:
Şifre Nedir?
Her şifre iki 'etkin' algoritmadan oluşur: şifreleme algoritması Ş ve şifre çözme algoritması D.
Şifreleme algoritması anahtar ve açık metin kullanarak şifreli metin oluştururken, şifre çözme algoritması şifreli metin ve anahtarı kullanarak açık metni elde eder. O halde; A, M ve N kümeleri aşağıdaki gibi tanımlandığında;
A = {Anahtarlar kümesi}
M = {Açık metinler kümesi}
N = {Şifreli metinler kümesi}
Ş ve D algoritmalarını matematiksel olarak şu şekilde ifade edebiliriz:
Ş = AxM → N ve
D = AxN → M
Ancak her (Ş,D) çifti bir şifre oluşturmaz. Bu iki algoritmanın bir şifre olabilmeleri için tutarlılık eşitliğini sağlamaları gerekmektedir. Herhangi Ş ve D algoritma çifti için tutarlılık eşitliği aşağıdaki gibi tanımlanır:
D(a, Ş(a, m)) = m, ∀a∈A, ∀m∈M
Basitçe ifade edersek, tüm anahtar ve metin kombinasyonları için, şifreleme algroitmasında anahtar a ve metin m kullanılarak oluşturulmuş bir şifreli metin, şifre çözme algoritmasında aynı anahtar ile çözüldüğünde tekrar metin m elde ediliyorsa, bu Ş-D çifti tutarlılık sağlar.
(A, M, N) kümeleri üzerinde tanımlı ve tutarlılık sağlayan her Ş-D 'etkin' algoritma çifti, yine aynı kümeler üzerinde tanımlı bir şifre ifade eder.<
Tanımlamayı bitirirken eminim ki 'etkin' kelimesinin kullanımı dikkatinizi çekmiştir. Bu sözcük farklı kişiler tarafından farklı anlamlarda kullanılmaktadır. Örneğin, teorisyenler tarafından kullanıldığında bir algoritmanın etkin olması ve genellikle polinomal zamanda çalıştığı anlamına gelirken uygulama yönüyle ilgilenenler için 1GB verinin 1 dakikadan kısa bir sürede işlenmesi veya benzeri özel bir anlama da geliyor olabilir.
Peki, Tek Kullanımlık Şerit Nedir?
Tek kullanımlık şerit yöntemi, bilinen ilk güvenli şifredir. Bu yöntemde kullanılan anahtar, şifrelenecek metin ile aynı uzunlukta rastgele bitlerden oluşur. Bitsel XOR işleminden faydalanılan basit şifreleme ve şifre çözme algoritmaları şu şekildedir:
n = Ş(a, m) = a⊕m
m = D(a, n) = a⊕n
Tek kullanımlık şerit tutarlılık eşitliğini de sağlamaktadır:
D(a, Ş(a,m)) = D(a, a⊕m) = a⊕a⊕m = m
Peki bu şifrenin adı nereden gelmektedir? Tek kullanımlık şeritte kullanılan anahtar oldukça uzun olduğu için şeride benzetilmiş ve bir anahtar yalnızca bir kez kullanılabildiği için de bu şifrenin ismi tek kullanımlık şerit olmuştur. Anahtarın niçin tek kullanımlık olduğu sorusunu güvenlik kısmına bırakıp devam edelim.
Yalnızca XOR işlemi kullanılıyor olmasından dolayı çok uzun veriler için dahi çok hızlı olan tek kullanımlık şeridin ne yazık ki kullanımı oldukça zordur. Bunun sebebi de anahtarın en az metin uzunluğunda olması gerekmesindendir. Şöyle ki eğer iki bilgisayar arasında bir anahtar güvenli bir şekilde aktarılabiliyor olsaydı, zaten aynı yöntemi metnin kendisini aktarmak için de kullanabilirdik. Bu yüzden anahtarın metnin kendisi kadar uzun olması gerekmesi ciddi bir sorun oluşturur ve tek kullanımlık şeridi kullanışsız kılar. Buna rağmen, daha sonra geliştirilen şifreleri incelerken görürüz ki tek kullanımlık şeritlerde kullanılan XOR işlemi bugün dahi kullanılan bir çok şifreleme yönteminin temelini oluşturur.
Şifrelerin Güvenliği
Tek kullanımlık şeritlerin ne olduğunu öğrendiğimize göre bu şifreyi bir de güvenlik açısından irdeleyelim: Neden tek kullanımlık şerit güvenlidir? Tek kullanımlık şerit iyi bir şifre midir? Bu soruları yanıtlayabilmemiz için önce iyi bir şifrenin nasıl olacağını tanımlamalıyız. Bir şifreyi güvenli yapan nedir?
Şifrelerin güvenliğini inceleyebilmek için öncelikle biraz bilgi kuramına değinmeliyiz. Şifreler üzerine titiz bir çalışma yürüten ilk kişi bilgi kuramının babası olarak anılan Claude E. Shannon'dır. Shannon 1949 yılında yayınladığı ünlü makalesinde tek kullanımlık şeridin güvenliğinden bahsetmektedir. Shannon'a göre, yalnızca şifreli metni biliyor olmak 3. şahıslara açık metin hakkında herhangi bir bilgi sağlamamalıdır. Diğer bir deyişle şifreli metin, açık metin hakkında hiç bir şey açık etmemelidir. Shannon'ın mutlak güvenlik tanımı daha detaylı olarak görelim:
(A, M, N) kümeleri üzerinde tanımlı bir Ş-D şifresinin mutlak güvenli olma koşulu aşağıda belirtilmiştir:
∀ m₁,m₂ ∈ M; |m₁|=|m₂| ve ∀n∈N için
Anahtar a, A'dan rasgele seçildiğinde
O[Ş(a,m₁)=n] = O[Ş(a,m₂)=n] olmalıdır.
Bir diğer deyişle, her uzunlukları eşit m₁ ve m₂ açık metin çifti ve her şifreli metin n için anahtarlar kümesi A'dan rasgele bir anahtar a seçtiğimizde, m₁ metninin a anahtarı ile şifrelendiğinde şifreli metin n'i oluşturma olasılığı, m₂ metninin a anahtarı ile şifrelendiğinde şifreli metin n'i oluşturma olasılığına eşit ise Ş-D şifresi mutlak güvenlidir. Bu önerme çift taraflı doğrudur. Yani, bir Ş-D şifresinin mutlak güvenli olması, olasılıklar arasındaki bu eşitliğin sağlandığı anlamına da gelmektedir.
Tanımı iyice yalınlaştırarak şu şekilde de ifade edebiliriz: Bize bir şifreli metin n verildiğinde, biz bu şifreli metnin m₁'den mi yoksa m₂'den mi elde edildiğini bilememeliyiz. Üstelik açık metinleri ve şifreli metni değiştirsek de bu durum hiçbir zaman değişmemeli.
Mutlak güvenliğin ne olduğunu iyice anladığımıza göre, artık mutlak güvenli şifrelerde yalnızca şifreli metin kullanılarak açık metin hakkında hiç bir bilgi edinilemeyeceğini de savunabiliriz. Böylece, mutlak güvenli şifreler üzerinde “şifreli metin tabanlı saldırılar”ın (yalnızca şifreli metinlerin kullanıldığı saldırılar) etkisiz olduğunu söyleyebiliriz. Ancak farklı saldırılar için bir iddiada bulunamayız.
Peki mutlak güvenli şifreler üretebilir miyiz? Bu soruyu yanıtlamak için çok da uzağa bakmamıza gerek yok. Çünkü tek kullanımlık şerit aslında mutlak güvenli bir şifredir. Üstelik çok basit bir şekilde bunu ispatlayabiliriz de.
Tek Kullanımlık Şeridin Güvenliği
Her açık metin m ve şifreli metin n için, m'in herhangi bir anahtar ile şifrelendiğinde n'i oluşturması olasılığı, m'i şifrelemek için kullanıldığında n'i oluşturacak anahtar sayısının toplam anahtar sayısına bölümüne eşittir.
∀m,n: O[Ş(a,m)=n] = |{a: Ş(a,m)=n}| / |A|
Tek kullanımlık şeridin çalışma prensibi göz önünde bulundurulduğunda belirli bir açık metni belirli bir şifreli metne dönüştürecek yalnızca bir tek anahtar olduğu ve bu anahtarın da m⊕n = m⊕(a⊕m) = a formülü ile bulunduğu görülür. O halde tek kullanımlık şeritte:
∀m,n: O[Ş(a,m)=n] = 1 / |A| 'dır.
Her m,n için bu olasılığın aynı olması da tek kullanımlık şeridin mutlak güvenli olduğunu gösterir. O halde, tek kullanımlık şerit üzerinde sonuç verecek bir şifreli metin tabanlı saldırı yoktur. Mutlak güvenlik, tek kullanımlık şeridin, kendisinden sonra geliştirilen birçok dizi şifresinden daha güçlü olduğu önemli bir yanıdır. Ancak kriptografiye olan ilgilerini bu yazıdan sonra da sürdürecek olan okurlarımız göreceklerdir ki tek kullanımlık şerit üzerinde kullanılabilecek daha farklı saldırı türleri mevcuttur ve mutlak güvenli olmasına rağmen tek kullanımlık şerit güvenli bir şifre değildir.
Unutulmaması gereken önemli bir husus da bu şifrede anahtarların yalnızca bir şifrelemeye mahsus olması gerekmesidir. Nitekim, bir anahtarın tekrar kullanımı ciddi güvenlik ihlaline yol açacaktır. Dilerseniz bir örnek üzerinde görelim: n₁ ve n₂ şifreli metinleri sırası ile m₁ ve m₂ açık metinlerinin a anahtarı kullanılarak şifrelenmesiyle oluşturulmuş olsun. Bu durumda, system n₁⊕n₂ = (a⊕m₁)⊕(a⊕m₂) = m₁⊕m₂ eşitliğinden faydalanılan saldırılara açık olacaktır.
Yazımızın sonuna gelmişken tekrar vurgulamak isterim ki tek kullanımlık şeridin aktif olarak kullanılmıyor olmasının en önemli sebebi anaharın açık metinle eş uzunlukta olması gerekmesidir. Eğer bu uzunlukta bir anahtarı güvenli bir şekilde aktarılabiliyor olsaydık, aynı yöntemi kullanarak metnin kendisini de aktarabilirdik. Bu noktada akla gelebilecek önemli bir soru mutlak güvenliğin daha kısa anahtarlar ile sağlanıp sağlanamayacağıdır. Ne yazık ki bu sorunun cevabı olumsuz. C. E. Shannon’ın, tek kullanımlık şeridin mutlak güvenliğini ispatlamasının hemen ardından ispatladığı bir başka teoremi, mutlak güvenlik elde edilebilmesi için anahtar sayısının olası metin sayısına eşit ya da ondan daha fazla olması gerektiğini (|A|≥|M|) iddia ediyordu. Bu da demek oluyor ki mutlak güvenlik için anahtarlar açık metin uzunluğunda ya da daha uzun olmalıdır. Bu sebeple mutlak güvenlik tek kullanımlık şeritle birlikte terk edilmiş ve daha sonra geliştirilen şifreler için daha farklı güvenlik tanımları oluşturulmuştur.