थीमसेज के मैसेज डाइजेस्ट की गणना करने के लिए निम्नलिखित कदम उठाए गए हैं जो इस प्रकार हैं -
-
चरण 1 - पैडिंग बिट्स संलग्न करें - संदेश को इस तरह से जारी या गद्देदार किया जाता है कि बिट्स में इसकी कुल लंबाई 448 मॉड्यूलो 512 के अनुरूप हो। यह ऑपरेशन लगातार लागू किया जाता है, भले ही संदेश की लंबाई बिट में मूल रूप से 448 मॉड्यूल 512 के अनुरूप हो। 448 + 64 =512, इसलिए संदेश को इस तरह से गद्देदार किया जाता है कि इसकी लंबाई अब 64 बिट कम है जो 512 के पूर्णांक गुणज से कम है।
-
चरण 2 - लंबाई जोड़ें - मूल संदेश एम (पैडिंग बिट्स डालने से पहले) के बिट्स में लंबाई का 64 बिट विवरण चरण 1 के परिणाम में जोड़ा जाता है। यदि मूल संदेश की लंबाई 264 =184 467 440 73 709 551 से अधिक है 616, इसलिए संदेश M की लंबाई के केवल निम्न क्रम 64 बिट्स का उपयोग किया जाता है।
इसलिए, फ़ील्ड में मूल संदेश M मोडुलो 264 की लंबाई शामिल है। इन बिट्स को दो 32 बिट शब्दों के रूप में जोड़ा जाता है और पहले निम्न-क्रम (कम से कम महत्वपूर्ण) शब्द जोड़ा जाता है। चरण 1 और चरण 2 का परिणाम लंबाई के साथ एक संदेश है बिट्स जो 512 बिट्स का एक पूर्णांक है।
-
चरण3 - एमडी बफर प्रारंभ करें - एमडी5 हैश एल्गोरिथम के मध्यवर्ती और अंतिम परिणाम को पकड़ने के लिए 128-बिट बफर का उपयोग किया जा सकता है। संदेश डाइजेस्ट का मूल्यांकन करने के लिए चार-शब्द बफर (ए, बी, सी, और डी) का उपयोग किया जा सकता है। इसलिए, प्रत्येक ए, बी, सी, डी 32-बिट रजिस्टर है।
ये रजिस्टर हेक्साडेसिमल में निम्न मानों तक बूट होते हैं, पहले निम्न-क्रम बाइट्स -
शब्द A:01 23 45 67
शब्द B:89 ab cd ef
शब्द C:fe dc ba 98
शब्द D:76 54 32 10
-
चरण 4 - संदेश को 512 बिट (16-शब्द) ब्लॉक में संसाधित करें - एक कंप्रेशन फंक्शन में प्रोसेसिंग के चार राउंड शामिल होते हैं। प्रत्येक दौर एक इनपुट बनाता है जो वर्तमान 512-बिट ब्लॉक को संसाधित किया जा रहा है (Yq ) और 128-बिट बफर मान ABCD और बफर के तत्व को अपडेट करें।
यह चार सहायक कार्यों का वर्णन कर सकता है जो प्रत्येक इनपुट के रूप में तीन 32-बिट शब्द बनाते हैं और आउटपुट के रूप में एक 32-बिट शब्द उत्पन्न करते हैं।
F (X, Y, Z) =XY v not (X) Z
G (X, Y, Z) =XZ v Y not (Z)
H (X, Y, Z) =X xor Y xor Z
I (X, Y, Z) =Y xor (X v not (Z))
प्रत्येक बिट स्थिति में, F सशर्त के रूप में कार्य करता है:यदि X तो Y और Z। फ़ंक्शन F को XY के बजाय v के बजाय + का उपयोग करके दर्शाया जा सकता है और X (Z) के समान बिट स्थिति में कभी भी 1 नहीं होगा।
-
चरण5 - आउटपुट - संदेश डाइजेस्ट ने ए, बी, सी, डी सहित एक आउटपुट बनाया। अंतिम दौर से आउटपुट 128-बिट हैश परिणाम या संदेश डाइजेस्ट है जिसे संदेश के सभी टी 512-बिट ब्लॉक को वृद्धिशील रूप से संसाधित करने के बाद प्राप्त किया जा सकता है। ।