Các Hàm Băm Và Tính Toàn Vẹn Dữ Liệu - Mã Hóa Bảo Mật Trong Wimax

Định nghĩa hàm băm: Hàm băm là một hàm H có ít nhất hai tính chất sau:

Tính chất nén: H sẽ ánh xạ một đầu vào X có độ dài bit hữu hạn tùy ý tới một đầu ra H(x) có độ dài bít n hữu hạn.

Tính chất dễ dùng tính toán: Với H cho trước và một đầu vào x có thể dễ dàng tính được H(x).

Một giá trị băm hệ mật được tạo ra bởi một hàm H có dạng:

( )

h H M=

M là một bản tin có độ dài thay đổi và H M( )là giá trị băm có độ dài cố

định. Giá trị băm được kết nối đến bản tin của nguồn tại một thời điểm. Khi bản tin được giả định là đúng. Phía thu tiến hành nhận thực bản tin này bằng cách tiến hành tính toán lại giá trị băm. Bởi vì bản thân hàm băm cũng không đảm bảo tính bí mật, nên một vài phương pháp yêu cầu bảo vệ giá trị băm.

Các hàm băm đóng vai trò cơ bản trong mật mã hiện đại. Hàm băm sẽ tạo ra một đầu ra từ các bản tin đầu vào. Đầu ra này được định nghĩa là mã hàm băm (kết quả băm, giá trị băm ) hay chính xác hơn hàm băm h sẽ tạo ra ánh xạ các xâu bit có độ dài n cố định.

Ý tưởng cơ bản của việc sử dụng các hàm băm trong mật mã là sử dụng chúng như một ảnh biểu diễn rút gọn (đôi khi còn gọi là vết, dấu tay số hay tóm lược thông báo) của xâu vào.

Các hàm băm được dùng cho các sơ đồ chữ kí số kết hợp với việc đảm bảo tính toàn vẹn của dữ liệu, khi đó bản tin trước hết được băm và rồi giá trị băm (được xem như đại diện cho bản tin cho bản) sẽ được thay cho vị trí bản tin gốc.

Mã hóa bảo mật trong Wimax Chương II : Các phương pháp mã hóa bảo mật

Một lớp các hàm băm được gọi là các mã xác thực thông báo (MAC: Message Authentication Codes ) sẽ cho phép xác thực thông báo bằng kĩ thuật đối xứng (mật mã cổ điển).

Các thuật toán MAC sử dụng 2 đầu vào (bao gồm bản tin và một khóa bí mật) để tạo ra một đầu ra có kích cỡ cố định (n bit) với ý đồ đảm bảo rằng nếu không biết khóa thì việc tạo ra cùng một đầu ra là không khả thi. MAC có thể được dùng để đảm bảo tính toàn vẹn của dữ liệu, xác thực tính nguyên bản của số liệu.

Một ứng dụng điển hình của hàm băm (không dùng khóa ) để đảm bảo tính toàn vẹn của dữ liệu được mô tả như sau:

Giá trị băm của một bản tin riêng x sẽ được tính ở thời điểm T1 (tính toàn

vẹn của giá trị hàm băm này (chứ không phải bản tin) sẽ được bảo vệ. Thời điểm

T2 phép kiểm tra sau sẽ tiến hành kiểm tra xem liệu thông báo có bị sửa đổi hay

không, tức là xem số liệu bản tin x’ có giống bản tin gốc hay không. Giá trị băm

của x’ sẽ được tính toán và so sánh với giá trị băm đã được bảo vệ, nếu chúng

bằng nhau thì bên thu sẽ chấp nhận rằng x=x’ nghĩa là bản tin không bị sửa đổi.

Ứng dụng này thường được gọi là mã phát hiện sự sửa đổi MDC-Manipulation

Detection Codes) [17].

Những yêu cầu đối với một hàm băm.

Mục đích của một hàm băm là để tạo ra “ fingerprint-dấu tay” của một file, một bản tin hoặc khối dữ liệu khác. Để hữu ích đối với nhận thực bản tin, một hàm Hash phải có những đặc điểm sau [7].

1. H có thể được đặt tới khối dữ liệu có kích thước bất kì.

2. H tạo đầu ra có độ dài cố định.

3. H x( )được tính dễ dàng với bất kì x nào bởi cả phần cứng và phần mềm.

4. Với bất kì giá trị h thì rất khó khăn để tìm ra x dựa vào H x( )=h, đôi khi

người ta còn gọi tính chất này là thuộc tính một chiều.

5. Với khối x bất kì, rất khó tính toán để tìm ra một giá trị y x≠ sao cho

( ) ( )

H y =H x , đôi khi gọi tính chất này là tính khó tìm nghịch ảnh thứ hai

hay tính khó va chạm yếu (weak collision resistance).

Mã hóa bảo mật trong Wimax Chương II : Các phương pháp mã hóa bảo mật

6. Hàm băm khó có khả năng tính toán để tìm ra một cặp bất kì (x,y) với x≠y

thoả mãn H x( )=H y( )đặc điểm này gọi là tính khó va chạm hay khó va

chạm mạnh (strong collision resistance).

Ba đặc điểm đầu tiên đầu tiên đáp ứng những ứng dụng thực tiễn của hàm băm đối với nhận thực bản tin .

Đặc tính thứ tư, thuộc tính một chiều dễ dàng tạo ra một mã cho một bản tin nhưng hầu như không thể tạo được một bản tin bởi một mã. Đặc điểm này rất quan trọng, vì kĩ thuật nhận thực sử bao gồm việc sử dụng những giá trị bí mật. Giá trị bí mật này không được gửi đi , tuy nhiên, nếu hàm băm không phải là hàm một chiều, kẻ tấn công có thể dễ dàng tìm ra giá trị bí mật, nếu kẻ tấn công có thể quan sát được hoặc chặn được sự truyền giao.

Đặc tính thứ năm bảo đảm rằng một bản tin thay đổi băm với giá trị như nhau tạo ra một bản tin không thể tìm được. Điều này ngăn chặn sự giả mạo khi mã hóa hàm băm được sử dụng.

Đặc tính thứ sáu xem xét chống lại các loại tấn công của hàm băm như tấn công ngày sinh.

Tất cả các hàm băm đều sử dụng một nguyên lý chung. Đầu vào (bản tin, file,…) được quan sát bởi một chuỗi tuần tự các khối n bit. Đầu vào xử lý từng khối một tại một thời điểm trong một khuôn dạng lập đi lập lại để tạo ra một hàm băm n bit [7]

2.2.3.8. MD4 và MD5

MD4 và MD5 là các thuật toán phân loại bản tin (message digest) được phát triển bởi Ron Rivest được sử dụng cho các ứng dụng chữ kí số, nơi mà một bản tin được nén lại thành một loại (digest) và sau đó được mã hóa bởi một khóa riêng. MD4 và MD5 được thiết kế cho các hệ thống máy tính 32 bit. MD4 được phát triển vào năm 1990, và hiện nay được đánh giá là không còn tính an toàn. MD5 được mô tả bởi phòng thí nghiệm RSA được đưa ra năm 1991 như “MD4 với dây an toàn” và mặc dù chậm hơn MD4 nhưng nó được xem là vẫn an toàn. Với MD4, một bản tin bản rõ được chèn thêm để đảm bảo độ dài của nó cộng

Mã hóa bảo mật trong Wimax Chương II : Các phương pháp mã hóa bảo mật

thêm 448 bit có thể chia được cho 512. Một số nhị phân 64 bit biểu diễn độ dài bản tin ban đầu, sau đó được cộng thêm thành khối 512 bit sử dụng chức năng nén lặp, mỗi khối được xử lý trong bốn vòng khác nhau trong khi MD4 sử dụng 3 vòng lặp [25].

2.2.3.9. SHA và SHA-1

Thuật toán băm bảo mật SHA (Secure Hash Algorith) được phát triển Viện quốc gia tiêu chuẩn và công nghệ. Tuy nhiên thuật toán này đã trở nên kém bảo mật và thuật toán ban đầu được sửa lại và công bố vào năm 1994 với tên SHA-1. Trái ngược với MD5, SHA-1 tạo ra một tệp bản tin 160 bit và được xem là an toàn hơn, mặc dù chậm hơn trong thực hiện.Nó thực hiện với độ dài bản bản rõ

lên đến 264 bit.[25].

Từ khóa » Băm Dữ Liệu