एलगमाल एन्क्रिप्शन

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

एल्गैमल एन्क्रिप्शन को किसी भी चक्रीय समूह पर परिभाषित किया जा सकता है $$G$$, जैसे पूर्णांकों का गुणक समूह modulo n|पूर्णांकों का गुणक समूह modulo n। इसकी सुरक्षा किसी निश्चित समस्या की कठिनाई पर निर्भर करती है $$G$$ असतत लघुगणक की गणना से संबंधित।

एल्गोरिथ्म
एल्गोरिदम को एक साझा रहस्य स्थापित करने के लिए पहली बार डिफी-हेलमैन कुंजी एक्सचेंज करने के रूप में वर्णित किया जा सकता है $$s$$, फिर संदेश को एन्क्रिप्ट करने के लिए इसे वन-टाइम पैड के रूप में उपयोग करें। एल्गैमल एन्क्रिप्शन तीन चरणों में किया जाता है: कुंजी पीढ़ी, एन्क्रिप्शन और डिक्रिप्शन। पहला विशुद्ध रूप से कुंजी विनिमय है, जबकि बाद वाले दो कुंजी विनिमय गणनाओं को संदेश गणनाओं के साथ मिलाते हैं।

प्रमुख पीढ़ी
पहली पार्टी, ऐलिस, एक कुंजी जोड़ी इस प्रकार उत्पन्न करती है:


 * चक्रीय समूह का एक कुशल विवरण तैयार करें $$G\,$$ क्रम का (समूह सिद्धांत) $$q\,$$ एक समूह के जनरेटिंग सेट के साथ $$g$$. होने देना $$e$$ के पहचान तत्व का प्रतिनिधित्व करते हैं $$G$$.
 * प्रत्येक नई कुंजी के लिए नए सिरे से समूह और जनरेटर लाना आवश्यक नहीं है। वास्तव में, कोई यह उम्मीद कर सकता है कि एलगैमल के विशिष्ट कार्यान्वयन को किसी विशिष्ट समूह, या किसी विशिष्ट सुइट के समूह का उपयोग करने के लिए हार्डकोड किया जाएगा। समूह का चयन मुख्यतः इस बात पर निर्भर करता है कि आप कितनी बड़ी कुंजियों का उपयोग करना चाहते हैं।
 * एक पूर्णांक चुनें $$x$$ बेतरतीब ढंग से से $$\{1, \ldots, q-1\}$$.
 * गणना करें $$h := g^x$$.
 * सार्वजनिक कुंजी में मान शामिल होते हैं $$(G,q,g,h)$$. ऐलिस इस सार्वजनिक कुंजी को प्रकाशित करती है और बनाए रखती है $$x$$ उसकी निजी कुंजी के रूप में, जिसे गुप्त रखा जाना चाहिए।

एन्क्रिप्शन
एक दूसरा पक्ष, बॉब, एक संदेश को एन्क्रिप्ट करता है $$M$$ ऐलिस को उसकी सार्वजनिक कुंजी के अंतर्गत $$(G,q,g,h)$$ निम्नलिखित नुसार:


 * संदेश को मैप करें $$M$$ एक तत्व के लिए $$m$$ का $$G$$ एक प्रतिवर्ती मैपिंग फ़ंक्शन का उपयोग करना।
 * एक पूर्णांक चुनें $$y$$ बेतरतीब ढंग से से $$\{1, \ldots, q-1\}$$.
 * गणना करें $$s := h^y$$. इसे साझा रहस्य कहा जाता है.
 * गणना करें $$c_1 := g^y$$.
 * गणना करें $$c_2 := m \cdot s$$.
 * बॉब सिफरटेक्स्ट भेजता है $$(c_1,c_2)$$ ऐलिस को.

ध्यान दें कि यदि कोई दोनों सिफरटेक्स्ट को जानता है $$(c_1,c_2)$$ और सादा पाठ $$m$$, कोई भी साझा रहस्य आसानी से पा सकता है $$s$$, तब से $$c_2 \cdot m^{-1} = s$$. इसलिए, एक नया $$y$$ और इसलिए एक नया $$s$$ सुरक्षा में सुधार के लिए प्रत्येक संदेश के लिए जेनरेट किया जाता है। इस कारण से, $$y$$ इसे क्षणिक कुंजी भी कहा जाता है.

डिक्रिप्शन
ऐलिस एक सिफरटेक्स्ट को डिक्रिप्ट करता है $$(c_1, c_2)$$ उसकी निजी कुंजी के साथ $$x$$ निम्नलिखित नुसार:
 * गणना करें $$s := c_1^x$$. तब से $$c_1 = g^y$$, $$c_1^x = g^{xy} = h^y$$, और इस प्रकार यह वही साझा रहस्य है जिसका उपयोग बॉब ने एन्क्रिप्शन में किया था।
 * गणना करें $$s^{-1}$$, का उलटा $$s$$ समूह में $$G$$. इसकी गणना कई तरीकों में से एक में की जा सकती है। अगर $$G$$ पूर्णांक मॉड्यूलो के गुणक समूह का एक उपसमूह है$$n$$, कहाँ $$n$$ प्राइम है, मॉड्यूलर गुणक व्युत्क्रम की गणना विस्तारित यूक्लिडियन एल्गोरिथ्म का उपयोग करके की जा सकती है। एक विकल्प गणना करना है $$s^{-1}$$ जैसा $$c_1^{q-x}$$. यह इसका उलटा है $$s$$ लैग्रेंज प्रमेय (समूह सिद्धांत) के कारण|लैग्रेंज प्रमेय, चूंकि $$s \cdot c_1^{q-x} = g^{xy} \cdot g^{(q-x)y} = (g^{q})^y = e^y = e$$.
 * गणना करें $$m := c_2 \cdot s^{-1}$$. यह गणना मूल संदेश उत्पन्न करती है $$m$$, क्योंकि $$ c_2 = m \cdot s$$; इस तरह $$c_2 \cdot s^{-1} = (m \cdot s) \cdot s^{-1} = m \cdot e = m$$.
 * नक्शा $$m$$ सादे पाठ संदेश पर वापस जाएँ $$M$$.

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

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

एल्गैमल एन्क्रिप्शन बिना शर्त लचीलापन (क्रिप्टोग्राफी) है, और इसलिए चुने गए सिफरटेक्स्ट हमले के तहत सुरक्षित नहीं है। उदाहरण के लिए, एक एन्क्रिप्शन दिया गया $$(c_1, c_2)$$ कुछ (संभवतः अज्ञात) संदेश का $$m$$, कोई आसानी से एक वैध एन्क्रिप्शन का निर्माण कर सकता है $$(c_1, 2 c_2)$$ संदेश का $$2m$$.

चयनित-सिफरटेक्स्ट सुरक्षा प्राप्त करने के लिए, योजना को और संशोधित किया जाना चाहिए, या एक उपयुक्त पैडिंग योजना का उपयोग किया जाना चाहिए। संशोधन के आधार पर, DDH धारणा आवश्यक हो भी सकती है और नहीं भी।

एलगैमल से संबंधित अन्य योजनाएं जो चुने हुए सिफरटेक्स्ट हमलों के खिलाफ सुरक्षा प्राप्त करती हैं, भी प्रस्तावित की गई हैं। डीडीएच को मानते हुए क्रैमर-शूप क्रिप्टोसिस्टम चुने गए सिफरटेक्स्ट हमले के तहत सुरक्षित है $$G$$. इसका प्रमाण यादृच्छिक ओरेकल मॉडल का उपयोग नहीं करता है। एक अन्य प्रस्तावित योजना एकीकृत एन्क्रिप्शन योजना है, जिसके प्रमाण के लिए ऐसी धारणा की आवश्यकता होती है जो DDH धारणा से अधिक मजबूत हो।

दक्षता
ElGamal एन्क्रिप्शन संभाव्य एन्क्रिप्शन है, जिसका अर्थ है कि एक एकल सादे पाठ को कई संभावित सिफरटेक्स्ट में एन्क्रिप्ट किया जा सकता है, जिसके परिणामस्वरूप एक सामान्य ElGamal एन्क्रिप्शन प्लेनटेक्स्ट से सिफरटेक्स्ट तक आकार में 1:2 विस्तार उत्पन्न करता है।

ElGamal के अंतर्गत एन्क्रिप्शन के लिए दो घातांक की आवश्यकता होती है; हालाँकि, ये घातांक संदेश से स्वतंत्र हैं और जरूरत पड़ने पर समय से पहले गणना की जा सकती है। डिक्रिप्शन के लिए एक घातांक और समूह व्युत्क्रम की एक गणना की आवश्यकता होती है, जिसे, हालांकि, आसानी से केवल एक घातांक में जोड़ा जा सकता है।

यह भी देखें

 * ताहेर एल्गामल, इस और अन्य क्रिप्टोसिस्टम के डिजाइनर
 * एलगमाल हस्ताक्षर योजना
 * होमोमोर्फिक एन्क्रिप्शन