क्या 'रिफ्लेक्टिव' हैश एल्गोरिदम मौजूद हैं?


11

क्या हैश एल्गोरिदम का एक वर्ग है, चाहे सैद्धांतिक या व्यावहारिक, जैसे कि कक्षा में एक एल्गोरिथ्म को नीचे दी गई परिभाषा के अनुसार 'प्रतिवर्तनीय' माना जा सकता है:

  • hash1 = algo1 ("इनपुट टेक्स्ट 1")
  • hash1 = algo1 ("इनपुट टेक्स्ट 1" + हैश 1)

+ ऑपरेटर आउटपुट (हैश 1) को इनपुट ("इनपुट टेक्स्ट 1") में वापस संयोजित करने के लिए कॉन्टेक्टेशन या कोई अन्य निर्दिष्ट ऑपरेशन हो सकता है ताकि एल्गोरिथ्म (एल्गो 1) बिल्कुल उसी परिणाम का उत्पादन करेगा। इनपुट और इनपुट + आउटपुट पर टक्कर। + ऑपरेटर को दोनों इनपुट की संपूर्णता को संयोजित करना होगा और एल्गो इनपुट के भाग को छोड़ नहीं सकता है।

एल्गोरिथ्म आउटपुट में उच्च एन्ट्रापी का उत्पादन करना चाहिए। यह हो सकता है, लेकिन आउटपुट को एक या दोनों संभावित इनपुट पर वापस करने के लिए क्रिप्टोग्राफिक रूप से कठिन नहीं होना चाहिए।

मैं गणितज्ञ नहीं हूं, लेकिन एक अच्छे उत्तर में इस बात का प्रमाण शामिल हो सकता है कि एल्गोरिदम का ऐसा कोई वर्ग क्यों नहीं हो सकता है। हालाँकि यह एक सार प्रश्न नहीं है। मैं वास्तव में अपने सिस्टम में इस तरह के एक एल्गोरिथ्म का उपयोग करने में दिलचस्पी रखता हूं, अगर कोई मौजूद है।

यह एक प्रश्न का एक डुप्लिकेट है जो पहली बार /programming/4823680/reflexx-shsh पर पोस्ट किया गया था



2
क्या आप सभी इनपुट पाठ के लिए या एक इनपुट पाठ के लिए इस संपत्ति में रुचि रखते हैं? यदि आप चाहते हैं कि यह सभी इनपुट पाठ के लिए है तो टकराव का निर्माण डिजाइन द्वारा तुच्छ है, इसलिए मुझे नहीं लगता कि यह एक अच्छा हैश फ़ंक्शन माना जा सकता है।
पीटर टेलर

कोई हैश फाइल करना चाहता है जिसमें अपना खुद का हैश हो! ;)
राफेल

@Peter टेलर - मैं एक ऐसे फंक्शन की तलाश में हूँ जो मनमाने इनपुट टेक्स्ट के लिए वर्णित हो। प्रत्येक अलग इनपुट एक हैश का उत्पादन करता है जो सामान्य रूप से हर दूसरे संभावित इनपुट के लिए उच्च पारस्परिक एन्ट्रापी होता है। एक अच्छा अपरिवर्तनीय हैश फ़ंक्शन जितना काम करता है। हालाँकि, मैं जिस हैश फ़ंक्शन की तलाश कर रहा हूँ, उसके लिए अपरिवर्तनीयता का गुण होना आवश्यक नहीं है। उच्च एन्ट्रापी पर्याप्त है।

@ राफेल - हां, इसे लगाने का एक शानदार तरीका है।

जवाबों:


9

मैं एक तुच्छ निर्माण देता हूं जो आवश्यकता को पूरा करता है। मैं इसे केवल "प्रतिवर्त" हैश फ़ंक्शन के अस्तित्व का जवाब देने के लिए प्रदान करता हूं ।

GGkk+|x|x

Hx

  1. |x|kH(x)=defG(x)
  2. |x|>kLR(|x|k)kxx=L+R|R|=kR=H(L)H(L)H(x)=defRH(x)=defG(x)

जैसा कि मैंने कहा, यह एक तुच्छ निर्माण है। इसे किसी भी हैश फ़ंक्शन पर लागू किया जा सकता है, व्यावहारिक (जैसे MD5, SHA-1, ...) या सैद्धांतिक।


H|R|=k

@ राफेल: टाइपो (सही) को इंगित करने के लिए धन्यवाद। H की G के समान एंट्रॉपी है, जब तक कि उस स्थिति में जहां R = G (L) न हो। आवश्यकता होने पर, इस स्थिति में, H (x) को R के बराबर होना चाहिए। हम यहां एंट्रॉपी बढ़ाने के लिए कुछ भी नहीं कर सकते हैं; चूंकि "रिफ्लेक्सिटी" आवश्यकता हमें आउटपुट को बदलने से रोकती है।
एमएस डौस्टी

@Sadeq: क्या यह आवश्यक है कि हैश फ़ंक्शन को पुनरावर्ती रूप से गणना की जाए? मैं किसी भी तरह से इस तथ्य से लाभान्वित होने वाला एल्गोरिथ्म हूं?
यासर सोभदेल

H(M+H(M)+H(M)++H(M))H(M)

सादिक, धन्यवाद। मेरा मानना ​​है कि यह मेरे सवाल का जवाब दे सकता है , जैसा कि यह पूछा गया था। आपने उत्तर को एक उपयुक्त कैविएट में लिख दिया है। व्यावहारिक दृष्टिकोण से, मुझे यह तथ्य पसंद है कि यह किसी भी प्रसिद्ध एल्गोरिथ्म जैसे SHA-1 के लिए एक उपरिशायी है। अगर मैं सही तरीके से समझ गया हूं, तो आपका एल्गोरिथ्म हैश की गणना तब तक करता रहेगा, जब तक कि यह आवश्यक टक्कर न मार दे और फिर यह रुक जाए। किस मामले में शायद हम इस भोले समाधान को डब कर सकते हैं। मेरी चिंता यह है कि एक अंतर्निहित धारणा है कि एम्बेडेड एल्गोरिथ्म (SHA-1 कहना) अंततः आवश्यक टक्कर हैश मारा जाएगा, एक दिया
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.