การทำงานของ Message Authentication Code (MAC)
Message authentication code เป็นบล็อกของไบต์ไม่กี่ไบต์ที่สามารถใช้เพื่อยืนยันข้อความ ผู้รับสามารถทดสอบบล็อกนี้และมั่นใจได้ว่าข้อความไม่ได้ถูกเปลี่ยนแปลงโดยฝ่ายที่สาม
Families ของฟังก์ชันทางเข้ารหัสลับที่มีพารามิเตอร์โดย Symmetric key แต่ละฟังก์ชันสามารถทำหน้าที่ได้บนข้อมูลอินพุท (เรียกว่า "Message") ความยาวแปรได้ เพื่อสร้างค่าเอาต์พุทความยาวที่แน่นอน ค่าเอาต์พุทเรียกว่า MAC ของข้อความอินพุท
MAC algorithm ที่ได้รับอนุมัติ คาดว่าจะปฏิบัติตามคุณสมบัติดังต่อไปนี้ (สำหรับแต่ละระดับความปลอดภัยที่ให้มา): ควรเป็นไปไม่ได้ทางการคำนวณที่จะตัดสินใจ MAC ของข้อความโดยไม่มีความรู้ของคีย์ แม้จะเคยเห็นผลลัพธ์ของการใช้คีย์นั้นเพื่อคำนวณ MAC ของข้อความอื่นๆ MAC algorithm สามารถใช้เพื่อสนับสนุน Data-origin authentication และ Data-integrity security
MAC เป็น Cryptographic primitive และคำจำกัดความของมันรวม 3 อัลกอริทึมที่เรียกว่า Key-generation, Tagging และ Verification algorithm
- Key-generation algorithm - สร้างคีย์ของ 'Quality' (ความยาว) ที่กำหนดโดยอินพุทของมัน คือ Security parameter
- Tagging algorithm - มี 2 อินพุท คือ Key และ Message และเอาต์พุท 1 คือ Tag
- Verification algorithm - มี 3 อินพุท คือ Key, Message และ Tag เอาต์พุทเป็นบิตที่กำหนดความถูกต้องของ Tag สำหรับ Message ที่ให้มา และ Key
MAC เป็น Symmetric primitive ดังนั้น สองฝ่ายที่ต้องการแลกเปลี่ยนข้อความใช้คีย์เดียวกัน (Symmetric) Digital signature เป็น Asymmetric primitive และสองฝ่ายมีคีย์ที่แตกต่างกัน (แต่เชื่อมโยงทางคณิตศาสตร์)
สิ่งนี้แปลเป็นเรื่องราวง่ายๆ ใครที่สามารถตรวจสอบ MAC ก็สามารถคำนวณมันได้โดยใช้ Secret key เดียวกัน
ในคำอื่น เฉพาะเอนทิตีที่ครอบครอง Private signing key เท่านั้นที่สามารถสร้าง Signature ได้ ในขณะที่ใครก็ตามสามารถตรวจสอบ Signature เหล่านี้ได้โดยใช้ Public verification key ที่เรียกว่า แม้จะดูเหมือนว่า Digital signatures เป็น Primitive ที่มีประสิทธิภาพมากกว่า การคำนวณของพวกเขายากกว่าการคำนวณ MAC มาก ดังนั้น MACs ยังคงถูกใช้เมื่อเป็นไปได้
MAC เล่นบทบาทสำคัญในการสื่อสารข้อมูล ข้อความที่แชร์ผ่าน Insecure channel ต้องได้รับการยืนยันตัวตนเพื่อป้องกันการโจมตี รวมถึงการปลอมแปลงข้อความโดย Intruder ที่สามารถจัดการกับ Channel ได้ สามารถสนับสนุน Message authenticity สมมติว่าผู้ส่งและผู้รับแชร์ Secret key MAC สามารถใช้ได้
ในระบบ MAC ผู้ส่งสร้าง Tag ซึ่งเป็นฟังก์ชันของ Message และ Secret key และต่อท้ายมันกับ Message ก่อนส่งมันผ่าน Channel