सर्किट का पता लगाना जो कार्यक्षमता और कार्यान्वयन में समान है


11

चलो x=(x1,,xn) बूलियन चर का एक वेक्टर हो। आज्ञा देना C,D दो बूलियन सर्किट पर x। कहो कि C , समान है Dयदि:

  1. Pr[C(x)D(x)]x{0,1}n

  2. C,D एक छोटी राशि द्वारा ग्राफ एडिट डिस्टेंस में अंतर करते हैं (उनकी एडिट दूरी सर्किट के आकार से बहुत छोटी है, कहते हैं, O(1) या कुछ छोटे स्थिरांक), जिसका अर्थ है कि C मैच के लगभग सभी गेट और तार। डी में एक संबंधित गेट और तार D, केवल कुछ गेटों के साथ / हटाए गए / बदले गए।


मेरी समस्या: मुझे एक सर्किट C दिया गया हैC , और मैं जानना चाहता हूं कि क्या कोई सर्किट D मौजूद है जो C केD समान C लेकिन C के समान नहीं C (यानी, जहाँ x मौजूद है xजैसे C(x)D(x) )।

किसी को भी इस समस्या को हल करने के लिए एक एल्गोरिथ्म का सुझाव दे सकते हैं?

यदि यह मदद करता है, तो हम सर्किट D पर ध्यान दे सकते Dहैं जो दिए गए सर्किट C से छोटे हैं C(यानी, हम जानना चाहते हैं कि क्या कोई सर्किट D मौजूद है Dजैसे D CD से छोटा C , D C केD समान C , और x मौजूद है xऐसे कि C(x)D(x) )।

यदि यह मदद करता है, तो आप इसके साथ ही यह मान सकते हैं कि हम ज्ञात-सही परीक्षण मामलों दिया जाता है x1,,xm,y1,,ym ऐसी है कि C(xi)=yi के लिए सभी i , और हम आगे केवल D जैसे कि D(xi)=yi को सभी i


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

वैकल्पिक रूप से, किसी भी एल्गोरिदम का अभाव है, मैं अस्तित्व के सवाल में भी दिलचस्पी लूंगा: "औसत" सर्किट , क्या संभावना है कि कुछ मौजूद हैं जो सभी मानदंडों को पूरा करते हैं? (मुझे उम्मीद है कि यह संभावना बहुत कम है, लेकिन अगर ऐसा है तो मुझे कोई सुराग नहीं है।)CD


व्यावहारिक अनुप्रयोग यह परीक्षण करना है कि क्या सर्किट में दुर्भावनापूर्ण पिछले दरवाजे / छिपे हुए ईस्टर अंडे हो सकते हैं। इस तरह की चीज़ को सम्मिलित करने की परिकल्पना इस तरह से हो सकती है। हम एक "गोल्डन" सर्किट साथ शुरू करते हैं , जो वांछित कार्यक्षमता की गणना करता है और इसमें कोई छिपी हुई बैकडोर नहीं है। फिर, एक छिपे हुए सर्किट प्राप्त करने, छिपे हुए पिछले दरवाजे को पेश करने के लिए विरोधी लिए एक छोटा सा बदलाव करता । पिछले दरवाजे का उद्देश्य द्वारा गणना किए गए फ़ंक्शन को किसी तरह से बदलना है । यदि बहुत छोटा नहीं है, तो यादृच्छिक परीक्षण से परिवर्तन का पता लगाया जा सकता है, इसलिए एक विरोधी शायद रखने का प्रयास करेगाCDDCDPr[C(x)D(x)]Pr[C(x)D(x)]बहुत छोटा। इसी प्रकार, यदि बहुत से स्थानों पर से भिन्न होता है , तो इसे सर्किट के यादृच्छिक निरीक्षण द्वारा देखा जा सकता है, इसलिए एक विरोधी संभवतः परिवर्तनों की संख्या को कम करने का प्रयास करेगा। (और, जोड़े का एक परीक्षण सूट हो सकता है जो वांछित कार्यक्षमता के उदाहरणों का प्रतिनिधित्व करते हैं, इसलिए हम जानते हैं कि "गोल्डन" सर्किट जो भी है, यह संतुष्ट करता है। सभी के लिए ।) अंततः, हम सर्किट दिया जाता है (लेकिन "सुनहरा" सर्किट ), और हम जानते है कि क्या चाहते कुछ का एक संशोधित संस्करण हो सकता हैCDxi,yiDD(xi)=yiiCDCD, जहां इस तरह के एक छिपे हुए पिछले दरवाजे को पेश करने के लिए संशोधन किया गया था।


कितने बिट्स सर्किट में इनपुट बनाते हैं? यदि यह पर्याप्त रूप से छोटा है, तो यह संपूर्ण परीक्षण करने के लिए समझ में आता है।
एंड्रेस सलामन

@ AndrásSalamon: अफसोस की बात है कि सर्किट में इनपुट की संख्या अभ्यास में काफी बड़ी है (उन अनुप्रयोगों में जो मेरे मन में है) कि सभी संभावित इनपुट पर विस्तृत परीक्षण संभव है। मैं विचार की सराहना करता हूं, हालांकि! n2n
डीडब्ल्यू

आनुवांशिक रूप से इस समस्या की तरह कुछ पर हमला करने के लिए आनुवंशिक एल्गोरिदम का उपयोग किया है। इस मामले में यह एल्गोरिथ्म आप राज्य, यादृच्छिक परीक्षण प्रकट होता है, कोशिश करने के लिए कुछ है। यह भी लगता है कि आपने सर्किट में "पिछले दरवाजे" का वर्णन क्या किया है (यह क्रिप्टोग्राफी के लिए कुछ अस्थिर कनेक्शन है), लेकिन प्रेरणा पर कुछ प्रयास प्रदान करने के लिए thx ... एक तत्काल प्रश्न यह प्रतीत होता है कि एक सलाहकार कैसे हो सकता है यादृच्छिक परीक्षण द्वारा पता लगाने के दौरान कुछ पिछले दरवाजे डालें? लेकिन समग्र परिदृश्य पूरी तरह से परिभाषित नहीं लगता है।
vzn

3
@vzn, गोल्डन सर्किट डिवाइस की इच्छित कार्यक्षमता का वर्णन करता है। मान लीजिए कि इनपुट बिट्स में से 100 को हमलावर द्वारा चुना / प्रभावित किया जा सकता है। हम चिंतित हैं कि में एक हिडन बैकडोर जो इस तरह से काम करता है: यदि हमलावर अपने इनपुट पर 100-बिट मूल्य का मैजिक सप्लाई करता है, तो पिछले दरवाजे वाला गलत आउटपुट (दुखद प्रभाव के साथ) की गणना करता है, लेकिन अन्यथा बिल्कुल व्यवहार करता है । यह हमलावर को उसके चयन के समय एक त्रासदी को ट्रिगर करने की अनुमति देगा, लेकिन यादृच्छिक परीक्षण (केवल 1/2 इनपुट ट्रिगर त्रासदी के बाद से) का पता लगाना मुश्किल है । एन सी सी सी डी 1 / 2 100D(x)nCCCD1/2100
डीडब्ल्यू

प्रश्न ऐसा लगता है कि इसका SAT "रीढ़" से कोई संबंध हो सकता है। इस सवाल को cnf बनाम dnf रूपांतरण / त्रुटियों पर भी देखें, जो "समानता" को निर्धारित करने के लिए एक प्राकृतिक / औपचारिक तरीका हो सकता है, जिसे आप औपचारिक रूप से निर्धारित नहीं करते हैं। क्या यह सच है कि हमलावर केवल फाटकों को जोड़कर सही या गलत के "सुनहरे" परिणाम को "फ्लिप" कर सकता है? यानी यह एक -xor- -जैसी समस्या की तरह लगता है। g ( x )f(x)g(x)
vzn

जवाबों:


4

यह केवल एक विस्तारित टिप्पणी है जो प्रश्न पढ़ने के तुरंत बाद मेरे दिमाग में आई:

  • मान लें कि आपके पास वेरिएबल्स x_n के साथ एक 3SAT फॉर्मूला और को संबंधित सर्किट होने दें ;एन एक्स 1 , , एक्स एन सीϕnx1,...,xnC

  • एक नया सर्किट का निर्माण बताया चर के लिए, और पर्याप्त गेट्स और मूल के उत्पादन के साथ नए चर ( ); मी = n कश्मीर y 1 , y 2 , , Y n कश्मीर मीटर सी सी ' = φ y 1Cm=nky1,y2,...,ynkmCC=ϕy1...ym

  • से एक नया सर्किट बनाएं जो केवल एक और न गेट ( ) का उपयोग करके अपने आउटपुट को 0 पर मजबूर करतासी ' डी ' = सी '¬ सी 'DCD=C¬C

यदि संतोषजनक नहीं है, तो और समतुल्य हैं, अन्यथा वे भिन्न होते हैं जब सूत्र और सभी संतुष्ट करते हैं , लेकिन आप संभावना को बड़ा बनाने के लिए चयन कर सकते हैं, जो कि बहुत छोटा है।डी ' सी ' एक्स मैं y मैं = 1 मीटर y मैं = 1ϕDCxiyi=1myi=1

इसलिए यदि आपके पास अपनी समस्या के लिए एक कुशल एल्गोरिदम है, तो आप 3SAT उदाहरण को कुशलता से हल कर सकते हैं।

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