Cryptology Academy · पाठ

डिजिटल हस्ताक्षरों के लिए RSA-PSS

PSS encoding और salt सीखें तथा समझें कि हस्ताक्षर के लिए इसने PKCS#1 v1.5 का स्थान क्यों लिया।

पाठ 4, कुल 4 में से13 चरण

डिजिटल हस्ताक्षरों के लिए RSA-PSS, CoddyKit पर Cryptology Academy का एक निःशुल्क पाठ है। यह 4 में से 4वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह Cryptology Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Cryptology Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

स्वागत है

RSA-PSS (प्रायिकतामूलक हस्ताक्षर योजना) PKCS#1 v1.5 हस्ताक्षरों का सुरक्षित विकल्प है। इसमें प्रमाणित रूप से सुरक्षित हस्ताक्षरों के लिए यादृच्छिक कूटांकन का उपयोग किया जाता है।

PKCS#1 v1.5 हस्ताक्षरों की कमजोरियाँ

PKCS#1 v1.5 हस्ताक्षर नियतात्मक DigestInfo कूटांकन का उपयोग करते हैं। ज्ञात जालसाजी हमले ढीले सत्यापन वाले कार्यान्वयनों का लाभ उठाते हैं। ब्लीखेनबैकर (2006) ने कुछ सत्यापकों के विरुद्ध हस्ताक्षर जालसाजी दिखाई।

PSS के अभिकल्प लक्ष्य

बेलेयर-रोगवे, 1996: PSS हस्ताक्षरों को प्रायिकतामूलक बनाने के लिए एक यादृच्छिक साल्ट जोड़ता है। प्रत्येक हस्ताक्षर-निर्माण से अलग हस्ताक्षर मिलता है। यह यादृच्छिक ओरेकल मॉडल में प्रमाणित रूप से सुरक्षित है और RSA की कठिनाई से इसका कड़ा सुरक्षा-अपचयन मिलता है।

PSS कूटांकन के चरण

1. mHash = Hash(M) 2. salt = random(sLen bytes) 3. M' = 0x00×8 || mHash || salt 4. H = Hash(M') 5. DB = PS || 0x01 || salt 6. dbMask = MGF1(H, emLen - hLen - 1) 7. maskedDB = DB XOR dbMask 8. EM = maskedDB || H || 0xbc

साल्ट की लंबाई के विकल्प

PKCS#1 v2.2 विकल्प: - MAX_LENGTH: हैश जितना लंबा साल्ट (अनुशंसित, अधिकतम सुरक्षा) - DIGEST_LENGTH: साल्ट = हैश की लंबाई (मानक) - 0: नियतात्मक PSS (प्रायिकतामूलक गुण समाप्त हो जाता है, अनुशंसित नहीं) Python: padding.PSS.MAX_LENGTH

PSS सत्यापन

EM = sig^e mod n पुनर्प्राप्त करें। maskedDB और H को पार्स करें। संदेश से प्राप्त mHash और पुनर्प्राप्त साल्ट से M' की गणना करें। H == Hash(M') सत्यापित करें। साल्ट का मेल खाना आवश्यक नहीं है—केवल H का सत्यापित होना आवश्यक है।

PSS बनाम v1.5: सुरक्षा तुलना

PSS: प्रमाणित रूप से सुरक्षित, कड़ा सुरक्षा-अपचयन, प्रायिकतामूलक हस्ताक्षर, थोड़ी अधिक गणना। v1.5: अनुमानी रूप से सुरक्षित, नियतात्मक, तेज़, प्रारूप ओरेकल हमलों के प्रति असुरक्षित। सभी नए कोड में PSS का उपयोग करना चाहिए।

TLS 1.3 में PSS

TLS 1.3 में सभी RSA हस्ताक्षरों के लिए RSA-PSS आवश्यक है। नए TLS 1.3 विस्तारों में PKCS#1 v1.5 निषिद्ध है। हस्ताक्षर एल्गोरिदम: rsa_pss_rsae_sha256, rsa_pss_rsae_sha384, rsa_pss_rsae_sha512।

Python में PSS

from cryptography.hazmat.primitives.asymmetric import padding from cryptography.hazmat.primitives import hashes # Sign sig = private_key.sign( message, padding.PSS(mgf=padding.MGF1(hashes.SHA256()), salt_length=padding.PSS.MAX_LENGTH), hashes.SHA256() )

RSASSA-PSS OID

RSA-PSS का अपना कुंजी प्रकार OID है: id-RSASSA-PSS (1.2.840.113549.1.1.10)। विशेष रूप से PSS के लिए बनाई गई कुंजियाँ इसी OID का उपयोग करती हैं और PSS हस्ताक्षर आवश्यक बनाती हैं (v1.5 के साथ काम नहीं करेंगी)। नए परिनियोजनों के लिए यही सर्वोत्तम अभ्यास है।

छोटे किए गए हैश और साल्ट संबंधी अनुशंसाएँ

जब salt_length = hash_length हो, तो PSS की सुरक्षा = min(|modulus|/2, |hash|) - 1 बिट होती है। SHA-256 वाले RSA-2048 के लिए 128-बिट सुरक्षा मिलती है। सुरक्षा स्तर समान रखें: 192-बिट सुरक्षा के लिए RSA-3072 + SHA-384।

त्वरित जाँच

PKCS#1 v1.5 की तुलना में RSA-PSS हस्ताक्षरों को ‘प्रायिकतामूलक’ क्या बनाता है?

पुनरावलोकन

RSA के साथ हस्ताक्षर करने का सुरक्षित तरीका RSA-PSS है। अब हम दीर्घवृत्तीय वक्र क्रिप्टोग्राफी में दक्षता प्राप्त करेंगे—वक्रों की ज्यामिति और बीजगणित को समझते हुए।
शुरुआत निःशुल्क

एआई शिक्षक के साथ Cryptology Academy सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
67
पाठ
261

अक्सर पूछे जाने वाले प्रश्न

क्या “डिजिटल हस्ताक्षरों के लिए RSA-PSS” पाठ निःशुल्क है?

हाँ—“डिजिटल हस्ताक्षरों के लिए RSA-PSS” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और Cryptology Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। Cryptology Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“डिजिटल हस्ताक्षरों के लिए RSA-PSS” में मैं क्या सीखूँगा?

PSS encoding और salt सीखें तथा समझें कि हस्ताक्षर के लिए इसने PKCS#1 v1.5 का स्थान क्यों लिया। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Cryptology Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या Cryptology Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Cryptology Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 4वाँ पाठ है।

“डिजिटल हस्ताक्षरों के लिए RSA-PSS” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस Cryptology Academy पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर Cryptology Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. पाठ्यपुस्तक RSA और यह असुरक्षित क्यों है
  2. PKCS#1 v1.5 पैडिंग और Bleichenbacher
  3. OAEP: इष्टतम असममित एन्क्रिप्शन पैडिंग
  4. डिजिटल हस्ताक्षरों के लिए RSA-PSS
← Cryptology Academy पर वापस जाएँ