सामग्री पर जाएँ
HexaTransfer
ब्लॉग पर वापस
एन्क्रिप्शन और सुरक्षा

सिमेट्रिक vs असिमेट्रिक एन्क्रिप्शन: मुख्य अंतर

सिमेट्रिक vs असिमेट्रिक एन्क्रिप्शन को सरल भाषा में समझें। जानें दोनों कैसे काम करते हैं और आधुनिक फ़ाइल ट्रांसफर में कैसे जुड़ते हैं।

Symmetric encryption एन्क्रिप्शन और decryption दोनों के लिए एक ही key इस्तेमाल करता है — जैसे AES-256-GCM, जो cipher ट्रांसफर के दौरान आपकी files secure करता है। Asymmetric encryption एक key pair इस्तेमाल करता है: एक public key जो कोई भी देख सकता है और एक private key जो सिर्फ आप रखते हैं — RSA-4096 और Curve25519 जैसे algorithms। Symmetric तेज़ है (आधुनिक CPU पर gigabytes per second) लेकिन दोनों पार्टी को एक ही secret share करना होता है। Asymmetric key-exchange problem हल करता है लेकिन 1,000 गुना धीमा है। हर आधुनिक फ़ाइल ट्रांसफर सर्विस — HexaTransfer, Tresorit, Proton Drive, SwissTransfer — दोनों इस्तेमाल करती है: asymmetric से symmetric key exchange, फिर symmetric से actual फ़ाइल encrypt।

एक-key की दुनिया: symmetric encryption

Symmetric ciphers दोनों दिशाओं के लिए एक ही key इस्तेमाल करते हैं। अगर मैं key K से फ़ाइल encrypt करूँ, तो आपको decrypt करने के लिए key K चाहिए। अभी भी उपयोग में बड़े symmetric algorithms:

  • AES (Rijndael) 128, 192, या 256-बिट keys के साथ, FIPS 197 में standardized।
  • ChaCha20 256-बिट keys के साथ, AES-NI hardware acceleration के बिना devices पर preferred।
  • 3DES — 2023 में NIST ने deprecate किया, इस्तेमाल न करें।

Throughput बड़ा फ़ायदा है। AES-256-GCM Intel AES-NI पर प्रति core लगभग 3–5 GB/s चलता है, और ChaCha20-Poly1305 ARM phones पर 1.5–3 GB/s। 10 GB फ़ाइल encrypt करने में सेकंड लगते हैं।

समस्या: key दूसरे को कैसे पहुँचाएं? Email करना purpose defeat करता है। यह key distribution problem है, और इसीलिए asymmetric exist करता है।

दो-key की दुनिया: asymmetric encryption

1976 में Diffie और Hellman ने invent किया और 1977 में Rivest, Shamir और Adleman ने RSA के रूप में realize किया। हर user के पास key pair होती है: openly published public key और secret रखी private key। Public key से encrypt की कोई भी चीज़ सिर्फ private key से decrypt हो सकती है, और उल्टा।

अगर आप मुझे secret फ़ाइल भेजना चाहते हैं, तो मेरी public key से encrypt करें। सिर्फ मेरी private key खोल सकती है — और मुझे आपके साथ कुछ secret share करने की ज़रूरत नहीं पड़ी। Key distribution solved।

मौजूदा asymmetric algorithms:

  • RSA-2048 या RSA-4096 — धीमे लेकिन universally supported, TLS certificates में।
  • Elliptic curve (ECDH, ECDSA) P-256, P-384, या Curve25519 — छोटी keys, तेज़ operations। 256-बिट EC key 3072-बिट RSA key की security match करती है।
  • Ed25519 — signing के लिए आधुनिक default, SSH और Signal द्वारा इस्तेमाल।

Asymmetric files के लिए बहुत धीमा क्यों है

Asymmetric math महंगी है। RSA-4096 encryption आधुनिक CPU पर लगभग 100–500 operations per second चलती है। हर operation लगभग 470 bytes संभालती है (RSA block size minus padding)। यह शायद 200 KB/second — AES-256-GCM से लगभग 50,000 गुना धीमा।

RSA से 10 GB फ़ाइल encrypt करने में लगभग 14 घंटे लगेंगे। AES-256-GCM के साथ लगभग 3 सेकंड। Speed में यह asymmetry ही वजह है कि कोई files सीधे RSA से encrypt नहीं करता।

Hybrid encryption: real-world approach

हर protocol जिसे security और speed दोनों चाहिए दोनों combine करता है। TLS 1.3, PGP, Signal, Age और हर credible फ़ाइल ट्रांसफर सर्विस यह pattern इस्तेमाल करती है:

  1. Sender random 256-बिट AES key generate करता है ("session key" या "file key")।
  2. फ़ाइल उस key से AES-256-GCM से encrypt होती है।
  3. AES key खुद recipient की public key से encrypt होती है (RSA-OAEP या ECIES)।
  4. Ciphertext और encrypted key दोनों recipient को जाते हैं।
  5. Recipient अपनी private key से AES key decrypt करता है, फिर उससे फ़ाइल।

Per recipient, 256-बिट key के लिए एक बार asymmetric cost pay होती है। Bulk फ़ाइल symmetrically पूरी speed से संभाली जाती है। Best of both worlds।

फ़ाइल ट्रांसफर सर्विसेज़ कहाँ अलग हैं

Browser-based ट्रांसफर सर्विसेज़ के सामने twist है: रिसीवर के पास key pair नहीं हो सकता। वे बस link click कर रहे हैं। तीन patterns इसे handle करते हैं:

  • Shared-link symmetric only (SwissTransfer, HexaTransfer, Firefox Send के successors)। Sender के ब्राउज़र में random AES-256 key generate होती है, URL fragment में embed होती है, और recipient का ब्राउज़र fragment से पढ़ता है। कोई asymmetric crypto ज़रूरी नहीं — fragment ही channel है।
  • Account-to-account asymmetric (Tresorit, Proton Drive)। हर user के signup पर RSA या ECC key pair generate होती है। Specific recipient के लिए encrypt की गई files उनकी public key इस्तेमाल करती हैं।
  • Password के साथ hybrid (कई सर्विसेज़)। URL fragment में salt होता है; user password type करता है; PBKDF2 या Argon2id symmetric key derive करता है। कोई asymmetric नहीं, लेकिन password shared secret का काम करता है।

Shared-link approach सबसे simple है और account के बिना recipients के लिए काम करता है। Account-bound asymmetric stronger है क्योंकि link खोने से key leak नहीं होती। अपने threat model के हिसाब से चुनें।

Digital signatures: asymmetric का दूसरा काम

Asymmetric वह करता है जो symmetric नहीं कर सकता: authorship prove करना। अगर मैं अपनी private key से फ़ाइल sign करूँ, तो मेरी public key वाला कोई भी verify कर सकता है कि मैंने sign किया, और यह भी कि तब से tamper नहीं हुई। Symmetric authentication दे सकता है (HMAC, GCM's tag) लेकिन सिर्फ उनके बीच जो पहले से secret share करते हैं।

उपयोग में signature algorithms:

  • RSA-PSS SHA-256 के साथ — legacy लेकिन widely supported।
  • ECDSA P-256 या P-384 पर — NIST-approved, US federal systems में।
  • Ed25519 — तेज़, deterministic, bad RNG के खिलाफ resistant। आधुनिक choice।

Software distribution — apt, Homebrew, Docker images — supply-chain tampering रोकने के लिए Ed25519 या RSA signatures पर निर्भर करती है। फ़ाइल ट्रांसफर सर्विसेज़ आमतौर पर signatures directly expose नहीं करतीं, लेकिन AES-256-GCM में GCM authentication tag single encryption के भीतर integrity देता है।

Key sizes और security levels

Classical computers के खिलाफ equivalent security के लिए quick conversion table:

  • 128-बिट symmetric = 3072-बिट RSA = 256-बिट EC (P-256 या Curve25519)
  • 192-बिट symmetric = 7680-बिट RSA = 384-बिट EC (P-384)
  • 256-बिट symmetric = 15360-बिट RSA = 512-बिट EC (P-521)

NIST की नई systems के लिए मौजूदा recommendation: कम से कम 112-बिट security, यानी RSA-2048 या P-256। Federal agencies 2030 तक minimum 128-बिट (RSA-3072, P-384) इस्तेमाल करते हैं।

भविष्य के quantum computers के खिलाफ, symmetric keys लगभग आधी strength खोते हैं (Grover's algorithm), जबकि RSA और ECC पूरी तरह टूट जाते हैं (Shor's algorithm)। NIST ने 2024 में post-quantum replacements standardize किए: key exchange के लिए ML-KEM (पहले Kyber) और signatures के लिए ML-DSA (पहले Dilithium)। Migration चल रही है लेकिन धीमी।

कब कौन सा इस्तेमाल करें

व्यावहारिक decision guide:

  • अपने लिए फ़ाइल encrypt करना (backup, archive): Argon2id के ज़रिए strong password से symmetric AES-256-GCM। Asymmetric ज़रूरी नहीं।
  • एक known recipient को फ़ाइल भेजना: hybrid — फ़ाइल के लिए AES-256-GCM, session key के लिए public-key wrap।
  • कई recipients को भेजना: फ़ाइल एक बार AES से encrypt करें, फिर key अलग-अलग हर recipient की public key से wrap करें। प्रति recipient लगभग 300 bytes जोड़ता है।
  • Authorship prove करना: ciphertext पर Ed25519 signature।
  • Link से one-off share: URL fragment में key के साथ symmetric।

सब कुछ एक साथ

संवेदनशील transfers के लिए आज का pragmatic stack: bulk encryption के लिए AES-256-GCM, recipients के पास identities हों तो key exchange के लिए X25519 ECDH, password-derived keys के लिए PBKDF2 या Argon2id, और transport layer के रूप में TLS 1.3। यह combination है जो आधुनिक audited सर्विसेज़ deploy करती हैं। DPDP Act 2023 के तहत भारत में sensitive data ट्रांसफर के लिए यही combination सबसे मज़बूत सुरक्षा सुनिश्चित करता है।

hexatransfer.com पर आज़माएं — मुफ्त, बिना अकाउंट, 10 GB तक।

एंड-टू-एंड एन्क्रिप्शन के साथ बड़ी फ़ाइलें सुरक्षित रूप से भेजें

एंड-टू-एंड एन्क्रिप्शन के साथ 10 GB तक की फ़ाइलें मुफ़्त में ट्रांसफ़र करें। अकाउंट की आवश्यकता नहीं। अपलोड से पहले आपकी फ़ाइलें ब्राउज़र में एन्क्रिप्ट की जाती हैं — कोई और उन्हें पढ़ नहीं सकता।

फ़ाइल भेजें