हिन्दी

डेवलपर टूल · SHA हैश कैलकुलेटर

SHA-256 बनाम SHA-512: शब्द का आकार, राउंड और क्यों 512 तेज़ हो सकता है

· यह काम किस प्रकार करता है

शा-256 क्रिप्टोग्राफी प्रदर्शन ब्राउज़र-एपिस

32-बिट और 64-बिट शब्दों, 64 बनाम 80 राउंड और 256, 384 और 512 आउटपुट बिट्स की साथ-साथ तुलना
मूल ToolAcre वेक्टर चित्रण

SHA-512 एक लंबा डाइजेस्ट तैयार करता है फिर भी अक्सर 64-बिट हार्डवेयर पर तेजी से चलता है। यह पोस्ट दोनों के बीच संरचनात्मक अंतर और SHA-384 कैसे फिट बैठता है, बताती है, ताकि आप तथ्यों को चुन सकें।

लंबा हैश, तेज़ दौड़? - प्रति-सहज ज्ञान युक्त अवलोकन जो तुलना शुरू करता है

SHA-512 एक लंबा डाइजेस्ट तैयार करता है, फिर भी अक्सर 64-बिट हार्डवेयर पर SHA-256 से तेज़ चलता है। प्रति-सहज ज्ञान युक्त अवलोकन CPU डिज़ाइन से आता है: 64-बिट अंकगणित के लिए अनुकूलित एक प्रोसेसर समान डेटा पर 32-बिट संचालन की तुलना में 64-बिट संचालन को तेजी से निष्पादित करता है। SHA-256 32-बिट शब्दों पर काम करता है, जबकि SHA-512 64-बिट शब्दों पर काम करता है। 64-बिट CPU पर, बाद वाला हार्डवेयर को अधिक स्वाभाविक रूप से फिट करता है और शब्द-आकार रूपांतरण और पैडिंग पर कम समय खर्च करता है।

यह प्रत्येक उपयोग के मामले में SHA-512 को स्वाभाविक रूप से बेहतर नहीं बनाता है। लंबे डाइजेस्ट में अधिक संग्रहण और बैंडविड्थ की आवश्यकता होती है। उनके बीच चयन आपके आउटपुट आकार की आवश्यकता और प्लेटफ़ॉर्म के आधार पर किया जाना चाहिए, न कि "नए" या "मज़बूत" के अस्पष्ट अर्थ पर।

32-बिट बनाम 64-बिट शब्द - मुख्य संरचनात्मक अंतर और यह आधुनिक सीपीUK लिए उपयुक्त क्यों है

SHA-256 पूरे एल्गोरिदम में 32-बिट शब्दों पर काम करता है। संदेश शेड्यूल 16 32-बिट शब्दों को 64 32-बिट शब्दों में विस्तारित करता है। प्रत्येक राउंड आठ 32-बिट कार्यशील चर को अद्यतन करता है। संदेश ब्लॉक 512 bits (सोलह 32-बिट शब्द) है। आउटपुट 256 bits (आठ 32-बिट शब्द) है। सभी अंकगणित 32-बिट मानों पर किया जाता है, 2^32 पर ओवरफ्लो रैपिंग के साथ।

SHA-512 64-बिट शब्दों पर काम करता है। संदेश शेड्यूल 16 64-बिट शब्दों को 80 64-बिट शब्दों में विस्तारित करता है (64 नहीं, जैसा कि SHA-256 में है)। प्रत्येक राउंड आठ 64-बिट कार्यशील चर को अद्यतन करता है। संदेश ब्लॉक 1024 bits (सोलह 64-बिट शब्द) है। आउटपुट 512 bits (आठ 64-बिट शब्द) है। सभी अंकगणित 64-बिट मानों पर किया जाता है, 2^64 पर ओवरफ़्लो रैपिंग के साथ।

64 राउंड बनाम 80, 512-बिट बनाम 1024-बिट ब्लॉक - प्रति ब्लॉक और प्रति बाइट क्या बदलता है

SHA-256 प्रति ब्लॉक 64 राउंड चलाता है; SHA-512 प्रति ब्लॉक 80 राउंड चलाता है। इसका मतलब है SHA-512 प्रति ब्लॉक अधिक मिश्रण करता है। पहली नज़र में, यह धीमा लगता है। लेकिन बड़े शब्द आकार और ब्लॉक आकार का मतलब है SHA-512 प्रति राउंड अधिक बिट्स संसाधित करता है। 1-मेगाबाइट फ़ाइल के लिए, SHA-256 कुल 131072 राउंड के लिए 1048576 / 512 = 2048 ब्लॉक, प्रत्येक को 64 राउंड के साथ प्रोसेस करता है। SHA-512 कुल 81920 राउंड के लिए 1048576 / 1024 = 1024 ब्लॉक, प्रत्येक 80 राउंड के साथ प्रक्रिया करता है। SHA-512 कुल मिलाकर कम राउंड करता है, भले ही यह प्रति ब्लॉक अधिक राउंड करता है।

दीवार-घड़ी के समय में अंतर शब्द आकार के लिए CPU के अनुकूलन पर निर्भर करता है। CPU 64-बिट ALU (अंकगणित-तर्क इकाई) के साथ 64-बिट संचालन कुशलतापूर्वक निष्पादित करेगा। यदि समान CPU को 32-बिट SHA-256 ऑपरेशंस को कई माइक्रो-ऑपरेशंस में तोड़ना होगा या उन्हें छोटी निष्पादन इकाई पर चलाना होगा, तो प्रति-ऑपरेशन लागत अधिक होगी। आधुनिक प्रोसेसर 64-बिट संचालन के लिए अनुकूलन करते हैं, जिससे प्रति ब्लॉक अतिरिक्त राउंड के बावजूद SHA-512 अक्सर तेज़ हो जाता है।

ब्लॉक आकार और राउंड गिनती प्रति बाइट कार्य की व्याख्या करती है; वास्तविक थ्रूपुट को एक प्लेटफ़ॉर्म बेंचमार्क की आवश्यकता होती है

ब्लॉक अंकगणित बताता है कि लंबे आउटपुट को प्रति बाइट पर अधिक काम करने की आवश्यकता क्यों नहीं है। SHA-256 प्रत्येक 512-बिट ब्लॉक के लिए चौंसठ राउंड निष्पादित करता है, जबकि SHA-512 प्रत्येक 1,024-बिट ब्लॉक के लिए अस्सी राउंड निष्पादित करता है। दूसरा डिज़ाइन प्रत्येक ब्लॉक पर अधिक राउंड निष्पादित करता है लेकिन जब भी यह एक को संसाधित करता है तो दोगुने इनपुट की खपत करता है।

वह संरचनात्मक तुलना किसी विशेष ब्राउज़र बेंचमार्क की भविष्यवाणी नहीं करती है। Web Crypto मूल निर्देशों, ऑपरेटिंग-सिस्टम लाइब्रेरी या अन्य अनुकूलित कोड का उपयोग कर सकता है, और इनपुट लंबाई सेटअप पर खर्च किए गए हिस्से को बदल देती है। जब थ्रूपुट मायने रखता है तो वास्तविक लक्ष्य वातावरण को मापें; रिपॉजिटरी केवल गुणात्मक दावे का समर्थन करती है कि व्यापक शब्द 64-बिट हार्डवेयर के अनुरूप हो सकते हैं।

बिना स्रोत वाले हमले-कार्य अनुमान के आउटपुट लंबाई प्रतिनिधित्व और सुरक्षा गुणों को प्रभावित करती है

SHA-384 कोई अलग एल्गोरिदम नहीं है; यह दो परिवर्तनों के साथ SHA-512 है: प्रारंभिक हैश स्थिरांक भिन्न हैं, और आउटपुट को पूर्ण 512 bits के बजाय 384 bits (48 bytes) में छोटा कर दिया गया है। लंबाई-विस्तार हमलों के खिलाफ इस काट-छांट का लाभ है: एक हमलावर मूल संदेश में डेटा जोड़कर डाइजेस्ट का विस्तार नहीं कर सकता है, क्योंकि पूर्ण 512-बिट स्थिति अज्ञात है (इसमें से केवल 384 bits का खुलासा किया गया था)।

SHA-256 लंबाई-विस्तार हमलों के प्रति संवेदनशील है: यदि आप किसी संदेश का डाइजेस्ट जानते हैं और आप संदेश की लंबाई जानते हैं, तो आप संदेश में डेटा जोड़ सकते हैं और मूल संदेश की सामग्री को जाने बिना विस्तारित संदेश के डाइजेस्ट की गणना कर सकते हैं। यह विशिष्ट सुरक्षा संदर्भों में मायने रखता है, जैसे HMAC कार्यान्वयन जो कमजोर निर्माण का उपयोग करते हैं। SHA-384, SHA-512 पर आधारित होने के बावजूद, असुरक्षित नहीं है क्योंकि पूर्ण स्थिति उजागर नहीं होती है। यह SHA-384 को उन संदर्भों में उपयोगी बनाता है जहां SHA-256 को जोखिम भरा माना जाता है।

कारगर उदाहरण - तीनों के साथ एक इनपुट को हैश करना और डाइजेस्ट लंबाई की साथ-साथ तुलना करना

आउटपुट आकार सबसे सीधा अंतर है। SHA-256 32 bytes (64 हेक्स वर्ण) उत्पन्न करता है; SHA-384 48 bytes (96 हेक्स वर्ण) उत्पन्न करता है; SHA-512 64 bytes (128 हेक्स वर्ण) उत्पन्न करता है। URL या JSON में भंडारण के लिए, लंबे डाइजेस्ट अधिक स्थान लेते हैं। टकराव प्रतिरोध के लिए, एक लंबा आउटपुट टकराव को खोजने में तेजी से कठिन बना देता है। व्यापक आउटपुट एक बड़ा परिणाम स्थान प्रदान करते हैं, जबकि उनके तत्काल उत्पाद परिणाम को मापना आसान होता है: भंडारण, URL और प्रोटोकॉल फ़ील्ड में अधिक बाइट्स। यह आलेख आक्रमण-कार्य अनुमान संलग्न नहीं करता है क्योंकि कोई भी भंडार साक्ष्य से प्राप्त नहीं होता है।

कुछ प्रणालियाँ और मानक SHA-256 को स्पष्ट रूप से निर्दिष्ट करते हैं; अन्य लोग SHA-512 का उपयोग करते हैं या विकल्प चुनने की अनुमति देते हैं। SSH फ़िंगरप्रिंट डिफ़ॉल्ट रूप से SHA-256 पर होता है; कंटेनर छवि डाइजेस्ट SHA-256 या SHA-512 हो सकते हैं। एनपीएम जैसे पैकेज प्रबंधक उपसंसाधन अखंडता के लिए SHA-512 का उपयोग करते हैं। चुनाव अक्सर आपके लिए किया जाता है, लेकिन मतभेदों को समझने से आप अपनी बात कहने पर समझदारी से चयन कर सकते हैं।

इसमें क्या शामिल नहीं है - थ्रूपुट आंकड़े, जो CPU, कंपाइलर और इनपुट आकार पर निर्भर करते हैं; पोस्ट गुणवत्तापूर्ण रहती है

ToolAcre SHA हैश कैलकुलेटर SHA-256, SHA-384 और SHA-512 प्रदान करता है। तीनों के साथ समान इनपुट हैश करें और आउटपुट लंबाई का निरीक्षण करें। सभी डाइजेस्ट एक-दूसरे से पूरी तरह से अलग होंगे, जो अपेक्षित है: एल्गोरिदम अलग-अलग राउंड स्थिरांक, अलग-अलग संदेश शेड्यूल और अलग-अलग मिश्रण संचालन का उपयोग करते हैं। डाइजेस्ट के साथ प्रदर्शित बाइट गिनती केवल इनपुट आकार को दर्शाती है, आउटपुट आकार को नहीं; सभी तीन एल्गोरिदम समान इनपुट बाइट्स को उनके संबंधित राउंड अनुक्रमों के माध्यम से समान रूप से संसाधित करते हैं।

आपके स्वयं के हार्डवेयर पर परीक्षण से प्रदर्शन अंतर का पता चलता है। प्रत्येक एल्गोरिदम के साथ एक बड़ी फ़ाइल (एक बहु-मेगाबाइट परीक्षण केस) हैश करें और परिणामों का समय निर्धारित करें। आधुनिक 64-बिट सिस्टम पर, SHA-512 अक्सर कम वॉल-क्लॉक समय में पूरा हो जाएगा, भले ही बाइट गिनती अन्यथा सुझाव दे सकती है। 32-बिट सिस्टम या एम्बेडेड प्रोसेसर पर, SHA-256 तेज़ हो सकता है क्योंकि CPU का ALU 32-बिट संचालन के लिए अनुकूलित है।

टेकअवे: आउटपुट आकार और प्लेटफ़ॉर्म के अनुसार चुनें - ToolAcre SHA हैश कैलकुलेटर SHA-256, SHA-384 और SHA-512 प्रदान करता है ताकि आप तीनों को एक ही इनपुट पर देख सकें

क्रिप्टोग्राफ़िक ताकत प्रदर्शन से अलग है। रिपॉजिटरी SHA-256 को टूटे हुए के रूप में चिह्नित नहीं करती है और इसे सामान्य प्रयोजन डिफ़ॉल्ट के रूप में चुनती है। वह उत्पाद साक्ष्य किसी भी आदिम को सार्वभौमिक रूप से सुरक्षित कहने का औचित्य नहीं दर्शाता है; उपयुक्तता अभी भी निर्माण और खतरे के मॉडल पर निर्भर करती है। SHA-256 से SHA-512 पर स्विच करना कोई सुरक्षा अपग्रेड नहीं है; यह एक भंडारण और प्रदर्शन व्यापार-बंद है। यदि आपका सिस्टम SHA-256 निर्दिष्ट करता है और आपको उस सटीक एल्गोरिदम की आवश्यकता है, तो इसका उपयोग करें। यदि आपके पास कोई विकल्प है और आप एक लंबा डाइजेस्ट चाहते हैं या आप जानते हैं कि आपका प्लेटफ़ॉर्म 64-बिट है, तो SHA-512 एक वैध विकल्प है।

ब्राउज़र का Web Crypto कार्यान्वयन crypto.subtle.digest के माध्यम से तीनों की गणना करता है। आपका डिवाइस, ब्राउज़र संस्करण और पेजभूमि सिस्टम लोड सभी देखे गए प्रदर्शन को प्रभावित करते हैं। लेकिन मुख्य बिंदु यह है: SHA-256 और SHA-512 "सर्वश्रेष्ठ हैश फ़ंक्शन" के शीर्षक के लिए प्रतिस्पर्धा नहीं कर रहे हैं। वे विभिन्न आउटपुट आवश्यकताओं के लिए डिज़ाइन किए गए टूल हैं, और उनके बीच का चयन आपके सिस्टम की आवश्यकताओं के आधार पर किया जाता है, न कि सामान्यीकृत प्रदर्शन दावों के आधार पर।