Nghiên cứu về hàm băm mật mã

31 162 0
Nghiên cứu về hàm băm mật mã

Đ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

Với sự phát triển mạnh mẽ của Internet và các hoạt động giao dịch điện tử, vấn đề an toàn thông tin cũng ngày càng được quan tâm hơn. Việc nghiên cứu, xây dựng các hàm băm mật mã để phục vụ cho vấn đề này được coi là quan trọng và ý nghĩa. Vì vậy đề tài: “Tìm hiểu, cài đặt thuật toán SHA256” được đưa ra với mục đích trình bày tổng quan về hàm băm mật mã, giúp mọi người hiểu rõ hơn về tính chất, cấu trúc cũng như ứng dụng của hàm băm mật mã. Đồng thời cũng đi vào nghiên cứu thuật toán băm SHA256 và cài đặt thuật toán SHA256 bằng ngôn ngữ java, giúp chúng ta có được cái nhìn chi tiết hơn về cách thức thực hiện của thuật toán.

BAN CƠ YẾU CHÍNH PHỦ HỌC VIỆN KỸ THUẬT MẬT MÃ BÀI TẬP LỚN Môn học: Mật mã ứng dụng an tồn thơng tin Đề tài: Tìm hiểu nghiên cứu hàm băm mật mã Giáo viên hướng dẫn: Hoàng Đức Thọ Sinh viên thực hiện: Trần Minh Đức Vũ Văn Hưởng Đỗ Thị Thanh Huyền Lê Văn Hưng Đỗ Thành Hưng MỤC LỤC DANH SÁCH CÁC KÝ HIỆU TỪ VIẾT TẮT SHA MD MAC HMAC IPSEC NIST DKIM TLS PGP Secure Hash Algorithm Message-Digest algorithm Message Authentication Code Hash based Message Authentication Code Internet Protocol Securit National Institute of Standards and Technology DomainKeys Identified Mail Transport Layer Security Pretty Good Privacy DANH SÁCH CÁC BẢNG DANH SÁCH CÁC HÌNH VẼ Hình 1.1: Ánh xạ thơng điệp giá trị băm khơng phải song ánh…… Hình 1.2: Cấu trúc Mekle-Damrgard Hình 1.3: Mơ hình sử dụng hàm băm để xác thực thơng báo Hình 1.4: Mơ hình sử dụng hàm băm lược đồ chữ ký số Hình 1.5: Chứng thực mật khẩu, theo tính chống trùng, Hình 1.6: Ứng dụng hàm băm tải liệu mạng Hình 2.1: Hàm nén SHA-256 Hình 2.2: SHA-256 message schedule……………………………………… Hình 3.1: Giao diện chương trình chức băm file Hình 3.2: Chọn file cần băm Hình 3.3: Giá trị băm trả thực băm file Hình 3.4: Chức băm thông điệp nhập vào từ bàn phím Hình 3.5: Giá trị băm trả thực băm thơng điệp nhập vào từ bàn phím…………………………………………………………………….29 LỜI MỞ ĐẦU Ngày này, với phát triển nhanh chóng Internet ứng dụng giao dịch điện tử mạng, nhu cầu bảo vệ thông tin kèm ngày quan tâm có ý nghĩa quan trọng Một công việc quan trọng giao dịch điện tử q trình chứng thực nguồn gốc nội dung thông tin (chữ ký điện tử) xác thực tính tồn vẹn liệu Để làm điều này, cần phải áp dụng ứng dụng chuẩn mật mã nâng cao, ứng dụng xây dựng hàm băm mật mã vấn đề cần nghiên cứu giải Trong báo cáo này, chúng em tìm hiểu nội dung sau: • Chương I: Tổng quan hàm băm mật mã - Tìm hiểu khái niệm, tính chất, phân loại, cấu trúc ứng dụng • hàm băm mật mã Chương II: Thuật tốn SHA-256 - Trình bày thuật tốn băm sử dụng rộng rãi • SHA-256 Chi tiết bước thuật toán Chương III: Cài đặt thuật toán SHA-256 - Sử dụng ngơn ngữ lập trình Java để cài đặt thuật tốn SHA-256, thực demo băm đoạn thơng điệp nhập vào từ bàn phím Chương I: Tổng quan hàm băm mật mã 1.1 Khái quát hàm băm mật mã 1.1.1 Định nghĩa hàm băm mật mã Các hàm băm đóng vai trò mật mã đại Hàm băm hàm toán học chuyển đổi xâu bit có độ dài hữu hạn tùy ý thành xâu bit có độ dài cố định Đầu gọi mã băm (hay kết băm, giá trị băm, vết, hay tóm lược thơng báo) Hàm băm đặc trưng hai tính chất sau: a) Tính chất nén: ánh xạ đầu vào có độ dài bit hữu hạn tùy ý tới đầu có độ dài bit hữu hạn (tùy vào thuật tốn băm sử dụng) b) Tính chất dễ dàng tính tốn: Với cho trước đầu vào , dễ dàng tính Hàm băm mật mã hàm băm mà hai tính chất phải thỏa mãn ba tính chất an tồn nêu đây: a) Tính kháng tiền ảnh (tính chiều): Đối với hầu hết đầu xác định trước, khơng có khả tính tốn để tìm đầu vào mà băm cho đầu tương ứng (tức cho trước giá trị tóm lược , khơng thể tìm tiền ảnh cho ) b) Tính kháng tiền ảnh thứ hai: Khơng có khả tính tốn để tìm đầu vào thứ hai mà có đầu với đầu vào xác định trước (tức cho trước , khơng có khả tính tốn để tìm tiền ảnh thứ hai cho ) c) Tính kháng va chạm: Khơng có khả tính tốn để tìm hai đầu vào cho Kích thước thơng điệp đầu vào kích thước giá trị băm thông điệp nhỏ nên việc trùng giá trị băm loại bỏ Tính chống trùng hàm băm yêu cầu việc tìm hai thơng điệp đầu vào phải khó khăn mặt thời gian tính tốn Hình 1.1: Ánh xạ thông điệp giá trị băm song ánh 1.1.2 Cấu trúc hàm băm mật mã Theo định nghĩa hàm băm mật mã ta thấy chất hàm băm hàm nén Hiện hầu hết hàm băm mật mã áp dụng cấu trúc hàm băm Merkle- Damrgard (MD5, SHA-1, SHA-2) cấu trúc Sponge (SHA-3) Cấu trúc Mekle-Damrgard: Hình 1.2: Cấu trúc Mekle-Damrgard Hầu hết hàm băm khơng có khóa thiết kế xử lý lặp để băm đầu vào có độ dài hữu hạn tùy ý, việc xử lý khối đầu vào có độ dài cố định, hình 1.2 Đầu vào hàm băm thơng báo có độ dài hữu hạn tùy ý chia thành khối có độ dài cố định -bit Bước tiền xử lý thường gồm việc thêm bit mở rộng (gọi padding) để thơng báo có độ dài bit bội độ dài khối , (vì lý an tồn) thường gồm khối phần khối để độ dài bit đầu vào chưa thêm vào Mỗi khối dùng làm đầu vào có độ dài cố định cho hàm băm bên (hàm nén , thực tính kết trung gian có độ dài bit ) hàm kết trung gian trước có độ dài bit khối đầu vào Gọi ký hiệu phần kết sau bước thứ , xử lý chung cho hàm băm lặp với đầu vào mơ tả sau: ; ,; coi biến chuỗi bước bước , giá trị khởi đầu định nghĩa trước hay gọi giá trị khởi đầu Biến đổi đầu có lựa chọn dùng bước cuối để ánh xạ biến chuỗi bit thành kết bit (, thường ánh xạ đồng Cấu trúc Sponge: cấu trúc mới, nghiên cứu áp dụng hàm SHA-3 1.2 Phân loại hàm băm mật mã Dựa tham số đầu vào hàm băm, hàm băm phân thành hai lớp Gồm lớp hàm băm có khóa lớp hàm băm khơng có khóa 1.2.1 Lớp hàm băm khơng có khóa Một hàm băm khơng có khóa hàm : Trong đó: • • tập thơng báo tập hữu hạn giá trị tóm lược thơng báo thẻ xác thực Một số họ hàm băm có thuộc lớp như: Họ hàm băm MD (MD2, MD4, MD5), họ hàm băm SHA (SHA-1, SHA-224, SHA-256, SHA-384 , SHA-3) 1.2.2 Lớp hàm băm có khóa Các hàm băm có khóa sử dụng để xác thực thơng báo thường gọi thuật toán tạo mã xác thực thông báo (MAC) 1.2.2.1 Định nghĩa hàm băm có khóa: Một họ hàm băm có khóa bốn () thỏa mãn điều kiện: 1) 2) 3) 4) tập thơng báo tập hữu hạn giá trị tóm lược thơng báo thẻ xác thực khơng gian khóa, tập hữu hạn khóa Đối với khóa , có hàm băm Mỗi : Trong định nghĩa trên, tập hữu hạn vơ hạn; luôn tập hữu hạn Nếu tập hữu hạn, hàm băm đơi gọi hàm nén (compression function) Trong trường hợp này, giả thiết thường giả thiết với điều kiện mạnh Điều có nghĩa tránh khỏi va chạm Nếu hàm ngẫu nhiên theo nghĩa tất đầu đồng xác suất có khoảng đầu vào ánh xạ tới đầu (là số bit đầu 10 1.4 Giới thiệu số họ hàm băm phổ biến Đã có nhiều hàm băm cơng bố sử dụng thực tế (bao gồm hàm băm có khóa hàm băm khơng có khóa) Bảng 1.1 cho số hàm băm với thơng số tương ứng: • Thuật tốn Kích thước đầu vào (bit) Kích thước đầu (bit) MD4 MD5 SHA-1 SHA-256 SHA-384 SHA-512 < < < < < < 128 128 160 256 384 512 Kích thước trạng thái (bit) 128 128 160 256 512 512 Kích thước khối (bit) Kích thước word (bit) Độ an toàn (bit) 512 512 512 512 1024 1024 32 32 32 32 64 64 64 64 80 128 192 256 Bảng 1.1: Một số hàm băm phổ biến thông số tương ứng Hàm băm MD5 Ronald Rivest người phát minh hàm băm MD2, MD4 (1990) MD5 (1991) Hàm băm MD5 phát triển lên từ MD4 trước MD2, cải tiến MD4 hàm băm sử dụng rộng rãi, nguyên tắc thiết kế hàm băm MD5 nguyên tắc chung cho nhiều hàm băm khác Hàm băm MD5 nhận thông báo đầu vào có độ dài tối đa bit Thơng báo thực đệm sau chia thành khối với độ dài 512 bit Các khối 512 bit đầu vào thuật toán băm, bên thuật toán khối 512 bit lại chia 16 khối 32 bit qua bốn vòng lặp MD5 Mỗi khối thống báo 512 bit qua xử lý cho đầu khối 128 bit, giá trị băm thơng báo đầu vào tương ứng Theo cấu trúc MekleDamrgard giá trị băm đầu vào để xử lý khối thông báo Tiếp tục xử lý, đầu cuối khối 128 bit, giá trị băm nhận thông báo đầu vào Hàm băm MD5 cải tiến để khắc phục hạn chế điểm an toàn MD4 Mặc dù năm 1993, Den Boer Bosselaers tìm va chạm việc sử dụng hàm nén MD5, tới MD5 sử dụng rộng rãi ứng dụng thực tế độ an tồn mang lại vòn đủ đáp ứng nhu cầu • Họ Hàm băm SHA 17 Thuật tốn băm an toàn (SHA) NIST NSA thiết kế xây dựng Sau NIST đề xuất làm chuẩn hàm băm an toàn (SHS) bao gồm thuật toán băm: SHA-1, SHA-224, SHA-256, SHA-384, SHA-512 SHA-3 Các thuật toán hàm băm SHA gồm bước: tiền xử lý tính tốn giá trị băm Bước tiền xử lý bao gồm thao tác: - Mở rộng thông báo - Phân tích thơng báo mở rộng thành khối -bit - Khởi tạo giá trị băm ban đầu Bước tính tốn giá trị băm bao gồm thao tác: - Làm lần công việc sau: + Tạo bảng phân bố thông báo (message schedule) từ khối thứ + Dùng bảng phân bố thông báo với hàm, số, thao tác word để tạo giá trị băm - Sử dụng giá trị băm cuối để tạo thông báo rút gọn Thông báo đệm thêm bit theo quy tắc đệm trước thực băm, nhằm đảm bảo thông báo đầu vào cho thuật tốn băm có độ dài bội số 512 1024 bit, tùy thuộc vào thuật tốn băm Tiếp theo thơng báo phân tích thành khối bit Đối với hàm băm SHA-1, SHA-256 giá trị 512 bit, hàm băm SHA-384 SHA256 1024 bit Những khối thông báo đầu vào cho thuật tốn băm 1.5 Một số kiểu cơng lên hàm băm mật mã 1.5.1 Tấn công dựa “Nghịch lý ngày sinh” Giả sử : hàm băm; hữu hạn giả sử Đặt , Nếu chọn ngẫu nhiên phần tử khác từ tập ,,… tính …, sau xác định xem 18 có xảy đụng độ hay khơng, nghĩa xem có tồn , ( thỏa mãn hay khơng Áp dụng kết toán ngày sinh nhật biết ta có: Nếu mã băm có độ dài 64 bit, tức chọn xác suất gặp đụng độ 50% Việc sản sinh phần tử ,,… nằm khả tính tốn thực tế nên toán ngày sinh cho ta thấy việc dùng mã băm có độ dài 64 bit khơng an tồn Với hàm băm cụ thể SHA-1, độ dài đầu mã băm 160 bit, nên chọn giá trị băm xác suất gặp đụng độ 50%, nhà mã thám ln mong muốn tìm cơng lên SHA-1 với độ phức tạp phép toán băm (gọi giới hạn lý thuyết cho hàm băm độ dài 160 bit), năm 2005 ba nhà khoa học Trung Quốc Xiaoyun Wang, Yiqun Lisa Yin Hongbo Yu giới thiệu phương pháp tìm va chạm hàm băm SHA-1 với độ phức tạp tính tốn nhỏ phép tốn băm 1.5.2 Phương pháp công gặp (meet in the middle attack) Giả sử dùng hàm băm có độ dài giá trị băm bit Kẻ công muốn đưa thông báo để A ký, A khơng muốn ký Trong đó, A sẵn sàng ký thông báo Kẻ công sản sinh biến thể khác M (có nội dung thống nhất) biến thể khác Hai tập thơng báo so sánh để tìm cặp có mã băm Xác suất thành cơng phương pháp chứng minh khoảng 86% Kẻ cơng sau tìm cặp có giá trị băm đưa cho A ký, gửi chữ ký cho người nhận Người nhận chắn tin tưởng vào chữ ký sau kiểm tra cẩn thận Nếu bit giá trị nằm khả tính tốn Vì kẻ cơng dễ đạt mục đích 19 Trên ta thấy độ dài mã băm quan trọng Độ dài giá trị băm 64 bit không an tồn Đó lý hàm băm có ứng dụng thực tế có độ dài đầu từ 128 bit trở lên 1.5.3 Tấn công vét cạn Trong khoa học máy tính cơng vét cạn phương thức công tổng quát nhất, nội dung kiểu cơng việc cơng hàm băm là: Kẻ cơng có tay giá trị băm thông điệp với độ dài bit, thực chọn ngẫu nhiên thông điệp tính xem hay khơng, chúng có nghĩa kể cơng thành cơng, khơng kẻ cơng tìm thơng điệp khác tính giá trị băm tìm va chạm Giả sử mã băm biến ngẫu nhiên có phân phối chuẩn xác suất để tìm thông điệp thỏa mãn Ta thấy kiểu công không phụ thuộc vào cấu trúc hàm băm hay chiều dài thông điệp đầu vào mà phụ thuộc vào chiều dài đầu hàm băm, để nâng cao tính bảo mật cần cho đầu lớn tính bảo mật cao Tuy nhiên cách công khơng hiệu khơng gian đầu vào q lớn, trường hợp xấu thuật toán duyệt qua tất đầu vào để tìm va chạm, điều Yêu cầu tài nguyên cho việc công bùng nổ tổ hợp với chiều dài đầu hàm băm, có nghĩa ta tăng chiều dài đầu lớn khả để cơng thành cơng thấp, gọi chiều dài đầu bit cần thử tới lần để tìm cơng thành cơng Chương II: Thuật tốn SHA-256 2.1 Tổng quan SHA SHA (Secure Hash Algorithm) thuật tốn băm an tồn dùng để chuyển đoạn liệu định thành đoạn liệu có chiều dài không đổi với xác suất khác biệt cao 20 Thuật tốn SHA gọi an tồn theo chuẩn FIPS 180-2 phát hành ngày tháng năm 2002: • Cho giá trị băm định tạo nên thuật • tốn SHA, việc tìm lại đoạn liệu gốc khơng khả thi Việc tìm hai đoạn liệu định có kết băm tạo • thuật tốn SHA khơng khả thi Bất thay đổi đoạn liệu gốc, dù nhỏ, tạo nên giá trị băm hoàn toàn khác với xác suất cao SHA gồm thuật toán SHA-1 (trả lại kết dài 160 bit), SHA-224 (trả lại kết dài 224 bit), SHA-256 (trả lại kết dài 256 bit), SHA-384 (trả lại kết dài 384 bit) SHA- 512 (trả lại kết dài 512 bit) Các tính chất thuật tốn băm an tồn: Độ an tồn Kích thước (đơn vị bit) (đơn vị: Thuật tốn bit) Thông điệp Khối Từ < 264 < 264 512 SHA-384 < 264 < 2128 SHA-512 < 2128 SHA-1 SHA-224 SHA-256 Thông điệp 32 rút gọn 160 80 512 32 224 112 512 32 256 128 1024 64 384 192 1024 64 512 256 2.2 SHA-256 SHA-256 với SHA-224, SHA-384 SHA-512 bốn giải thuật thuộc họ SHA gọi chung SHA-2 Về giải thuật, biến thể SHA-2 không khác Mặc dù chúng sử dụng giá trị biến số độ dài từ,… khác Hiệu suất SHA-256 phụ thuộc vào độ dài thông điệp băm 21 2.2.1 Ứng dụng SHA-256 Hàm băm SHA-256 triển khai số ứng dụng giao thức bảo mật sử dụng rộng rãi, bao gồm TLS SSL, PGP, SSH, S/MIME IPsec SHA-256 tham gia vào trình xác thực gói phần mềm Debian tiêu chuẩn ký tin nhắn DKIM Các nhà cung cấp Unĩ Linux chuyển sang SHA-256 để băm mật an toàn Bitcoin sử dụng SHA-256 cho việc xác minh giao dịch tính tốn 2.2.2 Các bước làm việc SHA-256 SHA-256 hoạt động giống MD4, MD5 SHA-1 Gồm bước bản: • Bước 1: Tiền xử lý  Mở rộng thông điệp Thông điệp M mở rộng trước thực băm Mục đich việc mở rộng để đảm bảo thông điệp mở rộng có độ dài bội số 512 Giả sử độ dài thông điệp M l bit Thêm bit vào cuối thông điệp, theo sau k bit (k số không âm nhỏ cho l + + k ≡ 448(mod512)) Sau thêm khối 64 bit biểu diễn nhị phân l Ví dụ: thơng điệp “abc”(8 bit ASCII) có độ dài × = 24 Thêm bít vào cuối 448 – (24+1) =423 bit Cuối thêm độ dài thông điệp Lúc độ dài thông điệp mở rộng 512 bit 01100001 01100010 01100011  Phân tích thơng điệp Sau thông điệp mở rộng, thông điệp cần phân tích thành N khối 512 bit: M(1), M(2),…, M(N) Mỗi khối lại chia thành 16 từ 32 bit.M0(i) chứa 32 bit đầu khối i, M1(i) chứa 32 bit tiếp theo,… 22  Giá trị băm khởi tạo H(0) chuỗi từ 32 bit dạng hexa Những từ thu cách lấy 32 bit phần tử thập phân bậc hai tám số nguyên tố = 6a09e667 = bb67ae85 = 3c6ef372 = a54ff53a = 510e527f = 9b05688c = 1f83d9ab = 5be0cd19 • Bước 2: Tính tốn giá trị băm Việc tính tốn giá trị băm thực sau: For i = to N (N số khối thông điệp mở rộng) {  Khởi tạo a,b,c,d,e,f,g,h với giá trị băm trung gian thứ (i-1) (= giá trị băm ban đầu i =1) a⃪ b⃪ ⋮ h ⃪  Áp dụng chức nén SHA-256 để cập nhật biến a,b,c,d,e,f,g,h For j = to 63 { 23 Tính Ch(e,f,g), Maj(a,b,c), T1 ⃪h + , Wj + K j + Wj T2 ⃪ + M a j(a,b,c) h ⃪g g ⃪f f ⃪e e ⃪d + T1 d ⃪c c ⃪b b ⃪a a ⃪T1 + T2 }  Tính tốn giá trị băm trung gian thứ i, H(i) ⃪a + ⃪b + ⋮ ⃪h + } H(N) = ( , ,…, ) mã băm thông điệp M 24 Định nghĩa hàm sử dụng SHA-256: Mỗi hàm hoạt động theo từ 32 bit có đầu từ 32 bit Các hàm định nghĩa sau: Ch(x,y,z) = (x ⋀ y) ⊕ (¬x ⋀ z) Maj(x,y,z) = (x ⋀ y) ⊕ (x ⋀ z) ⊕ (y = R2(x) ⊕ R13 (x) ⊕ R22(x) ⋀ z) = R6(x) ⊕ R11 (x) ⊕ R25(x) σ0(x)= R7(x) ⊕ R18(x) ⊕ S3(x) σ1(x)= R17(x) ⊕ R19(x) ⊕ S10(x) Trong đó: ⊕ : phép XOR ⋀ : phép AND ¬ : phép phủ định + : phép cộng modul 232 Rn : quay phải n bit Sn : dịch phải n bit Các khối thông điệp W0, W1,…, W63 tính tốn sau: Wj = for j = 0,1,…,15 For j = 16 to 63 { Wj σ1(Wj-2) + Wj + σ0(Wj-15) + Wj-16 } 25 Khởi tạo số K0,…, K63 (căn bậc 64 số nguyên tố đầu tiên) 428a2f98 71374491 b5c0fbcf e9b5dba5 3956c25b 59f111f1 923f82a4 ab1c5ed5 d807aa98 12835b01 243185be 550c7dc3 72be5d74 80deb1fe 9bdc06a7 c19bf174 e49b69c1 efbe4786 0fc19dc6 240ca1cc 2de92c6f 4a7484aa 5cb0a9dc 76f988da 983e5152 a831c66d b00327c8 bf597fc7 c6e00bf3 d5a79147 06ca6351 14292967 27b70a85 2e1b2138 4d2c6dfc 53380d13 650a7354 766a0abb 81c2c92e 92722c85 a2bfe8a1 a81a664b c24b8b70 c76c51a3 d192e819 d6990624 f40e3585 106aa070 19a4c116 1e376c08 2748774c 34b0bcb5 391c0cb3 4ed8aa4a 5b9cca4f 682e6ff3 748f82ee 78a5636f 84c87814 8cc70208 90befffa c67178f2 a4506ceb bef9a3f7 Hình 2.1: Hàm nén SHA-256 Hình 2.2: SHA-256 message schedule 26 Chương III: Cài đặt thuật toán SHA-256 Việc cài đặt thuật toán SHA-256 triển khai ngơn ngữ lập trình java Giao diện chương trình tạo Java swing Chương trình xây dựng với kiểu chức năng: 1- Băm file; - Băm thông điệp Một số giao diện chương trình: Chức băm file: Hình 3.1: Giao diện chương trình chức băm file 27 Chọn file: chọn đường dẫn file cần băm Hình 3.2: Chọn file cần băm Khi băm xong file, giá trị băm hiển thị textbox SHA-256 Hình 3.3: Giá trị băm trả thực băm file 28 Chức băm thơng điệp người dùng nhập vào: Hình 3.4: Chức băm thơng điệp nhập vào từ bàn phím Thơng điệp nhập vào ô textbox Message giá trị băm trả textbox SHA- 256 Hình 3.5: Giá trị băm trả thực băm thông điệp nhập vào từ bàn phím 29 KẾT LUẬN Với phát triển mạnh mẽ Internet hoạt động giao dịch điện tử, vấn đề an tồn thơng tin ngày quan tâm Việc nghiên cứu, xây dựng hàm băm mật mã để phục vụ cho vấn đề coi quan trọng ý nghĩa Vì đề tài: “Tìm hiểu, cài đặt thuật tốn SHA-256” đưa với mục đích trình bày tổng quan hàm băm mật mã, giúp người hiểu rõ tính chất, cấu trúc ứng dụng hàm băm mật mã Đồng thời vào nghiên cứu thuật toán băm SHA-256 cài đặt thuật tốn SHA-256 ngơn ngữ java, giúp có nhìn chi tiết cách thức thực thuật toán 30 TÀI LIỆU THAM KHẢO Tiếng Việt [1] Giáo trình Mật mã ứng dụng An tồn thơng tin Tiếng Anh [1]https://doc.lagout.org/network/3_Cryptography/Cryptography%20for %20Developers.pdf [2] https://vi.wikipedia.org/wiki/SHA [3] https://medium.com/biffures/part-5-hashing-with-sha-256-4c2afc191c40 [4] https://eprint.iacr.org/2010/548.pdf?fbclid=IwAR2VxvDqfT38ATZXrlvozi0ztHAV279fRC9_x9A57h2Dow78T5igZ_IF-w 31 ... demo băm đoạn thơng điệp nhập vào từ bàn phím Chương I: Tổng quan hàm băm mật mã 1.1 Khái quát hàm băm mật mã 1.1.1 Định nghĩa hàm băm mật mã Các hàm băm đóng vai trò mật mã đại Hàm băm hàm toán... thông điệp giá trị băm song ánh 1.1.2 Cấu trúc hàm băm mật mã Theo định nghĩa hàm băm mật mã ta thấy chất hàm băm hàm nén Hiện hầu hết hàm băm mật mã áp dụng cấu trúc hàm băm Merkle- Damrgard... trúc mới, nghiên cứu áp dụng hàm SHA-3 1.2 Phân loại hàm băm mật mã Dựa tham số đầu vào hàm băm, hàm băm phân thành hai lớp Gồm lớp hàm băm có khóa lớp hàm băm khơng có khóa 1.2.1 Lớp hàm băm khơng

Ngày đăng: 25/03/2020, 00:19

Từ khóa liên quan

Mục lục

  • MỤC LỤC

  • DANH SÁCH CÁC KÝ HIỆU TỪ VIẾT TẮT

  • DANH SÁCH CÁC BẢNG

  • DANH SÁCH CÁC HÌNH VẼ

  • LỜI MỞ ĐẦU

  • Chương I: Tổng quan về hàm băm mật mã

    • 1.1. Khái quát về hàm băm mật mã

      • 1.1.1. Định nghĩa hàm băm mật mã

      • Hình 1.1: Ánh xạ giữa thông điệp và giá trị băm không phải là song ánh

        • 1.1.2. Cấu trúc của hàm băm mật mã

        • Hình 1.2: Cấu trúc Mekle-Damrgard

          • 1.2. Phân loại các hàm băm mật mã

            • 1.2.1. Lớp các hàm băm không có khóa

            • 1.2.2. Lớp các hàm băm có khóa

            • 1.3. Các ứng dụng cơ bản của hàm băm mật mã

            • Hình 1.3: Mô hình sử dụng hàm băm để xác thực thông báo

            • Hình 1.4: Mô hình sử dụng hàm băm trong lược đồ chữ ký số

            • Hình 1.5: Chứng thực mật khẩu, theo tính chống trùng,

            • nếu thì

            • Hình 1.6: Ứng dụng hàm băm khi tải dữ liệu trên mạng

              • 1.4. Giới thiệu một số họ hàm băm phổ biến

              • Bảng 1.1: Một số hàm băm phổ biến và thông số tương ứng

                • 1.5. Một số kiểu tấn công lên hàm băm mật mã

                  • 1.5.1. Tấn công dựa trên “Nghịch lý ngày sinh”

                  • 1.5.2. Phương pháp tấn công gặp nhau ở giữa (meet in the middle attack)

                  • 1.5.3. Tấn công vét cạn

                  • Chương II: Thuật toán SHA-256

                    • 2.1. Tổng quan về SHA

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

Tài liệu liên quan