speakerनया!iShredder™ Business अब iOS और Android के लिए एंटरप्राइज उपयोगकर्ताओं के लिए उपलब्ध है।और जानें
Extended AES

Protectstar विस्तारित AES

ब्लॉक-आकार: 512-बिट (64-बाइट)
कुंजी आकार: 128, 256 और 512-बिट (16, 32 और 64 बाइट) (डिफ़ॉल्ट 256-बिट)
संचालन के तरीके: ECB, CBC, CFB, OFB और CTR (डिफ़ॉल्ट CTR)
कुल राउंड संख्या: 24

सारांश

यह दस्तावेज़ हमारे विस्तारित AES एन्क्रिप्शन एल्गोरिदम के विवरण को समझाता है जो निश्चित लंबाई 512-बिट ब्लॉक लंबाई और तीन संभावित कुंजी लंबाई 128, 256 या 512 बिट का उपयोग करता है।

1. प्रेरणा
मानक AES 128-बिट संदेश ब्लॉक लंबाई (अर्थात 16 बाइट) और 128-बिट कुंजी लंबाई का उपयोग करता है। AES 192 और 256-बिट कुंजी लंबाई भी समर्थित हैं। 128/128 (ब्लॉक/कुंजी) संयोजन के लिए, AES संदेश ब्लॉक और कुंजी को 4*4 मैट्रिक्स के रूप में व्यक्त किया जा सकता है। प्रत्येक मैट्रिक्स सेल एक एकल बाइट का प्रतिनिधित्व करता है और 16 (4*4) सेल तब 16 बाइट होते हैं जो 128-बिट के बराबर हैं।

इसी तरह, विस्तारित AES के लिए हम संदेश ब्लॉकों और राउंड कुंजियों का प्रतिनिधित्व करने के लिए 4*16 मैट्रिक्स (4: पंक्ति आकार, 16: स्तंभ आकार) का उपयोग करते हैं। विस्तारित AES मूल AES के कुछ गुणों और कार्यों का ठीक वैसे ही उपयोग करता है (जैसे राउंड कुंजी जोड़ना, स्तंभ मिश्रण, आदि), जबकि कुछ गुण और कार्य विस्तारित AES के लिए विशिष्ट हैं (जैसे कुल राउंड संख्या, पंक्ति शिफ्टिंग, आदि)।

अगले अनुभागों में, मूल AES और विस्तारित AES में उपयोग किए गए संबंधित गुणों और कार्यों को विस्तार से समझाया गया है।

2. संचालन के तरीके
मूल AES द्वारा समर्थित सभी संचालन मोड (जैसे इलेक्ट्रॉनिक कोड बुक (ECB), सिफर ब्लॉक चेनिंग (CBC), सिफर फीडबैक (CFB), आउटपुट फीडबैक (OFB) और काउंटर (CTR)) को विस्तारित AES के लिए भी लागू किया गया है।

3. कुल राउंड संख्या
एकल ब्लॉक को एन्क्रिप्ट और डिक्रिप्ट करने के लिए, मूल AES एल्गोरिदम कुल 10 राउंड में अपने कार्यों को लागू करता है। यह संख्या 10 निम्नलिखित सूत्र से गणना की जाती है:
राउंड संख्या = (कुंजी आकार या ब्लॉक आकार शब्दों में) + 6

स्थिरांक संख्या 6 को AES डिजाइनरों द्वारा ज्ञात क्रिप्टो हमलों के अनुसार निर्दिष्ट और निश्चित किया गया है। यदि कुंजी आकार 256-बिट है तो 14 राउंड (8+6) आवश्यक हैं।

विस्तारित AES के लिए, ब्लॉक लंबाई 512-बिट पर स्थिर है। इसका मतलब है 16 शब्द क्योंकि प्रत्येक शब्द 4 बाइट का होता है। कुल राउंड संख्या ऊपर दिए गए सूत्र के आधार पर 22 गणना की जाती है। वास्तव में, ShiftRow ऑपरेशन के कारण हमें 2 अतिरिक्त राउंड की आवश्यकता होती है जैसा कि अगले अनुभागों में समझाया गया है। निष्कर्षतः, विस्तारित AES एकल ब्लॉक को एन्क्रिप्ट और डिक्रिप्ट करने के लिए 24 राउंड लागू करता है।

4. पैडिंग
पैडिंग ऑपरेशन ब्लॉक सिफर के लिए संदेश ब्लॉक और कुंजी ब्लॉक को पैड करने के लिए बहुत सामान्य है। विस्तारित AES के लिए, हमें संदेश और कुंजी दोनों की पैडिंग की आवश्यकता होती है।

4.1. संदेश पैडिंग
इनपुट संदेशों की लंबाई विस्तारित AES में 512 की गुणज होनी चाहिए। पैडिंग ऑपरेशन के लिए, हम RFC 1321 में वर्णित पैडिंग तंत्र का पालन करते हैं। इस पैडिंग विधि में, मूल अंतिम संदेश बिट के बाद, एक बिट "1" डाला जाता है और फिर "0" बिट्स जोड़े जाते हैं जब तक कि अंतिम संदेश ब्लॉक की लंबाई 512 न हो जाए। यदि किसी अतिरिक्त पैडिंग "0" के लिए कोई स्थान नहीं बचता है, तो संदेश के अंत में एक नया 512-बिट ब्लॉक जोड़ा जाता है।

4.2. कुंजी पैडिंग
विस्तारित AES 16, 32 और 64 बाइट की कुंजी आकारों का समर्थन करता है। कुंजी ब्लॉक को प्रारंभ करने के लिए, उपयोगकर्ताओं द्वारा दिया गया पासवर्ड उपयोग किया जाता है। यदि पासवर्ड में कुंजी ब्लॉक को भरने के लिए पर्याप्त वर्ण नहीं हैं, तो कुंजी ब्लॉक में शेष बाइट्स को शून्य से भरा जाता है। वास्तव में यह सरल पैडिंग मूल AES के लिए पर्याप्त होगी, लेकिन विस्तारित AES के लिए नहीं। 64 बाइट कुंजी आकार को ध्यान में रखते हुए, मान लें कि पासवर्ड केवल कुंजी ब्लॉक के पहले 10 बाइट्स से बना है और शेष 54 बाइट्स शून्य से भरे गए हैं। दूसरी ओर, यह प्रारंभिक कुंजी ब्लॉक राउंड कुंजियों को उत्पन्न करने के लिए उपयोग किया जाता है। इस स्थिति में, कई राउंड कुंजियाँ जिनका मान शून्य होगा, क्योंकि कुंजी ब्लॉक में कई शून्य बाइट्स होते हैं। इस समस्या को रोकने और कई शून्य मान वाली राउंड कुंजियाँ उत्पन्न न करने के लिए, हम CBC मोड में एक निश्चित कुंजी के साथ शून्य-पैडेड कुंजी ब्लॉक पर मूल AES एन्क्रिप्शन लागू करते हैं। एन्क्रिप्शन परिणाम पैडेड कुंजी बन जाता है राउंड कुंजियाँ उत्पन्न करने के लिए और हम कई-शून्य समस्या को रोकते हैं।

5. राउंड कुंजी उत्पन्न करना
राउंड कुंजियाँ पैडेड कुंजी ब्लॉक से उत्पन्न होती हैं जैसा कि पिछले "कुंजी पैडिंग" अनुभाग में समझाया गया है। मूल राउंड कुंजी उत्पन्न करने की प्रक्रिया (देखें Rijndael Block Cipher Specification, पृ. 15) को विस्तारित AES के लिए थोड़ा संशोधित किया गया है और निम्नलिखित एल्गोरिदम राउंड कुंजियाँ उत्पन्न करने के लिए उपयोग किया जाता है:

KeyExpansion(byte Key[4*Nk] word W[Nb*(Nr+1)])
{
  for(i = 0; i < Nk; i++)
    W[i] = (key[4*i],key[4*i+1],key[4*i+2],key[4*i+3]);

  for(i = Nk; i < Nb * (Nr + 1); i++)
  {
    temp = W[i - 1];
    if (i % Nk == 0 || (I % Nk==4 && Nk>6))
      temp = SubByte(RotByte(temp)) ^ Rcon[i / Nk];
    else if ((i % Nk == 8 || i % Nk == 12) && Nk>6)
      temp = SubByte(temp);
    W[i] = W[i - Nk] ^ temp;
  }
}

6. कार्य
मूल AES मूल रूप से 4 मुख्य कार्यों का उपयोग करता है। ये हैं संदेश ब्लॉक और राउंड कुंजी के बीच xor-जोड़ ऑपरेशन (AddRoundKey), Sbox लुकअप्स (SboxSubstitution), पंक्ति शिफ्टिंग (ShiftRow) और मैट्रिक्स में प्रत्येक स्तंभ को मिलाना (MixColumn)।

1.1.1. AddRoundKey
राउंड कुंजी जोड़ने की प्रक्रिया के लिए, मूल और विस्तारित AES में कोई अंतर नहीं है।

1.1.2. SboxSubstitution
Sbox लुकअप प्रक्रिया भी मूल और विस्तारित AES में समान है।

1.1.3. ShiftRow
पंक्ति शिफ्टिंग प्रक्रिया मूल और विस्तारित AES में भिन्न है। मूल AES पंक्ति शिफ्टिंग के लिए {0,1,2,3} ऑफसेट लागू करता है। इसका मतलब है कि ShiftRow ऑपरेशन में, पहली पंक्ति के बाइट शिफ्ट नहीं होते। दूसरी पंक्ति के बाइट 1-बाइट बाएं (एन्क्रिप्शन के लिए) शिफ्ट होते हैं; तीसरी पंक्ति के बाइट 2-बाइट बाएं शिफ्ट होते हैं और अंत में अंतिम पंक्ति के बाइट 3-बाइट बाएं शिफ्ट होते हैं। ShiftRow ऑपरेशन AES के प्रत्येक राउंड में लागू किया जाता है और दो राउंड के बाद ShiftRow और MixColumn ऑपरेशनों का संयोजन मैट्रिक्स पर कुल प्रसार प्रदान करता है; इसका मतलब है कि दो राउंड के बाद, प्रत्येक मैट्रिक्स सेल मैट्रिक्स के सभी अन्य सेल के मान को प्रभावित करता है।

लेकिन यदि हम विस्तारित AES में पंक्ति शिफ्टिंग के लिए {0,1,2,3} ऑफसेट लागू करते हैं, तो यह कुल प्रसार 2 राउंड की बजाय 5 राउंड के बाद प्राप्त होता है। इसलिए, हमें बेहतर शिफ्टिंग ऑफसेट खोजने चाहिए जो कुछ राउंड में कुल प्रसार प्रदान करें। इस उद्देश्य के लिए, हमने एक प्रोग्राम लिखा (देखें com.crypt.test.OptimumShiftRow.java वितरित स्रोत कोड) जिसने इष्टतम शिफ्टिंग ऑफसेट की गणना की। परिणाम यह था कि विस्तारित AES के लिए कुल प्रसार केवल 4 राउंड के बाद प्राप्त किया जा सकता है। कई उम्मीदवार थे जो 4 राउंड में कुल प्रसार प्रदान करते थे और हमने विस्तारित AES के लिए {0,1,4,5} ऑफसेट चुने।

1.1.4. MixColumn मूल और विस्तारित AES दोनों के लिए समान MixColumn ऑपरेशन लागू किया जाता है। मूल AES में केवल 4 स्तंभ होते हैं, जबकि विस्तारित AES में 16 स्तंभ होते हैं।

स्रोत कोड डाउनलोड करें:
PDF Protectstar Extended AES Algorithm (230kb / PDF)

संदर्भ: