Đề tài tìm hiểu hàm băm (Hash function) Đề tài tìm hiểu hàm băm (Hash function)Đề tài tìm hiểu hàm băm (Hash function)Đề tài tìm hiểu hàm băm (Hash function)Đề tài tìm hiểu hàm băm (Hash function)Đề tài tìm hiểu hàm băm (Hash function)Đề tài tìm hiểu hàm băm (Hash function)Đề tài tìm hiểu hàm băm (Hash function)Đề tài tìm hiểu hàm băm (Hash function)Đề tài tìm hiểu hàm băm (Hash function)Đề tài tìm hiểu hàm băm (Hash function)Đề tài tìm hiểu hàm băm (Hash function)Đề tài tìm hiểu hàm băm (Hash function)Đề tài tìm hiểu hàm băm (Hash function)Đề tài tìm hiểu hàm băm (Hash function)Đề tài tìm hiểu hàm băm (Hash function)Đề tài tìm hiểu hàm băm (Hash function)Đề tài tìm hiểu hàm băm (Hash function)Đề tài tìm hiểu hàm băm (Hash function)Đề tài tìm hiểu hàm băm (Hash function)Đề tài tìm hiểu hàm băm (Hash function)
Trang 1ĐỀ TÀI: TÌM HIỂU HÀM BĂM ( HASH
FUNCTION)
Trang 2Nội dung:
1 Giới thiệu hàm Hash
2 Ứng dụng hàm hash
3 Thuật toán
4 Tổng kết
Trang 3Giới thiệu hàm HASH
Giới thiệu:
Hàm băm (Hash function) là thuật toán nhằm chuyển đổi một thông điệp đầu vào có độ dài bất kỳ thành một dãy bit có độ dài
cố định (tuỳ thuộc vào thuật toán băm) Dãy bit này được gọi là 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
Hàm băm (hash function) là hàm một chiều mà nếu đưa một lượng dữ liệu bất kì qua hàm này sẽ cho ra một chuỗi có độ dài
cố định ở đầu ra
Trang 4Giới thiệu hàm HASH
Trang 5Tính một chiều: không
thể suy ra dữ liệu ban
đầu từ kết quả, điều này
tương tự như việc bạn
không thể chỉ dựa vào
một dấu vân tay lạ mà
suy ra ai là chủ của nó
được.
Tính chất cơ bản của hàm
Hash
Tính duy nhất: xác suất để có một vụ va chạm (hash collision), tức là hai thông điệp khác nhau có cùng một kết quả hash, là
cực kỳ nhỏ
Trang 6Giới thiệu hàm HASH
Các hàm băm mật mã học phổ biến:
SHA-1
SHA-256/224
SHA-512/384
Ngoài ra còn rất nhiều hàm băm mật mã học nữa Hàm băm SHA-1 được sử dụng rộng rãi nhất ở Việt Nam.
Trang 7Ứng dụng của hàm Hash
Xác thực mật khẩu
Xác thực thông điệp (Message authentication – Thông điệp tóm tắt -message digests)
Bảo vệ tính toàn vẹn của tập tin, thông điệp được gửi qua mạng.
Tạo chữ ký điện tử (Digital signatures)
Trang 9Thuật toán
Giới thiệu hàm băm MD5
MD5 (Message-Digest algorithm 5) là một hàm băm để mã hóa với giá trị băm là 128 bit.
MD5 được sử dụng rộng rãi trong thế giới phần mềm để đảm bảo rằng tập tin tải về không bị hỏng.
MD5 thường dùng để mã hóa mật khẩu.
Phát triển bởi Ron Rivest tại MIT năm 1991 để thay thế cho MD4
Trang 10Thuật toán
Input: thông điệp với độ dài bất kỳ
Output: thông điệp rút gọn (message digest) có độ dài 128 bits
Giải thuật gồm 5 bước trên khối 512 bits
Trang 11 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 hay l = n*512 + 448 (n,l nguyên )
Thông điệp luôn luôn được nhồi thêm các bit
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 1: Nhồi dữ liệu
Trang 12 Độ dài khối dữ liệu ban đầu sẽ được biểu diễn dưới dạng nhị phân 64 bít 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 Nếu độ dài của khối dữ liệu ban đầu >264 chỉ 64bit thấp được áp dụng,
nghĩa là giá trị được thêm vào bằng K mod 264.
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 ( Với cứ 512 bit là một khối dữ liệu)
Bước 2: Thêm độ dài
Trang 13Bước 3: Khởi tạo bộ đệm MD ( MD buffer)
Tạo 1 bộ đệm 128 bit gồm 4 thanh ghi mỗi thanh 32 bit được dùng lưu trữ giá trị băm trung gian và kết quả 4 thanh ghi của bộ đệm được đặt tên là A, B,C,D với các giá trị khởi tạo ở dạng
little-endian(byte có trọng số nhỏ nhất trong từ nằm ở địa chỉ thấp nhất) như sau:
Trang 14•Trọng tâm của giải thuật là hàm
nén(compression function)gồm 4 vòng xử
lý Các vòng này có cấu trúc giống nhau
nhưng sử dụng các hàm luận lý khác nhau
gồm F,G,H,I
•Mảng 64 phần tử được tính theo công
thức : S[i]=2 32 x abs(sin(i)), được tính
theo radian.
•Kết quả của 4 vòng được cộng theo công
thức modulo 2 32 với đầu vào CVq để tạo
CVq+1
Bước 4: Xử lý các khối dữ liệu 512 bit
Trang 17Hàm nén (compression function)
Trang 18 Kết quả ra là đoạn mã có độ dài 128bit, được thu gọn từ
thông điệp ban đầu có độ dài l bit Đoạn mã này thu được từ
4 thanh ghi A,B,C,D bắt đầu từ bit thấp của thanh ghi A cho đến byte cao của thanh ghi D
Bước 5: Xuất kết quả
Trang 19Tổng kết
Ưu điểm
Có nhiều ứng dụng quan
trọng trong việc đảm bảo
an toàn và bảo mật hệ
thống thông tin
Được sử dụng rộng rãi
hiện nay
Nhược điểm
Kể từ năm 2005, các hàm mật mã của hash đã không còn đảm bảo được tính
bảo mật tuyệt đối nữa
Trang 20AN TOÀN BẢO MẬT HỆ THỐNG THÔNG TIN
ĐỀ TÀI: TÌM HIỂU HÀM BĂM ( HASH FUNCTION)