XAES-256-GCM का परिचय
- XAES-256-GCM एक authenticated encryption algorithm (AEAD) है जो 256-बिट key और 192-बिट nonce का उपयोग करता है
- मुख्य लक्ष्य:
- रैंडम तरीके से जनरेट किए गए nonce को सुरक्षित रूप से सपोर्ट करना
- FIPS 140 अनुपालन
- सामान्य encryption libraries में आसानी से implement किया जा सके
XAES-256-GCM के डिज़ाइन लक्ष्य
- बड़े nonce का उपयोग करके असीमित messages के लिए सुरक्षित रूप से रैंडम जनरेशन संभव
- FIPS 140 अनुपालन के ज़रिए विभिन्न environments में उपयोग संभव
- सरल implementation के माध्यम से उपयोगकर्ता का बोझ कम करना
XAES-256-GCM कैसे काम करता है
- AES-256-GCM पर आधारित विस्तारित nonce संरचना का उपयोग
- input key और nonce का उपयोग करके derived key की गणना
- message processing के लिए AES-256 को तीन बार कॉल किया जाता है
implementation और optimization
- Go reference implementation 100 लाइनों से कम code में बनी है
- केवल standard library के
crypto/cipher और crypto/aes का उपयोग
- NIST SP 800-108r1 KDF और NIST AES-256-GCM AEAD का उपयोग करके इसे समझाया जा सकता है
थर्ड-पार्टी implementation और compatibility
- .NET 8+, pyca/cryptography, Web Cryptography API में थर्ड-पार्टी implementations मौजूद हैं
- FIPS 140 अनुपालन के लिए rounds की संख्या बदली नहीं जा सकती
विकल्प और test vectors
- AES-GCM-SIV जैसे विभिन्न विकल्प मौजूद हैं
- प्रमुख code paths के लिए test vectors शामिल हैं
सारांश
- XAES-256-GCM को सुरक्षित, compliant और interoperable AEAD के रूप में डिज़ाइन किया गया है
- यह XChaCha20Poly1305 और AES-GCM-SIV को पूरक करने की भूमिका निभाता है
- इसे Go standard library में जोड़े जाने की उम्मीद है
GN⁺ की राय
- XAES-256-GCM में बड़े nonce का उपयोग करके सुरक्षा बढ़ाने का पहलू उल्लेखनीय है
- FIPS 140 अनुपालन के कारण इसका उपयोग विभिन्न environments में किया जा सकता है
- Go जैसी भाषाओं में इसे आसानी से implement किया जा सकता है, इसलिए यह developers के लिए उपयोगी है
- AES-GCM-SIV जैसे विकल्पों पर भी विचार करना उचित है
- नई तकनीक अपनाते समय performance और compatibility की सावधानी से समीक्षा करनी चाहिए
1 टिप्पणियां
Hacker News राय
डिज़ाइन बहुत चतुर है: यह CMAC-आधारित है, इसलिए जब lower-level primitive उपलब्ध न हों तब AES-CBC का उपयोग करके key derive की जा सकती है
Filippo का काम शानदार है: यह random nonce इस्तेमाल करने पर लगभग हर 2^32 संदेशों के बाद key rotate करनी पड़ने वाली समस्या को हल करता है
काश यह फ़ीचर कुछ साल पहले मौजूद होता जब मैं encrypted file system लिख रहा था
उम्मीद है कि archive file encryption के लिए FIPS-compliant age[1] variant में इसका उपयोग होगा
एक non-cryptographer का सवाल: 192-बिट nonce क्यों उपयोग किया गया है, 256-बिट क्यों नहीं?
(2⁸⁰ संदेशों पर collision risk 2⁻³²)