AN TOÀN VÀ BẢO MẬT THÔNG TIN Đề tài: Nghiên cứu về giải thuật MD5 Danh sách nhóm: 1... Nghiên cứu về giải thuật MD5 III/ Thuật giải • Thông điệp đưa vào sẽ được chia thành từng đoạn
Trang 1AN TOÀN VÀ BẢO MẬT THÔNG TIN
Đề tài:
Nghiên cứu về giải thuật MD5
Danh sách nhóm:
1 Ngô Hải Phong 1051120047
2 Nguyễn Minh Dương 1051120012
Trang 2Nghiên cứu về giải thuật MD5
Trang 3Nghiên cứu về giải thuật MD5
I/ Giới thiệu
Ứng dụng Công nghệ thông tin trở nên phổ biến
Nhu cầu bảo mật thông tin trao đổi qua mạng
Trang 4Nghiên cứu về giải thuật MD5
II/ Khái niệm
MD5 (Message-Digest algorithm 5) là một hàm băm để
mã hóa với giá trị băm là 128 bit
MD5 được thiết kế bởi Ronald Rivest vào năm 1991 để thay
thế cho hàm băm trước đó, MD4 (cũng do ông thiết kế, trước đó nữa là MD2)
Trang 5Nghiên cứu về giải thuật MD5
III/ Thuật giải
• Thông điệp đưa vào sẽ được chia thành từng đoạn 512 bits
• MD5 biến đổi một thông điệp có chiều dài bất kì thành một khối có kích thước cố định 128 bits
Trang 6Nghiên cứu về giải thuật MD5
III/ Thuật giải
• Bộ đệm
Trang 7Nghiên cứu về giải thuật MD5
III/ Thuật giải
• Thuật toán chính của MD5 hoạt động trên một bộ 128 bit
Trang 8Nghiên cứu về giải thuật MD5
III/ Thuật giải
• Thuật toán chính của MD5 hoạt động trên một bộ 128 bit
• Sau đó thuật toán chính sẻ luân phiên hoạt động trên
các khối 512 bit Mỗi khối sẻ phối hợp với một bộ
• Quá trình xử lý một khối thông điệp bao gồm 4 bước
tương tự nhau, gọi là vòng (“round”) Mỗi vòng lại gồm
16 quá trình tương tự nhau dựa trên hàm một chiều F,
phép cộng module và phép xoay trái…
Trang 9Nghiên cứu về giải thuật MD5
III/ Thuật giải
• Quá trình trong một vòng
Trang 10Nghiên cứu về giải thuật MD5
III/ Thuật giải
• Quá trình trong một vòng
o F là hàm một chiều – một hàm được dùng trong mỗi vòng
o M i chỉ ra một khối tin nhập vào 32-bit
o K i chỉ một hằng số 32-bit, khác nhau cho mỗi tác vụ
o <<<s chỉ sự xoay bit về
bên trái s đơn vị; s thay
đổi tùy theo từng tác vụ cộng thêm với modulo 232
Trang 11Nghiên cứu về giải thuật MD5
III/ Thuật giải
• Hàm băm MD5 sẻ trả về một chuổi số thập lục phân gồm
Trang 12Nghiên cứu về giải thuật MD5
IV/ Miêu tả MD5
• Bức điện được chia ra thành nhiều khối 512-bit, mỗi khối
512-bit lại được chia ra 16 khối 32-bit đi vào bốn vòng lặp của MD5 (4 vòng lặp trong MD5 đều có cấu trúc giống nhau)
Trang 13Nghiên cứu về giải thuật MD5
IV/ Miêu tả MD5
Sơ đồ vòng lặp chính của MD5
Trang 14Nghiên cứu về giải thuật MD5
IV/ Miêu tả MD5
Sơ đồ một vòng lặp của MD5
Trang 15Nghiên cứu về giải thuật MD5
: AND : OR : XOR ¬ : NOT
X<<< s : Các bit của X được dịch chuyển xoay vòng sang trái s
vị trí (0 ≤ s < 32)
Trang 16Nghiên cứu về giải thuật MD5
IV/ Miêu tả MD5
Các vòng lặp có thể biểu diễn như sau:
• FF(a,b,c,d,Mj,s,ti) được biểu diễn a = b + ((a + F(b,c,d) + Mj + ti)<<<s)
• GG(a,b,c,d,Mj,s,ti)được biểu diễn a=b + ((a + G(b,c,d) + Mj + ti) <<<s)
• HH(a,b,c,d,Mj,s,ti) được biểu diễn a=b+ ((a+H(b,c,d) + Mj + ti) <<<s)
• II(a,b,c,d,Mj,s,ti) được biểu diễn a = b + ((a + I(b,c,d) + Mj + ti) <<< s)
Trang 17Nghiên cứu về giải thuật MD5
IV/ Miêu tả MD5
Cách thực hiện: bốn vòng (64 bước)
• Vòng 1: FF(a,b,c,d,Mj,s,ti)
ti : 1 => 16 j : 0 => 15 [abcd M0 7 1] [dabc M1 12 2] [cdab M2 17 3] [bcda M3 22 4] [abcd M4 7 5] [dabc M5 12 6] [cdab M6 17 7] [bcda M7 22 8] [abcd M8 7 9] [dabc M9 12 10] [cdab M10 17 11] [bcda M11 22 12] [abcd M12 7 13] [dabc M13 12 14] [cdab M14 17 15] [bcda M15 22 16]
• Vòng 2: GG(a,b,c,d,Mj,s,ti)
ti : 17 => 32 j : (1 + 5j ) mod 16 [abcd M1 5 17] [dabc M6 9 18] [cdab M11 14 19] [bcda M0 20 20] [abcd M5 5 21] [dabc M10 9 22] [cdab M15 14 23] [bcda M4 20 24] [abcd M9 5 25] [dabc M14 9 26] [cdab M3 14 27] [bcda M8 20 28] [abcd M13 5 29] [dabc M2 9 30] [cdab M7 14 31] [bcda M12 20 32]
Trang 18Nghiên cứu về giải thuật MD5
IV/ Miêu tả MD5
Cách thực hiện: bốn vòng (64 bước)
• Vòng 3: HH(a,b,c,d,Mj,s,ti)
ti : 33 => 48 j : (5 + 3j ) mod 16 [abcd M5 4 33] [dabc M8 11 34] [cdab M11 16 35] [bcda M14 23 36] [abcd M1 4 37] [dabc M4 11 38] [cdab M7 16 39] [bcda M10 23 40] [abcd M13 4 41] [dabc M0 11 42] [cdab M3 16 43] [bcda M6 23 44] [abcd M9 4 45] [dabc M12 11 46] [cdab M15 16 47] [bcda M2 23 48]
• Vòng 4: II(a,b,c,d,Mj,s,ti)
ti : 49 => 64 j : 7j mod 16 [abcd M0 6 49] [dabc M7 10 50] [cdab M14 15 51] [bcda M5 21 52] [abcd M12 6 53] [dabc M3 10 54] [cdab M10 15 55] [bcda M1 21 56] [abcd M8 6 57] [dabc M15 10 58] [cdab M6 15 59] [bcda M13 21 60] [abcd M4 6 61] [dabc M11 10 62] [cdab M2 15 63] [bcda M9 21 64]
Trang 19Nghiên cứu về giải thuật MD5
IV/ Miêu tả MD5
• Sau tất cả những bước này a, b, c và d lần lượt được cộng với A, B, C và D để cho kết quả đầu ra và thuật toán tiếp tục với khối dữ liệu 512-bit tiếp theo cho đến hết bức điện
• Đầu ra cuối cùng là một khối 128-bit của A, B, C và D,
đây chính là hàm Băm nhận được
Trang 20Nghiên cứu về giải thuật MD5