क्या एक पूरी तरह से होमोमोर्फिक एन्क्रिप्शन का उपयोग अनजान कोड निष्पादन के लिए किया जा सकता है?


22

कुछ समय पहले इस उत्तर को पढ़ने के बाद , मैंने पूरी तरह से होमोमोर्फिक एन्क्रिप्शन में रुचि ली। जेंट्री की थीसिस की शुरूआत को पढ़ने के बाद, मैंने यह सोचना शुरू कर दिया कि क्या उनकी एन्क्रिप्शन योजना को तीसरे पैराग्राफ में परिभाषित अनजान कोड निष्पादन के लिए इस्तेमाल किया जा सकता है।

एक पूरी तरह से होमोमोर्फिक एन्क्रिप्शन योजना में हम आम तौर पर कुछ डेटा को एन्क्रिप्ट करते हैं, इसे एक शत्रुतापूर्ण वातावरण में भेजते हैं जहां डेटा पर एक निश्चित फ़ंक्शन की गणना की जाती है, जिसके परिणाम को फिर से वापस भेजा जाता है (एन्क्रिप्टेड), बिना प्रतिकूल पता लगाए कि प्राप्त डेटा क्या है या फ़ंक्शन का परिणाम है।

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

ऐसी एन्क्रिप्शन योजना के लिए मुख्य व्यावहारिक उपयोग (मैं सोच सकता हूं) पायरेसी को और अधिक कठिन या असंभव बना सकता हूं।

मुझे लगता है कि इसका कारण पूरी तरह से होमोमोर्फिक एन्क्रिप्शन योजना का उपयोग करना संभव हो सकता है क्योंकि हम एन्क्रिप्टेड डेटा पर मनमाना सर्किट निष्पादित कर सकते हैं, विशेष रूप से एक सार्वभौमिक ट्यूरिंग मशीन। हम फिर कोड को एन्क्रिप्ट कर सकते हैं जैसे कि यह डेटा था और फिर कोड को निष्पादित करने के लिए इस एन्क्रिप्टेड डेटा पर एक सार्वभौमिक ट्यूरिंग मशीन के लिए सर्किट का उपयोग करें।

मैं इसे एक प्रश्न के रूप में यहां प्रस्तुत करता हूं क्योंकि मुझे नहीं पता कि यह विचार प्रयोग करने योग्य है: मुझे जेंट्री की थीसिस की शुरुआत की तुलना में कभी भी अधिक नहीं मिला, और क्रिप्टोग्राफी के बारे में मेरा ज्ञान सीमित है। इसके अलावा, मुझे नहीं पता कि क्या पहले से ही गुमनामी कोड निष्पादन के लिए अक्सर इस्तेमाल किया जाने वाला शब्द है: मैंने Google को इस विचार के लिए खोजने की कोशिश की, लेकिन उचित शब्द नहीं जानने के कारण मुझे कुछ भी नहीं मिला।

ऐसी कई समस्याएं हैं जिनके बारे में मैं सोच सकता हूं कि इस दृष्टिकोण से समस्याएं हो सकती हैं। सबसे पहले, अगर हम संशोधन के बिना पूरी तरह से होमोमोर्फिक एन्क्रिप्शन का उपयोग करते हैं, तो गणना ( ) का परिणाम एन्क्रिप्ट किया जाएगा। इसलिए यह प्रतिकूल होगा जो पी को हल करने के लिए अपने कोड का उपयोग करने की इच्छा रखता है । हालांकि, क्लाउड कंप्यूटिंग के लिए यह अभी भी उपयोगी हो सकता है, यह वह नहीं है जो मैं हासिल करना चाहता हूं।OP

दूसरे, क्योंकि हम सर्किट का उपयोग कर रहे हैं और ट्यूरिंग मशीनों का मनमाना उपयोग नहीं कर रहे हैं, हम मनमानी मात्रा में मेमोरी का उपयोग नहीं कर सकते हैं: हम मेमोरी की पूर्व निर्धारित मात्रा तक सीमित हैं। इसका मतलब है कि अगर हम इस तरह से एक प्रोग्राम चलाना चाहते हैं, तो यह मेमोरी फ़ुटप्रिंट हमेशा एक ही रहेगा, अर्थात् यह पीक मेमोरी उपयोग है।

अन्त में, इसमें शामिल स्थिरांक ऐसी प्रणाली के किसी भी व्यावहारिक उपयोग को लगभग निश्चित रूप से मार देंगे, लेकिन मुझे लगता है कि विचार दिलचस्प है।


क्या आप शब्द "आज्ञाकारी कोड निष्पादन" से सुनिश्चित हैं? मैंने इसके बारे में थोड़ी देर तक खोज की और कुछ नहीं मिला!
दीया

बिलकुल नहीं: जब से मैं इसके लिए उचित शब्द नहीं जानता, मैंने खुद को शब्द बना लिया। ओब्सेस्केशन और ऑब्सफ्यूकेटर्स स्पष्ट रूप से अवधारणा के लिए नियमित शब्द हैं।
एलेक्स दस ब्रिंक

जवाबों:


17

दुर्भाग्य से, वहाँ एक परिणाम है कि सैद्धांतिक रूप से "गुमनामी कोड निष्पादन" मना है:

बोअज़ बराक, ओडेल गोदरिख, रसेल इम्पेग्लियाज़ो, स्टीवन रुडीच, अमित सहाय, सलिल वधान और के यांग। कार्यक्रम के Obfuscating कार्यक्रमों की Im (Im) संभावना पर , CRYPTOLOGY में शामिल हैं - CRYPTO 2001।

यहाँ लिंक हैं:

सार पढ़ता है:

अनौपचारिक रूप से, एक ओफ्यूसैकर एक कुशल (कुशल, संभाव्य) "कंपाइलर" है जो इनपुट प्रोग्राम (या सर्किट) पी के रूप में लेता है और एक नया प्रोग्राम ( पी ) का निर्माण करता है जिसकी कार्यक्षमता पी के समान ही है, जो कुछ अर्थों में "अपठनीय" है। । यदि वे मौजूद हैं, तो ऑबफ्यूज़र्स में क्रिप्टोग्राफिक और कॉम्प्लेक्सिटी-थ्योरिटिक एप्लिकेशन की एक विस्तृत विविधता होगी, जिसमें सॉफ़्टवेयर सुरक्षा से लेकर होमोर्फिक एन्क्रिप्शन तक राइस के प्रमेय के जटिलता-सिद्धांत संबंधी एनालॉग्स शामिल हैं। इन आवेदनों में से अधिकांश अर्थ के रूप में कहानियो में "unreadability" हालत की एक व्याख्या के आधार पर कर रहे हैं कि हे ( पी )OPO(P)PO(P)एक "वर्चुअल ब्लैक बॉक्स" है, इस अर्थ में कि कोई भी कुशलता से गणना कर सकता है, कोई भी पी को दी गई अलंकृत पहुंच की कुशलता से गणना कर सकता है ।O(P)P

इस काम में, हम मोटापे की एक सैद्धांतिक जांच शुरू करते हैं। हमारा मुख्य परिणाम यह है कि, उपरोक्त अंतर्ज्ञान की बहुत कमजोर औपचारिकताओं के बावजूद, ओफ़्फ़ुलेशन असंभव है। हम कार्यों के एक परिवार का निर्माण करके यह साबित कि निम्नलिखित अर्थ में स्वाभाविक unobfuscatable हैं: वहाँ है एक विधेय π ऐसा है कि (क) किसी भी प्रोग्राम है कि गणना करता है एक समारोह को देखते हुए में एफ , मूल्य π ( ) कुशलता से गणना की जा सकती , अभी तक (ख) एक (बेतरतीब ढंग से चुना) कार्य करने के लिए ओरेकल जानकारी दे दी गयी में एफ , कोई कुशल एल्गोरिथ्म की गणना कर सकता π ( )FπfFπ(f)fFπ(f) यादृच्छिक अनुमान लगाने से बहुत बेहतर है।

हम अपने असंभव परिणाम को कई तरीकों से बढ़ाते हैं, यहां तक ​​कि ऑबफ्यूज़ेटर भी शामिल हैं (जो कि) बहुपद समय में जरूरी नहीं हैं, (ख) केवल लगभग कार्यक्षमता को बनाए रखते हैं, और (ग) केवल गणना बहुत प्रतिबंधित मॉडल के लिए काम करने की आवश्यकता है )। हम "अप्रतिष्ठित" हस्ताक्षर योजनाओं, एन्क्रिप्शन योजनाओं और छद्म आयामी फ़ंक्शन परिवारों का निर्माण करके, पर्यवेक्षकों के कई संभावित अनुप्रयोगों को भी नियंत्रित करते हैं।TC 0


खैर, इस तरह की चीजों पर एक नम डालता है। मैंने अभी पढ़ा कि उन्होंने अपने परिणामों को कैसे साबित किया: मैं विशेष रूप से चकित था जब मैंने पढ़ा कि पर्यवेक्षक को प्रतिकूल कार्यक्रम के स्रोत कोड तक पहुंच माना जाता है! (हालांकि मैं सिर्फ कागज को गलत समझ सकता था)
एलेक्स दस ब्रिंक

5
यह मेरी समझ है कि ये परिणाम केवल वर्चुअल ब्लैक बॉक्स का उपयोग करके "पुराने" (असफल) मॉडल को लागू करने के लिए लागू होते हैं, और अब क्षेत्र के शोधकर्ता इस उम्मीद के साथ मोटापे की एक कमजोर धारणा को अपनाने की उम्मीद कर रहे हैं कि यह गारंटी हो सकती है। अनुसंधान दिशाओं में से एक पूरी तरह से होमोमोर्फिक एन्क्रिप्शन को अपनाना है, और इसलिए मैं कहूंगा कि प्रश्न खुला है। मुझे याद है कि इस साल की गर्मियों में माइक्रोसॉफ्ट रिसर्च से एक बात की गई थी जिसमें फिक्स्ड पॉइंट ऑब्ज़्यूसटर और वर्चुअल ब्लैक बॉक्स के बारे में बताया गया था जहाँ शोधकर्ता ने इस बिंदु को बिल्कुल बनाया था।
रॉस स्नाइडर

3
क्षेत्र में एक शोधकर्ता (या लेखकों की सूची से प्रभावशाली नामों में से एक) टिप्पणी कर सकता है?
रॉस स्नाइडर

1
@ टिप्पणी: हाँ, मैं इस क्षेत्र में अन्य शोधकर्ताओं को भी टिप्पणी करना चाहूंगा ...
एमएस डौस्ती

@ रॉस, सादिक: कुछ लेखक समय-समय पर साइट पर जाते हैं, उम्मीद है कि वे टैग को नोटिस करेंगे। विशेष रुप से प्रदर्शित प्रश्न पृष्ठ पर प्रश्न होने से भी मदद मिल सकती है।
केवह

15

वास्तव में, जबकि पूरी तरह से होमोमोर्फिक एन्क्रिप्शन कई अविश्वसनीय पार्टियों (उदाहरण के लिए, इस पेपर ) के बीच कोड को निष्पादित करने के लिए बहुत उपयोगी है , आपको किसी प्रकार की सहभागिता की आवश्यकता होती है, जब एन्क्रिप्टेड आउटपुट की गणना करने वाली पार्टी उसे उस पार्टी को भेजती है जिसे गुप्त कुंजी पता है। ।

आप जिस धारणा की तलाश कर रहे हैं, वह सॉफ्टवेयर ऑबफ्यूजेशन के करीब संदिग्ध रूप से ध्वनि करता है, जिसके लिए हमने ऊपर उल्लेखित असंभव परिणाम साबित किया। मैंने एक बार उस पत्र का एक अनौपचारिक अवलोकन भी लिखा था , जो कुछ लोगों को उपयोगी लग सकता है।

इस असंभवता को देखते हुए, दो (गैर-असहमतिपूर्ण) तरीके हैं, जिससे कोई भी परिभाषा को आराम दे सकता है: या तो कार्यक्रमों / कार्यों के वर्गों को सीमित करके किसी को बाधित करने, या सुरक्षा की शिथिल धारणा देने के लिए आवश्यक है।

दूसरा दृष्टिकोण संभवतः संभव है, और हम अपने पेपर में कुछ कमजोर मोटापे जैसी धारणाओं पर टिप्पणी करते हैं। हालाँकि, ध्यान दें कि हमारा हमला किसी कार्यक्रम के मूल स्रोत कोड को पूरी तरह से ठीक कर देता है, फिर चाहे वह कोई भी विषय हो। तो आपको किसी तरह एक सुरक्षा परिभाषा बनानी होगी जो हमारे प्रतिपक्षों के मामले के लिए तुच्छ साबित हो।

पहला दृष्टिकोण हर प्रतिबंधित कार्यात्मकताओं (उदाहरण के लिए, पॉइंट फ़ंक्शंस) के लिए किया गया था, लेकिन फिर से एक को यह सुनिश्चित करना होगा कि क्लास में हमारा काउंटरएक्सप्लिमेंट न हो, जिसका अर्थ है कि इसमें छद्म आयामी फ़ंक्शंस नहीं होने चाहिए।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.