มีการดำเนินการตามขั้นตอนต่อไปนี้เพื่อคำนวณการสรุปข้อความของธีมซึ่งมีดังต่อไปนี้ -
-
ขั้นตอนที่ 1 - ต่อท้าย padding bits − ข้อความถูกต่อหรือเสริมด้วยวิธีการที่ความยาวรวมเป็นบิตเท่ากันกับ 448 โมดูโล 512 การดำเนินการนี้จะดำเนินการอย่างต่อเนื่องแม้ว่าความยาวของข้อความเป็นบิตเดิมจะเท่ากันกับ 448 โมดูโล 512 448 + 64 =512 ดังนั้นข้อความจึงมีการเสริมเพื่อให้ความยาวเป็น 64 บิตน้อยกว่าทวีคูณของจำนวนเต็มของ 512
-
ขั้นตอนที่ 2 - ต่อท้ายความยาว − เพิ่มคำอธิบาย 64 บิตของความยาวเป็นบิตของข้อความต้นฉบับ M (ก่อนแทรกบิตการเติม) ลงในผลลัพธ์ของขั้นตอนที่ 1 หากความยาวของข้อความต้นฉบับสูงกว่า 264 =184 467 440 73 709 551 616 ดังนั้นจึงใช้เฉพาะความยาวของข้อความ M ขั้นต่ำ 64 บิตเท่านั้น
ดังนั้น ฟิลด์นี้จึงรวมความยาวของข้อความต้นฉบับ M modulo 264 บิตเหล่านี้ถูกเพิ่มเป็นคำ 32 บิตสองคำ และเพิ่มคำลำดับต่ำ (มีความสำคัญน้อยที่สุด) ก่อน ผลลัพธ์ของขั้นตอนที่ 1 และขั้นตอนที่ 2 เป็นข้อความที่มีความยาวใน บิตที่เป็นจำนวนเต็มหลาย 512 บิต
-
ขั้นตอนที่ 3 - เริ่มต้นบัฟเฟอร์ MD - สามารถใช้บัฟเฟอร์ 128 บิตเพื่อเก็บผลลัพธ์ขั้นกลางและสุดท้ายของอัลกอริทึมแฮช MD5 สามารถใช้บัฟเฟอร์สี่คำ (A, B, C และ D) เพื่อประเมินการสรุปข้อความได้ ดังนั้น A, B, C, D แต่ละตัวจึงเป็นรีจิสเตอร์แบบ 32 บิต
รีจิสเตอร์เหล่านี้สามารถบู๊ตได้ถึงค่าต่อไปนี้ในไบต์ฐานสิบหกและลำดับต่ำก่อน -
คำ A:01 23 45 67
Word B:89 ab cd ef
Word C:fe dc ba 98
Word D:76 54 32 10
-
ขั้นตอนที่ 4 - ประมวลผลข้อความในบล็อก 512 บิต (16 คำ) − ฟังก์ชันการบีบอัดประกอบด้วยการประมวลผลสี่รอบ แต่ละรอบจะสร้างอินพุตสำหรับบล็อก 512 บิตปัจจุบันที่กำลังประมวลผล (Yq ) และค่าบัฟเฟอร์ 128 บิต ABCD และอัปเดตองค์ประกอบของบัฟเฟอร์
สามารถอธิบายฟังก์ชันเสริมสี่อย่างที่แต่ละคำสร้างเป็นอินพุตสามคำ 32 บิต และสร้างเป็นเอาต์พุตคำ 32 บิตหนึ่งคำ
F (X, Y, Z) =XY ไม่ใช่ (X) Z
G (X, Y, Z) =XZ v Y ไม่ใช่ (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 สามารถแสดงโดยใช้ + แทน v เนื่องจาก XY และไม่ใช่ X(Z) จะไม่มีวันมี 1 ในตำแหน่งบิตที่คล้ายกัน
-
ขั้นตอนที่ 5 - เอาท์พุต ย่อยข้อความสร้างเอาต์พุตรวมถึง A, B, C, D ผลลัพธ์จากรอบสุดท้ายคือผลลัพธ์แฮช 128 บิตหรือไดเจสต์ข้อความที่สามารถรับได้หลังจากประมวลผลข้อความทั้งหมด t บล็อก 512 บิตที่เพิ่มขึ้น .