TRƯỜNG ĐẠI HỌC KHOA HỌC HUẾ 1 TRƯỜNG ĐẠI HỌC KHOA HỌC HUẾ KHOA CÔNG NGHỆ THÔNG TIN o0o TIỂU LUẬN LÝ THUYẾT MẬT MÃ Đề tài TÌM HIỂU VỀ HÀM BĂM MẬT MÃ Giáo viên hướng dẫn Nhóm 4 GS TSKH Phạm Huy Điển Trầ[.]
TRƯỜNG ĐẠI HỌC KHOA HỌC HUẾ KHOA CÔNG NGHỆ THÔNG TIN -o0o - TIỂU LUẬN LÝ THUYẾT MẬT MÃ Đề tài: TÌM HIỂU VỀ HÀM BĂM MẬT MÃ Giáo viên hướng dẫn: Nhóm 4: GS TSKH Phạm Huy Điển Trần Như Đăng Tuyên Nguyễn Vũ Cát Tường Nguyễn Thị Thanh Tâm Trần Thị Thành Lê Bá Minh Phong Huế, 1/2012 MỤC LỤC A MỞ ĐẦU B NỘI DUNG Đặt vấn đề Hàm băm mật mã .4 Cấu trúc hàm băm Hàm băm MD5 5 Hệ thống chuẩn hàm băm mật mã SHA .7 Các hàm băm mật mã học nghiên cứu C KẾT LUẬN 10 D TÀI LIỆU THAM KHẢO 10 A MỞ ĐẦU Ngày nay, với bùng nỗ thơng tin vấn đề đặt người cần bảo vệ thông tin liệu mật cách an tồn Hiện có nhiều công cụ giải pháp để bảo mật liệu cách hiệu Một cách để tạo bảo mật mã hóa thơng tin Đặc biệt, hàm băm mật mã (Cryptographic hash functions) đóng vai trị quan trọng mã hóa Trong tiểu luận này, giới thiệu khái quát Hàm băm mật mã ứng dụng Đồng thời giới thiệu đến hàm băm mật mã Do thời gian thực tiểu luận kinh nghiệm có hạn nên tiểu luận mắc số sai sót ngồi ý muốn Rất mong nhận góp ý để đề tài hồn thiện Cuối cùng, chúng tơi xin chân thành cảm ơn GS TSKH Phạm Huy Điển tận tình giảng dạy, cung cấp tài liệu tham khảo để nhóm hồn thành tiểu luận Huế, ngày tháng năm 2012 B NỘI DUNG Đặt vấn đề Trên thực tế, thông điệp sử dụng chữ ký điện tử có độ dài bất kỳ, chí lên đến vài Megabyte Trong đó, thuật tốn chữ ký điện tử trình bày lại áp dụng thơng điệp có độ dài cố định thường tương đối ngắn, chẳng hạn phương pháp DSS sử dụng chữ ký 320 bit thông điệp 160 bit Để giải vấn đề này, chia nhỏ thơng điệp cần ký thành đoạn nhỏ có độ dài thích hợp ký mảnh thông điệp Tuy nhiên, giải pháp lại có nhiều khuyết điểm khơng thích hợp áp dụng thực tế: Nếu văn cần ký dài số lượng chữ ký tạo nhiều kết nhận thơng điệp có kích thước lớn Chẳng hạn sử dụng phương pháp DSS thơng điệp sau ký có độ dài gấp đơi văn nguyên thủy ban đầu! Hầu hết phương pháp chữ ký điện tử có độ an tồn cao địi hỏi chi phí tính tốn cao đó, tốc độ xử lý chậm Việc áp dụng thuật toán tạo chữ ký điện tử nhiều lần văn thực lâu Từng đoạn văn sau ký dễ dàng bị thay đổi thứ tự hay bỏ bớt mà khơng làm tính hợp lệ văn Việc chia nhỏ văn bảo đảm tính tồn vẹn thơng tin ban đầu cần ký Hàm băm mật mã Hàm băm mật mã hàm toán học chuyển đổi thơng điệp có độ dài thành dãy bit có độ dài cố định (tùy thuộc vào thuật tốn băm) Dãy bit gọi thơng điệp rút gọn (message digest) hay giá trị băm (hash value), đại diện cho thông điệp ban đầu Dễ dàng nhận thấy hàm băm h song ánh Do đó, với thơng điệp x bất kỳ, tồn thông điệp x’ ≠ x cho h(x)= h(x’) Lúc này, ta nói “có đụng độ xảy ra” Một hàm băm h gọi an toàn (hay “ít bị đụng độ”) khơng thể xác định (bằng cách tính tốn) cặp thơng điệp x x’ thỏa mãn x≠x’ h(x) = h(x’) Trên thực tế, thuật toán băm hàm chiều, đó, khó để xây dựng lại thơng điệp ban đầu từ thông điệp rút gọn Hàm băm giúp xác định tính tồn vẹn liệu thơng tin: thay đổi, dù nhỏ, thông điệp cho trước, ví dụ đổi giá trị bit, làm thay đổi thông điệp rút gọn tương ứng Tính chất hữu ích việc phát sinh, kiểm tra chữ ký điện tử, đoạn mã chứng nhận thơng điệp, phát sinh số ngẫu nhiên, tạo khóa cho q trình mã hóa… Hàm băm tảng cho nhiều ứng dụng mã hóa Có nhiều thuật tốn để thực hàm băm, số đó, phương pháp SHA-1 MD5 thường sử dụng phổ biến từ thập niên 1990 đến nay.Hàm băm hàm chuyển đổi thơng điệp có độ dài thành dãy bit có độ dài cố định Các hàm băm nhận chuỗi bit có chiều dài tùy ý (hữu hạn) làm liệu đầu vào tạo chuỗi bit có chiều dài cố định n bit (n > 0), gọi giá trị băm hay mã băm a Hàm băm MD4 (Message Digest 4) MD5 (Message Digest 5): • Hàm băm MD4 Giáo sư Ron Rivest đề nghị vào năm 1990 Vào năm 1992, phiên cải tiến MD5 thuật toán đời • Thơng điệp rút gọn có độ dài 128 bit • Năm 1995, Hans Dobbertin đụng độ thân hàm nén giải thuật (mặc dù chưa thật phá vỡ giải thuật) • Năm 2004, nhóm tác giả Xiaoyun Wang, Dengguo Feng, Xuejia Lai Hongbo Yu công bố kết việc phá vỡ thuật tốn MD4 MD5 phương pháp cơng đụng độ b Phương pháp Secure Hash Standard (SHS): • Phương pháp Secure Hash Standard (SHS) NIST NSA xây dựng công bố Federal Register vào ngày 31 tháng năm 1992 sau thức trở thành phương pháp chuẩn từ ngày 13 tháng năm 1993 • Thơng điệp rút gọn có độ dài 160 bit Ngày 26/08/2002, Viện Tiêu chuẩn Công nghệ quốc gia Hoa Kỳ (National Institute of Standard and Technology - NIST) đề xuất hệ thống chuẩn hàm băm an tồn (Secure Hash Standard) gồm thuật tốn hàm băm SHA-1, SHA-256, SHA-384, SHA-512 Đến 25/03/2004, NIST chấp nhận thêm thuật toán hàm băm SHA-224 vào hệ thống chuẩn hàm băm Các thuật toán hàm băm NIST đề xuất đặc tả tài liệu FIPS180-2 Cấu trúc hàm băm Hầu hết hàm băm mật mã có cấu trúc giải thuật sau: • Cho trước thơng điệp M có độ dài Tùy theo thuật toán sử dụng, cần bổ sung số bit vào thơng điệp để nhận thơng điệp có độ dài bội số số cho trước Chia nhỏ thơng điệp thành khối có kích thước nhau: M1, M2, … ,Ms • Gọi H trạng thái có kích thước n bit, f “hàm nén” thực thao tác trộn khối liệu với trạng thái hành Khởi gán H0 vector khởi tạo Hi = f( Hi-1 ,Mi ) với i = 1, 2, 3, …, s • Hs thơng điệp rút gọn thơng điệp M ban đầu Hàm băm MD5 a Mục đích: Thuật tốn nhận vào thơng điệp độ dài tùy ý tạo số 128 bit, dạng “vân tay“ hay “mã số thông điệp“ ( message digest ) đầu vào Người ta cho khơng khả thi mặt tính tốn để tạo thơng điệp có mã số thơng điệp, tạo thông điệp với mã số cho trước.Thuật tốn MD5 dự tính áp dụng cho ứng dụng chữ ký điện tử, file lớn phải “nén“ cách an toàn trước mã hóa với khóa cá nhân ( private key ) hệ mã hóa cơng khai RSA Thuật toán MD5 thiết kế để chạy tương đối nhanh máy 32 bit, thực cách gọn Thuật toán MD5 mở rộng thuật toán MD4 MD5 chậm chút so với MD4 an toàn MD5 thiết kế người ta cảm thấy MD4 chấp nhận sử dụng nhanh so với đánh giá MD4 thiết kế để chạy nhanh, “nằm ranh giới“ theo cách nói nguy thành cơng việc phá mã MD5 lùi lại chút, từ bỏ chút tốc độ cho bảo mật Nó kết hợp số ý kiến góp ý chuyên gia, thuật toán MD5 đánh giá chấp nhận chuẩn b Thuật ngữ ký hiệu: Trong tài liệu “word“ lượng 32 bit “byte“ lượng bit Một dãy bit xem dãy byte, nhóm bit liên tiếp xem byte với bit cao byte đặt trước Tương tự, dãy byte xem dãy word 32 bit, đõ nhóm byte liên tiếp xem word với byte thấp đặt trước Ký hiệu x_i nghĩa phần tử x thứ i (“x sub i“) Nếu số thứ tự biểu thức ta viết ngoặc nhọn, ví dụ x_{i+1} ; ^ ký hiệu cho số mũ Ký hiệu “+“ cho phép cộng word, nghĩa cộng theo môđun 2^32 X