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

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

ओएईपी एल्गोरिथम फिस्टेल नेटवर्क का रूप है जो ऑप्टीमल एन्क्रिप्शन से पूर्व प्लेनटेक्स्ट को संसाधित करने के लिए रैंडम ओरेक्लेस G और H की जोड़ी का उपयोग करता है। जब किसी सुरक्षित ट्रैपडोर वन-वे फंक्शन $$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 आवश्यक है।

यह भी देखें

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