Kısa mesaj ile Taş-Kağıt-Makas Nasıl Oynanır-2

Bu serinin önceki yazısında taş-kağıt-makas oyunun’dan bahsetmiştim ve kısa mesaj ile bu oyunun nasıl oynanabileceğini sormuştum. Bu problemin birden fazla çözüm yöntemi var. Bu yazımda problemin muhtemel çözüm yöntemlerinden bahsedeceğim.

Taş-kağıt-makas oyununu yüz yüze oynamak çok kolay çünkü yüz yüze oynarken hile yapılma ihtimali yok. Kısa mesaj ile oyunu oynarken oyunculardan birisi kendi cevabını yazmadan rakibinin cevabına bakabilir ve kendi cevabını ona göre seçebilir. Bu oyunun kısa mesaj ile oynananabilmesi için bu bahsettiğimiz problemi çözmemiz gerekiyor: yani oyunculardan hiçbiri kendi seçimini yapmadan karşı tarafın seçimini öğrenememeli. Varsayalım ki Ali ve Veli kısa mesaj kullanarak taş-kağıt-makas oynamak istiyor. Emin ise Ali’nin ve Veli’nin güvenilir ortak arkadaşı.

Yöntem 1 – Güvenilir aracı kullanımı

Ali ve Veli güvenilir kişinin, Emin, yardımıyla taş-kağıt-makas oyunuyor.

Kısa mesaj ile taş-kağıt-makas oynamanın en kolay yolu güvenilir aracı kullanımı: Ali ve Veli telefonlarını kullanarak kısa mesaj ile hangi hamleyi yaptığını arkadaşı Emin’e gönderir. Emin ise her ikisinden de hamlesini öğrendikten sonra kısa mesaj ile oyunu kimin kazandığını arkadaşlarına mesaj atar. Bu yöntemin avantajı basit olması. Bu yöntemin dezavantajı ise Emin’in oyunculardan birisi lehine hile yapabilecek olması.

Yöntem 2 – Şifreleme yöntemiyle seçimlerin şifrelenmesi

Ali ve Veli seçtikleri bir şifreleme yöntemi yardımıyla taş-kağıt-makas oyunuyor.

Bu problemin bir diğer çözüm yolu bir şifreleme yöntemi kullanmak. Ali ve Veli anlaştıkları bir şifreleme mekanızmasını kullanarak seçimlerini kendi seçtikleri bir anahtar ile şifrelerler. Her oyuncu seçiminin şifrelenmiş mesajını rakibiyle paylaşır (ama anahtarını paylaşmaz). Üstteki şekilde görüldüğü gibi bir oyuncu şifrelenmiş mesajı anahtarı olmadan açamayacağı için arkdaşının seçimine göre karar veremez. Her oyuncu karşıdaki kişiden şifrelenmiş mesaj aldıktan sonra, kendi şifrelenmiş mesajının anahatarını rakibine gönderir. Her oyuncu arkadaşının anahtarı ve şifrelenmiş mesajını kullanarak şifrelenmiş mesajı çözer ve oyunun sonucunu öğrenir. Bu çözüm yönteminde kişiler şifreleme yöntemine ve şifrelenmiş mesajların çözülemeyeceğine güveniyor. Bir kişiye güvenmektense matematiğe güvenmek diye düşünebiliriz bunu.

Yöntem 3 – Bir Hash fonksiyonu kullanımı

Ali ve Veli seçtikleri Hash fonksiyonunu kullanarak taş-kağıt-makas oyunuyor.

Hash fonksiyonları bilgisayar sistemleri ve şifreleme sistemleri tarafından çok kullanılan fonksiyonlar. Bu fonksiyonlar rasgele boyutta karakter dizisi (cümle vb) alırlar ve sonuç olarak sabit boyutta (örneğin 88 karakter uzunluğunda) karater dizileri dönerler. Hash fonksiyonlarının en önemli özelliği tek yönli olmaları, yani bir hash fonksiyonunun sonucunu kullanarak onu üreten karakter dizisine ulaşmak imkansız. Ayrıca bu fonksiyonlar çok kaotik davranırlar: fonksiyonun girdisinde tek bir karakteri değiştirmek bile fonksiyonun çıktısını tamamen değiştirir. Bazı hash fonksiyonlarında aynı çıktıyı üreten iki farklı girdi bulmak çok zordur.

Ali ve Veli kısa mesaj ile taş-kağıt-makas oynamak için öncelikle bir Hash fonksiyonu seçer. Her oyuncu kendi seçimini içeren bir cümle kurar ve bu cümlenin hash değerini rakibiyle paylaşır (cümleyi hash fonksiyonuna verir ve fonksiyonun döndüğü değeri rakibiyle paylaşır.). Her oyuncu rakibinin hash değerini aldıktan sonra, kendi cümlesini rakibiyle paylaşır. Rakibinin cümlesini alan oyuncu oyunu kimin kazandığını öğrenir. Burada öncemli nokta bir oyuncu seçimini içeren cümlenin hash değerini rakibiyle paylaştıktan sonra seçimini değiştiremez çünkü rakibi hash fonksiyonunu kullanarak sağlamasını yapabilir. Burada kullanılanılan yöntem commitment scheme olarak biliniyor. Ilgili wiki sayfasını okumanızı öneririm. Bu yöntemde gene matematiğe güveniyoruz 🙂

Ayrıca sizinle paylaştığım linki kullanarak online bir hash fonksiyonuna ulaşabilirsiniz. Bu fonksiyonu farklı girdilerle deneyin ve hesaplanan hash değerinin nasıl değiştiğini inceleyin. Bir gün arkadaşlarınızla kısa mesaj üzerinden taş kağıt makas oynamak isterseniz bu Hash fonksiyonunu kullanabilirsiniz :).

Yötem 2 ve 3 ile ilgili bir problem var. Bu problemi bulursanız yorum olarak paylaşın. Bir sonraki yazımda görüşmek üzere.

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Connecting to %s