Tamamen homomorfik şifreleme, unutulmaz bir kod yürütme için kullanılabilir mi?


22

Bu cevabı bir süre önce okuduktan sonra , tamamen homomorfik şifrelemeye ilgi duydum. Gentry'nin tezinin girişini okuduktan sonra, şifreleme şemasının üçüncü paragrafta tanımlandığı gibi unutulmaz kod yürütme için kullanılıp kullanılamayacağını merak etmeye başladım.

Tamamen homomorfik bir şifreleme şemasında tipik olarak bazı verileri şifreleriz, bunu veriler üzerinde belirli bir fonksiyonun hesaplandığı düşmanca bir ortama göndeririz, bunun sonucu olarak, alınan verilerin ne olduğunu tespit etmeden, geri gönderilen (şifrelenmiş) işlevin sonucu.

Kayıtsız kod yürütme ile, bazı P sorununu çözmek ve onu düşmanca bir ortama göndermek için tasarlanmış bir kodunu şifrelemek anlamına gelir . Düşman kullanmak istediği C çözmek için P , ama biz nasıl bilmesini istemiyoruz C çalışır. O bir girişi varsa I için P , O şifreleyebilir I ve sonra, (bir şifreleme ile ilgili düzeni) kullanmak C ile I daha sonra (şifrelenmemiş) çıkış verir, O (çözeltisinin P girişi için ICPCPCbenPbenCbenOPben). Şifreleme şeması, düşmanın asla kod parçasının nasıl çalıştığını bulmadığından emin olmasını sağlar, yani ona bir kehanet gibi çalışır.

Böyle bir şifreleme şeması için esas olarak pratik kullanım (düşünebildiğim) korsanlığı daha zor ve hatta imkansız kılmaktır.

Bunun tamamen homomorfik bir şifreleme şeması kullanarak mümkün olabileceğini düşünüyorum nedeni şifreli veriler üzerinde, özellikle de evrensel bir Turing makinesi üzerinde isteğe bağlı devreler gerçekleştirebilmemizdir. Daha sonra kodu, sanki veriymiş gibi şifreleyip, kodu çalıştırmak için bu şifrelenmiş veri üzerinde bulunan evrensel bir Turing makinesi için devreyi kullanabiliriz.

Bunu burada bir soru olarak ortaya koyarım çünkü bu fikrin kullanılıp kullanılmayacağını bilmiyorum: Gentry'nin tezinin tanıtılmasından daha fazlasını alamadım ve kriptografi hakkındaki bilgilerim sınırlı. Ayrıca, unutulmaz kod yürütme için zaten sık kullanılan bir terim olup olmadığını bilmiyorum: Google'da bu fikri aramaya çalıştım, ancak hiçbir şey bulamadığım doğru terimi bilmeden çalıştım.

Bu yaklaşımda sorunlara yol açabilecek çok sayıda sorun var. Öncelikle, değişiklik yapmadan tamamen homomorfik bir şifreleme kullanırsak, hesaplamanın ( ) sonucu şifrelenir. Bu nedenle P'yi çözmek için kodunuzu kullanmak isteyen rakip için faydasız olacaktır . Bu, örneğin bulut bilişim için faydalı olsa da, ulaşmak istediğim şey bu değil.OP

İkincisi, devreleri kullandığımız ve keyfi Turing makineleri kullandığımız için, rastgele miktarda hafıza kullanamayız: önceden belirlenmiş bir hafıza miktarıyla sınırlıdır. Bu, bir programı bu şekilde yürütmek istiyorsak, bellek ayak izinin daima aynı olacağı, yani en yüksek bellek kullanımı anlamına gelir.

Son olarak, dahil olan sabitler neredeyse kesinlikle böyle bir sistemin herhangi bir pratik kullanımını kesecektir, ancak bunun yine de ilginç olduğunu düşünüyorum.


“Oblivious code execution” teriminden emin misiniz? Bir süre bu konuyu aradım ve hiçbir şeyim yok!
Deyaa

Hiç değil: Bunun için doğru terimi bilmediğim için kendim terimini yaptım. Şaşırtma ve şaşırtıcılar görünüşte kavram için normal terimlerdir.
Alex ten Brink

Yanıtlar:


17

Ne yazık ki, teorik olarak "unutulmaz kod yürütme" yasaklayan bir sonuç var:

Boaz Barak, Oded Goldreich, Russell Impagliazzo, Steven Rudich, Amit Sahai, Salil Vadhan ve Ke Yang. Obfuscating Programları (Im) olasılığı üzerinde , Kripto 2001 - kriptoloji GELİŞMELER.

İşte linkler:

Özet okur:

Gayri, Obfuscation , girdi olarak bir program (veya devre) alan bir (etkin, olasılıksal) "derleyici" olan P ve yeni bir program üreten O ( p ) da aynı özelliğe sahip , P henüz bir anlamda "okunamaz" bir . Varsa, obfuscatorlar, yazılım korumasından homomorfik şifrelemeye, Rice teoreminin karmaşıklık-teorik analoglarına kadar çok çeşitli şifreleme ve karmaşıklık-teorik uygulamalara sahip olacaklardır. Bu uygulamaların çoğu şaşırtmacadaki “okunamazlık” durumunun O ( P ) anlamına geldiği şeklinde yorumlanmasına dayanmaktadır.OPO(P)PO(P)şey bir verimli verilen hesaplayabilir anlamda bir "sanal kara kutu" olduğunu , bir de verimli kadar oracle erişim hakkı hesaplarsak olabilir PO(P)P .

Bu çalışmada, şaşkınlığın teorik bir incelemesini başlattık. Ana sonucumuz, yukarıdaki sezginin çok zayıf bir biçimde biçimlendirilmesinde bile şaşırtmanın mümkün olmamasıdır. Biz fonksiyonları bir aileyi oluşturarak bu ispat aşağıdaki anlamda doğal olarak unobfuscatable şunlardır: orada bir yüklem π (a) fonksiyonu hesaplar herhangi bir program verilen şekilde f içinde F , değer π ( f ) verimli hesaplanabilir henüz, (b) bir (rastgele seçilmiş) işlevi oracle erişim verilen f olarak F , hesaplayabilir bir verimli bir algoritma π ( f )FπfFπ(f)fFπ(f) rastgele tahmin etmekten çok daha iyi.

Biz sadece hesaplama çok kısıtlı modeller için çalışmaya ihtiyaç (a) polinom zamanda mutlaka hesaplanabilir olmadığını hatta obfuscation, (b) yalnızca yaklaşık (c) işlevselliğini korumak ve dahil bir dizi yolla bizim imkansızlık sonucu uzatmak 0 ). Aynı zamanda, “yanılmaz” imza şemaları, şifreleme şemaları ve sözderandom fonksiyon aileleri kurarak, birçok olası obfikatör uygulamasını da hariç tutuyoruz.TC 0


Peki, bu tür şeyler üzerine bir sönümleyici koyar. Sadece sonuçlarını nasıl kanıtladıklarını okudum: özellikle şaşırtmacının, programın kaynak koduna erişebileceğini düşündüğümde şaşırmıştım! (gazeteyi yanlış anlayabilsem de)
Alex ten Brink

5
Anladığım kadarıyla, bu sonuçların sadece sanal kara kutuları kullanarak "eski" (başarısız) bir şaşırtma modeli için geçerli olduğu ve şimdi alandaki araştırmacıların bazı garantilerin olabileceği umuduyla daha zayıf bir şaşkınlık kavramı benimsemek istedikleridir. Araştırma yönlerinden biri, Tamamen Homomorfik Şifrelemeyi benimsemektir ve bu yüzden sorunun açık olduğunu söyleyebilirim. Bu yaz Microsoft Research'ün bir konuşmasında oturduğumu, araştırmacının tam olarak bu noktayı yaptığı sabit nokta engelleyicileri ve sanal kara kutuları konuştuğunu hatırlıyorum.
Ross Snider,

3
Alandaki bir araştırmacı (ya da yazarlar listesindeki etkileyici isimlerden biri) yorum yapabilir mi?
Ross Snider,

1
@Ross: Evet, bu alandaki diğer araştırmacıların da yorum
yazmasını istiyorum

@ Ross, Sadeq: Yazarların bazıları zaman zaman siteyi ziyaret ediyor, umarım etiketi göreceklerdir. Öne çıkan sorular sayfalarında soru sormak da yardımcı olabilir.
Kaveh

15

Aslında, tamamen homomorfik şifreleme, güvenilmeyen birden çok taraf arasında kod yürütmek için çok yararlı olsa da (örneğin, bkz. bu makaleye bakınız). ), şifreli çıktısını hesaplayan taraf, gizli anahtarı bilen tarafa gönderdiğinde, bir tür etkileşime ihtiyacınız vardır. .

Aradığınız nosyon şüphesiz yukarıda belirtilen bir imkansızlık sonucunu kanıtladığımız yazılım gizliliğine yakın geliyor. Ben de bir kez yazdım gayrı resmi bir bakış , bazı kişilerin yararlı bulabileceği bu makalenin .

Bu imkansızlık sonucu göz önüne alındığında, tanımlamayı gevşetebilecek iki (ayrık olmayan) yol vardır: ya gizlemek için gereken program / işlev sınıflarını kısıtlayarak ya da daha güvenli bir güvenlik anlayışı vererek.

İkinci yaklaşım belki de mümkündür ve makalemizdeki bazı zayıf kandırma benzeri kavramlara dikkat çekiyoruz. Bununla birlikte, saldırımızın, ne kadar karışık olursa olsun, bazı programların orijinal kaynak kodunu tamamen kurtardığını unutmayın. Yani bir şekilde karşı örneklerimiz için önemsiz olan bir güvenlik tanımı yapmalısınız.

İlk yaklaşım, her sınırlı işlevsellik için (örneğin, nokta işlevleri) yapıldı, ancak yine de sınıfın karşı örneklememizi içermediğinden emin olmak gerekiyor, bu da kabaca sözde rasgele işlevler içermemesi gerektiği anlamına geliyor.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.