पब्लिक की क्रिप्टोग्राफ़ी की बुनियाद: सुरक्षित शेयरिंग कैसे काम करती है
पब्लिक की क्रिप्टोग्राफ़ी की बुनियाद सीखें और यह अजनबियों के बीच सुरक्षित फ़ाइल शेयरिंग कैसे सक्षम करती है।
पब्लिक की क्रिप्टोग्राफ़ी — जिसे asymmetric cryptography भी कहते हैं — दो गणितीय रूप से linked keys उपयोग करती है: एक public जो आप किसी को भी दे सकते हैं और एक private जो आप खुद के पास रखते हैं। मेरी public key से कुछ encrypt करें, और केवल मेरी private key उसे पढ़ सकती है। यह cryptography की सबसे पुरानी समस्या हल करती है: दो अजनबी जो कभी नहीं मिले, एक open channel पर secret कैसे share करें। 1976 में Diffie और Hellman ने इसे invent किया, एक साल बाद RSA ने इसे practical बनाया — और अब यह TLS 1.3, Signal, SSH, Ed25519 code signing और हर file transfer service जो users को authenticate करती है, की नींव है।
गणितीय trapdoor
सभी public-key cryptography "trapdoor" functions पर निर्भर है — ऐसे calculations जो आगे करना आसान है लेकिन extra information के बिना reverse करना effectively असंभव। दो families dominant हैं:
- Integer factorization (RSA): दो large primes गुणा करना trivial है; उनके product को factor करना exponentially hard है। एक 2048-bit RSA key दो ~1024-bit primes use करती है। सबसे अच्छे known attack, General Number Field Sieve, को लगभग 2^112 operations चाहिए।
- Discrete logarithms over elliptic curves (ECDH, ECDSA, Ed25519): किसी curve पर point multiplication fast है; उसे reverse करके multiplier ढूंढना hard है। Curve25519 जैसी 256-bit curves 3072-bit RSA के equivalent security देती हैं।
दोनों problems Shor's algorithm के ज़रिये quantum computers के लिए आसान हैं, इसलिए NIST ने 2024 में FIPS 203–205 में post-quantum alternatives (ML-KEM और ML-DSA) standardize किए।
RSA व्यवहार में
Ron Rivest, Adi Shamir, और Leonard Adleman ने 1977 में RSA publish किया। scheme elegant है:
- दो large primes
pऔरqचुनें। n = p × q(modulus) औरφ(n) = (p-1)(q-1)compute करें।φ(n)का coprimeeचुनें, आमतौर पर 65537।dcompute करें ताकिe × d ≡ 1 (mod φ(n))।- Public key:
(n, e)। Private key:(n, d)।
Encryption: ciphertext = message^e mod n। Decryption: message = ciphertext^d mod n। यह Euler's theorem पर काम करता है।
Real-world RSA OAEP padding (RFC 8017) use करता है chosen-ciphertext attacks से बचने के लिए। Textbook RSA catastrophically insecure है। नई systems के लिए RSA-2048 minimum है; long-lived systems के लिए RSA-3072 या 4096।
Diffie-Hellman: keys ship किए बिना shared secrets
RSA किसी known recipient को encrypt करने देता है। Diffie-Hellman कुछ subtly different करता है: दो parties एक public channel पर shared secret derive कर सकती हैं, बिना secret भेजे।
Classic version (DH over integers modulo a large prime):
- दोनों parties एक large prime
pऔर generatorgपर agree करती हैं। - Alice secret
aचुनती है,A = g^a mod pभेजती है। - Bob secret
bचुनता है,B = g^b mod pभेजता है। - Alice
B^a mod p = g^(ab) mod pcompute करती है। - Bob
A^b mod p = g^(ab) mod pcompute करता है।
दोनों g^ab mod p तक पहुँचते हैं बिना a या b कभी भेजे। एक eavesdropper g, p, A, B देखता है लेकिन A और B से g^ab compute करना discrete logarithm problem को solve करना है।
Modern DH elliptic curves use करता है (ECDH)। X25519 standard choice है: 32-byte keys, 32-byte shared secrets, timing attacks के खिलाफ hardened implementation।
Elliptic curves और वे क्यों जीते
RSA पुराना लगता है क्योंकि है भी। Elliptic curve cryptography ने तीन practical कारणों से इसे replace किया:
- छोटी keys। एक 256-bit EC key एक 3072-bit RSA key की security देती है। वह 32 bytes बनाम 384 bytes है।
- तेज़ operations। Curve25519 पर ECDH modern CPU पर लगभग 70 microseconds लेता है। RSA-3072 key generation सेकंड लेती है।
- बेहतर randomness resilience। Ed25519 deterministic है — signatures को per-message random nonces की ज़रूरत नहीं, 2010 के Sony PS3 ECDSA disaster से बचाते हुए जहाँ constant nonce ने master key leak की।
NIST curves (P-256, P-384, P-521) widely supported हैं लेकिन historically कुछ cryptographers unexplained constants को लेकर distrustful रहे हैं। Curve25519 और Ed25519, Daniel Bernstein द्वारा designed, TLS 1.3, WireGuard, Signal और SSH में modern defaults हैं।
Signatures: कौन ने क्या भेजा यह साबित करना
Public-key crypto कुछ ऐसा करती है जो symmetric नहीं कर सकती: authorship prove करना। Signing encryption roles को reverse करता है — आप अपनी private key से "encrypt" (sign) करते हैं, और आपकी public key वाला कोई भी "decrypt" (verify) कर सकता है। अगर verify हो, तो आपने private key hold की होगी।
Real signatures arbitrary-sized messages handle करने के लिए hash functions use करती हैं:
h = SHA-256(message)compute करें।- Private key से
hsign करें (RSA-PSS, ECDSA, या Ed25519)। - Verifier received message को hash करता है, public key से signature के खिलाफ check करता है।
Applications: TLS certificates (CA साइट की public key sign करती है), code signing (Apple's notarization, Microsoft Authenticode), Git commit signing, software package managers (apt, Homebrew, npm)।
File transfer में public key crypto कहाँ use होती है
Anonymous link-based transfers (SwissTransfer, HexaTransfer) के लिए, public-key crypto अक्सर directly नहीं दिखती — URL fragment में एक random symmetric key सब handle करती है। लेकिन account-based services के लिए, public keys matter करती हैं:
- TLS 1.3 server authentication। हर HTTPS connection server के certificate से शुरू होता है, CA chain के खिलाफ verified। Ephemeral ECDHE key exchange फिर session key derive करती है।
- Account-to-account encryption। Tresorit, Proton Drive और Mega सभी users को signup पर key pair देते हैं। Accounts के बीच share की गई files recipient की public key से wrap होती हैं।
- Signed clients और updates। Desktop apps supply-chain attacks से बचने के लिए Ed25519 या RSA signatures से updates verify करते हैं।
- Password-less auth। WebAuthn और Passkeys secure hardware में stored EC keys use करते हैं (Touch ID, Windows Hello, YubiKey)।
Key distribution: बची हुई कठिन समस्या
Public-key crypto एक key-distribution problem solve करती है लेकिन दूसरी create करती है: आप कैसे जानते हैं कि एक public key वास्तव में उसी की है जिसका वह दावा करती है? तीन models:
- PKI (Public Key Infrastructure). Certificate authorities public keys sign करती हैं। Chrome, Firefox, Safari में roots के साथ TLS द्वारा use।
- Web of trust. PGP का approach — users एक-दूसरे की keys sign करते हैं। Flexible लेकिन scaling problems ने adoption को niche रखा।
- TOFU (Trust On First Use). SSH का approach — पहली बार key accept करो, बदलने पर warn करो। Simple लेकिन initial interception के प्रति vulnerable।
- Key transparency. Merkle-tree logs जहाँ सभी public keys publicly auditable हैं। WhatsApp, iMessage Contact Key Verification और modern passkey systems द्वारा use।
Unknown recipients के साथ file transfer के लिए, URL-fragment sharing पूरी तरह sidestep करती है — sender recipient को link के ज़रिये directly key देता है, और authenticity link share करने के लिए use किए गए channel पर depend करती है।
Quantum computing क्या बदलता है
Shor's algorithm चलाने वाला large-scale quantum computer RSA और elliptic-curve cryptography दोनों तोड़ देगा। वर्तमान estimates timeline को 10–20 साल में रखती हैं, लेकिन long shelf lives वाले data के लिए risk तत्काल है: "harvest now, decrypt later" attacks आज encrypted traffic record करते हैं और 2040 में decrypt करते हैं।
NIST के 2024 post-quantum standards:
- FIPS 203 (ML-KEM) — key exchange के लिए Diffie-Hellman / ECDH replace करता है। Lattice problems पर आधारित।
- FIPS 204 (ML-DSA) — signatures के लिए RSA/ECDSA replace करता है।
- FIPS 205 (SLH-DSA) — hash-based signature backup।
Cloudflare और Google TLS 1.3 key exchange में ML-KEM support करते हैं। File transfer services अगले कुछ वर्षों में follow करेंगी। Symmetric encryption (AES-256-GCM) largely unaffected है — Grover's algorithm इसकी effective strength को केवल आधा करता है।
सब कुछ एक साथ
Sensitive shares के लिए: TLS 1.3 X25519 key exchange के साथ connection protect करता है, AES-256-GCM bulk encryption handle करता है, और account-based services के लिए, Curve25519 के साथ ECDH per-file keys wrap करता है। Link-based services account layer skip करती हैं लेकिन simplicity gain करती हैं। सही तरीके से implement होने पर दोनों models strong security deliver करते हैं।
hexatransfer.com पर आज़माएं — मुफ्त, बिना अकाउंट, 10 GB तक।
एंड-टू-एंड एन्क्रिप्शन के साथ बड़ी फ़ाइलें सुरक्षित रूप से भेजें
एंड-टू-एंड एन्क्रिप्शन के साथ 10 GB तक की फ़ाइलें मुफ़्त में ट्रांसफ़र करें। अकाउंट की आवश्यकता नहीं। अपलोड से पहले आपकी फ़ाइलें ब्राउज़र में एन्क्रिप्ट की जाती हैं — कोई और उन्हें पढ़ नहीं सकता।
फ़ाइल भेजें