Hàm băm Davie s– Mayer và ứng dụng của TT Rijndael vào hàm băm

Một phần của tài liệu Tìm hiểu chữ ký số và ứng dụng của nó (Trang 40)

2.4.4.1 Hàm băm Davies-Mayer [2]

Hàm băm Davies-Mayer là một kiến trúc hàm băm dựa trên việc mã hóa theo khối trong đó độ dài của thông điệp rút gọn (tính theo bit) bằng với kích thƣớc khối thông điệp ứng với thuật toán mã hóa đƣợc sử dụng.

Gọi n, k lần lƣợt là kích thƣớc khối và kích thƣớc khóa của thuật toán đƣợc sử dụng. Trong hàm băm Davies-Mayer không cần sử dụng khóa. Khóa ban đầu đƣợc thiết lập mặc định, có giá trị là 2k -1 với k là kích thƣớc khóa (theo bit) của thuật toán. Hàm mã hóa E sử dụng khóa K đƣợc ký hiệu là Ek.

Thông điệp ban đầu đƣợc chia thành m khối có kích thƣớc n bit. Davies- Mayer hash chính là thực hiện lần lƣợt m lần thao tác sau:

Hi = EXi (Hi-1) Xi

Hm chính là thông điệp rút gọn của thông điệp ban đầu.

2.4.4.2 Hàm AES-Hash

AES-Hash đƣợc mô tả dựa trên kiến trúc hàm băm Davies-Mayer, sử dụng thuật toán Rijndael với kích thƣớc khối và khóa đều là 256 bit. Quá trình thực hiện AES-Hash gồm các bƣớc:

- Mở rộng thông điệp: Thông điệp đƣợc mở rộng để có kích thƣớc bằng một

bội số chẵn nhỏ nhất của kích thƣớc khối. Việc này đƣợc thực hiện bằng cách thêm vào các bit zero vào cuối thông điệp sao cho kích thƣớc đạt đƣợc là một bội số lẻ nhỏ nhất của 128 bit. Sau đó thêm 128 bit chứa giá trị chiều dài ban đầu của thông điệp. Thông điệp mở rộng sẽ có độ dài: 40 bit ban đầu + (128 – 40) bit 0 mở rộng + 128 bit thể hiện giá trị

- Chia thông điệp mở rộng thành n khối x1,...,xn, với kích thƣớc 256 bit. - Áp dụng Davies-Mayer Hash bằng thuật toán Rijndael n lần cho n khối.

Hi = EXi (Hi-1) Xi

- Áp dụng thao tác bổ sung cuối để thu đƣợc giá trị băm.

Hn+1 = EHn (Hn) Xn

Hn+1 chính là giá trị băm của thông điệp ban đầu.

2.4.4.3 Hàm băm Davies-Mayer và AES-Hash

Hàm băm Davies-Mayer đƣợc chứng minh rằng để tìm thông điệp đầu vào thứ 2 có cùng kết quả giá trị băm (độ dài n bit) với thông điệp ban đầu cho trƣớc

(“tiền ảnh thứ hai”) cần phải thực hiện 2n

thao tác, để tìm cặp thông điệp có cùng giá trị băm cần thực hiện 2n/2 thao tác. Do đó, để đạt đƣợc mức độ bảo mật có thể chấp nhận đƣợc thì kích thƣớc khối đòi hỏi phải lớn. Vào thời điểm hiện tại, kích thƣớc khối phải lớn hơn 80 bit để tránh tấn công “tiền ảnh thứ hai” và lớn hơn 160 bit để tránh tấn công đụng độ. Điều này có nghĩa không thể sử dụng các thuật toán mã hóa có kích thƣớc khối 64 bit (ví dụ nhƣ DES) để thực hiện Davies-Mayer Hash. Một điều lƣu ý khác là hàm băm Davies-Mayer đƣợc xem là không an toàn khi sử dụng các thuật toán DES-X (nhƣ 3DES).

AES-Hash áp dụng Davies-Mayer Hash, sử dụng thuật toán Rijndael 256 bit nên đảm bảo đƣợc độ an toàn đối với tấn công “tiền ảnh thứ hai” và tấn công “đụng độ”. Ngoài ra, AES-Hash còn thực hiện thao tác bổ sung cuối để tăng chi phí khi tấn công hàm băm. Do đó, mức độ an toàn bảo mật của hàm băm AES-Hash sẽ đƣợc tăng đáng kể.

Một phần của tài liệu Tìm hiểu chữ ký số và ứng dụng của nó (Trang 40)

Tải bản đầy đủ (PDF)

(94 trang)