0
Tải bản đầy đủ (.doc) (79 trang)

CẤU TRÚC CỦA HÀM BĂM

Một phần của tài liệu NGHIÊN CỨU ỨNG DỤNG HỆ MẬT TRÊN CẤP SỐ NHÂN CYCLIC TRONG HÀM BĂM (Trang 67 -72 )

4.2. CÁC THUẬT TỐN THÊM BÍT PHỤ

Đối với phương pháp băm từng khối thông điệp con, ta thường phải nối thêm các bit phụ (padding) để thông điệp đầu vào đạt tới chiều dài nhất định và có thể chia nhỏ hồn tồn thành các khối thơng điệp con có chiều dài như nhau. Ta có các thuật tốn nối thêm bit cơ bản sau:

Thuật tốn 1.1

INPUT: thơng điệp m và độ dài khối thông điệp con n. OUTPUT: thơng điệp m’ có chiều dài là bội số của n.

1. Thêm vào cuối thơng điệp m một số cần thiết (có thể khơng cần) các bit 0 để đạt được thơng điệp m’ có chiều dài là bội số của n.

Thuật tốn 1.2

INPUT: thơng điệp m và độ dài khối thơng điệp con n. OUTPUT: thơng điệp m’ có chiều dài là bội số của n.

1. Thêm vào cuối thông điệp m một bit 1.

2. Tiếp tục thêm vào cuối một số cần thiết (có thể khơng cần) các bit 0 để đạt được thơng điệp m’ có chiều dài là bội số của n.

Thuật toán 1.3 (Merkle - Damgard)

INPUT: thông điệp m và độ dài khối con n. Giả sử chiều dài của m nhỏ hơn 2n. OUTPUT: thông điệp m’ có chiều dài là bội số của n.

1. Thêm vào cuối thông điệp m một số cần thiết (có thể khơng cần) các bit 0 để đạt được thơng điệp m’ có chiều dài là bội số của n.

2. Tiếp tục thêm vào cuối thông điệp một chuỗi n bit là biểu diễn nhị phân của độ dài thơng điệp m ban đầu.

4.3. MỘT SỐ VÍ DỤ VỀ HÀM BĂM

Hàm băm MD4 (Message Digest Algorithm 4): là một hàm băm 128 bit được thiết kế bởi Ronald Rivest vào năm 1990.Mục tiêu thiết kế của MD4 là để tìm được hai thơng điệp có cùng mã băm thì cẩn khoảng 264 pháp tốn, và để tìm được tiền ảnh của một mã băm thì cần khoảng 128

2 phép tốn. Nhưng đến nay, mục tiêu đó đã thất bại. Xung đột của MD4 có thể được tìm thấy với khoảng 220 phép tốn. Vì vậy MD4 khơng cịn được khuyến khích sử dụng nữa. Tuy nhiên MD4 vẫn được nhắc đến như là cơ sở thiết kế và so sánh các hàm băm cùng họ phổ biến hiện nay.

Hàm băm MD5 (Message Digest Algorithm 5): được thiết kế dựa trên MD4 nhằm mục đích tăng cường và khắc phục điểm yếu cho thuật toán này. MD5 có những thay đổi và cải tiến đáng kể so với MD4 (xem[1]), và trở thành hàm băm được sử dụng khá phổ biến hiện nay. Tuy nhiên hàm băm này cũng có những điểm

yếu. Mặc dù vẫn chưa tìm đươc xung đột của hàm MD5, nhưng người ta đã có thể tìm được xung đột của hàm nén bên trong hàm MD5.

Hàm SHA-1 (Secure Hash Algorithm): là hàm băm 160 bit được Viện nghiên cứu tiêu chuẩn và công nghệ quốc gia Mỹ phát triển dựa trên hàm MD4 và được sử dụng trong các ứng dụng của chính phủ Hoa Kỳ. Hàm SHA-1 cũng có những thay đổi và cải tiến hơn so với MD4 (xem[1], nhằm tăng độ an tồn cho thuật tốn trước khi các phương pháp tấn cơng tìm khóa vét cạn. Hàm SHA-1 được đánh giá là an tồn hơn hẳn so với thuật tốn MD5.

Hình 2.1. Một số hàm băm dựa trên MD4

4.4. CÁC LOẠI TẤN CÔNG HÀM BĂM CƠ BẢN

4.4.1. Tấn công vào độ dài MDC

Cho trước một thông báo m cố định và mã băm ( )h m có độ dài n bit, phương pháp vét cạn để tìm một xung đột với m chọn ngẫu nhiên một chuỗi m′ và tính thử xem ( )h m′ =h m( ) hay không. Giả sử mã băm là một biến ngẫu nhiên có phân phối chuẩn thì xác suất để tìn được m′xung đột là 1 2n

.

4.4.2. Tấn cơng vào khơng gian khóa của MAC

Khóa bí mật của MAC có thể xác định bằng cách tìm trên tồn bộ khơng gian khóa. Với một cặp đầu vào/đầu ra (thơng báo/ MAC) cho trước, ta có thể thử tất cả các khóa có thể để tính MAC từ thông báo đã cho, và kiểm tra giá trị MAC có trùng

với đầu ra ban đầu. Khi đó sẽ xác định được khóa bó mật của MAC. Nếu chiều dài khóa của MAC là t bit thì khóa bí mật có thể tìm được với xác suất 1 2 ;t t n< .

4.4.3. Tấn công vào độ dài MAC

Với một hàm băm MAC n bit, việc tìm được giá trị hàm băm MAC của một thông báo cho trước hoặc tìm nghịch ảnh có xác suất thành cơng là khoảng 1 2n. Tuy nhiên, các giá trị băm tìm thấy khơng thể kiểm chứng được nếu không biết trước cặp đầu vào/đầu ra (thơng báo/mã băm), hoặc biết trước khóa bí mật của MAC. Mục tiêu xây dựng các hàm băm MAC là khơng thể tìm được chính xác một cặp (thơng báo/mã băm) mới với xác suất thành công lớn hơn (1 2 ,1 2 )t n , nghĩa là lớn hơn xác suất tìm được khóa bí mật và xác suất tìm mã băm MAC.

4.4.4. Tấn cơng bằng các kết quả tính tốn được

Việc tính tốn trước một số lượng các cặp đầu vào/đầu ra của hàm băm sẽ giúp nhanh chóng tìm được nghịch ảnh cũng như nghịch ảnh thứ hai của một mã băm. Ở đây, ta đánh đổi chi phí tính tốn và khơng gian lưu trữ để đạt mục tiêu trong thời gian ngắn. Chẳng hạn với mã băm 64 bit, người ta sẽ chọn ngẫu nhiên

40

2 thơng báo đầu vào và tính mã băm của chúng, sau đó lưu trữ kết quả thành các cặp đầu vào/đầu ra. Việc tốn thời gian và khơng gian để tính tốn trước giúp tăng khả năng tòm được một nghịch ảnh của một mã băm đó từ 1 2 lên 64 1 2 . Tương24

tự, xác suất để tìm một nghịch ảnh thứ hai tăng lên rlần nếu córcặp đầu vào/đầu ra của hàm OWHF đã được tính trước.

4.4.5. Tấn cơng đa mục tiêu

Để tấn công kháng nghịch ảnh thứ hai của một hàm băm, người ta thường cố định một mục tiêu (mã băm của nghịch ảnh thứ hai) rồi tìm một nghịch ảnh khác thỏa mãn mục tiêu đó. Nhưng nếu có r mục tiêu, ta chỉ cần tìm một nghịch ảnh

thứ hai tăng lên r lần so với phương pháp sử dụng một mục tiêu. Điều này có nghĩa là khi sử dụng các hàm băm có khóa, việc sử dụng nhiều lần một khóa duy nhất sẽ giảm độ an tồn của chính hàm băm. Nếu có r thơng báo kèm theo mã băm, khả

năng xuất hiện một xung đột của hàm băm tăng lên r lần.

4.4.6. Tấn công bằng các thông báo dài

Giả sử h là một hàm băm n bit có hàm nén là f và khơng áp dụng thuật tốn

mở rộng thơng báo. Đặt m là một thơng báo được chia thành t khối thơng báo con.

Khi đó, nghịch ảnh thứ hai của ( )h m có thể được tìm thấy trong khoảng thời gian

tương đương với việc thực hiện (2n s)+s hàm nén f và cần không gian lưu trữ

( lg( ))

n s+ s bit, với mọi s trong khoảng 2

1 min( ,2 ).n

s t

≤ ≤

Như vậy, đối với các thơng báo có chiều dài lớn, việc tìm nghịch ảnh thứ hai nhìn chung dễ dàng hơn tìm nghịch ảnh của một mã băm (trường hợp xấu nhất là phải thực hiện hàm nén f đến 2n lần). Với t ≥2n2, chi phí tính tốn sẽ thấp nhất nếu chọn s=2n2, khi đó ta sẽ phải thực hiện khoảng 2n2 hàm nén f để tìm một

nghịch ảnh thứ hai.

4.5. XÂY DỰNG HÀM BĂM MỚI TRÊN CÁC CẤP SỐ NHÂN CYCLIC

Việc sử dụng CGP trên vành đa thức để xây dựng hệ mật như trong chương 2 thể hiện một số ưu điểm: cấu trúc đại số chặt chẽ, số lượng CGP trên vành đa thức nhiều (thuận lợi cho việc tạo khóa trong các hệ mật), mạch điện phần cứng thực hiện khá dễ dàng (thuận lợi cho việc áp dùng vào thực tế), tốc độ tính tốn nhanh.

Trong mục này sẽ đề cập đến việc áp dụng hệ mật trình bày ở chương 2 để xây dựng một hàm băm MDC-2 có độ dài mã băm là 256 bit. Sơ đồ hàm băm như trong hình 3.3, sau bước băm cuối cùng thì mã băm đầu ra được ghép từ đầu ra 1 (out 1

i

Hàm E được xây dựng trên cơ sở hệ mật sử dụng các cấp số nhân cyclic trên

vành đa thức có hai lớp kề (đã được mơ tả trong chương 2). Các khóa Ki vẫn là các

phần tử trong một cấp số nhân trên vành đa thức có hai lớp kề cyclic x61+1 được

chọn như sau: 61

(

)

0imod 1; 1,16

i a

KK K x + i =

với Ka là một đa thức có trọng số lẻ tùy ý sao cho: degKa <61; K0là một phần tử

nguyên thủy của nhóm nhân cyclic có cấp bằng 260 −1 và cũng là một đa thức có trọng số lẻ [4], [5].

Một phần của tài liệu NGHIÊN CỨU ỨNG DỤNG HỆ MẬT TRÊN CẤP SỐ NHÂN CYCLIC TRONG HÀM BĂM (Trang 67 -72 )

×