ĐỀ TÀI : TÌM HIỂU HÀM BĂM MẬT MÃ SHA-3

11 656 6
ĐỀ TÀI : TÌM HIỂU HÀM BĂM MẬT MÃ SHA-3

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Đề cương đồ án thực tập tốt nghiệp ĐỀ TÀI : TÌM HIỂU HÀM BĂM MẬT MÃ SHA-3 LỜI NĨI ĐẦU CHƯƠNG I : TÌM HIỂU HÀM BĂM MẬT MÃ 1.1 Giới thiệu sơ lược hàm băm mật mã Hiểu theo nghĩa đơn giản, hàm băm hàm cho tương ứng mảng liệu lớn với mảng liệu nhỏ mà dùng rộng rãi nhiều ứng dụng tin học, không thuộc phạm vi mật mã Ở đây, xét đến hàm băm phạm vi hàm băm mật mã, xem xét cụ thể đến ứng dụng chúng việc đảm bảo tính tồn vẹn liệu Các hàm băm nhận đầu vào chuỗi bit có chiều dài hữu hạn tùy ý tạo chuỗi bit có chiều dài cố định n bit (n > 0) gọi mã băm (hash code) Trong mã hóa, mã băm xem ảnh đại diện thu gọn (compact representative image) chuỗi bit có độ dài hữu hạn tùy ý dùng để nhận diện cho chuỗi bit Kết hợp với công cụ tạo chữ ký số, hàm băm dùng cho việc đảm bảo tính tồn vẹn liệu Trong lược đồ chữ ký số, mã băm chuỗi bit tính thời điểm T1 bảo vệ để chống lại thay đổi bất hợp pháp Tại thời điểm T2 sau đó, để kiểm tra xem chuỗi bit x có bị thay đổi hay khơng, người ta thường tính giá trị hàm băm chuổi bit thời điểm T2, mà ta ký hiệu xT2, sau so sánh giá trị vừa tính với mã băm thời điểm T1 Nếu giá trị người ta chấp nhận chuổi bit thời điểm T2 trùng khớp với chuổi bit thời điểm T1, tức chuỗi bit x chưa bị thay đổi Như vấn đề bảo đảm tính tồn vẹn chuỗi bit có chiều dài tùy ý thay việc bảo vệ toàn vẹn chuỗi bit có chiều dài cố định 1.1.1 Định nghĩa tổng quát hàm băm * Sơ đồ hàm băm mật mã : Thông điệp M P,L ↓ Hàm băm h = H(M) ↓ giá trị băm h (fixed length) * Định nghĩa : Hàm băm (Hash function) hàm toán học chuyển đổi thơng điệp đầu vào có độ dài thành dãy bit có độ dài cố định (tuỳ thuộc vào thuật toá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 Page - Hàm băm (hash function) hàm chiều mà đưa lượng liệu qua hàm cho chuỗi có độ dài cố định đầu - Hàm h(x) gọi hàm băm thỗ mãn hai tính chất sau:  Nén gọn (Compression) : Hàm h(x) tương ứng chuỗi bit đầu vào x có chiều dài hữu hạn tùy ý vào chuỗi bit y = h(x) có chiều dài cố định n > cho trước  Dễ tính tốn (Easy of computation) : Với chuỗi bit đầu vào x có chiều dài hữu hạn tùy ý, h(x) tính tốn dễ dàng 1.1.2 Hoạt động hàm băm: có chiều  Nén gọn (Compression): Hàm h(x) tương ứng chuỗi bit đầu vào x có 1.2 Các chức hàm băm mật mã Một hàm băm mật mã lý tưởng có tính chất sau : 3.1 Tính kháng tiền ảnh (Preimage resistance) Với đầu y cho trước, khơng thể tìm liệu đầu vào x cho h(x) = y (hay khơng thể tìm thơng điệp từ giá trị băm cho trước) 3.2 Tính kháng tiền ảnh thứ hai (2nd - Preimage resistance) Với liệu đầu vào x cho trước y = h(x), khơng thể tính tốn để tìm giá trị x’  x cho h(x’)=h(x) (hay tìm thơng điệp khác mà có giá trị băm) 3.3 Tính kháng xung đột (Collision resistance) Khơng thể tính tốn để tìm hai liệu đầu vào x x’ phân biệt cho chúng có giá trị băm h(x)=h(x’) (hay khơng thể sửa thông điệp mà không làm thay đổi giá trị băm nó) Page Phân loại hàm băm mật mã Dựa tham biến đầu vào hàm băm, hàm băm mật mã phân thành hai lớp:  Lớp hàm băm sử dụng khoá (keyed hash functions), chẳng hạn MAC (Message Authentication Codes): nhận hai giá trị đầu vào  Thông điệp cần tính giá trị băm  Khố bí mật để băm văn theo chuẩn quy định  Lớp hàm băm khơng sử dụng khố (unkeyed hash functions): nhận giá trị đầu vào Thông điệp (message) Trong lớp hàm băm không sử dụng khố MDCs (Modification Detection Codes – mã nhận diện thay đổi) lớp lớp Lớp hàm lại tiếp tục phân thành lớp nhỏ  Hàm băm chiều (One-Way Hash Functions - OWHFs): hàm lớp thỗ tính chất với mã băm biết trước, khơng thể tính tốn để tìm chuỗi bit đầu vào có mã băm với mã băm cho  Hàm băm kháng xung đột (Collision Resistant Hash Functions CRHFs): hàm lớp thỗ mãn tính chất khơng thể tính tốn để tìm hai chuỗi bit có giá trị băm Cấu trúc thuật tốn hàm băm Khối liệu đầu vào x có chiều dài tuỳ ý phân thành khối liên tiếp x1, x2, …, xm (với xi có chiều dài cố định r) Tuy nhiên chiều dài khối ban đầu tùy ý nên ta cần thêm vào liệu ban đầu số bit phụ cho tổng số bit khối liệu x sau thêm vào bội số r Ngoài số bit phụ thêm vào thường chứa khối bit xác định chiều dài thực khối liệu chưa thêm bit phụ Sau ta cắt khối r bit từ khối x Mỗi khối r bit xi ta thực hàm nén hàm băm h(x) ký hiệu f Tại bước thứ i, hàm nến f nhận liệu đầu vào xi kết trung gian bước trước để tạo đầu kết trung gian bước thứ i, ký hiệu Hi Kết trung gian bước Hi chuổi bit có độ dài cố định n>0 Nếu ký hiệu IV (init value) giá trị khởi tạo ban đầu cho H0, trình lặp xử lý dãy khối mô tả sau: H0=IV H1= f(Hi-1,xi), (i=1,…,m) h(x) = g(Hm) Hi kết trung gian sau bước thứ i, biến dây chuyền Hàm g(x) ánh xạ biến dây chuyền cuối để tạo mã băm kết Và thông thường, Page g(x) chọn ánh xạ đồng nhất: g(Hm)0Hm Khâu then chốt xây dựng hàm băm thiết kế hàm nén f Ứng dụng hàm băm mật mã 6.1 Xác thực thông điệp Một ứng dụng điển hình hàm băm mật mã học sau: Alice đưa cho Bob câu đố khó tun bố giải Bob muốn tự giải, muốn chắn Alice giải Do đó, Alice viết đáp án, gắn thêm nonce ngẫu nhiên, tính giá trị băm nó, đưa kết băm cho Bob (trong giữ bí mật đáp án nonce) Bằng cách này, Bob tự giải xong, Alice chứng minh có đáp án từ trước cách đưa nonce cho Bob Trong thực tiễn, Alice Bob thường chương trình máy tính, bí mật thường khơng dễ lừa lời giải cho câu Ứng dụng gọi hệ thống tin cậy (commitment scheme) Một ứng dụng quan trọng khác hàm băm bảo mật kiểm tra tính tồn vẹn thơng điệp Ví dụ, việc xác định xem file hay thơng điệp có bị sửa đổi hay khơng thực cách so sánh tóm tắt tính trước sau gửi (hoặc kiện đó) Còn dùng tóm tắt thơng điệp làm phương tiện đáng tin cậy cho việc nhận dạng file 6.2 Chữ ký số Một ứng dụng có liên quan kiểm tra mật Mật thường không lưu dạng văn rõ (clear text), mà dạng tóm tắt Để xác thực người dùng, mật người nhập vào băm so sánh với kết băm lưu trữ Do lý bảo mật hiệu chương trình, đa số thuật tốn chữ ký số nói có tóm lược thơng điệp, khơng phải tồn văn thơng điệp, "ký" Các hàm băm dùng để tạo bit giả ngẫu nhiên (pseudorandom) 6.3 Các ứng dụng khác Page Các hàm băm mật mã sử dụng phổ biến Thuật toán MD5 SHA - SHA - SHA 256/224 SHA 512/384 Kíc h thư ớc đầu 128 160 160 256/ 224 512/ 384 Kích thước trạng thái Kích thước khối Độ dài Kích thước Word Xung đột 128 160 160 256 512 512 512 512 64 64 64 64 32 32 32 32 có khơng có lỗi khơng 512 1024 128 64 khơng Trong danh sách dài hàm băm mật mã trên, có số hàm băm cho dễ bị tổn thương không nên sử dụng Ngay hàm băm chưa bị phá vỡ, công thành công biến thể yếu làm giảm tự tin chuyên gia dẫn đến loại bỏ Ví dụ, vào tháng năm 2004 người ta tìm điểm yếu vài hàm băm phổ biến vào thời đó, bao gồm SHA-0, RIPEMD, MD5 Điều đặt câu hỏi an ninh lâu dài thuật toán sau bắt nguồn từ hàm băm - đặc biệt, SHA-1 (một phiên mạnh SHA-0), RIPEMD-128, RIPEMD-160 (cả hai phiên mạnh RIPEMD) Vì vậy, SHA-0 RIPEMD khơng sử dụng rộng rãi kể từ chúng thay phiên mạnh Đến năm 2009, hai hàm băm mật mã sử dụng thông dụng MD5 SHA-1 Tuy nhiên, MD5 bị phá vỡ có cơng lên để phá vỡ SSL năm 2008 SHA-0 SHA-1 thành viên họ hàm băm SHA phát triển NSA Vào tháng năm 2005, công thành cơng SHA-1, việc tìm kiếm va chạm khoảng 269 phép tốn băm, thay 280 theo dự kiến cho hàm băm 160-bit Vào tháng năm 2005, có cơng thành cơng SHA-1 việc tìm kiếm va chạm cần 263 phép tốn băm Điểm yếu lý thuyết SHA-1 tồn vốn có, mặt thực tế để phá vỡ phải vài năm Các ứng dụng tránh vấn đề cách sử dụng thêm thành viên tiên tiến họ SHA, SHA-2, sử dụng kỹ thuật băm ngẫu nhiên hóa khơng quan tâm đến kháng va chạm Tuy nhiên, để đảm bảo tính chất mạnh lâu dài ứng dụng có sử dụng hàm băm, có thi nhằm thiết Page kế hàm băm thay cho SHA-2, có tên SHA-3 trở thành tiêu chuẩn FIPS vào năm 2012 Page CHƯƠNG II : GIỚI THIỆU VỀ HOÁN VỊ KÉT SẮT (KECCAK) Chức Page CHƯƠNG III : CẤU TRÚC SPONGE Cấu trúc Sponge Page CHƯƠNG IV : KẾT LUẬN Page 10 CHƯƠNG V : TÀI LIỆU THAM KHẢO - Chapter 11 (Cryptography and Network Security - Principles and Practice, 6th edition - William Stallings) Page 11

Ngày đăng: 04/09/2019, 22:02

Tài liệu cùng người dùng

Tài liệu liên quan