Chng tr×nh KC 01 Ch−¬ng tr×nh KC 01 Nghiªn cøu khoa häc ph¸t triÓn c«ng nghÖ th«ng tin vµ truyÒn th«ng §Ò tµi KC 01 01 Nghiªn cøu mét sè vÊn ®Ò b¶o mËt vµ an toµn th«ng tin cho c¸c m¹ng dïng giao thø[.]
Chơng trình KC-01: Nghiên cứu khoa học phát triển công nghệ thông tin truyền thông Đề tài KC-01-01: Nghiên cứu số vấn đề bảo mật an toàn thông tin cho mạng dùng giao thức liên mạng máy tính IP Phụ lục: Một số nghiên cứu hàm băm giao thức mật mà Hà NộI-2004 Mục lục Nghiên cứu thám mà MD4, Trần Hồng Thái Trang Va ch¹m vi sai cđa SHA-0, Florent Chaboud Antoiene Joux, Crypto98 31 Phân tích SHA-1 chế độ mà hoá, Helena Handchuh, Lars R Knudsen Matthew J Robshaw, CT-RSA 2001 48 Các hàm băm dựa mà khối: phơng pháp thiết kế, Bart Preneel, René Govaerts, Joó Vandewalle, CRYPTO93 64 Nguyên tắc thiết kế cho hàm băm, Ivan Bjerre Damgard, Eurocrypt91 75 Hàm băm nhanh an toàn dựa mà sửa sai, Lars Knudsen Bart Preneel, Crypto97 87 Độ mật hàm băm lặp dựa trªn m· khèi, Walter Hohl, Xuejia Lai, Thomas Meier, Christian Waldvogel, Crypto 93 102 Phân phối thoả thuận khoá, Nguyễn Quốc Toàn 115 Xác thực trao đổi khoá có xác thực, Whitfield Diffie, Paul C Van Oorschot Michael J Wierner, Design, Codes and Cryptography, 192 123 CËp nhật thông tin hàm băm SHA-1 145 NGHIấN CU VỀ THÁM Mà MD4 Trần Hồng Thái I MÔ TẢ THUẬT TỐN MD4 Thuật tốn MD4 lấy đầu vào message có độ dài đầu “tóm lược thơng báo” (message digest), cịn gọi “fingerprint” Nó thiết kế gọn nhanh máy 32-bit Mơ tả thuật tốn Giả sử có message với độ dài b-bit đầu vào muốn tìm tóm lược thơng báo (message digest) Ở b số nguyên dương bất kỳ, 0, lớn Ở sử dụng thuật ngữ sau: ‘word’ biến 32 bit, byte bit Q trình tính tóm lược thông báo thực qua bước sau: Bước 1: Thêm vào bit đệm (Padding bits) Thông điệp mở rộng việc thêm “bit đệm” cho độ dài (theo bit) đồng dư với 448 (modulo 512) Việc đảm bảo thêm 64 bit (độ dài - trình bày sau) nữa, độ dài thơng điệp bội 512 Việc đệm thực sau: bit ‘1’ nối với thơng điệp sau bit ‘0’ độ dài thông điệp đồng dư với 448 Bước 2: Thêm độ dài thông điệp (Length) Độ dài thông điệp trước mở rộng b biểu diễn số 64 bit (gồm word) thêm vào thông điệp sau bước (theo thứ tự word thấp trước) Lúc độ dài thông điệp bội 512 bit (16 word 32 bit) Ký hiệu message kết M[0 … N-1], N bội 512 Bước 3: Khởi tạo đệm MD Bốn biến A, B, C, D (là ghi 32 bit) dùng để tính “message digest” Chúng khởi tạo giá trị sau dạng Hexa, theo thứ tự byte thấp trước: word A: 01 23 45 67 word B: 89 ab cd ef word C: fe dc ba 98 word D: 76 54 32 10 Bước 4: Xử lý thông điệp (message) theo khối 16-words Trước tiên ta định nghĩa hàm, hàm lấy word (32 bit) làm đầu vào đưa từ 32 bit: F(X,Y,Z) = XY v not(X)Z G(X,Y,Z) = XY v XZ v YZ H(X,Y,Z) = X xor Y xor Z Trong đó: XY phép ‘and’ bit X Y, not(X) phép lấy bù bit X, X xor Y phép cộng modulo theo bit X Y, X v Y phép toán OR (hoặc) bit X Y Thông điệp xử lý theo khối 16 word sau: for i = to N/16-1 /* Copy block i into X */ for j = to 15 set X[j] to M[i*16 +j] end /* AA BB CC DD Save A as AA, B as BB, C as CC, D as DD */ = A; = B; = C; = D; /* Round */ /* Ký hiệu [abcd k s] phép toán sau: a = (a + F(b,c,d) + X[k])