Kırılamaz Şifreleme Algoritması: Vernam Cipher — One Time Pad

Burak Tahtacı
2 min readDec 3, 2020

--

Kriptoloji konusunun geçtiği her dost meclisinde bu sorunun duyulması muhtemeldir. Yahu acaba kırılamayan bir şifreleme algoritması var mı? Bu sorunun cevabı günümüzden 100 yıl önce Gilbert Vernam tarafından patentlenmiş bir çalışmada verilmiştir. Bu algoritmanın detaylarına girmeden önce “kırılamazlık”ın tanımından ve bu işlerin tarihinden bahsedelim.

Bir şifreleme algoritmasını güçsüzleştiren en önemli göstergelerden biri şifrelenecek metnin (plaintext) kendi frekansının ya da anahtarın (secret key) frekansının şifrelenmiş metine yansımasıdır. Yani bir sezar şifrelemeyi düşünürsek şifrelenmiş metinde en sık geçen karakterin e olacağına dair güçlü bir ön bilgimiz oluşur. Ve dizinin geri kalanını kolaylıkla tahmin edebiliriz.

Yani elimizde öyle bir algoritma olmalı ki; ne şifrelenecek metnin ne de anahtarın şifrelenmiş metin üstünde tahmin edilebilir bir etkisi olmasın. Yani başka bir deyişle ben veriyi öyle bir anahtarla şifreleyim ki anahtarın her bir değeri tahmin edilemez olsun; yani gerçekten rastgele olsun. Dolayısıyla saldırmak isteyenler rastgelelik hakkında hiçbir fikir yürütemeyeceklerinden, bu algoritmayı kıramayacaklardır.

Vernam ve One Time Pad’in Patent diyagramı

İşte tam bu sorunun çözümü için Vernam; ABD ve Sovyetler Birliği arasında başkanların odasında bulunan kırmızı telefonlarda bu yöntemi kullanarak şifreleme yapıyor. Gelelim yöntemin detaylarına; aslında yöntem oldukça basit bir temel üzerine dayanıyor.

  1. Öncelikle çok uzun bir rastgele sayı veya bit dizisi bir GERÇEK rastgele sayı üreteciyle üretilir. (Gerçek olması önemli çünkü tahmin edilemez olmalı)
  2. Üretilen bu sayı dizisi haberleşecek taraflara güvenli bir kanal vasıtasıyla iletilir.
  3. İki taraf haberleşmeye başladıklarında en baştaki bitten/sayıdan itibaren bu dizinin elemanlarını anahtar olarak kullanılar ve kullandıktan sonra bir sonraki elemana geçerler; yani tüketmeye başlarlar.
  4. Bir kez kullanılan bit asla tekrar kullanılmaz, onun işi bitmiştir.

Vernam Şifrelemeye, One-Time-Pad denmesinin sebebi de işte budur. Tek kullanımlık bir rastgele şerit oluşturulur. Bu şerit anahtar (running key) olarak kullanılır. Saldırgan anahtarı ve şifrelenmiş metni sürekli takip etse bile, bir sonraki adımda mesajın hangi anahtarla şifreleneceğini tahmin edemeyeceği için bu algoritma bilgi teorisi bakımından kırılamazdır.

Neden gerçek rastgele sayı üreteci ?

Bilgisayarlar ve matematiğe dayalı sistemler rastgele sayı üretmek için deterministik yaklaşımlar kullanır. Dolayısıyla deterministik sistemler tahmin edilebilir ve tekrardan gerçeklenebilir yapılardır. Ve bu durum için uygun değillerdir. Çünkü saldırganın hiçbir şekilde aradaki rastsallığı tahmin edememesi en büyük gayemiz.

Şeridi iki nokta arasında nasıl güvenli taşıyacağız ?

İşte bu soru algoritmanın güvenliğini ve tabiri caizse karizmasını sorgulamamıza sebep olacak bir sorudur. Çünkü burada bir güven sözkonusudur. Yani üretilen gerçek rastgele sayılar güvenilir bir mecra üzerinden taşınmalıdır. Ama bu mecraya nasıl güvenebiliriz ki ? Amacımız güvensiz bir ortamda güvenli bir şekilde haberleşmek olduğu için hiçbir mecraya tam olarak güvenemeyiz.

Evet Vernam Şifreleme, bilgi teorisi açısından kırılamaz bir algoritmadır ancak kullanılabilirlik açısından pratikte kullanılabilecek bir yöntem değildir.

--

--

Burak Tahtacı

TA1KNT / Computer Engineer / RC Hobbyist / Data Science and Machine Learning Lover also interested in Information Security