समरूपी गोपनीयता साझाकरण

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

तकनीक
होमोमॉर्फिक गुप्त साझाकरण का उपयोग कई प्राप्तकर्ताओं को एक रहस्य प्रसारित करने के लिए किया जाता है:
 * 1) एक समरूपता का उपयोग करके रहस्य को रूपांतरित करें। यह अक्सर रहस्य को एक ऐसे रूप में रखता है जिसे हेरफेर करना या स्टोर करना आसान होता है। विशेष रूप से, चरण (2) द्वारा आवश्यक नए रूप को 'विभाजित' करने का एक स्वाभाविक तरीका हो सकता है।
 * 2) रूपांतरित रहस्य को कई भागों में विभाजित करें, प्रत्येक प्राप्तकर्ता के लिए एक। रहस्य को इस तरह से विभाजित किया जाना चाहिए कि इसे केवल तभी पुनर्प्राप्त किया जा सके जब सभी या अधिकांश भाग संयुक्त हों। (गुप्त साझाकरण देखें।)
 * 3) प्राप्तकर्ताओं में से प्रत्येक को रहस्य के हिस्से वितरित करें।
 * 4) परिवर्तित रहस्य को पुनर्प्राप्त करने के लिए प्राप्तकर्ताओं के प्रत्येक भाग को मिलाएं, शायद एक निर्दिष्ट समय पर।
 * 5) मूल रहस्य को पुनर्प्राप्त करने के लिए समरूपता को उलट दें।

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

विस्तार से, मान लीजिए कि हमारे पास एक चुनाव है:
 * दो संभावित परिणाम, या तो हाँ या नहीं। हम उन परिणामों को क्रमशः +1 और -1 द्वारा संख्यात्मक रूप से प्रदर्शित करेंगे।
 * कई अधिकारी, के, जो वोटों की गिनती करेंगे।
 * कई मतदाता, एन, जो वोट जमा करेंगे।


 * 1) अग्रिम में, प्रत्येक प्राधिकरण सार्वजनिक रूप से उपलब्ध संख्यात्मक कुंजी, x उत्पन्न करता हैk.
 * 2) प्रत्येक मतदाता बहुपद पी में अपने वोट को एनकोड करता हैnनिम्नलिखित नियमों के अनुसार: बहुपद की डिग्री होनी चाहिए k − 1, इसकी निरंतर अवधि या तो +1 या -1 होनी चाहिए (वोटिंग हां या वोटिंग नहीं के अनुरूप), और इसके अन्य गुणांक यादृच्छिक रूप से उत्पन्न होने चाहिए।
 * 3) प्रत्येक मतदाता अपने बहुपद p के मान की गणना करता हैnप्रत्येक प्राधिकरण की सार्वजनिक कुंजी x परk.
 * 4) * यह k अंक उत्पन्न करता है, प्रत्येक प्राधिकरण के लिए एक।
 * 5) * ये k बिंदु वोट के टुकड़े हैं: यदि आप सभी बिंदुओं को जानते हैं, तो आप बहुपद p का पता लगा सकते हैंn(और इसलिए आप यह पता लगा सकते हैं कि मतदाता ने कैसे मतदान किया)। हालाँकि, यदि आप केवल कुछ बिंदुओं को जानते हैं, तो आप बहुपद का पता नहीं लगा सकते। (ऐसा इसलिए है क्योंकि आपको डिग्री निर्धारित करने के लिए n अंक चाहिए-(n − 1) बहुपद। दो बिंदु एक रेखा निर्धारित करते हैं, तीन बिंदु एक परबोला निर्धारित करते हैं, आदि।)
 * 6) मतदाता प्रत्येक प्राधिकरण को वह मूल्य भेजता है जो प्राधिकरण की कुंजी का उपयोग करके उत्पादित किया गया था।
 * 7) प्रत्येक प्राधिकरण उन मूल्यों को एकत्र करता है जो उसे प्राप्त होते हैं। चूंकि प्रत्येक प्राधिकरण प्रत्येक मतदाता से केवल एक मान प्राप्त करता है, वह किसी दिए गए मतदाता के बहुपद की खोज नहीं कर सकता है। इसके अलावा, वह भविष्यवाणी नहीं कर सकता कि प्रस्तुतियाँ बदलने से वोट कैसे प्रभावित होगा।
 * 8) मतदाताओं द्वारा अपना वोट जमा करने के बाद, प्रत्येक प्राधिकरण k की गणना करता है और राशि A की घोषणा करता हैkउसे प्राप्त सभी मूल्यों का।
 * 9) के योग हैं, एk; जब उन्हें एक साथ जोड़ दिया जाता है, तो वे एक अद्वितीय बहुपद P(x) निर्धारित करते हैं - विशेष रूप से, सभी मतदाता बहुपदों का योग: P(x) = p1(एक्स) + पी2(एक्स) + ... + पीn(एक्स)।
 * 10) * P(x) की निरंतर अवधि वास्तव में सभी मतों का योग है, क्योंकि P(x) की निरंतर अवधि व्यक्तिगत p की निरंतर शर्तों का योग हैn.
 * 11) * इस प्रकार P(x) की निरंतर अवधि कुल चुनाव परिणाम प्रदान करती है: यदि यह सकारात्मक है, तो अधिक लोगों ने -1 की तुलना में +1 के लिए मतदान किया; यदि यह नकारात्मक है, तो अधिक लोगों ने +1 की तुलना में -1 को वोट दिया।



सुविधाएँ
यह प्रोटोकॉल तब तक काम करता है जब तक कि सभी k प्राधिकरण भ्रष्ट नहीं हैं - यदि वे थे, तो वे प्रत्येक मतदाता के लिए P(x) के पुनर्निर्माण के लिए सहयोग कर सकते थे और बाद में वोटों को बदल भी सकते थे।

क्रिप्टोग्राफिक प्रोटोकॉल की आवश्यकता है t + 1 अधिकारियों को पूरा किया जाना है, इसलिए मामले में हैं N > t + 1 अधिकारी, N − t − 1 अधिकारियों को भ्रष्ट किया जा सकता है, जो प्रोटोकॉल को कुछ हद तक मजबूती देता है।

प्रोटोकॉल मतदाताओं की आईडी का प्रबंधन करता है (आईडी मतपत्रों के साथ जमा की गई थी) और इसलिए यह सत्यापित कर सकता है कि केवल वैध मतदाताओं ने मतदान किया है।

टी पर मान्यताओं के तहत:
 * 1) एक मतपत्र को आईडी पर वापस नहीं भेजा जा सकता है, इसलिए मतदाताओं की गोपनीयता संरक्षित है।
 * 2) एक मतदाता यह साबित नहीं कर सकता कि उसने कैसे मतदान किया।
 * 3) वोट सत्यापित करना असंभव है।

क्रिप्टोग्राफिक प्रोटोकॉल स्पष्ट रूप से मतपत्रों के भ्रष्टाचार को रोकता है। ऐसा इसलिए है क्योंकि अधिकारियों के पास मतपत्र को बदलने के लिए कोई प्रोत्साहन नहीं है क्योंकि प्रत्येक प्राधिकरण के पास मतपत्र का केवल एक हिस्सा होता है और उन्हें यह नहीं पता होता है कि इस हिस्से को बदलने से परिणाम कैसे प्रभावित होगा।

भेद्यता

 * मतदाता निश्चित नहीं हो सकता कि उसका मत सही दर्ज किया गया है।
 * अधिकारी यह सुनिश्चित नहीं कर सकते कि वोट कानूनी और बराबर थे, उदाहरण के लिए मतदाता एक मूल्य चुन सकता है जो एक वैध विकल्प नहीं है (अर्थात नहीं $\{−1, 1\}$) जैसे -20, 50, जो परिणामों को उनके पक्ष में झुका देंगे।

यह भी देखें

 * एंड-टू-एंड ऑडिटेबल वोटिंग सिस्टम
 * इलेक्ट्रॉनिक मतदान
 * वोटिंग मशीनों का प्रमाणन
 * चुनावी धोखाधड़ी#इलेक्ट्रॉनिक_मतदान_मशीनों से छेड़छाड़
 * चुनाव धोखाधड़ी#इलेक्ट्रॉनिक वोटिंग का परीक्षण और प्रमाणन|चुनाव धोखाधड़ी को रोकना: इलेक्ट्रॉनिक वोटिंग का परीक्षण और प्रमाणन
 * मतगणना प्रणाली
 * ई-लोकतंत्र
 * सुरक्षित बहुदलीय संगणना
 * मानसिक पोकर