Computer >> Máy Tính >  >> Lập trình >> Lập trình

Mã xác thực tin nhắn hoạt động như thế nào?

Mã xác thực tin nhắn là một khối vài byte có thể được sử dụng để xác thực một tin nhắn. Người nhận có thể kiểm tra khối này và chắc chắn rằng thông báo không bị thay đổi bởi bên thứ ba.

Một họ các hàm mật mã được tham số hóa bởi một khóa đối xứng. Mỗi hàm có thể tạo điều kiện thuận lợi cho dữ liệu đầu vào (được gọi là “thông báo”) có độ dài thay đổi để tạo ra giá trị đầu ra có độ dài xác định. Giá trị đầu ra được gọi là MAC của thông báo đầu vào.

Thuật toán MAC đã được phê duyệt là điều bình thường để đáp ứng thuộc tính sau (đối với từng mức bảo mật được cung cấp):Về mặt tính toán không thể quyết định MAC của một thông báo mà không tìm hiểu về khóa, ngay cả khi người ta đã xem kết quả sử dụng khóa đó để tính toán MAC của các tin nhắn khác. Thuật toán MAC có thể được sử dụng để hỗ trợ xác thực nguồn gốc dữ liệu và bảo mật toàn vẹn dữ liệu.

MAC là một bản gốc mật mã và định nghĩa của nó bao gồm ba thuật toán biết cách tạo khóa, gắn thẻ và thuật toán xác minh.

Tạo khóa thuật toán tạo một khóa có "chất lượng" (độ dài) được xác định bởi đầu vào của nó, tham số bảo mật.

Gắn thẻ thuật toán có hai đầu vào như khóa và tin nhắn, và một đầu ra là thẻ.

Xác minh thuật toán có ba đầu vào như khóa, thông báo và thẻ. Nó xuất ra một bit xác định tính hợp lệ của thẻ đối với thông báo đã cho và khóa.

MAC là một nguyên thủy đối xứng, do đó hai bên muốn trao đổi giá trị sử dụng khóa tương tự (đối xứng). Chữ ký điện tử là một chữ ký không đối xứng và hai bên có các khóa khác nhau (nhưng được liên kết về mặt toán học).

Điều này chuyển thành một câu chuyện đơn giản, bất cứ ai có thể kiểm tra MAC cũng có thể tính toán nó bằng cách sử dụng cùng một khóa bí mật.

Nói cách khác, chỉ thực thể sở hữu khóa ký riêng tư mới có thể tạo ra chữ ký, trong khi bất kỳ ai cũng có thể kiểm tra những chữ ký này bằng cách sử dụng khóa xác minh được gọi công khai. Mặc dù có vẻ như chữ ký điện tử là một trực quan động hơn, nhưng việc tính toán của chúng dễ dàng hơn nhiều so với việc tính toán MAC, do đó MACsare vẫn được sử dụng bất cứ khi nào có thể.

MAC đóng một vai trò thiết yếu trong giao tiếp dữ liệu. Tin nhắn được chia sẻ kênh không an toàn quá mức cần phải được xác thực để tránh bị tấn công, bao gồm cả việc truy vấn tin nhắn bởi kẻ xâm nhập có thể nóng nảy với kênh. Nó có thể hỗ trợ tính xác thực lộn xộn, giả sử rằng người phát và người nhận đã gửi một khóa bí mật, thì aMAC có thể được sử dụng.

Trong hệ thống MAC, bộ truyền tạo ra một thẻ là một chức năng của tệp tin và khóa bí mật, và kết hợp nó với tin nhắn trước khi gửi qua kênh.