Etkili bir randomize algoritmayı bildiğimiz birçok sorun var ve verimli olduğunu kanıtlayabileceğimiz herhangi bir deterministik algoritma bilmiyoruz. Ancak bu, herhangi bir temel farktan ziyade karmaşıklık hakkında bir şeyler kanıtlama yeteneğimizdeki eksiklikleri yansıtabilir.
Dayanarak Yorumunuza , bu verimli bir randomize algoritması yoktur herhangi bir sorun mevcut olup olmadığına bakar sormak anlamına geliyordu ve biz yapabilirsiniz görünür kanıtlamak karşılaştırılabilir verimliliği hiçbir deterministik algoritması yoktur. Böyle bir problem bilmiyorum.
Gerçekten de, bu tür sorunların var olabileceğinden şüphelenmek için makul gerekçeler vardır. Sezgisel olarak, böyle bir sorunun varlığı muhtemelen güvenli şifrelemenin imkansız olduğu anlamına gelir. Bu oldukça mantıksız bir sonuç gibi görünüyor.
Bağlantı nedir, soruyorsun? Bazı problemleri etkili şekilde çözen herhangi bir rastgele algoritmayı düşünün . Rastgele paralara dayanır: gerçek rastgele bir kaynaktan elde edilen rastgele bitler. Şimdi, kriptografik kalitede bir psödondom jeneratörü aldığımızı ve gerçek rastgele kaynağı pseudorandom jeneratörünün çıkışıyla değiştirdiğimizi varsayalım. Ortaya çıkan algoritmayı çağırın . Not bu belirleyici bir algoritma ve çalışma süresi yaklaşık olarak aynıdır .A ′ A ′ AAA′A′A
Ayrıca, kriptografik PRNG güvenliyse, sezgisel olarak ise iyi bir algoritma olmasını beklemeliyiz : AA′A
Örneğin, bir Las Vegas algoritmasıysa (her zaman doğru cevabı verir ve yüksek olasılıkla hızlı bir şekilde sona erer), oldukça iyi bir deterministik algoritma olacaktır (her zaman doğru cevabı verir ve çoğu girdi için hızlı bir şekilde sona erer) .A ′AA′
Başka bir örnek olarak, bir Monte Carlo algoritmasıysa (deterministik çalışma süresi ve en az olasılığı ile doğru cevabı verirse ), oldukça iyi bir deterministik algoritma (deterministik çalışma süresi ve doğru çıktıyı verir) tüm girdilerin bölümü ). 1 - ε A 1 - εA′1−εA1−ε
Bu nedenle, kriptografik PRNG güvenliyse ve verimli bir randomize algoritma varsa, oldukça iyi bir deterministik algoritma elde edersiniz. Şimdi, bazı kriptografik varsayımlar geçerli olduğunda güvenli olduğu garanti edilen birçok kriptografik PRNG yapısı vardır. Uygulamada, bu kriptografik varsayımlara geniş çapta inanılmaktadır: en azından, güvenli ticaret ve işlemler bunların gerçek olmasına dayanmaktadır, bu yüzden görünüşe göre güvenli kriptografinin var olduğu büyük miktarlarda paraya bahse girmeye hazırız. Bu dönüşümün başarısız olmasının tek yolu kriptografik PRNG'nin mevcut olmamasıdır, bu da güvenli kriptografinin imkansız olduğunu ima eder. Durum böyle olmadığına dair bir kanıtımız olmasa da, beklenmedik bir sonuç gibi görünüyor.
Yapının ayrıntıları: İşte çalışır. Giriş üzerinde , bu bir fonksiyonu olarak şifreleme PRNG için bir tohum elde (karma, örn ) ve daha sonra simüle için bozuk para gibi şifreleme PRNG çıktısı kullanılarak, . Örneğin, belirli bir örnekleme , sonra sayaç modunda AES256 için tohum olarak veya başka bir kriptografik PRNG olacaktır. Yukarıdaki ifadeleri rastgele kehanet modeli altında ispatlayabiliriz. x x x A ( x ) A k = SHA256 ( x ) kA′xxxA(x)Ak=SHA256(x)k
bazı küçük girdi kesimlerinde yanlış sonuçlar verebileceği fikrinden memnun değilseniz , bu adreslenebilir. yı birden çok kez tekrarlar ve çoğunluk oyu alırsanız , hata olasılığı yineleme sayısında katlanarak hızlı bir şekilde azalır. Bu nedenle, sabit bir sayıda yineleyerek, hata olasılığının altında olmasını sağlayabilirsiniz , bu da algoritmanın yanlış yanıtı çıkardığı girişinde karşılaşma olasılığınızın kaybolması anlamına gelir (üst üste birden fazla kez yıldırım çarpması ihtimalinden daha az). Dahası, yukarıda verdiğim yapı ile, bir rakibin bir girdi bile bulabilme şansıbir ' ε 1 / 2 256 x x bir " AA′A′ε1/2256xx burada yanlış cevap verir, bu çok küçük yapılabilir, çünkü bu SHA256 karma güvenliğinin kırılmasını gerektirir. (Teknik olarak, bu haklı çıkarmak için rasgele kehanet modelini gerektirir, bu nedenle SHA256 ile ilgili hesaplamalarda sabit kod değil, SHA256'nın "bağımsız" seçilmesi gerektiği anlamına gelir , ancak neredeyse tüm gerçek dünya algoritmaları bu gereksinimi karşılayacaktır. .)A′A
A Θ(n)1/2nnxnA′1/2n2nnAA′A′At(n)A′Θ(n⋅t(n))A′A
Etkili bir randomize algoritmayı bildiğimiz ancak etkili olduğunu kanıtlayabileceğimiz herhangi bir deterministik algoritma bilmediğimiz ikinci teorik hususlar ve ek problemler hakkında daha fazla bilgi için bkz. Https://cstheory.stackexchange.com/q/31195 / 5038
Özetle: Etkili bir randomize algoritmayı bildiğimiz herhangi bir sorun için, pratikte etkili gibi görünen deterministik bir algoritmayı da biliyoruz - ancak şu anda bunun etkili olduğunu nasıl kanıtlayacağımızı bilmiyoruz . Olası bir yorum, algoritmalarla ilgili kanıtları kanıtlamada çok iyi olmadığımızdır.