यह व्यापक गाइड आधुनिक सुरक्षित संचार प्रणालियों में उपयोग की जाने वाली उन्नत encryption अवधारणाओं, algorithms और protocols का अन्वेषण करती है। developers और security professionals के लिए आदर्श।
Symmetric Encryption Algorithms
AES (Advanced Encryption Standard)
Symmetric encryption के लिए gold standard, जिसे 2001 में U.S. सरकार द्वारा अपनाया गया।
प्रमुख विशेषताएं
- Key sizes: 128, 192, या 256 bits
- Block size: 128 bits
- Rounds: key size के आधार पर 10, 12, या 14
- Performance: अत्यधिक optimized, hardware acceleration उपलब्ध
सामान्य Modes
- GCM (Galois/Counter Mode): Authenticated encryption, अधिकांश उपयोग के मामलों के लिए अनुशंसित
- CBC (Cipher Block Chaining): पारंपरिक mode, अलग MAC की आवश्यकता
- CTR (Counter): Parallelizable, कुछ protocols में उपयोग किया जाता है
ChaCha20
Daniel J. Bernstein द्वारा डिज़ाइन किया गया आधुनिक stream cipher, AES विकल्प के रूप में तेजी से लोकप्रिय हो रहा है।
लाभ
- Hardware acceleration के बिना devices पर AES से तेज़
- Constant-time implementation (timing attacks के प्रति प्रतिरोधी)
- सरल डिज़ाइन, सुरक्षित रूप से implement करना आसान
- Authenticated encryption के लिए Poly1305 के साथ उपयोग किया जाता है
Asymmetric Encryption
RSA (Rivest-Shamir-Adleman)
Key exchange और digital signatures के लिए व्यापक रूप से उपयोग किया जाता है।
प्रमुख विचार
- न्यूनतम key size: 2048 bits (दीर्घकालिक सुरक्षा के लिए 4096 bits अनुशंसित)
- Performance: Symmetric encryption की तुलना में computationally महंगा
- Padding schemes: Encryption के लिए OAEP, signatures के लिए PSS का उपयोग करें
- Quantum threat: Quantum computers के प्रति संवेदनशील (Shor's algorithm)
Elliptic Curve Cryptography (ECC)
छोटे key sizes पर समतुल्य सुरक्षा के साथ RSA का अधिक कुशल विकल्प।
लोकप्रिय Curves
- Curve25519: ECDH key exchange के लिए डिज़ाइन किया गया, व्यापक रूप से अपनाया गया
- Ed25519: Digital signatures के लिए, SSH, GPG में उपयोग किया जाता है
- P-256 (secp256r1): NIST standard, व्यापक रूप से समर्थित
- P-384, P-521: उच्च सुरक्षा स्तर
RSA पर लाभ
- 256-bit ECC ≈ 3072-bit RSA security
- तेज़ computation
- छोटे keys और signatures
- कम bandwidth और storage आवश्यकताएं
Key Exchange Protocols
Diffie-Hellman (DH)
दो पक्षों को असुरक्षित channel पर shared secret स्थापित करने की अनुमति देता है।
Variants
- Classic DH: मूल implementation
- ECDH: Elliptic Curve संस्करण (अधिक कुशल)
- X25519: Curve25519 का उपयोग करने वाला आधुनिक ECDH
Perfect Forward Secrecy (PFS)
यह सुनिश्चित करता है कि दीर्घकालिक keys से समझौता होने पर भी पिछले संचार सुरक्षित रहें।
Implementation
- प्रत्येक session के लिए ephemeral key pairs उत्पन्न करें
- उपयोग के बाद session keys को नष्ट करें
- TLS 1.3, Signal Protocol, आदि में उपयोग किया जाता है
Hash Functions
SHA-2 Family
- SHA-256: 256-bit output, व्यापक रूप से उपयोग किया जाता है
- SHA-384, SHA-512: उच्च सुरक्षा स्तर
- Applications: Digital signatures, certificate validation, password hashing (उचित तकनीकों के साथ)
SHA-3 (Keccak)
- SHA-2 से अलग construction (sponge function)
- Length extension attacks के प्रति प्रतिरोधी
- उच्च सुरक्षा margins की आवश्यकता वाले applications के लिए उपयुक्त
BLAKE2/BLAKE3
- SHA-2 और SHA-3 से तेज़
- Cryptographically secure
- BLAKE3: अत्यधिक parallelizable, बड़े data के लिए उत्कृष्ट
Key Derivation Functions (KDFs)
PBKDF2 (Password-Based Key Derivation Function 2)
- उद्देश्य: Passwords से cryptographic keys derive करें
- Iterations: न्यूनतम 100,000 (OWASP अनुशंसा)
- Use case: Password storage, key derivation
Argon2
Password Hashing Competition (2015) का विजेता, नए applications के लिए अनुशंसित।
Variants
- Argon2id: Hybrid (अधिकांश उपयोग के मामलों के लिए अनुशंसित)
- Argon2i: Side-channel attacks के खिलाफ optimized
- Argon2d: GPU attacks के खिलाफ अधिकतम प्रतिरोध
scrypt
- Memory-hard function (hardware attacks के प्रति प्रतिरोधी)
- Litecoin, Tarsnap द्वारा उपयोग किया जाता है
- सुरक्षा और compatibility का अच्छा संतुलन
Message Authentication Codes (MACs)
HMAC (Hash-based MAC)
- Hash function को secret key के साथ जोड़ता है
- Authentication और integrity प्रदान करता है
- सामान्य: HMAC-SHA256, HMAC-SHA512
Poly1305
- One-time authenticator
- Authenticated encryption के लिए ChaCha20 के साथ उपयोग किया जाता है
- तेज़ और constant-time
Authenticated Encryption
यह महत्वपूर्ण क्यों है
केवल Encryption integrity की गारंटी नहीं देता है। एक attacker बिना पता लगाए ciphertext को संशोधित कर सकता है। Authenticated encryption इसे हल करता है।
AEAD (Authenticated Encryption with Associated Data)
- AES-GCM: सबसे व्यापक रूप से समर्थित
- ChaCha20-Poly1305: Mobile devices पर बेहतर
- AES-CCM: कुछ wireless protocols में उपयोग किया जाता है
Digital Signatures
RSA Signatures
- Padding: PSS (Probabilistic Signature Scheme) का उपयोग करें
- Hash function: SHA-256 या उच्चतर
- Key size: न्यूनतम 2048 bits
ECDSA (Elliptic Curve Digital Signature Algorithm)
- RSA से छोटे signatures
- सावधानीपूर्वक nonce generation की आवश्यकता (कमजोर RNG = compromised key)
- Deterministic variant (RFC 6979) अनुशंसित
Ed25519
- Deterministic (RNG की आवश्यकता नहीं)
- तेज़ signature generation और verification
- छोटे signatures (64 bytes)
- Side-channel attacks के प्रति प्रतिरोधी
आधुनिक Protocols
Signal Protocol
अत्याधुनिक end-to-end encryption protocol जिसका उपयोग Signal, WhatsApp, Facebook Messenger द्वारा किया जाता है।
प्रमुख विशेषताएं
- Double Ratchet: लगातार keys को अपडेट करता है
- Perfect Forward Secrecy: पिछले messages सुरक्षित रहते हैं
- Post-Compromise Security: Key compromise से recover करता है
- Asynchronous: तब भी काम करता है जब recipient offline हो
TLS 1.3
Transport Layer Security protocol का नवीनतम संस्करण।
सुधार
- कमजोर algorithms और cipher suites को हटा दिया गया
- हमेशा forward secrecy प्रदान करता है
- तेज़ handshake (1-RTT, 0-RTT विकल्प)
- Encrypted Server Hello
Noise Protocol Framework
सुरक्षित संचार प्रणालियों के निर्माण के लिए आधुनिक cryptographic protocol framework।
Applications
- WireGuard VPN
- Lightning Network
- I2P messaging
Post-Quantum Cryptography
खतरा
Quantum computers Shor's algorithm का उपयोग करके RSA और ECC को तोड़ सकते हैं। Symmetric algorithms कम प्रभावित होते हैं लेकिन बड़े keys की आवश्यकता होती है।
NIST Post-Quantum उम्मीदवार
- Kyber: Lattice-based key encapsulation
- Dilithium: Lattice-based digital signatures
- SPHINCS+: Hash-based signatures
संक्रमण रणनीति
- Hybrid दृष्टिकोण: Classical और post-quantum algorithms को मिलाएं
- Symmetric key sizes को 256 bits तक बढ़ाएं
- NIST standardization प्रक्रिया की निगरानी करें
- Algorithm agility के लिए योजना बनाएं
Implementation सर्वोत्तम प्रथाएं
अपनी खुद की Crypto न बनाएं
स्थापित, peer-reviewed libraries का उपयोग करें:
- libsodium: High-level, उपयोग में आसान
- OpenSSL: व्यापक, व्यापक रूप से समर्थित
- BoringSSL: Google का OpenSSL fork
- Ring: Rust cryptography library
Key Management
- महत्वपूर्ण keys के लिए hardware security modules (HSMs) का उपयोग करें
- Key rotation policies लागू करें
- कभी भी source code में keys को hardcode न करें
- कई उद्देश्यों के लिए key derivation का उपयोग करें
- उपयोग के बाद memory से keys को सुरक्षित रूप से delete करें
सुरक्षित Random Number Generation
- Cryptographically secure RNG (CSPRNG) का उपयोग करें
- कभी भी standard rand() functions का उपयोग न करें
- Operating system RNGs: /dev/urandom (Linux), CryptGenRandom (Windows)
- Language-specific: crypto.randomBytes (Node.js), secrets module (Python)
Timing Attack रोकथाम
- Secrets के लिए constant-time comparison का उपयोग करें
- Secret data के आधार पर branching से बचें
- Cache timing attacks के बारे में जागरूक रहें
- Timing attack resistance के साथ डिज़ाइन की गई libraries का उपयोग करें
Testing और Validation
Security Audits
- नियमित penetration testing
- Security experts द्वारा code reviews
- Third-party security audits
- Bug bounty programs
Compliance
- FIPS 140-2/3: U.S. सरकारी मानक
- Common Criteria: अंतर्राष्ट्रीय सुरक्षा प्रमाणन
- PCI DSS: Payment card industry आवश्यकताएं
आगे सीखने के लिए संसाधन
पुस्तकें
- "Cryptography Engineering" by Ferguson, Schneier, and Kohno
- "Serious Cryptography" by Jean-Philippe Aumasson
- "Applied Cryptography" by Bruce Schneier
ऑनलाइन संसाधन
- Cryptopals Crypto Challenges
- Stanford's Cryptography courses (Coursera)
- IACR ePrint Archive
- Crypto Stack Exchange