Yazan : Ahmet Yazıcı
Araya güvenilir üçüncü kişileri almayacak şekilde, mesafeler arası adil oyunlara dair kriptolojik problemlerin genel adıdır. Adını, bu tür problemlerin en çok yaşandığı Poker oyunundan almıştır. Problem şöyle tanımlanabilir: “Nasıl olur da güvenilir bir belirleyici olmadan, belirli bir bilgiye sadece ona yetkili olan kişiler tarafından ulaşılabilir?”. Bu, pokere şöyle uyarlanabilir: “Karıştırılmış bir destenin ve elimizdeki kartların hiçbir oyuncu tarafından görülmediğinden nasıl emin olabiliriz?” Gerçek hayatta oyuncular karşı karşıya oldukları için hile yaptığı anlaşılan kişi oyundan men edilir. Fakat bu durum uzak mesafeli oyunlar için daha karmaşık bir hal alır. Online Poker gibi elektronik ortamlarda oyun mekanizması, hile yapmaya veya “elektronik deste”ye müdahale etmeye izin vermemektedir.
1 Kartların değişken şifreleme ile karıştırılması
Kartların üçüncü güvenilir kişiler olmadan karıştırılması için bir ihtimal değişken şifrelemedir. Değişken şifreleme; verinin üst üste şifrelenmesi anlamına gelmektedir. Böylelikle şifre bir kişi tarafından çözülse bile veri hala şifreli olur.
2 Algoritma
Kartların değişken şifreleme ile karıştırılması aşağıdaki algoritma ile tarif edilebilir:
- Alice ve Bob; destenin doğruluğundan emin olurlar. Pratikte kart sayısı ve kartların sıralamasının kontrol edilmesi işlemidir.
- Alice A isminde bir şifreleme anahtarı alarak destedeki tüm kartları şifreler.
- Alice desteyi karıştırır.
- Alice şifrelenmiş ve karıştırılmış desteyi Bob’a verir. Şifreleme sayesinde Bob hangi kartın ne olduğunu bilmez.
- Bob B isminde bir şifreleme anahtarı alarak karıştırılmış ve şifrelenmiş olan kartları yeniden şifreler.
- Bob desteyi karıştırır.
- Bob üst üste şifrelenmiş olan desteyi Alice’ye verir.
- Alice A anahtarı ile tüm kartların şifresini çözer. Bu durum Bob’ın şifrelemesini çözemediğinden dolayı Alice hangi kartın ne olduğunu bilmez.
- Alice her kart için (A1, A2, vs..) bir şifreleme anahtarı alır ve kartları tek tek şifreler.
- Alice desteyi Bob’a verir.
- Bob B anahtarı ile tüm kartların şifresini çözer. Bu durum Alice’nin özgün şifrelemesini çözemediğinden dolayı Bob hangi kartın ne olduğunu bilmez.
- Bob her kart için bir şifreleme anahtarı alır ve kartları tek tek şifreler.
- Bob desteyi Alice’ye geri verir.
- Alice kartları oyunculara dağıtır. (Burada oyunculardan kasıt Alice ve Bob’dır.)
Deste artık karıştırılmıştır. Oyun esnasında Alice ve Bob kendi karıştırdıkları destedeki sıraya göre kart çekerler. Oyuncular kendi kartlarını görebilmek için diğer oyunculardan ilgili karta ait şifreleme anahtarlarını talep ederler. Şifrelemeler her kart için ayrı olduğu için oyuncular asla birbirilerinin kartlarını göremezler.
2.1 Örnek
Alice destedeki ilk beş (1-5) kartı çeker. Bob ise ikinci beş (6-10) kartı çeker. Bob kendine ait kartları görebilmek için A6’dan A10’a kadar olan kartların şifresini talep eder. Bob, Alice’ye ve kendine ait B6’dan B10’a kadar olan anahtarlar ile elindeki kartların şifrelerini çözer. Bob artık elindeki kartları görebilir. Ancak Alice’ye ait olan kartları göremez. Çünkü A1’den A6’a kadar olan kartların anahtarları sadece Alice’de bulunmakta. Aynı durum Alice için de geçerlidir.
3 Zayıflık
Şifreleme şeması, known-plaintext attacks (KPA)‘e karşı güvenilir olmalıdır. Bob, kendi bildiği şifre çözme değerleri ile Alice’nin orijinal A anahtarını çözümlemesi mümkün olmamalıdır.
4 Mental Kart Oyunları ve Uygulamaları İçin Referans
Christian Schindelhauer kartlar ve kart yığınları üzerinde uygulama ve doğrulamayı yapabilecek karmaşık protokolleri 1998 yılında tarif etmiştir. Bu çalışma tüm kart oyunlarındaki genel amaç operasyonları ile ilgilidir. Schindelhauer tarafından kullanılan kriptolojik protokoller ikincil dereceden denklemler üzerine kuruludur. Operasyonların doğruluğu zero-knowlage proof ile kontrol edilmektedir. Böylelikle oyuncular, oyunun doğruluğunu kontrol etmek için stratejilerini açığa çıkartmak zorunda kalmazlar.
5 Deste-Karıştırmasız Poker Protokolü
Bugüne kadar mental poker, Alice-Bob yaklaşımlı protokoller ile gerçek zamanlı online oyunlarda yeterince performans sunamadı. Golle tarafından sunulan son tezde şifrele-karıştır yönteminden uzak ve performanslı bir protokol anlatılmıştır. Oyuncuların bir sonraki kart için anlık olarak şifreleme yapması; destenin karıştırılması sırasında yapılan karmaşık şifrelemelerden daha iyidir. Her yeni kartın diğer kartlar içerisinde tekrar denk gelmemesi için kontrol edilmesi gerekmekte. Sonuç olarak bu metod poker türü oyunlar için kullanışlıdır.
Kart-jenerasyon algoritması iki temel özellikli şifre gerektirir. E şifrelemesi benzer yapıda olmak zorundadır. Bundan dolayı E(c1)E(c2) = E(c1 + c2).İkincisi, fikir ayrılıkları düzyazı ile açıklanmadan keşfedilebilir olmalıdır. Diğer bir deyişle, verilmiş olan E(c1) ve E(c2), c1=c2’yi oyuncuların (özellikle c1 ve c2’nin kimliklerini) anlamayacağı şekilde açıklıyor olması gerekiyor. Elgamal şifrelemesi bu yöntemdeki en bilindik sistemdir.
5.1 Algoritma
- Oyuncular kullanımdaki kartları kaydeden boş bir L listesini sıfırlar.
- Desteden bir kart çekmek için her oyuncu {0,…,51}içinden rasgele bir ri sayısı seçer ve E(ri), işlemine dahil eder. E(ri)’e biçimlendirilemez bir yükümlülük aktarır.
- Ardından oyuncular kendilerine ait E(ri)’i sunarlar ve diğer oyuncuların bağımlı kısımlarını doğrulayabilirler.
- Oyuncular r * = Σri ile şifrelenmiş her E(r*) kartına, ΠE(ri) = E(Σri) formülünü işlerler.
- Oyuncular E(r*)’ın L’ye dahil olup olmadığını kontrol ederler. Eğer değilse, E(r*) uygun oyuncuya dağıtılır ve L’ye eklenir. Kartların açığa çıkması gerektiğinde, kartların şifreleri bağıntılı olarak çözülür.
Bu yolla, oyuncular sadece oyunda kullanılmış kartların şifrelerini çözebilir. Sonuç olarak, şema önceki bahsedilenden 2-4 kat kadar daha hızlı çalışmakta.
Eğer k-1 oyuncu hileli bir r* sayısı türetirse, k’nci oyuncu gerçek bir r’ sayısı türetir. Sonuçta r = r * + r’ {0, 51} arasından düzgünce türetilmiş olur.
Ölçülmüş şifreleme teknikleri arasında Golle’nin algoritması çakışma olmadığı sürece idealdir. Bir bakıma diğer protokollerin adil olması için birçok şifreleme işleminden geçmesi gerekiyor. En azından her amil kullanımdaki tüm kartları şifrelemek zorundadır. Aksi halde, eğer bir amil şifrelemeye katılmaz ise, diğer oyuncuların hile yapması yönünde şüpheye düşer. Şifrelenmemiş bir durumda tüm kartların değerleri oyunculara açık hale gelir.
5.2 Arttırılmış Güvenlikte Daha Fazla Performans
Bir mental poker protokolü her oyuncunun oyundaki kartları şifrelemesine itimat etmektedir. Ancak, üçüncü tarafların güvenilirliği hakkında varsayımsal sınırlandırmalar yapılırsa daha verimli protokoller türetilebilir. Kart karıştırmasız protokoller şifreleme yükünü iki ya dad aha fazla sunucu ile paylaşabilir.
İki sunucu ile kurulmuş temel protokol aşağıdaki gibi işlemektedir;
- S1 ve S2 sunucuları kartları karıştırıp şifreler ve şifrelendirilmiş kartları biçimlendirilemez bağıntıyı bazı permutasyonlar ile oyunculara dağıtır. Bu iş birtakım şifreleme protokolleri ile yapılabilir.
- Oyuncular {0,…,51}içinden Golle’nin protokolündeki gibi bağımsız kartları işler.
- Rasgele seçilmiş sayı rasgele permutasyonda işlenir, uygun oyuncular belirlenen kartların sahipliğini kazanır ve sunucular oyunculara kartlarının şifrelerini çözmeleri için anahtar yollarlar.
Bu protokolde S1 ve S2 sunucuları eğer birisi kartların değerini öğrenmek isterse şifreleri değiştirmek zorundadır. Buna ek olarak, oyuncular hangi kartların dağıtıldığına karar verdiğinde, güvenilir olmayan sunucular geleneksel online pokerde çalışamazlar. Şema daha fazla sunucu ile genişletilebilir. Performans arttırımı için karıştırılmış desteler kaydedilerek önbelleğe alınabilir.