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

From Vigyanwiki
No edit summary
No edit summary
Line 24: Line 24:


== एल्गोरिथम ==
== एल्गोरिथम ==
[[File:OAEP encoding schema.svg|410x410px|अंगूठा|दायां|RFC 8017 के अनुसार OAEP एन्कोडिंग स्कीमा]]आरेख में,
[[File:OAEP encoding schema.svg|410x410px|अंगूठा|दायां|RFC 8017 के अनुसार OAEP एन्कोडिंग स्कीमा]] आरेख में,


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


=== एन्कोडिंग ===
=== एन्कोडिंग ===
Line 72: Line 72:


=== कार्यान्वयन ===
=== कार्यान्वयन ===
पीकेसीएस#1 मानक में, यादृच्छिक ऑरेकल समान हैं। पीकेसीएस#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>





Revision as of 01:51, 2 June 2023

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

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

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

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

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

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

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


एल्गोरिथम

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

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

एन्कोडिंग

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

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


डिकोडिंग

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

  1. चुने गए हैश फ़ंक्शन का उपयोग करके लेबल L को हैश करें:
  2. चरण 9 को उलटने के लिए, एन्कोडेड संदेश EM को बाइट 0x00, मास्कडसीड (लंबाई hLen के साथ) और मास्कडडीबी में विभाजित करें:
  3. सीडमास्क उत्पन्न करें जिसका उपयोग बीज को ढकने के लिए किया गया था:
  4. चरण 8 को उलटने के लिए, बीज को सीडमास्क से पुनर्प्राप्त करें:
  5. dbMask उत्पन्न करें जिसका उपयोग डेटा ब्लॉक को मास्क करने के लिए किया गया था:
  6. चरण 6 को उलटने के लिए, डेटा ब्लॉक DB को पुनर्प्राप्त करें:
  7. चरण 3 को उलटने के लिए, डेटा ब्लॉक को उसके भागों में विभाजित करें: .
    1. सत्यापित करें कि:
      • lHash' परिकलित lHash के बराबर है
      • PS में केवल बाइट 0x00 होते हैं
      • PS और M को 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.