कुछ समय पहले इस उत्तर को पढ़ने के बाद , मैंने पूरी तरह से होमोमोर्फिक एन्क्रिप्शन में रुचि ली। जेंट्री की थीसिस की शुरूआत को पढ़ने के बाद, मैंने यह सोचना शुरू कर दिया कि क्या उनकी एन्क्रिप्शन योजना को तीसरे पैराग्राफ में परिभाषित अनजान कोड निष्पादन के लिए इस्तेमाल किया जा सकता है।
एक पूरी तरह से होमोमोर्फिक एन्क्रिप्शन योजना में हम आम तौर पर कुछ डेटा को एन्क्रिप्ट करते हैं, इसे एक शत्रुतापूर्ण वातावरण में भेजते हैं जहां डेटा पर एक निश्चित फ़ंक्शन की गणना की जाती है, जिसके परिणाम को फिर से वापस भेजा जाता है (एन्क्रिप्टेड), बिना प्रतिकूल पता लगाए कि प्राप्त डेटा क्या है या फ़ंक्शन का परिणाम है।
गुमनामी कोड निष्पादन के साथ मेरा मतलब है कि हम कुछ समस्या पी को हल करने के लिए डिज़ाइन किए गए कोड एक टुकड़े को एन्क्रिप्ट करते हैं और इसे शत्रुतापूर्ण वातावरण में भेजते हैं। विपक्षी P को हल करने के लिए C का उपयोग करना चाहता है , लेकिन हम नहीं चाहते कि उसे पता चले कि C कैसे काम करता है। यदि उसके पास P के लिए एक इनपुट I है , तो वह I को एन्क्रिप्ट कर सकता है और फिर I के साथ C पर (कुछ एन्क्रिप्शन स्कीम) का उपयोग कर सकता है , जो तब I (एन्क्रिप्टेड नहीं) आउटपुट O ( इनपुट I के लिए P का समाधान ) लौटाता है।)। एन्क्रिप्शन योजना सुनिश्चित करती है कि विरोधी को कभी पता नहीं चलता है कि कोड का टुकड़ा कैसे काम करता है, यानी उसके लिए यह काम करता है जैसे कि एक ओरेकल करता है।
ऐसी एन्क्रिप्शन योजना के लिए मुख्य व्यावहारिक उपयोग (मैं सोच सकता हूं) पायरेसी को और अधिक कठिन या असंभव बना सकता हूं।
मुझे लगता है कि इसका कारण पूरी तरह से होमोमोर्फिक एन्क्रिप्शन योजना का उपयोग करना संभव हो सकता है क्योंकि हम एन्क्रिप्टेड डेटा पर मनमाना सर्किट निष्पादित कर सकते हैं, विशेष रूप से एक सार्वभौमिक ट्यूरिंग मशीन। हम फिर कोड को एन्क्रिप्ट कर सकते हैं जैसे कि यह डेटा था और फिर कोड को निष्पादित करने के लिए इस एन्क्रिप्टेड डेटा पर एक सार्वभौमिक ट्यूरिंग मशीन के लिए सर्किट का उपयोग करें।
मैं इसे एक प्रश्न के रूप में यहां प्रस्तुत करता हूं क्योंकि मुझे नहीं पता कि यह विचार प्रयोग करने योग्य है: मुझे जेंट्री की थीसिस की शुरुआत की तुलना में कभी भी अधिक नहीं मिला, और क्रिप्टोग्राफी के बारे में मेरा ज्ञान सीमित है। इसके अलावा, मुझे नहीं पता कि क्या पहले से ही गुमनामी कोड निष्पादन के लिए अक्सर इस्तेमाल किया जाने वाला शब्द है: मैंने Google को इस विचार के लिए खोजने की कोशिश की, लेकिन उचित शब्द नहीं जानने के कारण मुझे कुछ भी नहीं मिला।
ऐसी कई समस्याएं हैं जिनके बारे में मैं सोच सकता हूं कि इस दृष्टिकोण से समस्याएं हो सकती हैं। सबसे पहले, अगर हम संशोधन के बिना पूरी तरह से होमोमोर्फिक एन्क्रिप्शन का उपयोग करते हैं, तो गणना ( ) का परिणाम एन्क्रिप्ट किया जाएगा। इसलिए यह प्रतिकूल होगा जो पी को हल करने के लिए अपने कोड का उपयोग करने की इच्छा रखता है । हालांकि, क्लाउड कंप्यूटिंग के लिए यह अभी भी उपयोगी हो सकता है, यह वह नहीं है जो मैं हासिल करना चाहता हूं।
दूसरे, क्योंकि हम सर्किट का उपयोग कर रहे हैं और ट्यूरिंग मशीनों का मनमाना उपयोग नहीं कर रहे हैं, हम मनमानी मात्रा में मेमोरी का उपयोग नहीं कर सकते हैं: हम मेमोरी की पूर्व निर्धारित मात्रा तक सीमित हैं। इसका मतलब है कि अगर हम इस तरह से एक प्रोग्राम चलाना चाहते हैं, तो यह मेमोरी फ़ुटप्रिंट हमेशा एक ही रहेगा, अर्थात् यह पीक मेमोरी उपयोग है।
अन्त में, इसमें शामिल स्थिरांक ऐसी प्रणाली के किसी भी व्यावहारिक उपयोग को लगभग निश्चित रूप से मार देंगे, लेकिन मुझे लगता है कि विचार दिलचस्प है।