SHACAL-2 सिफर की गणना कैसे की जाती है?

Jan 12 2021

मैं विभिन्न हैश फ़ंक्शंस (वर्तमान में SHA) की अंतर्निहित कार्यक्षमता के बारे में जानने की कोशिश कर रहा हूं और स्टैनफोर्ड वीडियो देखने के बाद भी मैं बहुत अटक रहा हूं।

हैशिंग की एक विधि डेविड मेयर्स फ़ंक्शन और SHACAL-2 ब्लॉक सिफर्स के साथ मर्केल-डैमगार्ड निर्माण का उपयोग करके है।

जहां तक ​​मैं समझता हूं कि एमडी 64-बिट ब्लॉक की एक श्रृंखला में विभाजित है जिसमें पिछले ब्लॉक मान या IV (हैश फ़ंक्शन या कस्टम नमक कुंजी द्वारा परिभाषित प्रारंभिक वेक्टर) है। वर्तमान ब्लॉक मान और कुछ x बिट कुंजी के साथ ब्लॉक वैल्यू या IV SHACAL-2 फ़ंक्शन के माध्यम से जा रहा है, फिर नया सिफर।

क्या यह सही समझा गया है? यदि यह है: SHACAL फ़ंक्शन के अंदर क्या होता है? गणित क्या है?

मुझे यह मिला लेकिन यह वास्तव में मेरे सवाल का जवाब नहीं देता: SHA-256 में SHACAL

जवाब

2 kelalaka Jan 12 2021 at 18:13

एमडी निर्माण एक संपीड़न फ़ंक्शन का उपयोग करता है $C$ ()$F$ आंकड़ों में) ऐसा है कि इसमें दो इनपुट हैं।

$$h_i = C(h_{i-1},m_i)$$

और पहला $h_{-1} = IV$ और आखिरी में $H = h_{2^k-1}$ हैश मान है।

संपीड़न फ़ंक्शन एक ब्लॉक सिफर का उपयोग कर सकता है, जहां ब्लॉक सिफर को संदेश पिछले हैश मान है और कुंजी संदेश है। $h_i = E_{m}(h_{i-1})$

संपीड़न फ़ंक्शन के लिए एक ब्लॉक सिफर का उपयोग करने का पहला विवरण पृष्ठ 11 पर मर्कले की थीसिस में मौजूद है । यह निर्माण पूरी तरह से असुरक्षित है क्योंकि मौजूदा ब्लॉक सिफर सीधे जंजीर है और यह दिखाया जा सकता है कि यह है$\mathcal{O}(2^{n/2})$ इसके बजाय दूसरा-प्रिमिज प्रतिरोध $\mathcal{O}(2^{n})$

हम संबंधित प्रमुख हमलों को नहीं चाहते हैं क्योंकि एईएस और डेस जैसे कुछ ब्लॉक-सिफर में मौजूद हैं। यह एन्क्रिप्शन के लिए कोई समस्या पैदा नहीं करता है क्योंकि चाबियाँ यादृच्छिक रूप से एक समान चुनी जाती हैं, हालांकि, संबंधित कुंजियों का उपयोग हैश फ़ंक्शन पर हमला करने के लिए किया जा सकता है। इसकी चर्चा बड़े पैमाने पर मणिक और पर्नेल द्वारा की जाती है

हम संपीड़न कार्यों पर टकराव के हमलों के कारण बड़े इनपुट चाहते हैं [1] और इसलिए प्रक्रिया के लिए और अधिक दौर। इसलिए डिजाइनर मौजूदा निर्माण का उपयोग करने के बजाय एमडी निर्माण के लिए एक नया ब्लॉक सिफर बनाते हैं। SHA-1 के लिए इसे SHACAL कहा जाता है और SHA-2 के लिए इसे SHACAL-2 कहा जाता है।

विभाजन मूल्य संपीड़न फ़ंक्शन, MD5, SHA-1 पर निर्भर करता है, और SHA256 512-बिट संदेश ब्लॉकों का उपयोग करता है, SHA512 1024-बिट संदेश ब्लॉकों का उपयोग कर रहा है। संदेश आकार के साथ ब्लॉक आकार के कई हो सकते हैं, अंत में एन्कोडेड है।

उदाहरण के लिए, SHIST-512 NIST FIPS 180-4 पर पैडिंग

मान लीजिए कि संदेश की लंबाई, $M$, है $\ell$बिट्स। 1संदेश के अंत में थोड़ा सा भाग लें , उसके बाद$k$ शून्य बिट, कहाँ $k$ समीकरण का सबसे छोटा, गैर-नकारात्मक समाधान है $$\ell + 1 + k \equiv 896 \bmod 1024$$ फिर 128-बिट ब्लॉक को संलग्न करें जो संख्या के बराबर है $\ell$ बाइनरी प्रतिनिधित्व का उपयोग करके व्यक्त किया गया

मनमाने ढंग से ब्लॉक आकार के लिए औपचारिक रूप दें $b$ तथा $d$-बिट इनकोडेड संदेश का आकार (SHA-1 और SHA256 के लिए 64, SHA512 के लिए 128)।

$$\ell + 1 + k \equiv b-d \bmod b$$

इसलिए डिजाइन मानदंड कई राउंड के साथ एक ब्लॉक सिफर है, SHACAL में 80, SHA-256 में 64 और SHA512 में 80 फेरे हैं, जबकि राउंड फंक्शन को सरल रखा गया है।

और ब्लॉक सिफर का उपयोग डेविस-मेयर के रूप में एक-तरफा संपीड़न फ़ंक्शन बनाने के लिए किया जाता है ।

उदाहरण के लिए, SHA256 के लिए गणित है

  • $\operatorname{Ch}(E,F,G) = (E \land F) \oplus (\neg E \land G)$
  • $\operatorname{Ma}(A,B,C) = (A \land B) \oplus (A \land C) \oplus (B \land C)$
  • $\Sigma_0(A) = (A\!\ggg\!2) \oplus (A\!\ggg\!13) \oplus (A\!\ggg\!22)$
  • $\Sigma_1(E) = (E\!\ggg\!6) \oplus (E\!\ggg\!11) \oplus (E\!\ggg\!25)$

बिटवाइज़ रोटेशन SHA-512 के लिए विभिन्न स्थिरांक का उपयोग करता है। दिए गए नंबर SHA-256 के लिए हैं।
यह लाल$\boxplus$ मतलब $ c = a + b \mod 2^{32}$, यानी मोडुलो जोड़।

जैसा कि हम देख सकते हैं, सरल ऑपरेशन जो सीपीयू संभाल सकते हैं, हल्के गोल कार्य कर सकते हैं, एक छोटे से असंतुलित फिस्टेल संरचना के साथ।

और हमने टिनी एनक्रिप्शन एल्गोरिथ्म से सीखा कि, 32 राउंड के बाद भी सरल राउंड सुरक्षित हो सकते हैं।