ECDSA (P-256) एन्क्रिप्ट और डिक्रिप्ट
मुफ़्त ऑनलाइन ECDSA (P-256) एन्क्रिप्ट और डिक्रिप्ट टूल। 100% स्थानीय प्रसंस्करण — आपका डेटा कभी आपके डिवाइस से नहीं जाता।
परिणाम यहां प्रदर्शित होगा...
इनपुट → एन्क्रिप्ट
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 को नेटिवली सपोर्ट करती है।
उपयोग के चरण
यह टूल P-256 कुंजी जोड़ी निर्माण, संदेश हस्ताक्षर और हस्ताक्षर सत्यापन का समर्थन करता है:
कुंजी फॉर्मेट
इस टूल में ECDSA P-256 कुंजियाँ PEM एन्कोडिंग (Base64-रैप्ड DER) का उपयोग करती हैं:
ECDSA बनाम EdDSA
ECDSA और EdDSA दोनों एलिप्टिक-कर्व हस्ताक्षर एल्गोरिदम हैं लेकिन महत्वपूर्ण सुरक्षा गुणों में भिन्न हैं:
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 का उपयोग करें।
- ✅ नए 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 हस्ताक्षर को मैनिफेस्ट और मेटाडेटा में एम्बेड करना आसान है। अपने रिलीज़ आर्टिफैक्ट पर हस्ताक्षर करने से उपयोगकर्ता सत्यापित कर सकते हैं कि प्रकाशन के बाद बायनरी के साथ छेड़छाड़ नहीं की गई है।
- ✅ ECDSA P-256 के साथ रिलीज़ आर्टिफैक्ट और चेकसम पर हस्ताक्षर करें
- ✅ हस्ताक्षर के साथ सार्वजनिक कुंजी या प्रमाणपत्र प्रकाशित करें
- ✅ प्रोडक्शन साइनिंग कुंजियों के लिए हार्डवेयर सुरक्षा मॉड्यूल (HSM) का उपयोग करें
- ❌ क्रिप्टोग्राफिक हस्ताक्षर के बिना सॉफ़्टवेयर वितरित न करें
अनुशंसित: स्मार्ट कॉन्ट्रैक्ट संगतता (चेतावनियों के साथ)
कई ब्लॉकचेन इकोसिस्टम लेनदेन हस्ताक्षर के लिए ECDSA का उपयोग करते हैं। Ethereum secp256k1 वेरिएंट (P-256 नहीं) का उपयोग करता है, इसलिए ECDSA P-256 कुंजियाँ Ethereum वॉलेट के साथ सीधे संगत नहीं हैं। हालांकि, कुछ नई chains और Layer-2 समाधान P-256 (secp256r1) का समर्थन करते हैं — उदाहरण के लिए, Passkey-आधारित अकाउंट एब्स्ट्रैक्शन (ERC-4337) P-256 हस्ताक्षरों का उपयोग करता है। कुंजियाँ उत्पन्न करने से पहले हमेशा सत्यापित करें कि एक विशिष्ट ब्लॉकचेन किस कर्व की आवश्यकता है।
- ✅ उन 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 एल्गोरिदम) पर विचार करें।
- ✅ 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 और अधिकांश आधुनिक क्रिप्टोग्राफिक लाइब्रेरी में समर्थित है।
- ❌ जब 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 की तुलना में गलत उपयोग करना कठिन है।