हैश डेटा पर की गई गणना का परिणाम है, जैसे किसी फ़ाइल या बिटकॉइन लेनदेन पर। एक जैसे डेटा और प्रक्रिया से एक जैसी छाप बनती है। क्रिप्टोग्राफिक हैश का उद्देश्य उसी परिणाम वाला दूसरा डेटा या किसी दिए गए परिणाम के लिए उपयुक्त इनपुट खोजना कठिन बनाना है। यह मूल डेटा की एन्क्रिप्ट की गई प्रति नहीं है।
आप एक इंस्टॉलर डाउनलोड करते हैं। उसके प्रकाशक ने जाँच के लिए छाप प्रकाशित की है और आप उसी एल्गोरिदम से अपनी कॉपी की छाप निकालते हैं। दोनों अलग हों तो डेटा समान नहीं है: फ़ाइल खराब, बदली या संशोधित हो सकती है। इसके उलट, भरोसेमंद छाप से मेल खाने पर सही कॉपी होने का मजबूत भरोसा मिलता है। पूरी फ़ाइल हाथ से मिलाने की जरूरत नहीं होती। उदाहरण के लिए SHA-256 का परिणाम 256 बिट का होता है, जिसे आम तौर पर 64 हेक्साडेसिमल अक्षरों में लिखा जाता है। इनपुट छोटा संदेश हो या बड़ी फ़ाइल, परिणाम की लंबाई यही रहती है। [1] [3]
असली सवाल है कि संदर्भ छाप कहाँ से आई। यदि हमलावर वेबसाइट पर फ़ाइल और उसके प्रकाशित हैश दोनों बदल दे, तो वे आपस में मेल खाएँगे। हैश निकालने के लिए गुप्त कुंजी की जरूरत नहीं होती; सार्वजनिक डेटा का हैश कोई भी निकाल सकता है। इसलिए यह डिजिटल हस्ताक्षर से अलग है, जिसमें कुंजी धारक डेटा की पुष्टि करता है। Bitcoin Core की जाँच में फ़ाइल के हैश के साथ छापों की सूची के हस्ताक्षर और हस्ताक्षर करने वाली कुंजियों की विश्वसनीयता भी जाँची जाती है। अकेला हैश लेखक, प्रोग्राम की सुरक्षा या दस्तावेज की सच्चाई साबित नहीं करता। [3]
हैशिंग में “डिक्रिप्ट” नाम का उलटा चरण नहीं होता। निश्चित लंबाई के परिणाम में पूरी फ़ाइल नहीं समाती, इसलिए यह बैकअप का तरीका नहीं है। लेकिन इसका अर्थ यह भी नहीं कि हैश हर इनपुट को सुरक्षित ढंग से छिपा देता है। छोटे और आम पासवर्ड का हैश हो तो हमलावर संभावित पासवर्ड आजमा सकता है और उनकी छाप मिला सकता है। फ़ंक्शन उलटने की जरूरत नहीं; इनपुट का सही अनुमान काफी है। इसलिए अकेला तेज हैश न मजबूत पासवर्ड का विकल्प है, न सुरक्षित पासवर्ड भंडारण के लिए बनी विशेष विधि का। [1] [5]
preimage खोज में एक छाप दी होती है और उसे बनाने वाला डेटा खोजना होता है। collision खोज में कोई भी दो अलग इनपुट चाहिए, जिनका हैश एक जैसा हो। ऐसे collision गणितीय रूप से मौजूद हैं, क्योंकि संभावित इनपुट की संख्या निश्चित लंबाई के परिणामों से अधिक है। क्रिप्टोग्राफिक सुरक्षा का आधार इन्हें व्यवहार में ढूँढ़ना कठिन होना है, असंभव होना नहीं। साथ ही “हैश” किसी एक एल्गोरिदम का नाम नहीं; हर हैश फ़ंक्शन क्रिप्टोग्राफिक सुरक्षा के लिए नहीं बनाया जाता। [1]
बिटकॉइन हैश से लेनदेन पहचानता है, ब्लॉक जोड़ता है और माइनिंग के काम की जाँच करता है। लेकिन सटीक तरीका अलग-अलग होता है। ब्लॉक हेडर का हैश निकालने के लिए SHA-256 दो बार लागू किया जाता है; HASH160, SHA-256 और RIPEMD-160 को जोड़ता है। Tagged hash एक टैग के जरिए गणना के अलग उद्देश्यों को अलग रखता है। खुद परिणाम जाँचने के लिए सही एल्गोरिदम और बिल्कुल सही इनपुट बाइट चाहिए, यानी डेटा की मूल इकाइयाँ। टेक्स्ट “61” के बाइट उस एक बाइट से अलग हैं जिसका हेक्साडेसिमल मान 61 है और जो ASCII में अक्षर a दर्शाता है। इसलिए डेटा के बजाय उसका दिखाई देने वाला लेखन हैश करना अलग गणना है। [2] [4]
पूरी तस्वीर के लिए इस प्रविष्टि के साथ यह भी पढ़ें SHA-256, Proof of Work, Block Header, लेनदेन, Merkle Tree, Bitcoin. इस प्रविष्टि का उल्लेख यहाँ भी है SHA-256, Nonce, HTLC, Hashcash.