एईएस काउंटर मोड बनाम सीबीसी मोड की सुरक्षा

Evgeni Vaknin 09/05/2017. 1 answers, 401 views
aes cbc ctr nonce

एईएस-सीबीसी के लिए सीपीए सुरक्षित होने के लिए उपयोग किए जाने वाले चतुर्थ को प्रत्येक पैकेट के लिए यादृच्छिक रूप से चुना जाना चाहिए। यदि चौथाई एन्क्रिप्शन से अनुमानित है तो सीपीए सुरक्षित नहीं है। एईएस-सीटीआर मोड के लिए भी यही सच है? अर्थात, एईएस-सीटीआर मोड के लिए पहला काउंटर यादृच्छिक होना चाहिए या यह एक गैर नहीं हो सकता है? धन्यवाद

1 Answers


Patrick K 07/31/2017.

एईएस-सीटीआर इनपुट ब्लॉक की आवश्यकता यह है कि वे एक कुंजी के जीवनकाल के दौरान unique होना चाहिए। ज्यादातर मामलों में एक यादृच्छिक 96 बिट गैर का उपयोग 32 बिट काउंटर के साथ किया जाता है जो 0 से शुरू होता है। यदि एईएस-सीटीआर के लिए एक ही इनपुट ब्लॉक दो बार होता है, तो एईएस-सीटीआर अब सीपीए सुरक्षित नहीं है। इस मामले में, यह $ 2 ^ {32} $ ब्लॉक के बाद काउंटर ओवरफ्लो के कारण हो सकता है या यादृच्छिक रूप से चुने गए 96 बिट नॉनस (जन्मदिन विरोधाभास: $ sqrt {2 ^ {96}} $ संदेशों के बाद 50% मौका। निम्नलिखित मामले पर विचार करें:

दो अलग-अलग 1-ब्लॉक संदेश $ P $ और $ P '$ को उसी कुंजी $ K $ (जिसे पहले से बातचीत की जा सकती है) के तहत भेजा जाता है और उसी गैर $ N $ के साथ। हमलावर जानता है कि संबंधित सिफर ग्रंथ $ सी $ और $ सी '$ है जहां उन्हें कुंजीस्ट्रीम (जो गैर और काउंटर पर आधारित है) के साथ XORing द्वारा गणना की जाती है:

$ सी = पी \ ओप्लस ई_के (एन, 0) $

$ सी '= पी' \ ओप्लस ई_के (एन, 0) $

फिर हमलावर सिफर ग्रंथों को आसानी से जोड़ सकता है

$ सी \ ओप्लस सी '= पी \ ओप्लस ई_के (एन, 0) \ ओप्लस पी' ओप्लस ई_के (एन, 0) = पी \ ओप्लस पी '$

और वह दो सादे ग्रंथों के बीच 'दूरी' प्राप्त करता है। अंग्रेजी भाषा में अनावश्यकता के कारण, वह $ पी $ और $ पी '$ निर्धारित करने में सक्षम हो सकता है।

इस समस्या को "दो-बार-पैड" के रूप में भी जाना जाता है। एक बार एक ही कीस्ट्रीम सादे टेक्स्ट के साथ एक्सओआरड हो जाने के बाद, हमें परेशानी होती है। इसलिए, यह महत्वपूर्ण है कि एईएस एन्क्रिप्शन के लिए इनपुट एक कुंजी के जीवनकाल के दौरान अद्वितीय है। यह अप्रत्याशित, सिर्फ अद्वितीय नहीं होना चाहिए।

5 comments
Evgeni Vaknin 07/31/2017
कथन द्वारा "2 ^ 32 संदेश" मुझे लगता है कि आप एईएस में 16 बाइट के 2 ^ 32 ब्लॉक का मतलब है? यदि हां, तो 2 ^ 32 ब्लॉक समय 2 ^ 32 * 128 बिट्स है, जो 10 जीबीपीएस में है, लगभग 1 मिनट ... इसलिए प्रत्येक 1 मिनट में एक कुंजी एक्सचेंज एल्गोरिदम को एक नई कुंजी और नॉन सेट अप करने के लिए निष्पादित किया जाना है ?
1 Patrick K 07/31/2017
हाँ तुम सही हो। मैंने जवाब संपादित किया है। यदि आपके पास स्थिर स्थिरता है, तो आपको इस मामले में हर मिनट एक महत्वपूर्ण विनिमय करने की आवश्यकता होगी। लेकिन चूंकि गैर संदेश आमतौर पर प्रत्येक संदेश के साथ बदल जाता है, इसलिए आप $ 2 ^ {32} \ cdot128 $ बिट्स की अधिकतम लंबाई के संदेशों तक सीमित हैं। किसी दिए गए कुंजी के तहत भेजे जा सकने वाले संदेशों की अधिकतम संख्या जन्मदिन विरोधाभास से सीमित है। यदि प्रत्येक संदेश के लिए यादृच्छिक रूप से 96 बिट नॉन को चुना जाता है, तो गैर संदेशों की टक्कर की संभावना q संदेशों के लिए $ \ लगभग 0.5q ^ 2/2 ^ {96} $ है। यदि आप यह शब्द अधिकतर 1% होना चाहते हैं, तो आपका $ q_ {max} = 4 \ cdot10 ^ {13} $।
Evgeni Vaknin 07/31/2017
क्या होता है यदि मैं यादृच्छिक nonce का उपयोग नहीं करता, बल्कि मैं गैर प्रारंभिक मूल्य के लिए एक यादृच्छिक मान का उपयोग करता हूं और प्रत्येक पैकेट को बढ़ाने के बजाय? उदाहरण के लिए, मान लें कि प्रत्येक पैकेट में 256 एईएस ब्लॉक (128 बिट प्रत्येक) से कम है, और एईएस-सीटीआर के लिए काउंटर 120 बिट्स के नॉन से बना है, जो कुंजी का आदान-प्रदान होने पर यादृच्छिक रूप से प्रारंभ होता है, और पैकेट 8 बिट्स के भीतर काउंटर का उपयोग 128 बिट ब्लॉक की गणना के लिए किया जाता है। और प्रत्येक नया पैकेट, (अगली टिप्पणी में जारी रखें)
Evgeni Vaknin 07/31/2017
मैं 1 से nonce वृद्धि, और 8 बिट काउंटर साफ़ करें। इस मामले में, जन्मदिन विरोधाभास प्रासंगिक नहीं है, क्योंकि टक्कर असंभव है (मान लीजिए कि मैं बिना किसी समाप्त होने के 120 बिट काउंटर से पहले कुंजी बदल रहा हूं)
1 Patrick K 08/01/2017
हां, अगर आप किसी भी तरह से सुनिश्चित करते हैं कि आप कभी भी मुख्यधारा-पीढ़ी के लिए समान (इनपुट-ब्लॉक, कुंजी) जोड़ी का पुन: उपयोग नहीं करते हैं, तो सबकुछ ठीक है। (निश्चित रूप से यह मानते हुए कि कुंजी गुप्त रखा गया है और यादृच्छिक रूप से समान रूप से चुना जाता है)

Related questions

Hot questions

Language

Popular Tags