1. Trang chủ
  2. » Luận Văn - Báo Cáo

TIỂU LUẬN AN NINH CƠ SỞ DỮ LIỆU: HÀM BĂM

16 981 2

Đ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

Thông tin cơ bản

Định dạng
Số trang 16
Dung lượng 146,5 KB

Nội dung

Giới thiệu: Hàm băm (Hash) là giải thuật nhằm sinh ra các giá trị băm tương ứng với mỗi khối dữ liệu (chuỗi ký tự, một đối tượng lập trình trong lập trình hướng đối tượng…) Giá trị băm đóng vai trò gần như một khóa để phân biệt các khối dữ liệu. Hàm băm thường được dùng trong bảng băm nhằm giảm chi phí tính toán khi tìm một khối dữ liệu trong một tập hợp. Hàm băm mật mã học (Cryptographic hash) là một hàm băm với một số tính chất bảo mật nhất định để phù hợp việc sử dụng trong nhiều ứng dụng bảo mật thông tin đa dạng như chứng thực, kiểm tra tính nguyên vẹn của thông tin. Một hàm băm nhận đầu vào là một xâu ký tự dài có độ dài tùy ý và tạo ra kết quả là một xâu ký tự có độ dài cố định, được gói là tóm tắt thông điệp hoặc chữ ký số.

Môn học An ninh Cơ sở dữ liệu Bài tập lớn: HÀM BĂM Thầy giáo: Trịnh Nhật Tiến Học viên: Bùi Trung Hiếu Khóa: K20 – Hệ thống thông tin Mã số học viên: 13025006 Hàm Băm 1. Giới thiệu: - Hàm băm (Hash) là giải thuật nhằm sinh ra các giá trị băm tương ứng với mỗi khối dữ liệu (chuỗi ký tự, một đối tượng lập trình trong lập trình hướng đối tượng…) - Giá trị băm đóng vai trò gần như một khóa để phân biệt các khối dữ liệu. - Hàm băm thường được dùng trong bảng băm nhằm giảm chi phí tính toán khi tìm một khối dữ liệu trong một tập hợp. - Hàm băm mật mã học (Cryptographic hash) là một hàm băm với một số tính chất bảo mật nhất định để phù hợp việc sử dụng trong nhiều ứng dụng bảo mật thông tin đa dạng như chứng thực, kiểm tra tính nguyên vẹn của thông tin. Một hàm băm nhận đầu vào là một xâu ký tự dài có độ dài tùy ý và tạo ra kết quả là một xâu ký tự có độ dài cố định, được gói là tóm tắt thông điệp hoặc chữ ký số. Giới thiệu (tiếp) - Một hàm băm tốt phải thỏa mãn các điều kiện sau: + Tính toán nhanh + Các khóa được phân bổ đều trong bảng + Ít xảy ra đụng độ + Xử lý được các loại khóa có kiểu dữ liệu khác nhau - Một số lĩnh vực sử dụng hàm băm: + Mật mã học + Bảng băm + Phát hiện và sửa lỗi dữ liệu + Nhận dạng âm thanh - Tính chất cơ bản của hàm băm mật mã học: + Tính một chiều: không thể từ giá trị băm suy ra giá trị đầu vào ban đầu. + Tính duy nhất: xác suất để hai giá trị đầu vào sau khi băm cho giá trị giống nhau là cực kỳ khó xảy ra. Giới thiệu (tiếp) - Một số hàm băm: + Hàm cắt bỏ: Cho khóa là số nguyên, bỏ bớt một phần nào đó của khóa. Ví dụ: khóa là một số nguyên có 6 chữ số x = 596438. Ta có thể quy ước là bỏ bớt các chữ số hàng lẻ (hàng 1, 3, 5…), số còn lại sẽ là 563. Vậy H(x) = H(596438) = 563 Hàm cắt bỏ thỏa mãn điều kiện tính toán nhanh, nhưng khó đảm bảo điều kiện các khóa được phân bố đều + Hàm phần dư: Khóa có giá trị nguyên và bảng băm B có m phần tử, lấy phần dư của phép chia x/m làm giá trị hàm băm. Để đảm bảo điều kiện các khóa được phân bố đều nên chọn m là số nguyên tố + Hàm gấp: Khóa là số nguyên, chia số đó thành một số đoạn tùy chọn, sau đó kết hợp các phần đó lại theo một quy ước nào đó Ví dụ: Số các hàng lẻ là 352 và số các hàng chẵn là 684 vậy H(x) = 352 + 684 = 1036 Giới thiệu (tiếp) - Hầu hết các trường hợp trên đều có thể xảy ra xung đột, nên có 2 phương pháp để loại bỏ xung đột là phương pháp dò tuyến tính và phương pháp dây chuyền. Phương pháp dò tuyến tính là tìm vị trí trống tiếp theo rồi chèn phần tử đụng độ vào đó. Phương pháp dây chuyền là liên kết các khóa khác nhau, nhưng có cùng một giá trị băm thành một danh sách - Các loại hàm băm mật mã: + Sử dụng khóa: Message Authentication Codes (MAC) + Không sử dụng khóa: Manipulation Detection Codes (MDC): One-Way Hash Functions (OWHF), Collision Resistant Hash Functions (CRHF) - Ví dụ hàm băm mật mã học: MD2, MD4, MD5, SHA-0, SHA-1… 2. Ứng dụng của hàm băm mật mã + Xác thực mật khẩu: Mật khẩu không được lưu dạng văn bản rõ (clear text) mà ở dạng tóm tắt, tức là người dùng nhập mật khẩu vào, mật khẩu đó được băm ra, sau đó so sánh với kết quả băm ở trong dữ liệu lưu trữ. + Xác thực thông điệp: Khi giá trị đầu vào thay đổi thì tương ứng giá trị băm cũng thay đổi, từ đó xác định được thông điệp đã bị sửa đổi hay chưa. + Bảo vệ tính toàn vẹn của thông tin gửi trên mạng: Dựa vào tính chất một chiều của hàm băm, khi gửi một gói tin trên mạng, người ta so sánh kết quả băm của gói tin trước khi gửi với kết quả băm của gói tin khi nhận được. Nếu kết quả trùng nhau thì gói tin không thay đổi. + Tạo chữ ký điện tử: Chữ ký số được tạo ra bằng cách mã hóa bản tóm tắt (kết quả băm) của thông điệp bằng khóa bí mật của người ký. 2. Ứng dụng của hàm băm mật mã Tạo chữ ký điện tử: 2. Ứng dụng của hàm băm mật mã Xác thực chữ ký điện tử 3. Phương pháp thực hiện hàm băm Thuật toán SHA-1 Thuật toán SHA-1 do Cục An ninh Trung ương Hoa Kỳ (NSA) xây dựng dựa trên thuật toán MD4. Thuật toán SHA-1 tạo ra chuỗi mã băm có chiều dài cố định 160 bit từ chuỗi bit dữ liệu đầu vào tùy ý với độ dài tối đa 264 bits. Giải thuật gồm 5 bước trên khối 512 bits. + Bước 1: Nhồi dữ liệu Thông điệp được nhồi thêm các bit sao cho độ dài L mod 512 luôn đồng dư là 448 Số bit nhồi thêm phải nằm trong khoảng (1,512) Phần thêm vào cuối dữ liệu gồm 1 bit 1 và theo sau là các bit 0. + Bước 2: Thêm độ dài Độ dài khối dữ liệu ban đầu sẽ được biểu diễn dưới dạng nhị phân 64 bit và được thêm cuối chuỗi nhị phân mà ta thu được ở bước 1. Độ dài được biểu diễn dưới dạng nhị phân 64 bit không dấu. Kết quả thu được từ 2 bước là một khối dữ liệu có độ dài là bội số của 512. 3. Phương pháp thực hiện hàm băm Thuật toán SHA-1 + Bước 3: Khởi tạo bộ nhớ đệm MD Một bộ đệm 160 bits được dùng để lưu trữ các giá trị băm trung gian và kết quả. Bộ đệm được biểu diễn bằng 5 thanh ghi 32-bit với các giá trị khởi tạo ở dạng big-endian (byte có trọng số lớn nhất trong từ, nằm ở địa chỉ thấp nhất) và có 2 bộ đệm. 5 thanh ghi của bộ đệm đầu tiên được đặt tên là A, B, C, D, E và tương tự cho bộ đệm thứ 2 là H0, H1, H2, H3, H4, H5. Giá trị các thanh ghi (theo dạng HEX) như sau: = 67452301 = EFCDAB89 = 98BADCFE = 10325476 = C3D2E1F0 + Bước 4: Xử lý các khối dữ liệu 512 bit [...]...3 Phương pháp thực hiện hàm băm Thuật toán SHA-1 3 Phương pháp thực hiện hàm băm Thuật toán SHA-1 Thuật toán gồm 4 vòng lặp, tất cả 80 bước Các vòng lặp có cấu trúc như nhau, chỉ khác nhau ở hàm logic F(t) 3 Phương pháp thực hiện hàm băm Thuật toán MD5 - MD5 chuyển một đoạn thông tin chiều dài thay đổi thành một kết quả chiều dài... bốn giai đoạn giống nhau, gọi là vòng; mỗi vòng gồm có 16 tác vụ giống nhau dựa trên hàm phi tuyến F, cộng mô đun, và dịch trái Hình 1 mô tả một tác vụ trong một vòng Có 4 khả năng cho hàm F; mỗi cái được dùng khác nhau cho mỗi vòng: 3 Phương pháp thực hiện hàm băm Thuật toán MD5 Đây là quá trình thực hiện xử lý của 4 hàm F, G, H, I ở trên: - Vòng 1 (Round 1): Ký hiệu [abcd k s t] là bước thực hiện của... Nhận xét: Vòng 4 dùng hàm I, với t từ 49 -> 64 và k =7k mod 16 3 Phương pháp thực hiện hàm băm Thuật toán MD5 /* Sau đó làm các phép cộng sau (Nghĩa là cộng vào mỗi thanh ghi giá trị của nó trước khi vào vòng lặp) */ A = A + AA B = B + BB C = C + CC D = D + DD End /* of loop on i */ Bước 5: Tính kết quả message digest Sau khi thực hiện xong bước 4, thông điệp thu gọn nhận được từ 4 thanh ghi A, B, C, D,... 14 23] [BCDA 4 20 24] [ABCD 9 5 25] [DABC 14 9 26] [CDAB 3 14 27] [BCDA 8 20 28] [ABCD 13 5 29] [DABC 2 9 30] [CDAB 7 14 31] [BCDA 12 20 32] Nhận xét: Vòng 2 dùng hàm G, với t từ 17 -> 32 và k = 1 + 5k mod 16 3 Phương pháp thực hiện hàm băm Thuật toán MD5 - Vòng 3 (Round 3): Tương tự, ký hiệu [abcd k s t] là của biểu thức: a = b + ((a + H(b, c, d) + X[k] + T[t]) . dữ liệu. - Hàm băm thường được dùng trong bảng băm nhằm giảm chi phí tính toán khi tìm một khối dữ liệu trong một tập hợp. - Hàm băm mật mã học (Cryptographic hash) là một hàm băm với một số. vực sử dụng hàm băm: + Mật mã học + Bảng băm + Phát hiện và sửa lỗi dữ liệu + Nhận dạng âm thanh - Tính chất cơ bản của hàm băm mật mã học: + Tính một chiều: không thể từ giá trị băm suy ra giá. dữ liệu Bài tập lớn: HÀM BĂM Thầy giáo: Trịnh Nhật Tiến Học viên: Bùi Trung Hiếu Khóa: K20 – Hệ thống thông tin Mã số học viên: 13025006 Hàm Băm 1. Giới thiệu: - Hàm băm (Hash) là giải thuật

Ngày đăng: 21/08/2014, 15:38

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w