Cấu trúc

Một phần của tài liệu TỔNG QUAN VỀ MẬT MÃ HỌC (Trang 92)

7. Ý NGHĨA KHOA HỌC VÀ THỰC TIÊN CỦA ĐỀ TÀI

3.1.1.Cấu trúc

Các hàm băm họ MD4 đều dựa theo nguyên lý thiết kế của Merkle- Damgºard. Chúng có nhiều điểm tương đồng trong các hàm nén. Sơ đồ cơ bản được mô tả trong hình 3.1 [23].

Hình 3.1.Tương tác giữa mở rộng thông báo và các thao tác bước

Các hàm nén sử dụng một số các thanh ghi được khởi tạo cùng với IV. Các thanh ghi sau đó được cập nhật trong các bước liên tiếp phụ thuộc vào thông báo. Ngoài việc phụ thuộc vào thông báo, các bước đơn lẻ rất giống nhau, chỉ thay đổi một vài thông số cụ thể.

Đầu ra cuối cùng của hàm nén được tính từ trạng thái cuối cùng của các thanh ghi và IV (thông thường là cộng chúng với nhau). Việc tính ngược hàm nén là không thể, điều này rất cần thiết để tránh phép tấn công kẻ đứng giữa.

3.1.1.1. Các thông số

Chi tiết về cấu trúc tổng quát của mỗi hàm được mô tả bớt một vài tham số như trong bảng 3.1. Các thông số chính của tất cả các hàm băm đều dựa theo nguyen lý MD: đầu ra hàm băm có độ dài n, đầu ra hàm nén có độ dài m và đầu vào các khối thông báo có độ dài l.

Hầu hết các hàm của họ MD4 đều được tối ưu trong thiết kế phần mềm trên các vi xử lý 32 bit, ví dụ chiều dài một từ là w32bít. Ngoại trừ SHA-384 và SHA-512 có w64.

Các tham số khác được suy ra bao gồm: Số lượng các từ đầu vào Xi của hàm nén, ký hiệu là t, và được tính là tl w. Tương tự, chiều dài đầu ra m của hàm nén chính là chiều dài của giá trị chuỗi, trong các họ MD4 các hàm băm được dùng khởi tạo các thanh ghi, số lượng r các thanh ghi tính được là: rm w.

Thông số quan trọng tiếp theo là số bước s (còn gọi là các vòng). Đây được xem là thông số bảo mật. Để tăng tính bảo mật của hàm băm thông thường tăng số bước s, tuy nhiên khi đó hiệu quả sẽ giảm.

Các thông số cơ bản của một số hàm băm cụ thể được mô tả trong bảng 3.1. Chú ý SHA-0 và RIPEMD-0 là các hàm băm nguyên thủy không có ký hiệu “-0”. Sau này ký hiệu này được thêm vào để tránh nhầm lẫn. Ký hiệu “2x” trong bảng liên quan đến việc các hàm sử dụng 2 tính toán song song độc lập. Ngoại trừ SHA- 224 và SHA-384 độ dài đầu ra m của hàm nén vào đầu ra n của hàm băm là giống nhau, mn . Trong SHA-224 và SHA-384 ở bước cuối cùng cắt bỏ bit để giảm giá trị băm thực tế.

3.1.1.2. Ký hiệu

Khối thông báo đầu vào X( )j được chia thành t khối nhỏ (các từ thông báo) ký hiệu X X0, 1,...,Xt1. Sau đó các từ thông báo này được mở rộng thành các giá trị W W0, 1,...,Wt1, trong đó các Wi là các đầu vào ở bước thứ i. Giá trị trong các thanh ghi ở các bước được ký hiệu là Ri.

Bảng 3.1.Thông số của các hàm băm họ MD4

(Ký hiệu * là thiết kế ban đầu không có ký hiệu “-0” nó được thêm vào sau này để tránh nhầm lẫn)

Bảng 3.2.Ký hiệu các thông số và các biến

l độ dài các khối thông báo đầu vào (theo bit)

m độ dài đầu ra hàm nén (theo bit)

n độ dài đầu ra hàm băm (theo bit)

r số lượng các thanh ghi

s số lượng các bước (vòng)

t số lượng các từ thông báo đầu vào Xi

w chiều dài một từ (theo bit)

k

 hoán vị sử dụng ở bước thứ k.

i

f phép toán logic ở bước thứ i.

i

K hệ số sử dụng ở bước thứ i.

i

R nội dung trong thanh ghi ở bước thứ i.

i (adsbygoogle = window.adsbygoogle || []).push({});

s số bit dịch ở bước thứ i.

i

W từ thông báo đầu vào ở bước i, phụ thuộc vào thông báo.

i

X từ thông báo

3.1.1.3. Phân loại họ MD4

Có hai điểm khác biệt chính để phân loại các hàm băm họ MD4 thành các phân lớp sau:

 Hàm mở rộng thông báo được thực hiện ở hoán vị trong các vòng hay mở rộng đệ quy.

 Số lượng xử lý tính toán song song.

Tùy thuộc vào hai đặc điểm này các hàm được phân loại thành các phân lớp sau:

+ Họ MD:

MD4 và MD5 thuộc phân lớp này là vì sử dụng hoán vị vòng và chỉ xử lý tính toán theo một luồng.

+ Họ RIPEMD:

Họ RIPEMD bao gồm RIPEMD-{0;128; 160; 256; 320} và cả MD4 mở rộng. Các hàm này sử dụng hoán vị vòng cho việc mở rộng thông báo nhưng xử lý tính toán song song 2 luồng.

+ Họ SHA:

Họ SHA sử dụng hàm nén SHA-{0, 1, 224, 256, 384, 512} và xử lý tính toán một luồng, nhưng việc nén thông báo được thực hiện theo hàm đệ quy.

Chú ý: (HAVAL). Có một hàm băm đáng quan tâm đó là HAVAL, nó gần

giống với thiết kế theo cấu trúc tổng quát. Nhưng có một sự khác biệt quan trọng là việc sử dụng các hàm Boolean rất khác với các hàm đã đề cập, chúng ta không đề cập HAVAL là một bộ phận của họ MD4.

Chi tiết thông số của các hàm băm được mô tả trong Phụ lục A.

Một phần của tài liệu TỔNG QUAN VỀ MẬT MÃ HỌC (Trang 92)