AES-256 एन्क्रिप्शन गाइड: मिलिट्री-ग्रेड फ़ाइल सुरक्षा
AES-256 एन्क्रिप्शन को समझें और यह गोल्ड स्टैंडर्ड क्यों है। जानें यह मिलिट्री-ग्रेड साइफ़र आपके ट्रांसफर को कैसे सुरक्षित रखता है।
AES-256 एक symmetric block cipher है जिसे US NSA ने CNSSP-15 के तहत TOP SECRET डेटा के लिए approve किया है। यह 256-bit key के साथ 128-bit blocks को 14 rounds के substitution, permutation और mixing operations से encrypt करता है। किसी एक AES-256 key को brute-force करने में औसतन 2^255 operations लगेंगे — एक संख्या इतनी विशाल कि दुनिया के सभी computers ब्रह्मांड की पूरी उम्र मिलकर भी उसे तोड़ नहीं सकते। इसीलिए SwissTransfer से Tresorit तक हर serious फ़ाइल ट्रांसफर सर्विस AES-256 को bulk cipher के रूप में उपयोग करती है। यहाँ समझते हैं यह वास्तव में कैसे काम करता है।
"256" का मतलब क्या है
AES तीन key sizes में आता है: 128, 192 और 256 bits। यह संख्या केवल key की लंबाई दर्शाती है, block size नहीं (जो हमेशा 128 bits होती है)। Key size तय करती है कि cipher कितने rounds चलाएगा: AES-128 के लिए 10, AES-192 के लिए 12, और AES-256 के लिए 14।
ज़्यादा rounds का मतलब है ज़्यादा diffusion — प्रत्येक output bit ज़्यादा input bits पर निर्भर होती है — और 2011 में प्रकाशित biclique attack जैसे cryptanalytic हमलों के खिलाफ ज़्यादा सुरक्षा। उस attack ने सैद्धांतिक रूप से AES-256 की effective security 256 bits से घटाकर 254.4 bits कर दी — जो अभी भी किसी भी व्यावहारिक हमले से बहुत आगे है।
Federal Information Processing Standard FIPS 197 AES को define करता है, और NIST SP 800-38A से 800-38G operating modes को।
Operating Modes: GCM बनाम CBC बनाम ECB
AES एक block cipher है — यह केवल एक 128-bit block encrypt करना जानता है। किसी भी size की फ़ाइल encrypt करने के लिए operating mode की ज़रूरत होती है। यह चुनाव बेहद महत्वपूर्ण है:
- ECB (Electronic Codebook): एक जैसे plaintext blocks से एक जैसा ciphertext बनता है। इसे कभी न use करें। "ECB penguin" image इसका प्रसिद्ध उदाहरण है जिसमें Tux की outline ECB-encrypted pixels से साफ दिखती है।
- CBC (Cipher Block Chaining): हर block को पिछले ciphertext के साथ XOR करता है। Authentication के लिए HMAC के साथ जोड़ने पर secure है, लेकिन अकेले CBC padding oracle attacks के लिए vulnerable है (2014 में SSL पर POODLE attack)।
- GCM (Galois/Counter Mode): counter से encrypt करता है और एक ही pass में 128-bit authentication tag बनाता है। Ciphertext से छेड़छाड़ करने पर decryption साफ तौर पर fail होता है। आधुनिक सर्विसेज़ यही use करती हैं।
AES-256-GCM, TLS 1.3, Signal, WireGuard और हर credible फ़ाइल ट्रांसफर सर्विस का default है। अगर कोई सर्विस mode बताए बिना सिर्फ "AES-256" कहती है, तो GCM मानें और जाँच करें।
IV (nonce) जिसे कभी reuse न करें
GCM को एक key के साथ प्रत्येक encryption के लिए एक unique 96-bit initialization vector चाहिए। एक ही key के साथ IV एक बार भी reuse करने पर attacker दो ciphertexts को XOR करके plaintext recover कर सकता है — WEP Wi-Fi पर यही catastrophic failure exploit हुई थी।
Best practice: IV को cryptographically secure RNG से generate करें (crypto.getRandomValues() browsers में, /dev/urandom Linux पर) और इसे ciphertext के साथ prepend करें। 96-bit random IV में 2^32 फ़ाइलें encrypt करने के बाद collision probability लगभग 2^-48 है — फ़ाइल ट्रांसफर सर्विस के लिए acceptable। अरबों फ़ाइलों में key reuse के लिए deterministic counter उपयोग करें।
Key Derivation: पासवर्ड से Keys बनाना
User mydog2024 जैसा पासवर्ड चाहते हैं। AES को 256 bits की uniform randomness चाहिए। इनके बीच का पुल है Key Derivation Function (KDF)। तीन आम तौर पर उपयोग होते हैं:
- PBKDF2 with HMAC-SHA-256 और 600,000 iterations (OWASP 2023 recommendation)। Wide support, Web Crypto API में उपलब्ध।
- scrypt memory-hardness जोड़ता है, GPU attack की cost बढ़ाता है। Bitcoin और LastPass इसे use करते हैं।
- Argon2id अभी सबसे best practice है — 2015 Password Hashing Competition का winner। Parameters:
memory=64 MB, iterations=3, parallelism=4।
12-character random password Argon2id के माध्यम से किसी modern GPU को brute force करने में लगभग एक अरब साल लगेंगे। password123 जैसा कमज़ोर password KDF चाहे जो हो, milliseconds में टूट जाएगा।
Browser में AES: Web Crypto API
Browsers window.crypto.subtle के ज़रिए AES-256-GCM को natively expose करते हैं। एक सामान्य flow:
const key = await crypto.subtle.generateKey(
{ name: "AES-GCM", length: 256 },
true,
["encrypt", "decrypt"]
);
const iv = crypto.getRandomValues(new Uint8Array(12));
const ciphertext = await crypto.subtle.encrypt(
{ name: "AES-GCM", iv },
key,
fileBytes
);
Modern CPUs में AES-NI instructions हैं जो इसे लगभग 3–5 GB/s per core की speed से accelerate करती हैं। एक 1 GB फ़ाइल mid-range laptop पर एक second से भी कम में encrypt होती है। Mobile पर Apple A-series और Qualcomm Snapdragon chips में ARMv8 Crypto Extensions हैं जो समान throughput देते हैं।
AES-256 किससे बचाता है और किससे नहीं
AES-256 एक specific समस्या solve करता है: data को confidential रखना — at rest या in transit — बशर्ते key secret हो। यह नहीं solve करता:
- Key management। अगर आप फ़ाइल के साथ password भी email कर देते हैं, तो AES-256 कोई काम नहीं आता।
- Endpoint compromise। Encryption से पहले plaintext पढ़ने वाला malware cipher को पूरी तरह bypass कर देता है।
- Implementation bugs। 2018 के BEAST, CRIME और Lucky13 attacks TLS implementations पर थे, AES पर नहीं।
- Side-channel attacks। Cache timing और power analysis ने constrained devices से AES keys निकाली हैं। AES-NI desktops पर इसे काफी हद तक mitigate करता है।
AES-256 यह भी साबित नहीं करता कि फ़ाइल किसने भेजी। इसके लिए Ed25519 या ECDSA के साथ digital signatures use करें।
"मिलिट्री-ग्रेड" ज़्यादातर marketing है
यह phrase इसलिए चलती है क्योंकि NSA CNSSP-15 ने 2003 में AES-256 को TOP SECRET data के लिए approve किया था। यह real है, लेकिन अब 23 साल पुरानी बात है — AES-128 SECRET के लिए approve है और अधिकांश civilian use cases के लिए समान रूप से काम करेगा। 128 से 256 का jump quantum computing में भविष्य की प्रगति के खिलाफ एक hedge है: Grover's algorithm theoretically symmetric key security को आधा कर देता है, AES-256 की effective strength 128 bits पर ले आता है — जो अभी भी secure है।
व्यवहार में, AES-256, AES-128 की तुलना में AES-NI के साथ शायद 40% ज़्यादा CPU लेता है और universally supported है, इसलिए यह default बन गया है भले ही 128 भी पर्याप्त होता।
कैसे verify करें कि सर्विस सच में AES-256-GCM use करती है
तीन तरीके:
- Security whitepaper पढ़ें। Credible services (Tresorit, Proton Drive, SwissTransfer, HexaTransfer) exact mode और IV handling publish करते हैं।
- Client code inspect करें। DevTools खोलें, JavaScript bundle में
AES-GCMयाaes-256-gcmखोजें। - Third-party audits देखें। Cure53, NCC Group और Trail of Bits ऐसे audits publish करते हैं जो reviewed algorithms का नाम लेते हैं।
Red flags: mode बताए बिना "bank-grade encryption", किसी भी तरह का "proprietary algorithm", या AES-128-ECB के references।
DPDP Act 2023 और भारतीय संदर्भ
Digital Personal Data Protection Act 2023 के Section 8(5) के तहत data fiduciaries को "reasonable security safeguards" लागू करने होंगे। 2025 के draft rules में encryption को baseline expectation के रूप में specify किया गया है। AES-256-GCM इस standard को पूरी तरह satisfy करता है और भारतीय businesses के लिए DPDP compliance का एक ठोस आधार बनता है।
इसे काम में लगाएं
संवेदनशील फ़ाइल भेजने के लिए: कोई ऐसी सर्विस चुनें जो AES-256-GCM explicitly कहे, प्रति फ़ाइल 96-bit random IV use करे, और encryption आपके browser में करे (उनके server पर नहीं)। इसके साथ 16+ character passphrase use करें जो Argon2id या PBKDF2 (600,000+ iterations) के ज़रिए derived हो।
hexatransfer.com पर आज़माएं — मुफ्त, बिना अकाउंट, 10 GB तक।
एंड-टू-एंड एन्क्रिप्शन के साथ बड़ी फ़ाइलें सुरक्षित रूप से भेजें
एंड-टू-एंड एन्क्रिप्शन के साथ 10 GB तक की फ़ाइलें मुफ़्त में ट्रांसफ़र करें। अकाउंट की आवश्यकता नहीं। अपलोड से पहले आपकी फ़ाइलें ब्राउज़र में एन्क्रिप्ट की जाती हैं — कोई और उन्हें पढ़ नहीं सकता।
फ़ाइल भेजें