पर उपयोग करने वाली बड़ी फ़ाइलों के हैंशिंग को अनुकूलित करना मुझे कुछ बड़ी फ़ाइलों (दीवार घड़ी के समय को अनुकूलित करने) के हैशिंग को अनुकूलित करने में रूचि है। आई/ओ को पहले से ही काफी अनुकूलित किया गया है और आई/ओ डिवाइस (स्थानीय एसएसडी) केवल 25% क्षमता पर टैप किया गया है, जबकि सीपीयू कोर में से एक पूरी तरह से अधिकतम है।क्या हैश एल्गोरिदम समानांतर हैं? बहु-कोर CPUs
मेरे पास अधिक कोर उपलब्ध हैं, और भविष्य में शायद अधिक कोर होंगे। यदि तक मुझे एक ही फाइल के एकाधिक हैंश की आवश्यकता होती है, तो अब तक मैं केवल अधिक कोर में टैप करने में सक्षम हूं, एक ही समय में एक MD5 और SHA256 कहें। मैं दो या अधिक हैश एल्गोरिदम को खिलाने के लिए एक ही I/O स्ट्रीम का उपयोग कर सकता हूं, और मुझे तेज़ एल्गोरिदम मुफ्त में (जैसे दीवार घड़ी का समय) मिलता है। जैसा कि मैं अधिकांश हैश एल्गोरिदम को समझता हूं, प्रत्येक नया बिट पूरे परिणाम को बदलता है, और यह समानांतर में करने के लिए स्वाभाविक रूप से चुनौतीपूर्ण/असंभव है।
क्या मुख्यधारा हैश एल्गोरिदम समानांतर है?
क्या कोई गैर-मुख्यधारा हैश जो समांतर हैं (और कम से कम नमूना कार्यान्वयन उपलब्ध है)?
भविष्य के सीपीयू अधिक कोर की ओर बढ़ेंगे और घड़ी की गति में एक स्तर बंद हो जाएगा, क्या फ़ाइल हैशिंग के प्रदर्शन में सुधार करने का कोई तरीका है? (तरल नाइट्रोजन ठंडा overclocking के अलावा?) या यह मूल रूप से गैर समांतर है?
इसके अलावा, मैंने सुना है कि अधिकांश मौजूदा हैश एल्गोरिदम _can_ समानांतर हो, लेकिन मुझे यकीन नहीं है कि यह क्या होता है। जाहिर है, ऐसा करने का एक तरीका यह है कि प्रत्येक के पास हैश को फ़ाइल के 4k हिस्से का कहना है, और उसके बाद हैश को किसी भी तरह गठबंधन करना है। एक्सओआर, शायद? अपने स्वयं के एल्गोरिदम का आविष्कार करने के लिए हमेशा क्रांतिकारी रूप से खतरनाक रूप से खतरनाक रूप से, इसलिए यदि आप दुर्भावनापूर्ण डेटा भ्रष्टाचार के बजाय दुर्भावनापूर्ण डेटा छेड़छाड़ के खिलाफ बचाव कर रहे हैं तो मुझे इस पर भरोसा नहीं होगा। – sblom
मैंने आपके द्वारा लिंक किए गए स्केन विनिर्देश को पढ़ा है। आप यहां जो सुझाव देते हैं वह ठीक है कि यह समांतरता को कैसे प्राप्त करता है (जाहिर है इसे "पेड़ हैशिंग" कहा जाता है।) स्केन के पास पत्ती के आकार, प्रशंसक-आउट और अधिकतम पेड़ की ऊंचाई निर्दिष्ट करने का एक मानक तरीका है ताकि कोई भी पैरामीटर का उपयोग करने वाला कोई भी हैश परिणाम (यह महत्वपूर्ण है) मैं दुर्भावनापूर्ण छेड़छाड़ के साथ ही आकस्मिक भ्रष्टाचार के खिलाफ बचाव करना चाहता हूं। मेरी इच्छा है कि मानकों को पहले ही तैयार किया गया हो। – DanO
http://tools.ietf.org/html/rfc1321 ऐसा लगता है कि एमडी 5 आसानी से समांतर नहीं है, प्रत्येक ब्लॉक के लिए गणना सभी पुराने ब्लॉक के साथ गणना की गई राज्य पर निर्भर करती है। यदि यह संपत्ति नहीं रखती है, तो एमडी 5 सुरक्षित नहीं होगा (ब्लॉक की स्थिति का आदान-प्रदान हैश को प्रभावित नहीं करेगा - यह अच्छा नहीं है)। वैसे भी मैं नहीं कहता कि एमडी 5 का समांतरता संभव नहीं है, बस पहली नजर में _impossible। – kgadek