क्रिप्टोग्राफिक हैश फंक्शंस की इन और आउट

हैश फ़ंक्शन ब्लॉकचेन प्रौद्योगिकी के मूलभूत स्तंभों में से एक हैं। वास्तव में, हैशिंग ने ब्लॉकचेन को एक सबसे महत्वपूर्ण गुण प्रदान किया है: अपरिवर्तनीयता.

Contents

क्रिप्टोग्राफ़िक हैश फ़ंक्शंस का इन और आउट

इस लेख में, हम क्रिप्टोकरेंसी में कुछ सबसे अधिक इस्तेमाल किए जाने वाले क्रिप्टोग्राफिक हैश कार्यों से खुद को परिचित करेंगे। लेकिन इससे पहले, आइए समझते हैं कि हैशिंग का क्या मतलब है.

क्रिप्टोग्राफिक हैश फंक्शंस की इन और आउट

तो हैशिंग क्या है??

साधारण शब्दों में हैशिंग का अर्थ है किसी भी लंबाई का इनपुट स्ट्रिंग लेना और निश्चित लंबाई का आउटपुट देना। बिटकॉइन जैसी क्रिप्टोकरेंसी के संदर्भ में, लेनदेन को इनपुट के रूप में लिया जाता है और हैशिंग एल्गोरिथ्म के माध्यम से चलाया जाता है (बिटकॉइन SHA-256 का उपयोग करता है) जो एक निश्चित लंबाई का आउटपुट देता है.

आइए देखें कि हैशिंग प्रक्रिया कैसे काम करती है। हम कुछ इनपुट्स में डालने जा रहे हैं। इस अभ्यास के लिए, हम SHA-256 (सिक्योर हैशिंग एल्गोरिथ्म 256) का उपयोग करने जा रहे हैं.

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

क्रिप्टोग्राफिक हैश फंक्शंस

एक क्रिप्टोग्राफिक हैश फ़ंक्शन हैश फ़ंक्शन का एक विशेष वर्ग है जिसमें विभिन्न गुण हैं जो क्रिप्टोग्राफी के लिए इसे आदर्श बनाते हैं। कुछ विशिष्ट गुण हैं जिन्हें क्रिप्टोग्राफ़िक हैश फ़ंक्शन को सुरक्षित माना जाना चाहिए। एक-एक करके उनके बारे में बताएं.

संपत्ति 1: नियतात्मक

इसका मतलब यह है कि कोई भी बात नहीं है कि आप एक हैश फ़ंक्शन के माध्यम से किसी विशेष इनपुट को कितनी बार पार्स करते हैं, आपको हमेशा एक ही परिणाम मिलेगा। यह महत्वपूर्ण है क्योंकि यदि आपको हर बार अलग-अलग हैश मिलते हैं तो इनपुट पर नज़र रखना असंभव होगा.

संपत्ति 2: त्वरित संगणना

हैश फ़ंक्शन किसी इनपुट के हैश को जल्दी से वापस करने में सक्षम होना चाहिए। यदि प्रक्रिया पर्याप्त रूप से तेज़ नहीं है, तो सिस्टम बस कुशल नहीं होगा.

संपत्ति 3: पूर्व-छवि प्रतिरोध

पूर्व-छवि प्रतिरोध क्या कहता है कि एच (ए) दिया गया है यह ए निर्धारित करने के लिए अलग है, जहां ए इनपुट है और एच (ए) आउटपुट हैश है। “असंभव” के बजाय “अचूक” शब्द के उपयोग पर ध्यान दें। हम पहले से ही जानते हैं कि मूल इनपुट को उसके हैश मान से निर्धारित करना असंभव नहीं है। एक उदाहरण लेते हैं.

मान लीजिए आप एक पासा चला रहे हैं और आउटपुट पासे से आने वाली संख्या का हैश है। आप यह निर्धारित कैसे कर पाएंगे कि मूल संख्या क्या थी? आपको जो कुछ करना है, वह सरल है, 1-6 से सभी नंबरों के हैश का पता लगाएं और तुलना करें। चूंकि हैश फ़ंक्शन नियतात्मक हैं, एक विशेष इनपुट का हैश हमेशा समान रहेगा, इसलिए आप बस हैश की तुलना कर सकते हैं और मूल इनपुट का पता लगा सकते हैं.

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

तो, इस विधि का उपयोग करने पर क्या होगा?

सबसे अच्छा मामला परिदृश्य: आपको अपना उत्तर पहले प्रयास में ही मिल जाएगा। ऐसा होने के लिए आपको गंभीरता से दुनिया का सबसे भाग्यशाली व्यक्ति बनना होगा। ऐसा होने के आसार खगोलीय हैं.

सबसे खराब स्थिति: आपको अपना जवाब 2 ^ 128 – 1 बार के बाद मिलेगा। मूल रूप से, इसका मतलब है कि आप अपना जवाब सभी डेटा के अंत में पाएंगे.

औसत परिदृश्य: आप इसे बीच में कहीं मूल रूप से 2 ^ 128/2 = 2 ^ 127 बार के बाद पाएंगे। उस परिप्रेक्ष्य में रखने के लिए, 2 ^ 127 = 1.7 X 10 ^ 38। दूसरे शब्दों में, यह एक बड़ी संख्या है.

इसलिए, जबकि यह संभव है कि ब्रूट फोर्स मेथड के जरिए प्री-इमेज रेजिस्टेंस को तोड़ा जाए, इसमें इतना समय लगता है कि यह मायने नहीं रखता.

संपत्ति 4: हिमस्खलन प्रभाव.

यहां तक ​​कि अगर आप अपने इनपुट में एक छोटा सा बदलाव करते हैं, तो हैश में दिखाई देने वाले परिवर्तन बहुत बड़े होंगे। आइए इसे SHA-256 का उपयोग करके देखें:

क्रिप्टोग्राफिक हैश फंक्शंस की इन और आउट

आपने देखा? हालाँकि आपने इनपुट के पहले वर्णमाला के मामले को बदल दिया है, फिर भी यह देखें कि आउटपुट हैश पर कितना असर पड़ा है.

इस संपत्ति को हिमस्खलन प्रभाव के रूप में भी जाना जाता है.

संपत्ति 5: टकराव प्रतिरोधी

दो अलग-अलग इनपुट्स ए और बी को देखते हुए जहां एच (ए) और एच (बी) उनके संबंधित हैश हैं, एच (ए) के एच (बी) के बराबर होना ही संभव है। इसका मतलब यह है कि अधिकांश भाग के लिए, प्रत्येक इनपुट का अपना विशिष्ट हैश होगा। हमने “अधिकांश भाग के लिए” क्यों कहा? यह समझने के लिए, हमें यह जानना होगा कि “जन्मदिन का विरोधाभास” क्या है.

क्या है जन्मदिन का विरोधाभास?

यदि आप सड़कों पर किसी भी बेतरतीब अजनबी से मिलते हैं, तो आप दोनों का जन्मदिन समान है। वास्तव में, यह मानते हुए कि वर्ष के सभी दिनों में जन्मदिन होने की समान संभावना है, आपके जन्मदिन को साझा करने वाले किसी अन्य व्यक्ति की संभावना 1/365 है जो 0.27% है। दूसरे शब्दों में, यह वास्तव में कम है.

हालाँकि, यह कहते हुए कि, यदि आप एक कमरे में 20-30 लोगों को इकट्ठा करते हैं, तो एक ही जन्मदिन को साझा करने वाले दो लोगों का अंतर खगोलीय रूप से बढ़ जाता है। वास्तव में, इस परिदृश्य में एक ही जन्मदिन को साझा करने के 2 लोगों के लिए 50-50 मौका है!

क्रिप्टोग्राफिक हैश फंक्शंस की इन और आउट

ऐसा क्यों होता है? यह संभावना में एक सरल नियम के कारण है जो निम्नानुसार है:

मान लें कि आपके पास किसी घटना के घटने की अलग-अलग संभावनाएँ हैं, तो आपको 50% चौकोर रूट की आवश्यकता होती है, ताकि उन्हें टक्कर का 50% मौका मिल सके।.

इसलिए जन्मदिन के लिए इस सिद्धांत को लागू करने के लिए, आपके पास जन्मदिन की 365 विभिन्न संभावनाएं हैं, इसलिए आपको सिर्फ Sqrt (365) की आवश्यकता है, जो ~ 23 ~ है, दो लोगों के जन्मदिन को साझा करने के 50% संभावना के लिए यादृच्छिक रूप से चुने गए लोग.

हैशिंग में इसका क्या अनुप्रयोग है?

मान लीजिए कि आपके पास 128-बिट हैश है जिसमें 2 ^ 128 अलग-अलग संभावनाएं हैं। जन्मदिन विरोधाभास का उपयोग करके, आपके पास sqrt (2 ^ 128) = 2 ^ 64 वें उदाहरण में टकराव प्रतिरोध को तोड़ने का 50% मौका है.

जैसा कि आप देख सकते हैं, टकराव प्रतिरोध को तोड़ना बहुत आसान है क्योंकि यह पूर्व-छवि प्रतिरोध को तोड़ना है। कोई हैश फ़ंक्शन टकराव मुक्त नहीं है, लेकिन आमतौर पर टकराव खोजने में इतना समय लगता है। इसलिए, यदि आप SHA-256 जैसे फ़ंक्शन का उपयोग कर रहे हैं, तो यह मान लेना सुरक्षित है कि यदि H (A) = H (B) है तो A = B.

तो, आप एक टक्कर प्रतिरोधी हैश फ़ंक्शन कैसे बनाते हैं? उसके लिए हम एक प्रतिमान का उपयोग करते हैं जिसे मर्कले-डमगार्ड प्रतिमान कहा जाता है.

मर्कले-डमगार्ड प्रतिमान क्या है?

प्रतिमान बहुत सरल है और निम्नलिखित दर्शन पर काम करता है: छोटे संदेशों के लिए टक्कर प्रतिरोधी हैश फ़ंक्शन को देखते हुए हम लंबे संदेशों के लिए टक्कर प्रतिरोधी हैश फ़ंक्शन का निर्माण कर सकते हैं.

क्रिप्टोग्राफिक हैश फंक्शंस की इन और आउट

छवि क्रेडिट: यूट्यूब

ऊपर दिए गए चित्र को ध्यान में रखते हुए, निम्नलिखित पर ध्यान दें:

  • एक बड़ा संदेश M, m के छोटे खंडों में टूट गया है [i].
  • हैश फंक्शन H में बहुत सारे हैश फंक्शन “h” होते हैं।.
  • “H” एक छोटा हैश फंक्शन, उर्फ ​​कम्प्रेशन फंक्शन है, जो संदेश के एक छोटे से ब्लॉक में लेता है और एक हैश लौटाता है.
  • पहला हैश फ़ंक्शन “h” (जो ऊपर दिए गए आरेख में दिया गया है) संदेश के पहले ब्लॉक (m [0]) में ले जाता है और इसे एक निश्चित मान IV में जोड़ता है और हैश लौटाता है.
  • हैश अब संदेश के दूसरे ब्लॉक में जुड़ जाता है और दूसरे हैश से गुजरता है
  • फ़ंक्शन एच और यह अंतिम संदेश ब्लॉक तक जाता है जहां संदेश में एक पेडिंग ब्लॉक पीबी भी जोड़ा जाता है.
  • प्रत्येक कम्प्रेशन फंक्शन h के आउटपुट को चेनिंग वैरिएबल कहा जाता है.
  • पैडिंग ब्लॉक 1s और 0s की एक श्रृंखला है। SHA-256 एल्गो में, PB 64 बिट लंबा होता है.
  • हैश कम्प्रेशन फंक्शन h का आउटपुट बड़े संदेश M का आउटपुट है.

तो, यह टकराव प्रतिरोध का पालन कैसे करता है?

इसके लिए, हम सरल सिद्धांत का पालन करते हैं: यदि “एच” टकराव प्रतिरोधी है तो “एच” की तुलना में टक्कर प्रतिरोधी होना चाहिए.

इस प्रमेय को सिद्ध करने के लिए, हम विपरीत दिशा में जाएंगे। यही है, अगर हम यह साबित कर सकते हैं कि एच पर टक्कर मौजूद है तो एच के पास टक्कर भी होनी चाहिए.

मान लीजिए कि दो संदेश M और M ‘हैं और हम उनके दोनों हैश अर्थों पर टकराव प्राप्त कर रहे हैं:

एच (एम) = एच (एम ‘)

तब हम इस जानकारी का उपयोग h में टकराव को कम करने के लिए कर सकते हैं। अभी के लिए, H (M) और H (M) दोनों के लिए चेनिंग वैरिएबल घटाएं।.

एच (एम) के लिए

IV = H (0), H (1),…।, H (t), H (t + 1) = H (M)

एच (एम ‘) के लिए

IV = H ‘(0), H’ (1), …, H ‘(r), H’ (r + 1) = H (M ‘)

दोनों हैश फ़ंक्शंस में समान संख्या में चेनिंग वैरिएबल नहीं हो सकते हैं (टी आर के बराबर नहीं हो सकते हैं)। हालाँकि, दोनों परिदृश्यों में:

एच (टी + 1) = एच (एम).

तथा

H ‘(r + 1) = H (M’)

और जब से हम जानते हैं कि टक्कर के बाद H (M) = H (M ‘) मौजूद है इसलिए H’ (r + 1) = H (T + 1).

हम्म … हम यहां एक दिलचस्प अनुमान पर हैं। ऊपर हमारे आरेख का संदर्भ दें:

क्रिप्टोग्राफिक हैश फंक्शंस की इन और आउट

अब, यदि H (t + 1) और H ‘(r + 1) अपने-अपने हैश फ़ंक्शन के अंतिम हैश हैं, तो वह संदेश क्या होगा जो प्रत्येक फ़ंक्शन के अंतिम संपीड़न फ़ंक्शन में चला गया होगा?

H (t + 1) के लिए जो h (H (t), M (t) होगा || PB) ||

इसी प्रकार, H ‘(r + 1) = h (H’ (r), M ‘(r) || PB’)

अब, यदि H (t + 1) और H ‘(r + 1) अपने-अपने हैश फ़ंक्शन के अंतिम हैश हैं, तो वह संदेश क्या होगा जो प्रत्येक फ़ंक्शन के अंतिम संपीड़न फ़ंक्शन में चला गया होगा?

H (t + 1) के लिए जो h (H (t), M (t) होगा || PB) ||

इसी प्रकार, H ‘(r + 1) = h (H’ (r), M ‘(r) || PB’)

तो, किन परिस्थितियों में संपीड़न फ़ंक्शन “एच” गैर टकराव प्रतिरोधी होना चाहिए? IFF यह इनपुट को समान आउटपुट देता है जो समान अर्थ नहीं हैं:

  • एच (टी)! = एच ‘(आर).
  • M (t)! = M ‘(r).
  • PB! = PB ‘.

हालांकि, अगर वे आउटपुट समान हैं तो हमें थोड़ा गहरा जाना होगा। यदि पीबी = पीबी ‘तो हम जानते हैं कि दोनों में समान संख्या में संदेश ब्लॉक हैं जिसका अर्थ है t = r जिसका अर्थ स्वतः होगा:

एम (टी) = एम ‘(आर)

और एच (टी) = एच ‘(आर)

इस मामले में हम एच (टी) और एच ‘(आर) पर विचार करते हैं जिसे हम एच’ (टी) के रूप में फिर से लिख सकते हैं क्योंकि टी और आर के मूल्य समान हैं।.

तो H (t) और H ‘(t) का मान क्या होगा?

एच (टी) = एच (एच (टी -1), एम (टी -1)) और एच ‘(टी) = एच (एच’ (टी -1), एम ‘(टी -1))

चूंकि H (t) = H ‘(t) तब h (H (t-1), M (t-1)) = h (H’ (t-1), M ‘(t-1)).

टकराव के लिए निम्नलिखित शर्तों को पूरा करना चाहिए:

एच (टी -1) =! एच ‘(टी -1)

M (t-1)! = M ‘(t-1),

यदि ये स्थितियां सही हैं, तो हम जानते हैं कि हमें h पर टक्कर मिली है और हम रोक सकते हैं.

अब उन स्थितियों के सही होने पर क्या होता है?

मतलब एच (टी -1) = एच ‘(टी -1) और चूंकि हम पहले से ही जानते हैं कि एम (टी) = एम’ (टी) तो एम (टी -1) = एम ‘(टी -1).

हम H (t-1) और H ‘(t-1) के लिए उपरोक्त गणना तब तक जारी रख सकते हैं जब तक हम संदेश की शुरुआत तक नहीं पहुंच जाते। उस स्थिति में दो में से एक स्थिति होनी चाहिए:

  • एच के लिए टक्कर का पता लगाएं.
  • M और M ‘के सभी संदेश ब्लॉक समान हैं.

चूँकि हम पहले से ही जानते हैं कि होने वाली टक्कर की मुख्य स्थिति यह है कि इनपुट संदेश M और M ‘समान नहीं हो सकते हैं, केवल दूसरी स्थिति जहां H की टक्कर होती है यदि संपीड़न फ़ंक्शन h में भी टक्कर है.

इसलिए हम देख सकते हैं कि कभी भी हैश फंक्शन H के लिए एक टकराव होता है जिससे हमें एक कम्प्रेशन फंक्शन h मिलता है जिसमें टकराव भी होता है और इसलिए मार्कले-डैमगार्ड सही रहता है.

संपत्ति 6: पहेली के अनुकूल

अब, यह एक बहुत ही आकर्षक संपत्ति है, और यह एक क्रिप्टोक्यूरेंसी पर जो आवेदन और प्रभाव है वह बहुत बड़ा है। पहले संपत्ति को परिभाषित करते हैं, उसके बाद हम प्रत्येक शब्द को विस्तार से देखेंगे.

प्रत्येक आउटपुट “Y” के लिए, यदि k को उच्च मिंट-एंट्रोपी के साथ वितरण से चुना जाता है, तो यह एक इनपुट x खोजने के लिए संभव है, जैसे H (k | x) = Y.

शायद यह सब आपके सिर पर चढ़ गया! लेकिन यह ठीक है, चलो अब समझते हैं कि परिभाषा का क्या मतलब है.

“उच्च मिनट-एन्ट्रापी” का क्या अर्थ है?

इसका अर्थ यह है कि जिस वितरण से मूल्य चुना जाता है उसे बहुत अधिक वितरित किया जाता है ताकि हम एक यादृच्छिक मूल्य का चयन कर सकें नगण्य संभावना। मूल रूप से, यदि आपको 1 और 5 के बीच एक संख्या चुनने के लिए कहा गया था, तो वह कम न्यूनतम-एन्ट्रापी वितरण है। हालाँकि, यदि आपको 1 और गजिलियन के बीच की संख्या चुननी है, तो यह एक उच्च न्यूनतम-एन्ट्रापी वितरण है.

“K | x” का क्या अर्थ है?

“|” संघात को दर्शाता है। कॉनटैपटेशन का अर्थ है एक साथ दो तार जोड़ना। जैसे। अगर मुझे “BLUE” और “SKY” को एक साथ करना था, तो परिणाम “BLUESKY” होगा.

तो अब परिभाषा को फिर से देखें:

मान लीजिए कि आपके पास “Y” का आउटपुट मूल्य है। यदि आप एक विस्तृत वितरण से एक यादृच्छिक मान “k” चुनते हैं, तो यह एक मूल्य X को खोजने के लिए अलग है जैसे कि k और x के संघटन का हैश आउटपुट Y देगा.

एक बार फिर, “अचूक” शब्द पर ध्यान दें, यह असंभव नहीं है क्योंकि लोग हर समय ऐसा करते हैं। वास्तव में, खनन की पूरी प्रक्रिया इस पर काम करती है (उस पर बाद में).

क्रिप्टोग्राफिक हैश फ़ंक्शन के उदाहरण

  • एमडी 5: यह 128-बिट हैश का उत्पादन करता है। टकराव प्रतिरोध ~ 2 ^ 21 हैश के बाद टूट गया था.
  • SHA 1: एक 160-बिट हैश का निर्माण करता है। टक्कर प्रतिरोध ~ 2 ^ 61 हैश के बाद टूट गया.
  • SHA 256: 256-बिट हैश का निर्माण करता है। वर्तमान में यह बिटकॉइन द्वारा उपयोग किया जा रहा है.
  • केकेक -256: 256-बिट हैश का उत्पादन करता है और वर्तमान में एथेरियम द्वारा उपयोग किया जाता है.
  • RIPEMD-160: एक 160-लेकिन आउटपुट का उत्पादन करता है और इसका उपयोग Bitcoin लिपि द्वारा किया जाता है (SHA-256 के साथ).
  • क्रिप्टोनाइट: मोनरो द्वारा उपयोग किया गया हैश फ़ंक्शन.

अब जब हम हैशिंग के माध्यम से जाने गए हैं और क्रिप्टोग्राफ़िक हैश फ़ंक्शन के गुण क्या हैं, तो क्रिप्टोकरेंसी में सबसे अधिक इस्तेमाल किए जाने वाले क्रिप्टोग्राफ़िक हैश फ़ंक्शन से खुद को परिचित करें.

सुरक्षित हैशिंग एल्गोरिदम (SHA)

सुरक्षित हैश एल्गोरिदम, इसके विकिपीडिया पृष्ठ के अनुसार, नेशनल इंस्टीट्यूट ऑफ स्टैंडर्ड्स एंड टेक्नोलॉजी (NIST) द्वारा अमेरिका के संघीय सूचना प्रसंस्करण मानक (FIPS) के रूप में प्रकाशित क्रिप्टोग्राफ़िक हैश फ़ंक्शन का एक परिवार है। SHA में निम्नलिखित एल्गोरिदम शामिल हैं:

  • SHA-0: “SHA” नाम से 1993 में प्रकाशित मूल 160-बिट हैश फ़ंक्शन का संदर्भ देता है। यह एक अज्ञात “महत्वपूर्ण दोष” के कारण प्रकाशन के तुरंत बाद वापस ले लिया गया था और इसे थोड़ा संशोधित संस्करण SHA-1 द्वारा प्रतिस्थापित किया गया था.
  • SHA-1: SHA-0 देने में विफल होने पर लाया गया था। यह एक 160-बिट हैश फ़ंक्शन है जो पहले के एमडी 5 एल्गोरिदम जैसा दिखता है। इसे डिजिटल का हिस्सा बनने के लिए राष्ट्रीय सुरक्षा एजेंसी (NSA) द्वारा डिजाइन किया गया था हस्ताक्षर कलन विधि। हालांकि लोगों द्वारा क्रिप्टो-ग्राफिकल कमजोरियों पर ध्यान दिए जाने के तुरंत बाद इसे डंप कर दिया गया था.
  • SHA-2: आह अब हम हैश फंक्शन की सबसे लोकप्रिय श्रेणियों में से एक में आते हैं। यह एनएसए द्वारा मर्कले-डमगार्ड प्रतिमान का उपयोग करके डिजाइन किया गया था। वे अलग-अलग शब्द आकार वाले दो हैश फ़ंक्शंस के परिवार हैं: SHA-256 और SHA-512। बिटकॉइन SHA-256 का उपयोग करता है
  • SHA-3: पूर्व में केकेक के रूप में जाना जाता है, इसे 2012 में गैर-एनएसए डिजाइनरों के बीच एक सार्वजनिक प्रतियोगिता के बाद चुना गया था। यह SHA-2 के समान हैश की लंबाई का समर्थन करता है, और इसकी आंतरिक संरचना SHA परिवार के बाकी हिस्सों से काफी भिन्न होती है। इथेरियम इस हैश फ़ंक्शन का उपयोग करता है.

क्रिप्टोग्राफिक हैश फंक्शंस की इन और आउट

चित्र साभार: विकिपीडिया

आइए SHA-256 और SHA-3 पर करीब से नज़र डालें.

SHA-256

SHA-256 एक SHA-2 फ़ंक्शन है जो 32-लेकिन शब्दों का उपयोग SHA-512 के विपरीत करता है जो 64-बिट शब्दों का उपयोग करता है। बिटकॉइन 2 महत्वपूर्ण तरीकों से SHA-256 का उपयोग करता है:

  • खुदाई.
  • पतों का निर्माण.

खुदाई:

बिटकॉइन में खनन में एक ब्लॉक खोजने के लिए खनिकों द्वारा जटिल कम्प्यूटेशनल पहेलियों को हल करना शामिल है जो फिर बिटकॉइन ब्लॉकचेन में जुड़ जाता है। इसे प्रूफ-ऑफ-वर्क कहा जाता है और इसमें SHA-256 हैश फ़ंक्शन की गणना शामिल है.

पतों का निर्माण

SHA-256 हैश फ़ंक्शन सार्वजनिक पते को उत्पन्न करने के लिए बिटकॉइन सार्वजनिक कुंजी को हैश करने के लिए उपयोग किया जाता है। कुंजी को दबाने से व्यक्ति की पहचान के लिए सुरक्षा की एक अतिरिक्त परत जुड़ जाती है। साथ ही, एक हैशड एड्रेस एक बिटकॉइन सार्वजनिक कुंजी की तुलना में लंबाई में छोटा होता है जो भंडारण में बेहतर मदद करता है.

कार्रवाई में SHA-256

इनपुट: नमस्ते

उत्पादन: 98EA6E4F216F2FB4B69FFF9B3A44842C38686CA685F3F55DC48C5D3FB1107BE4

SHA-3

जैसा कि ऊपर उल्लेख किया गया है, यह पहले केकेक के रूप में जाना जाता था और एथेरम द्वारा उपयोग किया जाता है। इसे गैर-एनएसए डिजाइनरों द्वारा एक सार्वजनिक प्रतियोगिता के बाद बनाया गया था। SHA-3 स्पंज फ़ंक्शन का उपयोग करता है.

स्पंज समारोह क्या है?

क्रिप्टोग्राफिक हैश फंक्शंस की इन और आउट

चित्र साभार: विकिपीडिया

एक स्पंज फ़ंक्शन परिमित आंतरिक स्थिति के साथ एल्गोरिदम का एक वर्ग है जो किसी भी लंबाई की एक इनपुट बिट स्ट्रीम लेता है और एक पूर्व निर्धारित लंबाई के आउटपुट बिट स्ट्रीम का उत्पादन करता है.

जारी रखने से पहले, हमें कुछ शब्दों को परिभाषित करने की आवश्यकता है:

हम जानते हैं कि एक स्पंज समारोह में, डेटा “को अवशोषित“स्पंज में, फिर परिणाम”निचोड़ा हुआ” बाहर.

तो वहाँ एक “हैसोख लेना“चरण और एक”निचोड़” चरण.

अवशोषित चरण:

इस चरण में, संदेश को ब्लॉक और XOR’d में राज्य के सबसेट में विभाजित किया गया है, जिसे बाद में क्रमपरिवर्तन फ़ंक्शन का उपयोग करके पूरे के रूप में बदल दिया जाता है.

क्रिप्टोग्राफिक हैश फंक्शंस की इन और आउट

निचोड़ चरण:

विकिपीडिया से। “आउटपुट ब्लॉक राज्य के एक ही सबसेट से पढ़े जाते हैं, जिसे राज्य परिवर्तन फ़ंक्शन के साथ वैकल्पिक किया जाता है। लिखे और पढ़े जाने वाले राज्य के हिस्से के आकार को “दर” (निरूपित आर) कहा जाता है, और इनपुट / आउटपुट से अछूते हुए भाग के आकार को “क्षमता” (निरूपित c) कहा जाता है। क्षमता योजना की सुरक्षा को निर्धारित करती है। अधिकतम सुरक्षा स्तर आधी क्षमता है। ”

क्रिप्टोग्राफिक हैश फंक्शंस की इन और आउट

अब यह देखने के लिए कि यह कैसे काम करता है, निम्नलिखित तत्वों पर विचार करें:

  • एक इनपुट स्ट्रिंग एन.
  • एक गद्दी समारोह “पैड”.
  • एक क्रमपरिवर्तन कार्य “एफ” जो कि चौड़ाई बी के बिट ब्लॉकों का संचालन करता है.
  • एक दर “आर”.
  • आउटपुट लंबाई = “डी”.
  • क्षमता “सी” = बी-आर.
  • स्पंज निर्माण: स्पंज [एफ, पैड, आर] (एन, डी) जिसके परिणामस्वरूप लंबाई डी के थोड़ा स्ट्रिंग जेड होता है.

तो, अब प्रक्रिया कैसे चलेगी?

  • सबसे पहले, इनपुट स्ट्रिंग को “पैड” के साथ गद्देदार किया जाता है जिसके परिणामस्वरूप आर द्वारा लंबाई के साथ गद्देदार बिट स्ट्रिंग पी होता है.
  • गद्देदार स्ट्रिंग P को P [0] से P [n-1] तक लगातार r-bit ब्लॉकों में तोड़ा जाता है।.
  • फिर हम स्टेट S को b 0 बिट्स के एक स्ट्रिंग में आरंभीकृत करते हैं.
  • अब गद्देदार स्ट्रिंग P का प्रत्येक ब्लॉक निम्नलिखित प्रक्रिया का उपयोग करके अवशोषित होने लगता है:

    क) प्रत्येक ब्लॉक पी [i] ग की एक स्ट्रिंग का उपयोग करके गद्देदार है “0 बिट्स” जब तक यह लंबाई “बी” तक नहीं पहुंच जाता है.

  1. बी) परिणामी स्ट्रिंग “S” के साथ XOR’d है, अर्थात पिछले ब्लॉक से आने वाला राज्य.

    ग) अंत में ब्लॉक क्रमपरिवर्तन फ़ंक्शन f को एक नए स्टेट एस उपज, परिणाम पर लागू किया जाता है.

    नोट: प्रत्येक ब्लॉक एक नए राज्य एस में परिणाम देता है। जैसा कि हमने चरण 3 में देखा है, यह आरंभिक मूल्य “0” है।.

  • परिणाम Z को खाली स्ट्रिंग में आरंभीकृत किया जाता है.
  • यदि Z की लंबाई d से कम है:

    a) S के पहले r बिट्स को Z से जोड़ दिया जाता है.

    बी) यदि Z अभी भी आवश्यक लंबाई का नहीं है, तो एक नया राज्य बनाने के लिए परमूटेशन फ़ंक्शन f को S पर लागू किया जाता है और वहाँ से बिट्स को Z में जोड़ा जाता है।.

  • यदि Z बहुत लंबा है तो इसे d बिट्स के लिए छोटा कर दिया जाता है.

कार्रवाई में SHA-3:

इनपुट: नमस्ते

उत्पादन: 154013cb8140c753f0ac

358da6110fe237481b26c75c3ddc1b

59eaf9dd7b46a0a3aeb2cef164b3c82

d65b38a4e26ea9930b7b2cb3c01da

4ba331c95e62ccb9c3

RIPEMD-160 हैश फंक्शन

RIPEMD कैथोलिक यूनिवर्सिट लेउवेन में COSIC अनुसंधान समूह में हंस डोबबर्टिन, एंटून बोसैलेर्स और बार्ट प्रिनेल द्वारा लिपूवेन, बेल्जियम में विकसित क्रिप्टोग्राफ़िक हैश फ़ंक्शंस का एक परिवार है, और पहली बार 1996 में प्रकाशित हुआ था।.

जबकि RIPEMD MD4 के डिजाइन सिद्धांतों पर आधारित है, इसका प्रदर्शन SHA-1 के समान है। RIPEMD-160 इस हैश फ़ंक्शन का 160-बिट संस्करण है और आमतौर पर इसका उपयोग बिटकॉइन पते बनाने में किया जाता है.

बिटकॉइन सार्वजनिक कुंजी पहले SHA-256 हैश फ़ंक्शन और फिर RIPEMD-160 के माध्यम से चलता है। हम ऐसा क्यों करते हैं इसका कारण यह है कि 160 बिट्स का आउटपुट 256 बिट्स की तुलना में बहुत छोटा है जो अंतरिक्ष को बचाने में मदद करता है.

इसके साथ ही, RIPEMD-160 एकमात्र हैश फंक्शन है जो सबसे छोटी हैश का उत्पादन करता है जिसकी विशिष्टता अभी भी पर्याप्त रूप से सुनिश्चित है.

क्रिप्टोग्राफिक हैश फंक्शंस की इन और आउट

चित्र साभार: विकिपीडिया

ऊपर की छवि RIPEMD-160 हैश एल्गोरिथ्म के संपीड़न फ़ंक्शन से उप-ब्लॉक का स्नैपशॉट दिखाती है.

RIPEMD-160 कार्रवाई में:

इनपुट: नमस्ते

उत्पादन: 242485ab6bfd3502bcb3442ea2e211687b8e4d89

क्रिप्टोकरंसी हैश फंक्शन

अब हमारे पास CryptoNight हैश फंक्शन है जिसका उपयोग Monero द्वारा किया जाता है। बिटकॉइन के विपरीत, मोनेरो चाहता था कि उनका खनन जीपीयू के रूप में संभव हो। एकमात्र तरीका जो वे कर सकते थे वह हैश एल्गोरिथम मेमोरी-हार्ड बनाने के द्वारा.

CryptoNight दर्ज करें

CryptoNight एक मेमोरी-हार्ड हैश फ़ंक्शन है। यह GPU, FPGA और ASIC आर्किटेक्चर पर अक्षम्य रूप से गणना करने के लिए डिज़ाइन किया गया है। CryptoNight कैसे काम करता है इसका संक्षिप्त अवलोकन इस प्रकार है:

  • एल्गोरिथ्म पहले छद्म यादृच्छिक डेटा के साथ एक बड़े स्क्रैडपैड को इनिशियलाइज़ करता है.
  • इसके बाद छद्म यादृच्छिक पते पर कई रीड / राइट ऑपरेशन होते हैं
  • स्क्रैडपैड में निहित.
  • अंत में, अंतिम मूल्य का उत्पादन करने के लिए संपूर्ण स्क्रैडपैड हैशेड है.

नीचे दिया गया चित्र CryptoNight हैश एल्गोरिथम का योजनाबद्ध दिखाता है.

क्रिप्टोग्राफिक हैश फंक्शंस की इन और आउट

छवि क्रेडिट: डेव का डेटा

ध्यान दें: सभी डेटा और कोड से लिया गया क्रिप्टोकरंसी व्हाइटपॉपर

चरण 1: स्क्रैचपैड इनिशियलाइज़ेशन

क्रिप्टोनाइट हैश फ़ंक्शन का पहला चरण स्क्रैडपैड इनिशियलाइज़ेशन है। आरंभ इस तरह होता है:

  • इनपुट डेटा को केकेक के साथ मापदंडों बी = 1600 और सी = 512 के साथ उपयोग किया जाता है.
  • केकेक के उत्पादन के पहले 32 बाइट्स को एईएस -256 कुंजी [एईएस] के रूप में व्याख्या की जाती है और 10 मिलियन कीज़ तक विस्तारित किया जाता है.
  • 2097152 बाइट्स (2 MiB) का एक स्कैल्पपैड आवंटित किया गया है.
  • बाइट्स 64-191 को केकेक अंतिम स्थिति से निकाला जाता है और प्रत्येक को 16 बाइट्स के 8 ब्लॉकों में विभाजित किया जाता है.
  • प्रत्येक ब्लॉक को तब निम्न प्रक्रिया का उपयोग करके एन्क्रिप्ट किया जाता है:

    i = 0..9 के लिए:

    ब्लॉक = aes_round (ब्लॉक, राउंड_की [i])

  • एईएस एन्क्रिप्शन ब्लॉकों पर किया जाता है और परिणाम X कुंजी के साथ गोल कुंजी के साथ होता है.
  • परिणामी ब्लॉक स्क्रैडपैड के पहले 128 बाइट्स बन जाते हैं। बाद में ब्लॉक फिर से एन्क्रिप्शन से गुजरते हैं जो स्क्रैडपैड का दूसरा 128 बाइट्स बन जाता है। प्रक्रिया पूरी तरह से शुरू होने तक चलती रहती है.

क्रिप्टोग्राफिक हैश फंक्शंस की इन और आउट

चित्र: गिटहब से लिया गया। आरेख स्क्रैच पैड के आरंभीकरण को दर्शाता है.

चरण 2: मेमोरी हार्ड लूप

हैश फ़ंक्शन का यह चरण हैश को GPUS के लिए जितना संभव हो उतना कठिन बनाने के लिए मौजूद है.

  • सबसे पहले, बाइट्स 0..31 और 32..63 केकेकैक आउटपुट XORed हैं, और परिणामस्वरूप 32 बाइट्स का उपयोग चर और बी को शुरू करने के लिए किया जाता है, 16 बाइट्स प्रत्येक.
  • चर ए और बी फिर मुख्य लूप में प्रवेश करते हैं.
  • लूप 524,288 बार पुनरावृत्त होता है.
  • जब 16-बाइट मान को स्क्रेपपैड में एक पते में परिवर्तित करने की आवश्यकता होती है, तो इसे एक छोटे-एंडियन पूर्णांक के रूप में व्याख्या की जाती है, और 21 कम-क्रम बिट्स को बाइट इंडेक्स के रूप में उपयोग किया जाता है। हालांकि, सूचकांक के 4 कम-क्रम बिट्स को 16-बाइट संरेखण सुनिश्चित करने के लिए मंजूरी दे दी जाती है.
  • परिणामी डेटा 16-बाइट ब्लॉकों में स्क्रैडपैड में दर्ज किया गया है.

प्रत्येक छंद निम्नलिखित छद्म कोड के साथ व्यक्त किया जा सकता है:

क्रिप्टोग्राफिक हैश फंक्शंस की इन और आउट

  • ऊपर दिए गए कोड में, 8byte_add फ़ंक्शन 64-बिट छोटे-एंडियन मानों की एक जोड़ी के रूप में प्रत्येक तर्क का प्रतिनिधित्व करता है और उन्हें एक साथ जोड़ता है, घटक-वार, modulo 2 ^ 64। परिणाम वापस 16 बाइट्स में परिवर्तित हो जाता है.
  • दूसरी ओर, 8byte_mul फ़ंक्शन, हालांकि, प्रत्येक तर्क के केवल पहले 8 बाइट्स का उपयोग करता है, जो कि 64-बिट छोटे-एंडियन पूर्णांक के रूप में व्याख्या किए जाते हैं और एक साथ गुणा किए जाते हैं। परिणाम को 16 बाइट्स में परिवर्तित किया जाता है, और अंत में परिणाम के दो 8-बाइट्स को स्वैप किया जाता है.

क्रिप्टोग्राफिक हैश फंक्शंस की इन और आउट

छवि: यह मेमोरी हार्ड लूप सेगमेंट का एक आरेख है.

चरण 3: परिणाम गणना

अंत में, हमारे पास परिणाम गणना है.

  • जब मेमोरी-हार्ड लूप फ़ंक्शन किया जाता है, तो केककेक आउटपुट के 32-63 को पहले भाग की तरह 10 एईएस राउंड कीज़ में विस्तारित किया जाता है.
  • बाइट्स 64..191 केकेकक राज्य से निकाले गए हैं और XOR’d के साथ खरोंच के पहले 128 बाइट्स हैं.
  • परिणामी स्थिति को पहले भाग की तरह ही एन्क्रिप्ट किया गया है, लेकिन नई कुंजियों का उपयोग करते हुए.
  • परिणाम XOR’d के साथ दूसरा 128 बाइट्स स्कैर्पपैड से दोबारा एन्क्रिप्टेड है, और इसी तरह.
  • स्क्रैडपैड के अंतिम 128 बाइट्स के साथ XORing करने के बाद, परिणाम पिछली बार एन्क्रिप्ट किया गया है और फिर केकेक राज्य में 64..191 बाइट्स को परिणाम के साथ बदल दिया गया है.
  • केकेक राज्य को फिर केकेक-एफ (केकेकक क्रमचय) के माध्यम से बी = 1600 के साथ पारित किया जाता है.
  • राज्य के पहले बाइट के 2 कम-क्रम बिट्स का उपयोग हैश फ़ंक्शन का चयन करने के लिए किया जाता है: 0 = BLAKE-256 [BLAKE], 1 = Groestl-256 [GROESTL], 2 = JH-256 [JH], और 3 = स्केन-256 [स्केन]। चुने गए हैश फ़ंक्शन को केकेक राज्य में लागू किया जाता है, और परिणामस्वरूप हैश अंतिम रूप से क्रिप्टोकरंसी के उत्पादन में होता है.

क्रिप्टोग्राफिक हैश फंक्शंस की इन और आउट

क्रिप्टोग्राफिक हैश फंक्शंस की इन और आउट

छवि: अंतिम परिणाम पीढ़ी का आरेख.

क्रिप्ट हेसिंग एल्गोरिथ्म के विपरीत क्रिप्टोनिट एल्गोरिथ्म प्रत्येक नए ब्लॉक के लिए पिछले सभी ब्लॉकों पर निर्भर है। CryptoNight सुरुचिपूर्ण रूप से सरल है और इसके मूल उपयोग AES एन्क्रिप्शन और तेजी से 64 बिट मल्टीप्लायरों ने एल्गोरिथ्म CPU को अनुकूल बनाते हुए इसे GPU के रूप में संभव के रूप में अनुकूल बनाते हुए रखा है.

क्रिप्टोकरंसी कार्रवाई में:

इनपुट: यह एक परीक्षण है

उत्पादन: a084f01d1437a09c6985401b60d43554ae105802c5f5d8a9b3253649c0be6605

निष्कर्ष

इसलिए यह अब आपके पास है! क्रिप्टोकरेंसी में सबसे अधिक इस्तेमाल होने वाले हैशिंग एल्गोरिदम में से चार। वे कैसे काम करते हैं, इसकी एक बुनियादी और मौलिक समझ होने से आपको पर्दे के पीछे की जाने वाली गणनाओं का सम्मान करने में मदद मिलेगी। नए हैशिंग एल्गोरिदम भविष्य में अभी भी साथ आ सकते हैं जो ऊपर उल्लिखित को पूरी तरह से अप्रचलित बनाता है। हालाँकि, यह निरंतर नवाचार क्रिप्टो-पारिस्थितिकी तंत्र का सबसे रोमांचक हिस्सा नहीं है?

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me
Like this post? Please share to your friends:
map