MÃ HểA VÀ XÁC THỰC TRONG VPN 3.1 Giới thiệu
3.3.2.1. Giản lược thụng điệp MD dựa trờn hàm băm một chiều
MD là phương phỏp sử dụng để phỏt hiện lỗi truyền dẫn, nú được thực hiện bằng cỏc hàm băm một chiều. Cỏc hàm băm một chiều được sử dụng để tớnh MD. Một hàm băm được coi là tốt nếu thoả mó cỏc yờu cầu:
- Việc tớnh MD đơn giản, hiệu quả cho phộp tớnh MD của cỏc bản tin cú kớch thước nhiều GB.
- Khụng cú khả năng tớnh ngược lại bản tin ban đầu khi biết giỏ trị MD của nú. Đõy là lý do cú tờn gọi là hàm băm một chiều.
- Giỏ trị MD phải phụ thuộc vào tất cả cỏc bit của bản tin tương ứng. Dự chỉ một bit trong bản tin bị thay đổi, thờm vào hoặc xoỏ bớt thỡ sẽ cú khoảng 50% cỏc bit trong MD sẽ thay đổi giỏ trị một cỏch ngẫu nhiờn. Hàm băm cú khả năng thực hiện ỏnh xạ message-to-digest giả ngẫu nhiờn, nghĩa là với hai bản tin gần giống hệt nhau thỡ mó hash của chỳng lại hoàn toàn khỏc nhau.
- Do bản chất ngẫu nhiờn của hàm băm và số lượng cực lớn cỏc giỏ trị hash cú thể, nờn hầu như khụng cú khả năng hai bản tin phõn biệt cú cựng giỏ trị hash. Với cỏc ứng dụng thực tế hiện nay cú thể coi đầu ra của hàm băm thực hiện trờn một bản tin là dấu võn tay duy nhất cho bản tin đú.
Hỡnh 3.4: Hàm băm thụng dụng MD5, SHA-1
MD cú độ dài cố định hoạt động như một dấu võn tay duy nhất cho một bản tin cú độ dài tuỳ ý. Với độ dài thụng thường của một MD từ 128 đến 256 bit thỡ cú thể đại diện cho 1038ữ1070 giỏ trị võn tay khỏc nhau.
Cú hai hàm băm thụng dụng là MD5 (Message Digest #5) và SHA (Security Hash Function). MD5 do Ron Rivest (RSA Security Inc) phỏt minh, tớnh giỏ trị hash 128 bit (16 Byte) từ một bản tin nhị phõn cú độ dài tuỳ ý. SHA được phỏt triển bởi NIST (US National Institute of Standards and Technology) với sự cộng tỏc của NSA (National Security Agency). SHA-1 tớnh giỏ trị hash 160 bit (20 Byte) từ một bản tin nhị phõn cú độ dài tuỳ ý. Thuật toỏn này tương tự như MD5 nhưng an toàn hơn vỡ kớch thước lớn hơn. Thuật toỏn SHA-2 với kớch thước hash là 256, 384, và 512 bit đó được NIST cụng bố vào thỏng 10 năm 2000 để thớch ứng với cỏc khoỏ cú độ dài lớn của thuật toỏn mó hoỏ AES.
* Cấu trỳc cơ bản của hàm băm một chiều MD5/SHA
Cả MD5 và SHA đều làm việc với khối dữ liệu đầu vào 512 bit. Như vậy bản tin ban đầu được phõn thành số nguyờn lần cỏc khối dữ liệu này. Điều này được thực hiện
bằng cỏch thờm một trương Length 64 bit vào cuối bản tin, sau đú chốn 0ữ512 bit đệm vào trước trường Length để khối dữ liệu cuối cựng cú độ dài đỳng 512 bit.
Hỡnh 3.5: Cấu trỳc cơ bản của MD5/SHA
Việc xử lý theo từng khối này cho phộp tớnh giỏ trị hash của cỏc bản tin lớn theo kiểu nối tiếp.
Vector khởi tạo IV (initialization Vector) và giỏ trị hash:
Ngoài 512 bit khối dữ liệu đầu vào, hàm băm cũn yờu cầu một vector khởi tạo IV cú kớch thước bằng kớch thước của hash (128 bit đối với MD5, 160 bit đối với SHA-1).
Trong vũng đầu tiờn, IV lấy giỏ trị định nghĩa trước trong cỏc chuẩn MD5, SHA. Một giỏ trị hash sẽ được tớnh dựa trờn khối 512 bit đầu vào đầu tiờn. Giỏ trị hash này đúng vai trũ IV trong vũng thứ hai. Quỏ trỡnh tiếp tục với giỏ trị hash vũng trước là IV của vũng sau. Sau khi khối dữ liệu 512 bit cuối cựng được xử lý thỡ giỏ trị hash tớnh được là MD của toàn bộ bản tin.