CHƢƠNG 5 MÃ CHỨ NG THỰC THÔNG ĐIỆP, HÀM BĂM
5.1 Mã chứng thực thông điệp
80
Mã chứng thực thơng điệp (MAC) có thể coi là một dạng checksum của mã hóa, được tính theo cơng thức MAC = C(M, K), trong đó:
1) M là thơng điệp cần tính MAC
2) K là khóa bí mật được chia sẽ giữa người gởi và người nhận 3) C là hàm tính MAC
Vì MAC có khóa K bít mật giữa người gởi và người nhận nên chỉ có người gởi và người nhận mới có thể tính được giá trị MAC tương ứng. Mơ hình ứng dụng MAC để chứng thực thơng điệp như sau:
Bên gửi Bên nhận
M M
MACA
M
Tính MAC Tính MAC MACB
Khóa bí mật K KhóabímậtK So sánh
Hình 5-3. Chứng thực dùng MAC
Trudy, nếu chỉ sửa M thành MT thì giá trị MACB sẽ khác MACA và Bob phát hiện được. Nếu Trudy muốn sửa thơng điệp mà Bob khơng biết, thì cần sửa ln MACA thành
MACT tính được từ MT. Tuy nhiên Trudy khơng biết khóa K, do đó khơng tính được MACT
cần thiết.
Mơ hình trên khơng đảm bảo tính bảo mật. Để có tính bảo mật, M và MACA cần được mã hóa trước khi truyền đị
Trong phần đầu chương, ta đã thấy mã hóa đối xứng cũng có tính chứng thực, như vậy thì tại sao khơng dùng mã hóa đối xứng mà cần dùng MAC? Câu trả lời là trong một số trường hợp người ta khơng cần tính bảo mật mà chỉ cần tính chứng thực, nên sử dụng MAC tiết kiệm được thời gian xử lý hơn.
Trong thực tế, người ta hay dùng mơ hình CBC và phương pháp DES của mã hóa đối xứng để tính giá trị MAC. Hình dưới đây trình bày lại mơ hình CBC
p0 p1 pn-1
⊕ ⊕ ⊕
E E E
IV c0 c1 cn-1
81 Như vậy thông điệp M sẽ được chia thành các khối (P0, P1, …, Pn-1), dùng thêm một
vector khởi tạo IV, thì bản mã Cn-1 được chọn làm giá trị MAC cho M. Như vậy kích thước của MAC là 64 bít, kích thước của khóa K là 56 bít.