ECDSA (P-256) एन्क्रिप्ट और डिक्रिप्ट

मुफ़्त ऑनलाइन ECDSA (P-256) एन्क्रिप्ट और डिक्रिप्ट टूल। 100% स्थानीय प्रसंस्करण — आपका डेटा कभी आपके डिवाइस से नहीं जाता।

National Standards
Other
आउटपुट

परिणाम यहां प्रदर्शित होगा...

इनपुट एन्क्रिप्ट

Usage Guide

ECDSA (P-256) के बारे में

ECDSA (एलिप्टिक कर्व डिजिटल सिग्नेचर एल्गोरिदम) NIST P-256 कर्व (जिसे secp256r1 या prime256v1 भी कहा जाता है) का उपयोग करते हुए एक व्यापक रूप से तैनात डिजिटल हस्ताक्षर मानक है। यह HTTPS/TLS प्रमाणपत्रों, कोड-साइनिंग इंफ्रास्ट्रक्चर और कई ब्लॉकचेन प्रोटोकॉल की नींव है। P-256 128-बिट सुरक्षा प्रदान करता है — RSA-3072 के बराबर — साथ ही छोटी कुंजियाँ (प्रत्येक 32 बाइट) बनाए रखता है। WebCrypto, Java, Go, Python और लगभग हर TLS लाइब्रेरी P-256 को नेटिवली सपोर्ट करती है।

हस्ताक्षर एल्गोरिदम — एन्क्रिप्शन नहीं: ECDSA एक डिजिटल हस्ताक्षर एल्गोरिदम है। यह साबित करता है कि एक संदेश किसी विशिष्ट निजी कुंजी के धारक द्वारा हस्ताक्षरित किया गया था — यह डेटा को एन्क्रिप्ट नहीं करता। डेटा को गोपनीय रखने के लिए, ECDSA हस्ताक्षरों को एक सममित सिफर के साथ संयोजित करें जैसे ChaCha20-Poly1305 या AES-256-GCM

उपयोग के चरण

यह टूल P-256 कुंजी जोड़ी निर्माण, संदेश हस्ताक्षर और हस्ताक्षर सत्यापन का समर्थन करता है:

1. कुंजी जोड़ी उत्पन्न करें'Generate Key Pair' पर क्लिक करें एक जुड़ी हुई निजी/सार्वजनिक कुंजी जोड़ी बनाने के लिए। दोनों कुंजियाँ PEM फॉर्मेट में आउटपुट होती हैं (-----BEGIN PRIVATE KEY----- / -----BEGIN PUBLIC KEY-----)।
2. संदेश पर हस्ताक्षर करें'Sign' मोड चुनें। इनपुट फील्ड में संदेश टेक्स्ट दर्ज करें और कुंजी पैरामीटर में PEM निजी कुंजी पेस्ट करें। 'Encrypt' पर क्लिक करें — आउटपुट IEEE P1363 फॉर्मेट (r‖s, DER नहीं) में Base64-एन्कोडेड 64-बाइट हस्ताक्षर है।
3. हस्ताक्षर सत्यापित करें'Verify' मोड चुनें। इनपुट को 'message|signature_base64' (पाइप-अलग) के रूप में दर्ज करें। कुंजी पैरामीटर में PEM सार्वजनिक कुंजी पेस्ट करें। 'Decrypt' पर क्लिक करें — आउटपुट '✓ Signature verified' या एक त्रुटि होगी।
4. सुरक्षित कुंजी संग्रहणPEM निजी कुंजी को एक सुरक्षित स्थान (पासवर्ड मैनेजर, एन्क्रिप्टेड वॉल्ट) में सहेजें। सार्वजनिक कुंजी स्वतंत्र रूप से साझा की जा सकती है। निजी कुंजी खोने का मतलब है हस्ताक्षर करने की क्षमता खोना — कोई पुनर्प्राप्ति नहीं है।
केवल ब्राउज़र: सभी कुंजी निर्माण और हस्ताक्षर संचालन WebCrypto API का उपयोग करके पूरी तरह से आपके ब्राउज़र में चलते हैं। कोई भी कुंजी या संदेश कभी भी सर्वर को प्रेषित नहीं होते।

कुंजी फॉर्मेट

इस टूल में ECDSA P-256 कुंजियाँ PEM एन्कोडिंग (Base64-रैप्ड DER) का उपयोग करती हैं:

निजी कुंजी-----BEGIN PRIVATE KEY----- (PKCS#8 फॉर्मेट) से शुरू होने वाला PEM ब्लॉक। इसमें 32-बाइट स्केलर सीक्रेट शामिल है। इसे सख्ती से गोपनीय रखें।
सार्वजनिक कुंजी-----BEGIN PUBLIC KEY----- (SubjectPublicKeyInfo / X.509 फॉर्मेट) से शुरू होने वाला PEM ब्लॉक। इसमें 65-बाइट असंपीड़ित कर्व पॉइंट (04 || x || y) शामिल है। सार्वजनिक रूप से साझा करना सुरक्षित है।
हस्ताक्षरBase64-एन्कोडेड 64-बाइट मान: r (32 बाइट) s (32 बाइट) से जुड़ा — IEEE P1363 फॉर्मेट। नोट: OpenSSL और कई लाइब्रेरी DER-एन्कोडेड हस्ताक्षरों का उपयोग करती हैं; वे सीधे इंटरचेंज करने योग्य नहीं हैं।
सत्यापन इनपुट फॉर्मेटसत्यापन करते समय, इनपुट फील्ड में पाइप कैरेक्टर से जुड़े संदेश और Base64 हस्ताक्षर होने चाहिए: message|signature_base64

ECDSA बनाम EdDSA

ECDSA और EdDSA दोनों एलिप्टिक-कर्व हस्ताक्षर एल्गोरिदम हैं लेकिन महत्वपूर्ण सुरक्षा गुणों में भिन्न हैं:

Nonce सुरक्षाECDSA को प्रति हस्ताक्षर एक क्रिप्टोग्राफिक रूप से यादृच्छिक nonce (k) की आवश्यकता होती है। यदि nonce दो हस्ताक्षरों में पुनः उपयोग किया जाता है, तो एक हमलावर बीजगणितीय रूप से निजी कुंजी को पूरी तरह से पुनर्प्राप्त कर सकता है। ठीक ऐसे ही Sony PS3 साइनिंग कुंजी 2010 में समझौता की गई थी। EdDSA अपने nonce को निजी कुंजी और संदेश से निर्धारक रूप से प्राप्त करता है — nonce पुनः उपयोग गणितीय रूप से असंभव है।
निर्धारक हस्ताक्षरEdDSA (Ed25519) एक ही संदेश+कुंजी के लिए हर बार एक ही हस्ताक्षर उत्पन्न करता है। ECDSA हर बार एक अलग हस्ताक्षर उत्पन्न करता है (यादृच्छिक nonce के कारण)। निर्धारक हस्ताक्षर परीक्षण को सरल बनाता है और पुनरुत्पादनीय बिल्ड सत्यापन को विश्वसनीय बनाता है।
कर्व डिज़ाइनP-256 (secp256r1) व्यापक संगतता के साथ एक NIST-मानकीकृत कर्व है। Ed25519 Twisted Edwards Curve25519 का उपयोग करता है जो साइड-चैनल हमलों का विरोध करने और स्वच्छ अंकगणित के लिए डिज़ाइन किया गया है। दोनों ~128-बिट सुरक्षा प्रदान करते हैं।
सिफारिशनई परियोजनाओं के लिए, निर्धारक हस्ताक्षर और कार्यान्वयन त्रुटियों के प्रति मजबूत प्रतिरोध के कारण EdDSA (Ed25519) को प्राथमिकता दें। ECDSA P-256 का उपयोग तब करें जब मौजूदा TLS इंफ्रास्ट्रक्चर या हार्डवेयर सुरक्षा मॉड्यूल के साथ संगतता आवश्यक हो जो अभी तक Ed25519 का समर्थन नहीं करते।
क्वांटम प्रतिरोध: RSA और EdDSA की तरह, ECDSA एक पर्याप्त शक्तिशाली क्वांटम कंप्यूटर के लिए असुरक्षित है जो Shor के एल्गोरिदम को चला रहा हो। पोस्ट-क्वांटम सुरक्षा के लिए, ML-DSA (CRYSTALS-Dilithium) जैसे NIST-मानकीकृत एल्गोरिदम देखें। ECDSA P-256 आज क्लासिकल (गैर-क्वांटम) खतरे के मॉडल के लिए सबसे अच्छा व्यावहारिक विकल्प बना हुआ है।

FAQ

Q: ECDSA और EdDSA के बीच क्या अंतर है?

A: ECDSA और EdDSA दोनों एलिप्टिक-कर्व हस्ताक्षर एल्गोरिदम हैं, लेकिन महत्वपूर्ण तरीकों से भिन्न हैं। ECDSA (NIST कर्व P-256, P-384 के साथ उपयोग) प्रति हस्ताक्षर एक यादृच्छिक nonce (k) की आवश्यकता है — यदि nonce पुनः उपयोग किया जाता है या कमजोर है, तो निजी कुंजी पूरी तरह से पुनर्प्राप्त की जा सकती है। ठीक इसी तरह Sony PlayStation 3 निजी कुंजी 2010 में निकाली गई थी। EdDSA निजी कुंजी और संदेश हैश से प्राप्त निर्धारक nonce का उपयोग करता है, जिससे nonce पुनः उपयोग गणितीय रूप से असंभव हो जाता है। नई कार्यान्वयन के लिए, ECDSA की तुलना में EdDSA दृढ़ता से पसंद किया जाता है।

Q: ECDSA में nonce पुनः उपयोग इतना खतरनाक क्यों है?

A: ECDSA में, प्रत्येक हस्ताक्षर के लिए एक गुप्त यादृच्छिक मान k (nonce) की आवश्यकता होती है। यदि आप एक ही nonce k से दो अलग संदेशों पर हस्ताक्षर करते हैं, तो दोनों हस्ताक्षरों को देखने वाला कोई हमलावर साधारण बीजगणित का उपयोग करके आपकी निजी कुंजी को पूरी तरह और अपरिवर्तनीय रूप से पुनर्प्राप्त कर सकता है। यह सैद्धांतिक नहीं है: PlayStation 3 को 2010 में तोड़ा गया था जब Sony ने सभी फर्मवेयर हस्ताक्षरों के लिए एक ही nonce का पुनः उपयोग किया था। समाधान या तो प्रत्येक हस्ताक्षर के लिए एक क्रिप्टोग्राफिक रूप से सुरक्षित यादृच्छिक संख्या जनरेटर का उपयोग करना है (जैसा कि WebCrypto करता है), या EdDSA पर स्विच करना है, जो निर्धारक व्युत्पत्ति के माध्यम से nonce समस्या को पूरी तरह से समाप्त करता है।

Q: क्या ECDSA डेटा एन्क्रिप्ट कर सकता है?

A: नहीं। ECDSA केवल एक डिजिटल हस्ताक्षर एल्गोरिदम है — यह डेटा को एन्क्रिप्ट या डिक्रिप्ट नहीं कर सकता। हस्ताक्षर प्रामाणिकता साबित करता है (संदेश किसने बनाया) लेकिन कोई गोपनीयता प्रदान नहीं करता (कोई भी संदेश पढ़ सकता है)। डेटा एन्क्रिप्ट करने के लिए, एक सममित सिफर का उपयोग करें जैसे ChaCha20-Poly1305 या AES-256-GCM। असममित कुंजी एक्सचेंज के लिए, X25519 (ECDH) का उपयोग करें। P-256 असममित एन्क्रिप्शन के लिए, ECC/ECIES का उपयोग करें।

Q: P-256 और secp256k1 के बीच क्या अंतर है?

A: समान नामों के बावजूद, P-256 (secp256r1, prime256v1) और secp256k1 अलग-अलग पैरामीटर वाले अलग एलिप्टिक कर्व हैं। P-256 एक NIST-मानकीकृत कर्व है जो TLS प्रमाणपत्रों, सरकारी प्रणालियों और WebCrypto में व्यापक रूप से उपयोग किया जाता है। secp256k1 वह कर्व है जिसे Bitcoin और Ethereum उपयोग करते हैं (नियमित लेनदेन पर ECDSA हस्ताक्षरों के लिए)। secp256k1 में अलग दक्षता विशेषताएं हैं और आमतौर पर TLS लाइब्रेरी या WebCrypto द्वारा समर्थित नहीं है। इन्हें भ्रमित न करें — दोनों कर्वों के बीच कुंजियाँ और हस्ताक्षर पूरी तरह से असंगत हैं।

Q: ECDSA P-256 हस्ताक्षर कितना बड़ा होता है?

A: IEEE P1363 फॉर्मेट (इस टूल और WebCrypto द्वारा उपयोग) में ECDSA P-256 हस्ताक्षर ठीक 64 बाइट है: दो 32-बाइट big-endian पूर्णांक r और s। Base64-एन्कोडेड, यह 88 अक्षर है। DER फॉर्मेट (OpenSSL, X.509, TLS द्वारा उपयोग) में, एक ही हस्ताक्षर परिवर्तनीय लंबाई का होता है, आमतौर पर 70–72 बाइट, क्योंकि DER सकारात्मक पूर्णांकों के लिए अग्रणी शून्य बाइट्स के साथ tag-length-value एन्कोडिंग का उपयोग करता है। OpenSSL या अन्य टूल के साथ इंटरऑपरेट करते समय, फॉर्मेट अंतर से अवगत रहें।

Use Cases

अनुशंसित: TLS प्रमाणपत्र / HTTPS

ECDSA P-256 प्रमाणपत्र HTTPS के लिए आधुनिक मानक हैं। वे सभी प्रमुख ब्राउज़रों और TLS 1.3 द्वारा समर्थित हैं, और RSA-2048 प्रमाणपत्रों की तुलना में काफी छोटे और तेज़ हैं। Certificate Authorities जैसे Let's Encrypt ECDSA P-256 का पूरी तरह समर्थन करते हैं। CSR के लिए P-256 कुंजी उत्पन्न करने के लिए openssl ecparam -name prime256v1 -genkey का उपयोग करें।

Recommended Configuration:
  • ✅ नए TLS प्रमाणपत्रों के लिए ECDSA P-256 का उपयोग करें
  • ✅ सभी आधुनिक ब्राउज़रों और TLS 1.3 द्वारा नेटिवली समर्थित
  • ✅ RSA प्रमाणपत्रों की तुलना में तेज़ TLS हैंडशेक
  • ❌ RSA-1024 का उपयोग न करें; P-256 गति और आकार में RSA-2048 से बेहतर है
अनुशंसित: कोड साइनिंग

ECDSA P-256 का उपयोग macOS, Windows Authenticode, Android APK साइनिंग और कोड साइनिंग के लिए कई पैकेज मैनेजरों द्वारा किया जाता है। कॉम्पैक्ट 64-बाइट हस्ताक्षर (P1363) या ~71-बाइट DER हस्ताक्षर को मैनिफेस्ट और मेटाडेटा में एम्बेड करना आसान है। अपने रिलीज़ आर्टिफैक्ट पर हस्ताक्षर करने से उपयोगकर्ता सत्यापित कर सकते हैं कि प्रकाशन के बाद बायनरी के साथ छेड़छाड़ नहीं की गई है।

Recommended Configuration:
  • ✅ ECDSA P-256 के साथ रिलीज़ आर्टिफैक्ट और चेकसम पर हस्ताक्षर करें
  • ✅ हस्ताक्षर के साथ सार्वजनिक कुंजी या प्रमाणपत्र प्रकाशित करें
  • ✅ प्रोडक्शन साइनिंग कुंजियों के लिए हार्डवेयर सुरक्षा मॉड्यूल (HSM) का उपयोग करें
  • ❌ क्रिप्टोग्राफिक हस्ताक्षर के बिना सॉफ़्टवेयर वितरित न करें
अनुशंसित: स्मार्ट कॉन्ट्रैक्ट संगतता (चेतावनियों के साथ)

कई ब्लॉकचेन इकोसिस्टम लेनदेन हस्ताक्षर के लिए ECDSA का उपयोग करते हैं। Ethereum secp256k1 वेरिएंट (P-256 नहीं) का उपयोग करता है, इसलिए ECDSA P-256 कुंजियाँ Ethereum वॉलेट के साथ सीधे संगत नहीं हैं। हालांकि, कुछ नई chains और Layer-2 समाधान P-256 (secp256r1) का समर्थन करते हैं — उदाहरण के लिए, Passkey-आधारित अकाउंट एब्स्ट्रैक्शन (ERC-4337) P-256 हस्ताक्षरों का उपयोग करता है। कुंजियाँ उत्पन्न करने से पहले हमेशा सत्यापित करें कि एक विशिष्ट ब्लॉकचेन किस कर्व की आवश्यकता है।

Recommended Configuration:
  • ✅ उन chains के लिए ECDSA P-256 का उपयोग करें जो स्पष्ट रूप से secp256r1 का समर्थन करती हैं
  • ✅ Passkey / WebAuthn-आधारित अकाउंट एब्स्ट्रैक्शन के लिए उपयुक्त
  • ❌ Bitcoin या Ethereum के लिए P-256 कुंजियों का उपयोग न करें — वे secp256k1 का उपयोग करते हैं
  • 💡 ब्लॉकचेन उपयोग के लिए कुंजियाँ उत्पन्न करने से पहले कर्व की पुष्टि करें
स्वीकार्य: JWT हस्ताक्षर (ES256)

JSON Web Tokens (JWT) ES256 एल्गोरिदम पहचानकर्ता (RFC 7518) के माध्यम से ECDSA P-256 का समर्थन करते हैं। ES256 HS256 (सममित) से अधिक सुरक्षित और RS256 (RSA) से अधिक कुशल है। हालांकि, यदि आप एक नई परियोजना शुरू कर रहे हैं, तो अपने निर्धारक हस्ताक्षर गुणों के लिए EdDSA (Ed25519) (JWT में EdDSA एल्गोरिदम) पर विचार करें।

Recommended Configuration:
  • ✅ ES256 (ECDSA P-256) मौजूदा सिस्टम में JWT के लिए एक ठोस विकल्प है
  • ✅ /.well-known/jwks.json पर सार्वजनिक कुंजी प्रकाशित करें
  • ✅ साइनिंग कुंजियों को समय-समय पर रोटेट करें
  • 💡 नई परियोजनाएं: निर्धारक हस्ताक्षर के लिए EdDSA (Ed25519) पर विचार करें
अनुशंसित नहीं: नई परियोजनाएं — EdDSA को प्राथमिकता दें

नई परियोजनाओं के लिए जहां संगतता बाधाएं एल्गोरिदम विकल्प को निर्धारित नहीं करतीं, ECDSA P-256 पर EdDSA (Ed25519) को प्राथमिकता दें। EdDSA का निर्धारक nonce ECDSA के सबसे खतरनाक विफलता मोड (nonce पुनः उपयोग) को समाप्त करता है, और Ed25519 अब OpenSSH, TLS 1.3 क्लाइंट प्रमाणपत्रों, JWT और अधिकांश आधुनिक क्रिप्टोग्राफिक लाइब्रेरी में समर्थित है।

Recommended Configuration:
  • ❌ जब EdDSA उपलब्ध हो और कोई संगतता आवश्यकता न हो तो ECDSA P-256 से बचें
  • ✅ SSH, नए JWT जारीकर्ताओं और आधुनिक API के लिए EdDSA (Ed25519) का उपयोग करें
  • ✅ TLS प्रमाणपत्रों और लीगेसी सिस्टम इंटरऑप के लिए ECDSA P-256 रखें
  • 💡 ECDSA टूटा नहीं है — यह केवल EdDSA की तुलना में सुरक्षित रूप से लागू करना कठिन है

सर्वोत्तम अभ्यास सारांश

  • ECDSA एक हस्ताक्षर एल्गोरिदम है — यह प्रामाणिकता साबित करता है लेकिन एन्क्रिप्ट नहीं करता। गोपनीयता के लिए AES-256-GCM या ChaCha20-Poly1305 का उपयोग करें।
  • ECDSA P-256 को प्रति हस्ताक्षर एक सुरक्षित यादृच्छिक nonce की आवश्यकता है। Nonce पुनः उपयोग निजी कुंजी को पूरी तरह से उजागर करता है (PS3 हमला)। WebCrypto इसे स्वचालित रूप से संभालता है।
  • निजी कुंजी (PEM फॉर्मेट) को सख्ती से गुप्त रखा जाना चाहिए। सार्वजनिक कुंजी (PEM फॉर्मेट) स्वतंत्र रूप से वितरित की जा सकती है।
  • 'message|signature_base64' इनपुट फॉर्मेट का उपयोग करके हस्ताक्षर सत्यापित करें। पाइप सेपरेटर आवश्यक है।
  • लीगेसी बाधाओं के बिना नई परियोजनाओं के लिए, EdDSA (Ed25519) को प्राथमिकता दें — यह निर्धारक, तेज़ और ECDSA की तुलना में गलत उपयोग करना कठिन है।

चर्चा और प्रतिक्रिया

0 टिप्पणियां
मैं