ऑप्टीमल असिमेट्रिक एन्क्रिप्शन
क्रिप्टोग्राफी में, इष्टतम असममित एन्क्रिप्शन (ओएईपी) पैडिंग योजना (क्रिप्टोग्राफी) है जिसे अधिकांशतः आरएसए (क्रिप्टोसिस्टम) एन्क्रिप्शन के साथ प्रयोग किया जाता है। ओएईपी बेलारे और फिलिप रोगवे द्वारा प्रस्तुत किया गया था,[1] और तत्पश्चात इसे पीकेसीएस1 वी2 और [rfc:2437 आरएफसी 2437] में मानकीकृत किया गया।
ओएईपी एल्गोरिथम फिस्टेल नेटवर्क का रूप है जो असममित एन्क्रिप्शन से पूर्व प्लेनटेक्स्ट को संसाधित करने के लिए यादृच्छिक ओरेक्लेस जी और एच की जोड़ी का उपयोग करता है। जब किसी सुरक्षित ट्रैपडोर वन-वे फंक्शन के साथ संयुक्त किया जाता है, तो यह प्रसंस्करण रैंडम ऑरेकल मॉडल में सिद्ध होता है, जिसके परिणामस्वरूप संयुक्त योजना होती है, जो चयनित किये गए प्लेनटेक्स्ट अटैक (आईएनडी-सीपीए) के अंतर्गत सिमेंटिक सुरक्षा है। जब ट्रैपडोर क्रमपरिवर्तन (जैसे, आरएसए) के साथ कार्यान्वित किया जाता है, तो ओएईपी भी चयनित सिफरटेक्स्ट अटैक के विरुद्ध सुरक्षित सिद्ध होता है। ओएईपी का उपयोग आल-और-नथिंग ट्रांसफॉर्म बनाने के लिए किया जा सकता है।
ओएईपी निम्नलिखित दो लक्ष्यों को पूर्ण करता है:
- यादृच्छिकता का तत्व जोड़ें, जिसका उपयोग नियतात्मक एन्क्रिप्शन योजना (जैसे,आरएसए (एल्गोरिदम)) को संभाव्य एन्क्रिप्शन योजना में परिवर्तित करने के लिए किया जा सकता है।
- यह सुनिश्चित करके सिफरटेक्स्ट (या अन्य सूचना रिसाव) के आंशिक डिक्रिप्शन को अवरोधित करें कि विरोधी ट्रैपडोर वन-वे क्रमचय को उलटने में सक्षम हुए बिना प्लेन टेक्स्ट के किसी भी अंश को पुनर्प्राप्त नहीं कर सकता है।
ओएईपी के मूल संस्करण (बेल्लारे/रोगावे, 1994) ने रैंडम ऑरेकल मॉडल में "प्लेनटेक्स्ट अवेयरनेस" (जिस पर उन्होंने आशय किया कि चयनित सिफरटेक्स्ट अटैक के विरुद्ध सुरक्षा का तात्पर्य है) का रूप दिखाया जब ओएईपी का उपयोग किसी ट्रैपडोर क्रमपरिवर्तन के साथ किया जाता है। पश्चात के परिणामों ने इस आशय का खंडन किया कि ओएईपी केवल आईएनडी-सीसीए1 सुरक्षित था। हालांकि, मूल योजना यादृच्छिक ऑरेकल मॉडल में सिफरटेक्स्ट अप्रभेद्यता साबित हुई थी। IND-CCA2 सुरक्षित जब ओएईपी का उपयोग RSA क्रमपरिवर्तन के साथ मानक एन्क्रिप्शन एक्सपोनेंट्स का उपयोग करके किया जाता है, जैसा कि RSA-ओएईपी के मामले में होता है।[2] एक बेहतर योजना (ओएईपी+ कहलाती है) जो इस समस्या को हल करने के लिए विक्टर शौप द्वारा किसी भी ट्रैपडोर वन-वे क्रमचय के साथ काम करती है।[3] हाल के काम से पता चला है कि मानक मॉडल (क्रिप्टोग्राफी) में (अर्थात, जब हैश फ़ंक्शंस को रैंडम ऑरेकल के रूप में मॉडल नहीं किया जाता है) RSA समस्या की अनुमानित कठोरता के अंतर्गत RSA-ओएईपी की IND-CCA2 सुरक्षा को साबित करना असंभव है।[4][5]
एल्गोरिथम
- MGF मास्क जनरेशन फंक्शन है, आमतौर पर MGF1,
- हैश चुना हुआ क्रिप्टोग्राफ़िक हैश फ़ंक्शन है,
- hLen बाइट्स में हैश फ़ंक्शन के आउटपुट की लंबाई है,
- k बाइट्स में RSA (क्रिप्टोसिस्टम) मापांक n की लंबाई है,
- M गद्देदार होने वाला संदेश है (अधिकतम बाइट्स),
- एल संदेश से जुड़ा एक वैकल्पिक लेबल है (लेबल डिफ़ॉल्ट रूप से खाली स्ट्रिंग है और एन्क्रिप्शन की आवश्यकता के बिना डेटा को प्रमाणित करने के लिए इस्तेमाल किया जा सकता है),
- PS का एक बाइट स्ट्रिंग है अशक्त बाइट्स।
- ⊕ एक Exclusive or-ऑपरेशन है।
एन्कोडिंग
आरएफसी 8017[6] पीकेसीएस#1 v2.2 के लिए एन्कोडिंग के लिए निम्नानुसार ओएईपी योजना निर्दिष्ट करता है:
- चुने गए हैश फ़ंक्शन का उपयोग करके लेबल L को हैश करें:
- एक पैडिंग स्ट्रिंग PS उत्पन्न करें जिसमें शामिल हो बाइट्स मान 0x00 के साथ।
- डेटा ब्लॉक DB बनाने के लिए lHash, PS, सिंगल बाइट 0x01, और संदेश M को सम्मिलित करें: . इस डेटा ब्लॉक की लंबाई है बाइट्स।
- लंबाई hLen का एक यादृच्छिक बीज उत्पन्न करें।
- डेटा ब्लॉक के लिए उपयुक्त लंबाई का मास्क बनाने के लिए मास्क जनरेटिंग फंक्शन का उपयोग करें:
- जनरेट किए गए मास्क के साथ डेटा ब्लॉक को मास्क करें:
- बीज के लिए hLen लंबाई का मास्क बनाने के लिए मास्क जनरेटिंग फंक्शन का उपयोग करें:
- बीज को उत्पन्न मास्क से मास्क करें:
- एन्कोडेड (गद्देदार) संदेश बाइट 0x00 है जो नकाबपोश और नकाबपोश के साथ जुड़ा हुआ है:
डिकोडिंग
डिकोडिंग एल्गोरिथम में उठाए गए कदमों को उलट कर काम करता है:
- चुने गए हैश फ़ंक्शन का उपयोग करके लेबल L को हैश करें:
- चरण 9 को उलटने के लिए, एन्कोडेड संदेश EM को बाइट 0x00, मास्कडसीड (लंबाई hLen के साथ) और मास्कडडीबी में विभाजित करें:
- सीडमास्क उत्पन्न करें जिसका उपयोग बीज को ढकने के लिए किया गया था:
- चरण 8 को उलटने के लिए, बीज को सीडमास्क से पुनर्प्राप्त करें:
- dbMask उत्पन्न करें जिसका उपयोग डेटा ब्लॉक को मास्क करने के लिए किया गया था:
- चरण 6 को उलटने के लिए, डेटा ब्लॉक DB को पुनर्प्राप्त करें:
- चरण 3 को उलटने के लिए, डेटा ब्लॉक को उसके भागों में विभाजित करें: .
- सत्यापित करें कि:
- lHash' परिकलित lHash के बराबर है
- PS में केवल बाइट 0x00 होते हैं
- PS और M को 0x01 बाइट द्वारा अलग किया जाता है और
- ईएम की पहली बाइट बाइट 0x00 है।
- यदि इनमें से कोई भी शर्त पूरी नहीं होती है, तो पैडिंग अमान्य है।
- सत्यापित करें कि:
आरएसए में उपयोग: एन्कोडेड संदेश को फिर आरएसए के साथ एन्क्रिप्ट किया जा सकता है। RSA की नियतात्मक संपत्ति को अब ओएईपी एन्कोडिंग का उपयोग करके टाला जाता है क्योंकि बीज बेतरतीब ढंग से उत्पन्न होता है और पूरे एन्कोडेड संदेश को प्रभावित करता है।
सुरक्षा
ऑल-ऑर-नथिंग ट्रांसफॉर्म | ऑल-ऑर-नथिंग सुरक्षा इस तथ्य से है कि एम को पुनर्प्राप्त करने के लिए, पूरे मास्कडडीबी और पूरे मास्कडसीड को पुनर्प्राप्त करना होगा; मास्कडडीबी से बीज को पुनर्प्राप्त करने के लिए मास्कडडीबी की आवश्यकता होती है, और मास्कडडीबी से डेटा ब्लॉक डीबी को पुनर्प्राप्त करने के लिए बीज की आवश्यकता होती है। चूंकि क्रिप्टोग्राफ़िक हैश का कोई भी बदला हुआ बिट परिणाम को पूरी तरह से बदल देता है, पूरे मास्कडडीबी और पूरे मास्कसीड दोनों को पूरी तरह से पुनर्प्राप्त किया जाना चाहिए।
कार्यान्वयन
पीकेसीएस#1 मानक में, यादृच्छिक ऑरेकल समान हैं। पीकेसीएस#1 मानक के लिए यह आवश्यक है कि रैंडम ऑरेकल उचित हैश फ़ंक्शन के साथ MGF1 हो।[7]
यह भी देखें
संदर्भ
- ↑ M. Bellare, P. Rogaway. Optimal Asymmetric Encryption -- How to encrypt with RSA. Extended abstract in Advances in Cryptology - Eurocrypt '94 Proceedings, Lecture Notes in Computer Science Vol. 950, A. De Santis ed, Springer-Verlag, 1995. full version (pdf)
- ↑ Eiichiro Fujisaki, Tatsuaki Okamoto, David Pointcheval, and Jacques Stern. RSA-- OAEP is secure under the RSA assumption. In J. Kilian, ed., Advances in Cryptology -- CRYPTO 2001, vol. 2139 of Lecture Notes in Computer Science, SpringerVerlag, 2001. full version (pdf)
- ↑ Victor Shoup. OAEP Reconsidered. IBM Zurich Research Lab, Saumerstr. 4, 8803 Ruschlikon, Switzerland. September 18, 2001. full version (pdf)
- ↑ P. Paillier and J. Villar, Trading One-Wayness against Chosen-Ciphertext Security in Factoring-Based Encryption, Advances in Cryptology -- Asiacrypt 2006.
- ↑ D. Brown, What Hashes Make RSA-OAEP Secure?, IACR ePrint 2006/233.
- ↑ "Encryption Operation". PKCS #1: RSA Cryptography Specifications Version 2.2. IETF. November 2016. p. 22. sec. 7.1.1. doi:10.17487/RFC8017. RFC 8017. Retrieved 2022-06-04.
- ↑ Brown, Daniel R. L. (2006). "What Hashes Make RSA-OAEP Secure?" (PDF). IACR Cryptology ePrint Archive (in English). Retrieved 2019-04-03.