Message Authentication Code

Message Authentication Code (MAC; tạm dịch: Mã xác thực thông tin), còn được gọi là keyed hash functions và cryptographic checksums, được tạo ra từ các thông tin có liên quan để đảm bảo tính toàn vẹn (integrity) và tính xác thực (authentication) của người trao đổi thông tin. MAC có ba thuật toán biến thể được chấp nhận, theo Trung tâm Bảo mật Máy tính Quốc gia thuộc NIST, là HMAC, KMAC, và CMAC.

Với nền tảng là mật mã hóa khóa đối xứng, MAC được sử dụng trong nhiều tiêu chuẩn và công cụ mật mã hóa như SSH, SSL/TLS, và IPsec. Đều dùng với mục đích xác thực thông tin, MAC nhanh hơn chữ ký số (digital signature). Tuy vậy, MAC thường dùng trong các giao thức mạng và API, trong khi trong các văn bản có ràng buộc pháp lý, chữ ký số vẫn được dùng thường xuyên hơn.

Đặc tính của MAC
Một số đặc tính cơ bản của MAC được liệt kê như sau:
 MAC tạo tag bảo mật cho thông tin.
 MAC được tạo trên nền tảng của mật mã hóa khóa đối xứng (symmetric keys).
 Thông tin đầu vào có độ dài ngẫu nhiên, trong khi thông tin đầu ra có độ dài cố định.
 MAC giúp xác minh tính toàn vẹn của thông tin (mọi sửa đổi trong quá trình truyền tin đều dễ dàng bị phát hiện) và tính xác thực của hai bên trao đổi thông tin. 
 MAC không thể giúp chống thoái thác (non-repudiation) vì cả hai bên trao nhận thông tin đều có khóa chung (shared key).

Cách thức hoạt động
trái|nhỏ|400px|Cách MAC hoạt động

Một khóa [đối xứng] được tạo và phân bổ cho cả hai bên người gửi và người nhận thông qua kênh bảo mật (secure channel). Quá trình phân bổ các khóa này cho các bạn phải được tin chắc rằng đã được bảo mật đúng cách.

Người gửi tin:
 Tin nhắn (Message) và Khóa được đưa vào thuật toán MAC, từ đó tạo ra MAC.
 Người gửi gửi tin ngắn gốc (Message) và MAC vừa tạo ra đến người nhận.

Người nhận tin:
 Nhận tin nhắn gốc (Message) và MAC của người gửi.
 Dùng tin nhắn vừa nhận và khóa, đưa vào thuật toán MAC, tạo ra một mã MAC'.

Quá trình kiểm tra tính toàn vẹn
Nếu MAC' = MAC, tin nhắn được xác thực là tin nhắn gốc chưa qua chỉnh sửa.
Nếu MAC' != MAC, tin nhắn đã bị chỉnh sửa qua kênh truyền tin.

Tham khảo

Thể loại:Mật mã học