การทำงานของ Secure Hash Algorithm (SHA)
SHA พัฒนาโดย NSA เผยแพร่ 1993 ผ่าน NIST เป็น FIPS PUB 180 พัฒนาจาก MD4 เพิ่มขั้นตอนใหม่: ขยาย 16-word Message Block → 80-word Block ก่อนเข้าสู่ Compression Function
ขั้นตอนการประมวลผล
Step 1: Append Padding Bits
Original Message → Pad ให้ความยาว ≡ 448 (mod 512) Padding เสมอแม้ยาวพอแล้ว Padding = 1 ตามด้วย 0 จำนวนที่จำเป็น
Step 2: Append Length
เพิ่ม Block 64-bit (Unsigned 64-bit Integer, Most Significant Byte First) ระบุความยาว Original Message (ก่อน Padding) ความยาวรวม = Multiple of 512
Step 3: Initialize Buffer
Buffer = 5 Registers (A,B,C,D,E) ละ 32 บิต = 160 บิต ใช้เก็บผลชั่วคราวและผลสุดท้ายของ Compression Function ค่าเริ่มต้น (Hex):
A = 67 45 23 01 B = ef cd ab 89 C = 98 ba dc fe D = 10 32 54 76 E = c3 d2 e1 f0
A,B,C,D = Registers เดียวกับ MD5 แต่ SHA-1 ใช้ Big-endian Format (Most Significant Byte อยู่ Low-address)
Step 4: Process Message in 512-bit Blocks
Compression Function = 20 Steps × 4 Rounds = 80 Steps 4 รอบโครงสร้างเหมือนกัน แตกต่าง: แต่ละรอบใช้ Boolean Function ต่างกัน (f1,f2,f3,f4) และ Additive Constant Kt ต่างกัน (0 ≤ t ≤ 79)
Step 5: Output
หลังประมวลผล 512-bit Block สุดท้าย (Block ที่ t) → ได้ 160-bit Message Digest