Nghiên cứu hàm băm SHA3 và cài đặt chương trình giao diện thực hiện

32 1.3K 24
Nghiên cứu hàm băm SHA3 và cài đặt chương trình giao diện thực hiện

Đ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ác hàm băm đóng vai trò cơ bản trong mật mã hiện đại. Hàm băm h là một hàm toán học chuyển đổi các xâu bit có độ dài hữu hạn tùy ý thành các xâu bit có độ dài n cố định. Giá trị này dùng trong bảo vệ tính toàn vẹn thông tin hoặc dùng trong chữ ký số.

1 MỤC LỤC CHƯƠNG I: TỔNG QUAN VỀ 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à ngồi 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 khơng thể 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: Á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 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 Đầ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 toà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 Sponge cấu trúc mới, nghiên cứu áp dụng hàm SHA-3, cấu trúc trình bày chi tiết chương 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 : , đó: 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 tố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 sau đây: 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 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 khơng thể 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 vào, số bit đầu ra, ) đầu vào chọn ngẫu nhiên có đầu với xác suất (khơng phụ thuộc vào ) 1.2.2.2 Mã xác thực thông báo Định nghĩa mã xác thực thơng báo (MAC-Message Authentication Code) Thuật tốn mã xác thực thông báo họ hàm tham số hóa khóa bí mật , với tính chất: a Tính chất dễ tính tốn: với hàm biết, cho trước giá trị đầu vào , dễ tính tốn Kết gọi giá trị MAC MAC b Tính chất nén: ánh xạ đầu vào có độ dài bit tùy ý hữu hạn thành đầu có độ dài bit cố định c Tính chất kháng tính tốn: cho trước khơng nhiều cặp text-MAC , khơng thể tính tốn để tìm cặp text-MAC cho đầu vào (bao gồm khả với đó) Kỹ thuật xác thực thuật tốn MAC mơ tả chung sau: Giả sử có hai thực thể tham gia liên lạc gọi Hai thực thể phải chia sẻ khóa bí mật chung Khi cần gửi thơng báo cho , , tính mã xác thực thông báo hàm thông báo khóa: Trong đó: thơng điệp đầu vào, khóa bí mật chia sẻ, MAC mã xác thực thông báo Thông báo nối với giá trị MAC truyền cho người nhận Người nhận xác thực thơng báo cách tính lại MAC từ thơng báo nhận khóa bí mật chia sẻ, sau so sánh với MAC nhận kèm theo thông báo Nếu hai giá trị giống thơng báo xác thực Do có người gửi người nhận biết khóa bí mật , khơng khác tạo MAC hợp lệ Hơn nữa, việc sửa đổi thông báo ban đầu tạo MAC khác khơng xác thực Mã xác thực thơng báo dựa hàm băm (Hash based Message Authentication Code-HMAC): Một hàm băm (như SHA) không thiết kế để sử dụng hàm MAC sử dụng trực tiếp cho mục đích xác thực thơng báo, khơng dựa khóa bí mật Đã có số đề xuất cho kết hợp khóa bí mật vào thuật tốn băm Cách tiếp cận tạo hàm MAC ký hiệu HMAC HMAC sử dụng số ứng dụng an toàn IPSEC, SSL… HMAC ban hành tiêu chuẩn NIST (FLIP 198) 1.3 Các ứng dụng hàm băm mật mã Hàm băm mật mã đánh giá thuật toán mật mã linh hoạt Nó sử dụng nhiều ứng dụng an toàn giao thức Internet Sau số ứng dụng quan trọng hàm băm mật mã: Xác thực thông báo: Xác thực thông báo làm chế sử dụng để xác thực tính tồn vẹn thơng báo Xác thực thơng báo đảm bảo liệu nhận xác giống gửi (tức khơng bị sửa đổi, chèn, xóa hay phát lại), nhiều trường hợp định danh người gửi bảo vệ Khi hàm băm sử dụng để cung cấp chế xác thực thông báo, giá trị hàm băm thường gọi mã băm Có số phương pháp sử dụng mã băm để cung cấp chế xác thực thơng báo hình 3: Theo sơ đồ (a): hai thực thể liên lạc có khóa bí mật chia sẻ Khi cần gửi thơng báo cho , tính mã bămbăm nối vào thông báo mã hóa khóa bí mật để tạo mã truyền cho Người nhận xác thực thông báo sau: trước tiên giải mã mã nhận khóa bí mật chia sẻ, sau tính lại mã băm từ thơng báo so sánh với mã băm nhận kèm theo thông báo Nếu hai giá trị giống thơng báo xác thực Do có người gửi người nhận biết khóa bí mật , thơng báo phải đến từ không bị sửa đổi trái phép Trong lược đồ này, mã băm sử dụng để đảm bảo tính xác thực thơng báo, hàm mã hóa sử dụng để đảm bảo tính bí mật thơng báo Hình 3: Mơ hình sử dụng hàm băm để xác thực thông báo Theo sơ đồ (b), mã băm mã hóa mật mã khóa bí mật Điều làm giảm gánh nặng xử lý cho ứng dụng không cần giữ bí mật thơng báo, mà cần đảm bảo tính tồn vẹn thơng báo Theo sơ đồ (c), hàm băm sử dụng để xác thực thông báo Kỷ thuật yêu cầu hai thực thể liên lạc phải chia sẻ tham số bí mật tính giá trị băm sau: bổ sung vào thông báo gửi cho Do có tham số bí mật nên tính lại giá trị băm để xác thực Hơn nữa, tham số bí mật khơng gửi nên đối phương sửa đổi thông báo mà không bị phát Theo sơ đồ (d), hàm mã hóa khóa bí mật bổ sung vào sơ đồ để đảm bảo thêm tính bí mật thơng báo Chữ ký số: Chữ ký số chuỗi số, kết phép biến đổi mật mã thông báo nhằm cung cấp phương tiện để triển khai tính xác thực nguồn gốc thơng báo, tính tồn vẹn liệu tính khơng thể chối bỏ người ký Khi hàm băm sử dụng lược đồ chữ ký số, giá trị băm thơng báo mã hóa khóa riêng người gửi Bất kỳ ai, biết khóa cơng khai người gửi xác thực tính tồn vẹn thơng báo Hình mơ tả phương pháp sử dụng giá trị băm để cung cấp chữ ký số S Hình 4: Mơ hình sử dụng hàm băm lược đồ chữ ký số • Các ứng dụng khác: Lưu trữ mật Hầu hết ứng dụng phần mềm ngày có chứng thực người sử dụng Nghĩa để sử dụng ứng dụng, người sử dụng phải qua chế chứng thực tên người sử dụng mật Giả sử mật lưu giữ dạng thơng thường, khơng mã hóa, nơi máy tính cá nhân hay máy chủ, tập tin liệu hay hệ quản trị sở liệu Như xuất nguy người khác mở tập tin liệu sở liệu, xem trộm mật Như mật khơng thể giữ bí mật tuyệt đối Phương pháp bảo vệ mật hiệu dùng hàm băm Khi người sử dụng đăng ký mật khẩu, giá trị băm mật tính hàm băm (SHA-1, SHA-2…) Giá trị băm đươc lưu trữ vào tập tin hay sở liệu Vì hàm băm chiều, nên dù biết giá trị băm loại hàm băm, kẻ công suy mật Khi người sử dụng đăng nhập, mật đăng nhập tính giá trị băm so sánh với giá trị băm lưu trữ Do tính chống trùng, có mật có giá trị băm tương ứng, nên khơng khác ngồi người sử dụng có mật đăng nhập ứng dụng • Hình 5: Chứng thực mật khẩu, theo tính chống trùng, Ứng dụng tải liệu mạng Khi tải liệu mạng, chất lượng mạng khơng tốt xảy lỗi q trình tải làm cho tập tin máy khách khác với tập tin máy chủ Hàm băm giúp phát trường hợp lỗi cách sau: Gọi tập tin cần tải xuống máy chủ , giá trị băm theo MD5 tập tin mà máy chủ tính sẵn cung cấp trang điện tử (có thể xem mắt) Gọi tập tin mà người sử dụng tải máy tính sử dụng Người sử dụng tính giá trị MD5 cho tập tin Như trùng khớp với theo tính chống trùng hàm băm, tập tin hoàn toàn giống tập tin q trình tải xuống khơng xảy lỗi Internet 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 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 tồn (bit) 512 512 512 512 1024 1024 32 32 32 32 64 64 64 64 80 128 192 256 Bảng 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 10 Hình 7: Các trục x, y z cho sơ đồ ánh xạ bước 2.1.2 Ánh xạ bước Năm ánh xạ bước vòng keccak-] ký hiệu ,,,χ Thuật toán ánh xạ bước có mảng trạng thái đầu vào ký hiệu A trả lại mảng trạng thái cập nhật đầu ký hiệu A’ Kích thước trạng thái tham số bỏ qua ký hiệu, b ln xác định gọi tới ánh xạ bước Ánh xạ có đầu vào thứ hai : số nguyên gọi số vòng, ký hiệu , Các ánh xạ khác khơng phụ thuộc vào số vòng a Mơ tả ánh xạ Thuật toán 1: θ ( A) Đầu vào: mảng trạng thái Đầu ra: mảng trạng thái A A' Các bước: ( x, z ) Đối với tất cặp cho 0≤ x

Ngày đăng: 09/11/2017, 14:08

Mục lục

    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ã

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

    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ã

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

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

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

Tài liệu liên quan