Message Authentication Code (MAC) คืออะไร?
MAC ย่อมาจาก Message Authentication Code เป็นรหัสความปลอดภัยหรือแท็กที่เพิ่มเข้าไปในข้อความที่ส่งจากผู้ส่งไปยังผู้รับ เพื่อยืนยันความถูกต้องและความสมบูรณ์ของข้อความ (ไม่มีการแก้ไขข้อความระหว่างทาง)
MAC คล้ายกับ Message Digest (MD) แต่ต้องใช้กระบวนการเข้ารหัสแบบ Symmetric Key (คีย์เดียวกันระหว่างผู้ส่งและผู้รับ) เรียกอีกอย่างว่า Keyed Hash Function หรือ Cryptographic Checksum
การทำงานของ MAC
อัลกอริทึม MAC สร้างรหัสจากข้อความที่ต้องการตรวจสอบและ Secret Key ที่รู้จักเฉพาะผู้ส่งและผู้รับ โดยผู้รับสามารถตรวจสอบความสมบูรณ์และความถูกต้องของข้อความได้ว่ามาจากผู้ส่งที่แท้จริงหรือไม่ MAC ไม่รองรับ Non-Repudiation (ไม่สามารถปฏิเสธการส่งได้)
อัลกอริทึมหลัก 3 ตัว
- Key Generation Algorithm: เลือกคีย์แบบสุ่ม
- Signing Algorithm: สร้าง Tag จากคีย์และข้อความ
- Verifying Algorithm: ตรวจสอบความถูกต้องของข้อความจากคีย์และ Tag จะคืนค่า "Accepted" หากตรงกัน มิฉะนั้น "Rejected"
ข้อกำหนดของ MAC
- ใช้ในการโอนเงินดิจิทัล (EFTs) เพื่อความสมบูรณ์ของข้อมูล ยืนยันว่าข้อความมาจากผู้ส่งที่ระบุและไม่ถูกแก้ไขระหว่างทาง
- ผู้ตรวจสอบที่มีคีย์สามารถตรวจจับการเปลี่ยนแปลงของข้อความได้
- จำเป็นสำหรับการเข้าถึงบัญชีการเงิน: ธนาคาร บริษัทหลักทรัพย์ องค์กรไว้ทรัพย์ และบริษัทประกันภัยที่ให้บริการออนไลน์ ใช้ MAC เป็นส่วนสำคัญของ Financial Cryptography
- ความปลอดภัยทางคณิตศาสตร์: หากโจมตีสังเกตเห็น M และ C(K, M) ควรคำนวณหา M' ที่ทำให้ C(K, M') = C(K, M) ไม่ได้ในทางปฏิบัติ
- การกระจายตัวแบบสม่ำเสมอ (Uniform Distribution): สำหรับข้อความสุ่ม M และ M' ความน่าจะเป็นที่ C(K, M) = C(K, M') คือ 2-n โดย n คือจำนวนบิตของ MAC
- ความทนทานต่อการแปลงรูปแบบ: หาก M' = f(M) เช่นพลิกบิตบางบิต ความน่าจะเป็นที่ MAC ตรงกันก็คือ 2-n