ऑप्टीमल असिमेट्रिक एन्क्रिप्शन

क्रिप्टोग्राफी में, इष्टतम असममित एन्क्रिप्शन (ओएईपी) पैडिंग योजना (क्रिप्टोग्राफी) है जिसे अधिकांशतः आरएसए (क्रिप्टोसिस्टम) एन्क्रिप्शन के साथ प्रयोग किया जाता है। ओएईपी बेलारे और फिलिप रोगवे द्वारा प्रस्तुत किया गया था, और तत्पश्चात इसे पीकेसीएस1 वी2 और [rfc:2437 आरएफसी 2437] में मानकीकृत किया गया।

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

ओएईपी निम्नलिखित दो लक्ष्यों को पूर्ण करता है:


 * 1) यादृच्छिकता का तत्व जोड़ें, जिसका उपयोग नियतात्मक एन्क्रिप्शन योजना (जैसे,आरएसए (एल्गोरिदम)) को संभाव्य एन्क्रिप्शन योजना में परिवर्तित करने के लिए किया जा सकता है।
 * 2) यह सुनिश्चित करके सिफरटेक्स्ट (या अन्य सूचना रिसाव) के आंशिक डिक्रिप्शन को अवरोधित करें कि विरोधी ट्रैपडोर वन-वे क्रमचय $$f$$ के विपरीत में सक्षम हुए बिना प्लेन टेक्स्ट के किसी भी अंश को पुनर्प्राप्त नहीं कर सकता है।

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

उत्तम योजना (ओएईपी+ कहलाती है) जो इस समस्या को हल करने के लिए विक्टर शौप द्वारा किसी भी ट्रैपडोर वन-वे क्रमचय के साथ कार्य करती है।

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

एल्गोरिथम
आरेख में,


 * एमजीएफ मास्क जनरेशन फंक्शन है, सामान्यतः एमजीएफ1,
 * हैश चयनित क्रिप्टोग्राफ़िक हैश फ़ंक्शन है,
 * hLen बाइट्स में हैश फ़ंक्शन के आउटपुट की लंबाई है,
 * k बाइट्स में आरएसए (क्रिप्टोसिस्टम) मापांक n की लंबाई है,
 * M पैडेड संदेश है (अधिकतम $$k - 2 \cdot \mathrm{hLen} - 2$$ बाइट्स),
 * L संदेश से जुड़ा वैकल्पिक लेबल है (लेबल डिफ़ॉल्ट रूप से रिक्त स्ट्रिंग है और एन्क्रिप्शन की आवश्यकता के अतिरिक्त डेटा को प्रमाणित करने के लिए उपयोग किया जा सकता है),
 * पीएस $$k - \mathrm{mLen} - 2 \cdot \mathrm{hLen} - 2$$ नल-बाइट्स का बाइट स्ट्रिंग है।
 * ⊕ एक्सओआर-संचालन है।

एन्कोडिंग
आरएफसी 8017 पीकेसीएस#1 वी 2.2 की एन्कोडिंग के लिए निम्नानुसार ओएईपी योजना निर्दिष्ट करता है-


 * 1) चयनित हैश फ़ंक्शन का उपयोग करके लेबल L को हैश करें: $$\mathrm{lHash} = \mathrm{Hash}(L)$$
 * 2) 0x00 मान के साथ $$k - \mathrm{mLen} - 2 \cdot \mathrm{hLen} - 2$$ बाइट्स वाला पैडिंग स्ट्रिंग पीएस उत्पन्न करें।
 * 3) डेटा ब्लॉक डीबी बनाने के लिए एल हैश, पीएस, सिंगल बाइट 0x01, और संदेश एम को सम्‍मिलित करें: $$\mathrm{DB} = \mathrm{lHash} || \mathrm{PS} || \mathrm{0x01} || \mathrm{M}$$. इस डेटा ब्लॉक की लंबाई $$k - \mathrm{hLen} - 1$$ बाइट्स है।
 * 4) लंबाई hLen का यादृच्छिक सीड उत्पन्न करें।
 * 5) डेटा ब्लॉक के लिए उपयुक्त लंबाई का मास्क बनाने के लिए मास्क जनरेटिंग फंक्शन का उपयोग करें: $$\mathrm{dbMask} = \mathrm{MGF}(\mathrm{seed}, k - \mathrm{hLen} - 1)$$
 * 6) जनरेट किए गए मास्क के साथ डेटा ब्लॉक को मास्क करें: $$\mathrm{maskedDB} = \mathrm{DB} \oplus \mathrm{dbMask}$$
 * 7) सीड के लिए लंबाई hLen का मास्क बनाने के लिए मास्क जनरेटिंग फ़ंक्शन का उपयोग करें: $$\mathrm{seedMask} = \mathrm{MGF}(\mathrm{maskedDB}, \mathrm{hLen})$$
 * 8) सीड को उत्पन्न मास्क से मास्क करें: $$\mathrm{maskedSeed} = \mathrm{seed} \oplus \mathrm{seedMask}$$
 * 9) एन्कोडेड (पैडेड) संदेश बाइट 0x00 है जो मास्क्डसीड और मास्क्डडीबी के साथ जुड़ा हुआ है: $$\mathrm{EM} = \mathrm{0x00} || \mathrm{maskedSeed} || \mathrm{maskedDB}$$

डिकोडिंग
डिकोडिंग एल्गोरिथम में उठाए गए कदमों को उलट कर कार्य करता है:


 * 1) चयनित हैश फ़ंक्शन का उपयोग करके लेबल L को हैश करें: $$\mathrm{lHash} = \mathrm{Hash}(L)$$
 * 2) चरण 9 को परिवर्तित करने के लिए, एन्कोडेड संदेश EM को बाइट 0x00, मास्कडसीड (लंबाई hLen के साथ) और मास्कडडीबी में विभाजित करें:  $$\mathrm{EM} = \mathrm{0x00} || \mathrm{maskedSeed} || \mathrm{maskedDB}$$
 * 3) सीडमास्क उत्पन्न करें जिसका उपयोग सीड को ढकने के लिए किया गया था: $$\mathrm{seedMask} = \mathrm{MGF}(\mathrm{maskedDB}, \mathrm{hLen})$$
 * 4) चरण 8 को परिवर्तित करने के लिए, सीड को सीडमास्क से पुनर्प्राप्त करें: $$\mathrm{seed} = \mathrm{maskedSeed} \oplus \mathrm{seedMask}$$
 * 5) डीबी मास्क उत्पन्न करें जिसका उपयोग डेटा ब्लॉक को मास्क करने के लिए किया गया था: $$\mathrm{dbMask} = \mathrm{MGF}(\mathrm{seed}, k - \mathrm{hLen} - 1)$$
 * 6) चरण 6 को परिवर्तित करने के लिए, डेटा ब्लॉक डीबी को पुनर्प्राप्त करें: $$\mathrm{DB} = \mathrm{maskedDB} \oplus \mathrm{dbMask}$$
 * 7) चरण 3 को परिवर्तित करने के लिए, डेटा ब्लॉक को उसके भागों में विभाजित करें: $$\mathrm{DB} = \mathrm{lHash'} || \mathrm{PS} || \mathrm{0x01} || \mathrm{M}$$.
 * 8) सत्यापित करें कि:
 * 9) * lHash' परिकलित lHash के समान है
 * 10) * पीएस में केवल बाइट 0x00 होते हैं
 * 11) * पीएस और एम को 0x01 बाइट द्वारा पृथक किया जाता है और
 * 12) * ईएम की प्रथम बाइट 0x00 है।
 * 13) यदि इनमें से कोई भी स्तिथि पूर्ण नहीं होती है, तो पैडिंग अमान्य है।

आरएसए में उपयोग: एन्कोडेड संदेश को पुनः आरएसए के साथ एन्क्रिप्ट किया जा सकता है। आरएसए के नियतात्मक गुण को अब ओएईपी एन्कोडिंग का उपयोग करके टाला जाता है क्योंकि सीड निरुद्देश्यता से उत्पन्न होता है और पूर्ण एन्कोडेड संदेश को प्रभावित करता है।

सुरक्षा
ऑल-ऑर-नथिंग, सुरक्षा इस तथ्य से है कि एम को पुनर्प्राप्त करने के लिए, पूर्ण मास्कडडीबी और पूर्ण मास्कडसीड को पुनर्प्राप्त करना होगा; मास्कडडीबी से सीड को पुनर्प्राप्त करने के लिए मास्कडडीबी की आवश्यकता होती है, और मास्कडडीबी से डेटा ब्लॉक डीबी को पुनर्प्राप्त करने के लिए सीड की आवश्यकता होती है। चूंकि क्रिप्टोग्राफ़िक हैश का कोई भी परिवर्तित बिट परिणाम को पूर्ण रूप से परिवर्तित कर देता है, पूर्ण मास्कडडीबी और पूर्ण मास्कसीड दोनों को पूर्ण रूप से पुनर्प्राप्त किया जाना चाहिए।

कार्यान्वयन
पीकेसीएस#1 मानक में, यादृच्छिक ऑरेकल समान हैं। पीकेसीएस#1 मानक के लिए रैंडम ऑरेकल उचित हैश फ़ंक्शन के साथ एमजीएफ1 आवश्यक है।

यह भी देखें

 * कुंजी एनकैप्सुलेशन