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

From Vigyanwiki
(Created page with "{{Short description|Scheme often used with RSA encryption}} {{redirect|OAEP|the division of the Thailand Ministry of Science Technology and Environment previously known as the...")
 
No edit summary
 
(12 intermediate revisions by 5 users not shown)
Line 1: Line 1:
{{Short description|Scheme often used with RSA encryption}}
{{Short description|Scheme often used with RSA encryption}}
{{redirect|OAEP|the division of the Thailand Ministry of Science Technology and Environment previously known as the Office of Atomic Energy for Peace|Office of Atoms for Peace}}
{{redirect|ओएईपी|थाईलैंड के विज्ञान प्रौद्योगिकी और पर्यावरण मंत्रालय के विभाजन को पूर्व शांति के लिए परमाणु ऊर्जा के कार्यालय के रूप में जाना जाता था|शांति के लिए परमाणुओं का कार्यालय}}


[[क्रिप्टोग्राफी]] में, इष्टतम असममित एन्क्रिप्शन पैडिंग (ओएईपी) एक [[पैडिंग (क्रिप्टोग्राफी)]] है जिसे अक्सर [[आरएसए (क्रिप्टोसिस्टम)]] के साथ प्रयोग किया जाता है। ओएईपी [[मिहिर लड़ने के लिए]] और [[फिलिप रोगवे]] द्वारा पेश किया गया था,<ref>[[Mihir Bellare|M. Bellare]], [[Phillip Rogaway|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. [http://www-cse.ucsd.edu/users/mihir/papers/oaep.pdf full version (pdf)]</ref> और बाद में PKCS1|PKCS#1 v2 और RFC 2437 में मानकीकृत किया गया।
[[क्रिप्टोग्राफी]] में, '''ऑप्टीमल असिमेट्रिक एन्क्रिप्शन''' (ओएईपी) [[पैडिंग (क्रिप्टोग्राफी)|पैडिंग योजना (क्रिप्टोग्राफी)]] है जिसे अधिकांशतः [[आरएसए (क्रिप्टोसिस्टम)]] एन्क्रिप्शन के साथ प्रयोग किया जाता है। ओएईपी [[मिहिर लड़ने के लिए|बेलारे]] और [[फिलिप रोगवे]] द्वारा प्रस्तुत किया गया था,<ref>[[Mihir Bellare|M. Bellare]], [[Phillip Rogaway|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. [http://www-cse.ucsd.edu/users/mihir/papers/oaep.pdf full version (pdf)]</ref> और तत्पश्चात इसे पीकेसीएस1 वी2 और [rfc:2437 आरएफसी 2437] में मानकीकृत किया गया।


OAEP एल्गोरिथम Feistel नेटवर्क का एक रूप है जो [[असममित एन्क्रिप्शन]] से पहले प्लेनटेक्स्ट को संसाधित करने के लिए यादृच्छिक oracles G और H की एक जोड़ी का उपयोग करता है। जब किसी सुरक्षित [[ट्रैपडोर वन-वे फंक्शन]] के साथ जोड़ा जाता है | ट्रैपडोर वन-वे क्रमचय <math>f</math>, यह प्रसंस्करण एक संयुक्त योजना में परिणाम के लिए यादृच्छिक ऑरेकल मॉडल में सिद्ध होता है जो चुने [[चुना सादा पाठ हमला]] [[सिफरटेक्स्ट अप्रभेद्यता]] के तहत सिमेंटिक सुरक्षा है। (IND-CPA)। जब कुछ ट्रैपडोर क्रमपरिवर्तन (जैसे, RSA) के साथ लागू किया जाता है, तो OAEP भी चुने हुए सिफरटेक्स्ट हमले के विरुद्ध सुरक्षित साबित होता है। OAEP का उपयोग [[सभी या कुछ भी रूपांतरित नहीं होता है]] बनाने के लिए किया जा सकता है।
ओएईपी एल्गोरिथम फिस्टेल नेटवर्क का रूप है जो [[असममित एन्क्रिप्शन|ऑप्टीमल एन्क्रिप्शन]] से पूर्व प्लेनटेक्स्ट को संसाधित करने के लिए रैंडम ओरेक्लेस G और H की जोड़ी का उपयोग करता है। जब किसी सुरक्षित [[ट्रैपडोर वन-वे फंक्शन]] <math>f</math> के साथ ऐड किया जाता है, तो यह वर्ज़न रैंडम ऑरेकल मॉडल में सिद्ध होता है, जिसके परिणामस्वरूप कंबाइंड स्कीम होती है, जो सेलेक्ट किये गए [[चुना सादा पाठ हमला|प्लेनटेक्स्ट अटैक]] ([[सिफरटेक्स्ट अप्रभेद्यता|आईएनडी-सीपीए]]) के अंतर्गत सिमेंटिक सुरक्षा है। जब ट्रैपडोर क्रमपरिवर्तन (जैसे, आरएसए) के साथ कार्यान्वित किया जाता है, तो ओएईपी भी चयनित सिफरटेक्स्ट अटैक के विरुद्ध सुरक्षित सिद्ध होता है। ओएईपी का उपयोग [[सभी या कुछ भी रूपांतरित नहीं होता है|आल-और-नथिंग ट्रांसफॉर्म]] बनाने के लिए किया जा सकता है।


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


# यादृच्छिकता का एक तत्व जोड़ें जिसका उपयोग [[नियतात्मक एन्क्रिप्शन]] योजना (जैसे, पारंपरिक [[आरएसए (एल्गोरिदम)]]) को एक [[संभाव्य एन्क्रिप्शन]] योजना में बदलने के लिए किया जा सकता है।
# रैंडम का तत्व जोड़ें, जिसका उपयोग [[नियतात्मक एन्क्रिप्शन|डेटर्मिनिस्टिक एन्क्रिप्शन]] योजना (जैसे,[[आरएसए (एल्गोरिदम)]]) को [[संभाव्य एन्क्रिप्शन]] योजना में परिवर्तित करने के लिए किया जा सकता है।
# यह सुनिश्चित करके सिफरटेक्स्ट (या अन्य सूचना रिसाव) के आंशिक डिक्रिप्शन को रोकें कि एक विरोधी ट्रैपडोर वन-वे फ़ंक्शन को उलटने में सक्षम हुए बिना प्लेन टेक्स्ट के किसी भी हिस्से को पुनर्प्राप्त नहीं कर सकता है। ट्रैपडोर वन-वे क्रमचय <math>f</math>.
# यह सुनिश्चित करके सिफरटेक्स्ट (या अन्य सूचना रिसाव) के आंशिक डिक्रिप्शन को अवरोधित करें कि विरोधी ट्रैपडोर वन-वे क्रमचय <math>f</math> के विपरीत में सक्षम हुए बिना प्लेन टेक्स्ट के किसी भी अंश को पुनर्प्राप्त नहीं कर सकता है।


OAEP (बेल्लारे/रोगावे, 1994) के मूल संस्करण ने रैंडम ऑरेकल मॉडल में [[सादा पाठ-जागरूक एन्क्रिप्शन]] (जो उन्होंने दावा किया कि चुने हुए सिफरटेक्स्ट हमले के खिलाफ सुरक्षा का तात्पर्य है) का एक रूप दिखाया जब OAEP का उपयोग किसी ट्रैपडोर क्रमपरिवर्तन के साथ किया जाता है। बाद के परिणामों ने इस दावे का खंडन किया, यह दिखाते हुए कि OAEP केवल सिफरटेक्स्ट अभेद्यता थी। IND-CCA1 सुरक्षित। हालांकि, मूल योजना यादृच्छिक ऑरेकल मॉडल में सिफरटेक्स्ट अप्रभेद्यता साबित हुई थी। IND-CCA2 सुरक्षित जब OAEP का उपयोग RSA क्रमपरिवर्तन के साथ मानक एन्क्रिप्शन एक्सपोनेंट्स का उपयोग करके किया जाता है, जैसा कि RSA-OAEP के मामले में होता है।<ref>
ओएईपी के मूल वर्ज़न (बेल्लारे/रोगावे, 1994) ने रैंडम ऑरेकल मॉडल में "[[सादा पाठ-जागरूक एन्क्रिप्शन|प्लेनटेक्स्ट अवेयरनेस]]" (जिस पर उन्होंने आशय किया कि चयनित सिफरटेक्स्ट अटैक के विरुद्ध सुरक्षा का तात्पर्य है) का रूप दिखाया जब ओएईपी का उपयोग किसी ट्रैपडोर क्रमपरिवर्तन के साथ किया जाता है। पश्चात के परिणामों ने इस आशय का खंडन किया कि ओएईपी केवल आईएनडी-सीसीए1 सुरक्षित था। चूँकि, मूल योजना यादृच्छिक ऑरेकल मॉडल में आईएनडी-सीसीए2 सुरक्षित सिद्ध हुई थी, जब ओएईपी का उपयोग आरएसए क्रमचय के साथ आरएसए-ओएईपी की स्तिथि में मानक एन्क्रिप्शन एक्सपोनेंट्स का उपयोग करके किया जाता है।<ref>
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. [http://eprint.iacr.org/2000/061.pdf full version (pdf)]</ref>
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. [http://eprint.iacr.org/2000/061.pdf full version (pdf)]</ref>
एक बेहतर योजना (ओएईपी+ कहलाती है) जो इस समस्या को हल करने के लिए [[विक्टर शौप]] द्वारा किसी भी ट्रैपडोर वन-वे क्रमचय के साथ काम करती है।<ref>
 
उत्तम योजना (ओएईपी+ कहलाती है) जो इस प्रॉब्लम को सॉल्व करने के लिए [[विक्टर शौप]] द्वारा किसी भी ट्रैपडोर वन-वे क्रमचय के साथ कार्य करती है।<ref>
Victor Shoup. ''OAEP Reconsidered''. IBM Zurich Research Lab, Saumerstr. 4, 8803 Ruschlikon, Switzerland. September 18, 2001. [http://www.shoup.net/papers/oaep.pdf full version (pdf)]</ref>
Victor Shoup. ''OAEP Reconsidered''. IBM Zurich Research Lab, Saumerstr. 4, 8803 Ruschlikon, Switzerland. September 18, 2001. [http://www.shoup.net/papers/oaep.pdf full version (pdf)]</ref>
हाल के काम से पता चला है कि [[मानक मॉडल (क्रिप्टोग्राफी)]] में (अर्थात, जब हैश फ़ंक्शंस को रैंडम ऑरेकल के रूप में मॉडल नहीं किया जाता है) RSA समस्या की अनुमानित कठोरता के तहत RSA-OAEP की IND-CCA2 सुरक्षा को साबित करना असंभव है।<ref>
 
नए कार्य ने दर्शाया है कि [[मानक मॉडल (क्रिप्टोग्राफी)|स्टैण्डर्ड मॉडल (क्रिप्टोग्राफी)]] में (अर्थात, जब हैश फ़ंक्शंस को रैंडम ऑरेकल के रूप में मॉडल नहीं किया जाता है) आरएसए प्रॉब्लम की अनुमानित कठोरता के अंतर्गत आरएसए-ओएईपी की आईएनडी-सीसीए 2 सुरक्षा को प्रमाणित करना असंभव है।<ref>
P. Paillier and J. Villar, ''Trading One-Wayness against Chosen-Ciphertext Security in Factoring-Based Encryption'', Advances in Cryptology -- [[Asiacrypt]] 2006.</ref><ref>
P. Paillier and J. Villar, ''Trading One-Wayness against Chosen-Ciphertext Security in Factoring-Based Encryption'', Advances in Cryptology -- [[Asiacrypt]] 2006.</ref><ref>
D. Brown, [http://eprint.iacr.org/2006/223 ''What Hashes Make RSA-OAEP Secure?''], IACR ePrint 2006/233.</ref>
D. Brown, [http://eprint.iacr.org/2006/223 ''What Hashes Make RSA-OAEP Secure?''], IACR ePrint 2006/233.</ref>
== एल्गोरिथम ==
== एल्गोरिथम ==
[[File:OAEP encoding schema.svg|410x410px|अंगूठा|दायां|RFC 8017 के अनुसार OAEP एन्कोडिंग स्कीमा]]आरेख में,
[[File:OAEP encoding schema.svg|410x410px|अंगूठा|दायां|RFC 8017 के अनुसार OAEP एन्कोडिंग स्कीमा]] आरेख में,


* MGF [[मास्क जनरेशन फंक्शन]] है, आमतौर पर MGF1,
* एमजीएफ [[मास्क जनरेशन फंक्शन]] है, सामान्यतः एमजीएफ1,
* हैश चुना हुआ [[क्रिप्टोग्राफ़िक हैश फ़ंक्शन]] है,
* हैश चयनित [[क्रिप्टोग्राफ़िक हैश फ़ंक्शन]] है,
* hLen बाइट्स में हैश फ़ंक्शन के आउटपुट की लंबाई है,
* hLen बाइट्स में हैश फ़ंक्शन के आउटपुट की लंबाई है,
* k बाइट्स में RSA (क्रिप्टोसिस्टम) मापांक n की लंबाई है,
* k बाइट्स में आरएसए (क्रिप्टोसिस्टम) मापांक n की लंबाई है,
* M गद्देदार होने वाला संदेश है (अधिकतम <math>k - 2 \cdot \mathrm{hLen} - 2</math> बाइट्स),
* M पैडेड मैसेज है (अधिकतम <math>k - 2 \cdot \mathrm{hLen} - 2</math> बाइट्स),
* एल संदेश से जुड़ा एक वैकल्पिक लेबल है (लेबल डिफ़ॉल्ट रूप से खाली स्ट्रिंग है और एन्क्रिप्शन की आवश्यकता के बिना डेटा को प्रमाणित करने के लिए इस्तेमाल किया जा सकता है),
* L मैसेज से जुड़ा वैकल्पिक लेबल है (लेबल डिफ़ॉल्ट रूप से रिक्त स्ट्रिंग है और एन्क्रिप्शन की आवश्यकता के अतिरिक्त डेटा को प्रमाणित करने के लिए उपयोग किया जा सकता है),
* PS का एक बाइट स्ट्रिंग है <math>k - \mathrm{mLen} - 2 \cdot \mathrm{hLen} - 2</math> अशक्त बाइट्स।
* पीएस <math>k - \mathrm{mLen} - 2 \cdot \mathrm{hLen} - 2</math> नल-बाइट्स का बाइट स्ट्रिंग है।
* ⊕ एक [[Exclusive or]]-ऑपरेशन है।
* ⊕ [[Exclusive or|एक्सओआर]]-संचालन है।


=== एन्कोडिंग ===
=== एन्कोडिंग ===
<nowiki>RFC 8017</nowiki><ref>{{cite IETF|title=PKCS #1: RSA Cryptography Specifications Version 2.2|rfc=8017|sectionname=Encryption Operation|section=7.1.1|page=22|last=|first=|author-link=|date=November 2016|publisher=[[Internet Engineering Task Force|IETF]]|access-date=2022-06-04|doi=10.17487/RFC8017}}</ref> PKCS#1 v2.2 के लिए एन्कोडिंग के लिए निम्नानुसार OAEP योजना निर्दिष्ट करता है:
आरएफसी 8017<ref>{{cite IETF|title=PKCS #1: RSA Cryptography Specifications Version 2.2|rfc=8017|sectionname=Encryption Operation|section=7.1.1|page=22|last=|first=|author-link=|date=November 2016|publisher=[[Internet Engineering Task Force|IETF]]|access-date=2022-06-04|doi=10.17487/RFC8017}}</ref> पीकेसीएस#1 वी 2.2 की एन्कोडिंग के लिए निम्नानुसार ओएईपी योजना निर्दिष्ट करता है-


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


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


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


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


=== कार्यान्वयन ===
=== कार्यान्वयन ===
PKCS#1 मानक में, यादृच्छिक ऑरेकल समान हैं। PKCS#1 मानक के लिए यह आवश्यक है कि रैंडम ऑरेकल उचित हैश फ़ंक्शन के साथ [[MGF1]] हो।<ref>{{Cite journal|url=https://eprint.iacr.org/2006/223.pdf| title=What Hashes Make RSA-OAEP Secure?|journal = IACR Cryptology ePrint Archive| last=Brown |first=Daniel R. L.| date=2006| language=en|access-date=2019-04-03}}</ref>
पीकेसीएस#1 मानक में, रैंडम ऑरेकल समान हैं। पीकेसीएस#1 मानक के लिए रैंडम ऑरेकल उचित हैश फ़ंक्शन के साथ [[MGF1|एमजीएफ1]] आवश्यक है।<ref>{{Cite journal|url=https://eprint.iacr.org/2006/223.pdf| title=What Hashes Make RSA-OAEP Secure?|journal = IACR Cryptology ePrint Archive| last=Brown |first=Daniel R. L.| date=2006| language=en|access-date=2019-04-03}}</ref>
 
 
== यह भी देखें ==
== यह भी देखें ==
* [[कुंजी एनकैप्सुलेशन]]
* [[कुंजी एनकैप्सुलेशन]]
Line 78: Line 74:
<references/>
<references/>


{{Cryptography navbox | public-key}}
[[Category:Articles with hatnote templates targeting a nonexistent page]]
[[Category: सार्वजनिक-कुंजी एन्क्रिप्शन योजनाएं]] [[Category: पैडिंग एल्गोरिदम]]  
[[Category:CS1 English-language sources (en)]]
 
[[Category:Collapse templates]]
 
 
[[Category: Machine Translated Page]]
[[Category:Created On 11/05/2023]]
[[Category:Created On 11/05/2023]]
[[Category:Lua-based templates]]
[[Category:Machine Translated Page]]
[[Category:Missing redirects]]
[[Category:Navigational boxes| ]]
[[Category:Navigational boxes without horizontal lists]]
[[Category:Pages with script errors]]
[[Category:Short description with empty Wikidata description]]
[[Category:Sidebars with styles needing conversion]]
[[Category:Template documentation pages|Documentation/doc]]
[[Category:Templates Vigyan Ready]]
[[Category:Templates generating microformats]]
[[Category:Templates that add a tracking category]]
[[Category:Templates that are not mobile friendly]]
[[Category:Templates that generate short descriptions]]
[[Category:Templates using TemplateData]]
[[Category:Wikipedia metatemplates]]
[[Category:पैडिंग एल्गोरिदम]]
[[Category:सार्वजनिक-कुंजी एन्क्रिप्शन योजनाएं]]

Latest revision as of 12:48, 31 October 2023

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

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

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

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

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

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

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

एल्गोरिथम

RFC 8017 के अनुसार OAEP एन्कोडिंग स्कीमा आरेख में,

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

एन्कोडिंग

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

  1. चयनित हैश फ़ंक्शन का उपयोग करके लेबल L को हैश करें:
  2. 0x00 मान के साथ बाइट्स वाला पैडिंग स्ट्रिंग पीएस उत्पन्न करें।
  3. डेटा ब्लॉक डीबी बनाने के लिए एल हैश, पीएस, सिंगल बाइट 0x01, और मैसेज एम को सम्‍मिलित करें: . इस डेटा ब्लॉक की लंबाई बाइट्स है।
  4. लंबाई hLen का यादृच्छिक सीड उत्पन्न करें।
  5. डेटा ब्लॉक के लिए उपयुक्त लंबाई का मास्क बनाने के लिए मास्क जनरेटिंग फंक्शन का उपयोग करें:
  6. जनरेट किए गए मास्क के साथ डेटा ब्लॉक को मास्क करें:
  7. सीड के लिए लंबाई hLen का मास्क बनाने के लिए मास्क जनरेटिंग फ़ंक्शन का उपयोग करें:
  8. सीड को उत्पन्न मास्क से मास्क करें:
  9. एन्कोडेड (पैडेड) मैसेज बाइट 0x00 है जो मास्क्डसीड और मास्क्डडीबी के साथ जुड़ा हुआ है:

डिकोडिंग

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

  1. चयनित हैश फ़ंक्शन का उपयोग करके लेबल L को हैश करें:
  2. चरण 9 को परिवर्तित करने के लिए, एन्कोडेड मैसेज EM को बाइट 0x00, मास्कडसीड (लंबाई hLen के साथ) और मास्कडडीबी में विभाजित करें:
  3. सीडमास्क उत्पन्न करें जिसका उपयोग सीड को ढकने के लिए किया गया था:
  4. चरण 8 को परिवर्तित करने के लिए, सीड को सीडमास्क से पुनर्प्राप्त करें:
  5. डीबी मास्क उत्पन्न करें जिसका उपयोग डेटा ब्लॉक को मास्क करने के लिए किया गया था:
  6. चरण 6 को परिवर्तित करने के लिए, डेटा ब्लॉक डीबी को पुनर्प्राप्त करें:
  7. चरण 3 को परिवर्तित करने के लिए, डेटा ब्लॉक को उसके भागों में विभाजित करें: .
    1. सत्यापित करें कि:
      • lHash' परिकलित lHash के समान है
      • पीएस में केवल बाइट 0x00 होते हैं
      • पीएस और एम को 0x01 बाइट द्वारा पृथक किया जाता है और
      • ईएम की प्रथम बाइट 0x00 है।
    2. यदि इनमें से कोई भी स्तिथि पूर्ण नहीं होती है, तो पैडिंग अमान्य है।

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

सिक्योरिटी

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

कार्यान्वयन

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

यह भी देखें

संदर्भ

  1. 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)
  2. 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)
  3. Victor Shoup. OAEP Reconsidered. IBM Zurich Research Lab, Saumerstr. 4, 8803 Ruschlikon, Switzerland. September 18, 2001. full version (pdf)
  4. P. Paillier and J. Villar, Trading One-Wayness against Chosen-Ciphertext Security in Factoring-Based Encryption, Advances in Cryptology -- Asiacrypt 2006.
  5. D. Brown, What Hashes Make RSA-OAEP Secure?, IACR ePrint 2006/233.
  6. "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.
  7. Brown, Daniel R. L. (2006). "What Hashes Make RSA-OAEP Secure?" (PDF). IACR Cryptology ePrint Archive (in English). Retrieved 2019-04-03.