2013-02-26 28 views
5

मैं एनवीडिया सीयूडीए का उपयोग कर सीटीआर मोड में एईएस -256 को लागू करने की कोशिश कर रहा हूं। मैंने मुख्य विस्तार के लिए सीपीयू कोड सफलतापूर्वक कोड किया है और अब मुझे वास्तविक एईएस -256 एल्गोरिदम लागू करने की आवश्यकता है। विकिपीडिया के अनुसार, मैंने देखा कुछ कोड और विशेष रूप से this PDF (पृष्ठ 9), एईएस राउंड टेबल लुकअप की श्रृंखला के रूप में कार्यान्वित किया जा सकता है। मेरा सवाल यह है कि मैं इन तालिकाओं को कैसे उत्पन्न करूं? मुझे पता है कि इन टेबलों को स्टोर करने के लिए मुझे 4 केबी की आवश्यकता है, और यह कोई समस्या नहीं है। मैंने पूरा दिन बिना किसी सफलता के इन टेबलों को खोजने की कोशिश की है। पीडीएफ मैंने लुकअप टेबल टी 0, टी 1, टी 2 और टी 3 का उल्लेख करने के लिए एक लिंक पोस्ट किया है, लेकिन मुझे नहीं पता कि ये क्या हैं। यह गोल कुंजी 4, 5, 6 और 7 का भी उल्लेख करता है, लेकिन मुझे यह भी समझ में नहीं आता कि ये सूचकांक क्या कह रहे हैं।जेनरेटिंग एईएस (एईएस -256) लुकअप टेबल्स

निकटतम मैं यह देखने के लिए आया हूं कि इन लुकअप टेबल को कैसे उत्पन्न किया जाए this project से है। कोड के अंदर, वहाँ एक टिप्पणी है कि कहते हैं: (? यह एक आव्यूह गुणन या कुछ और)

Te0[x] = S [x].[02, 01, 01, 03]; 
Te1[x] = S [x].[03, 02, 01, 01]; 
Te2[x] = S [x].[01, 03, 02, 01]; 
Te3[x] = S [x].[01, 01, 03, 02]; 

हालांकि, मैं पूरी तरह से यकीन है कि मुझे पता है कि कि अंकन साधन नहीं हूँ। केवल एक चीज जिसे मैं पहचानता हूं वह मिश्रण-कॉलम भाग निरंतर मैट्रिक्स, साथ ही साथ एस-बॉक्स मैट्रिक्स है।

[संपादित करें] अब किसी ने इसे इंगित किया - एक लुकअप कार्यान्वयन वास्तव में धीमा कैसे हो सकता है? क्या यहां लुकअप टेबल के बिना एईएस लागू करना बुद्धिमान होगा?

+0

मुझे लगता है कि यदि आप कड़ी मेहनत करते हैं, तो वास्तव में केवल एस-बॉक्स हैं जिन्हें टेबल लुकअप के साथ कार्यान्वित किया जा सकता है। – trumpetlicks

+0

क्या आप निश्चित हैं? मैंने उपर्युक्त कार्यान्वयन खोला और यह पूरी तरह से लुकअप टेबल पर निर्भर करता है। यहां तक ​​कि एक प्रोजेक्ट भी है जो सभी परिचालनों के लिए ** केवल एक ** लुकअप टेबल का उपयोग करता है। मुझे वास्तव में इसकी आवश्यकता नहीं है, मुझे प्रति ऑपरेशन एक लुकअप टेबल की आवश्यकता है। यह निश्चित रूप से संभव है, मुझे बस यह पता लगाने की जरूरत है कि कैसे। – user2007674

+1

आपको एहसास है कि आप जो बोल रहे हैं वह एक सारणी होगी जो 2^(256 + 128 + 128) * 128 बिट्स बड़ी होगी। कुंजी के लिए 256, डेटा के लिए 128, और सीटीआर के लिए एक और 128। यह आउटपुट लुकअप के लिए पूर्ण इनपुट है (और यह एईएस को विपरीत करने में इतना मुश्किल बनाता है)। एक जगह पर नहीं, मैं इस समय आपके संदर्भ दस्तावेज़ को पढ़ सकता हूं, यह लुकअप पर 100% पर भरोसा कर सकता है और अभी भी केवल एसबॉक्स के लिए लुकअप है। एक एसबॉक्स एक प्रतिस्थापन के लिए खड़ा है, जो परिभाषा के अनुसार एक लुकअप टेबल होगा। – trumpetlicks

उत्तर

2

टी टेबल मैट्रिक्स रूप में एईएस दौर परिवर्तन का एक सीधा विवरण है। उन्हें बनाने के लिए, मूल Rijndael NIST proposal, अनुभाग 5.2.1 देखें।

+0

स्रोत संदर्भ के लिए बहुत उपयोगी लिंक! – Anders

0

मामले में किसी को अब भी दिलचस्पी है, इन देखने टेबल जाओ प्रोग्रामिंग भाषा के मानक पुस्तकालय में पाया जा सकता है - http://golang.org/src/crypto/aes/const.go#L80

वहाँ भी कैसे एक ही पैकेज की कसौटी पर फ़ाइलों में तालिकाओं उत्पन्न करने के लिए निर्देश दिए गए हैं ।

संबंधित मुद्दे