Hash Function (Hàm băm) là gì?
Hàm băm là một hàm toán học nhận đầu vào là một chuỗi dữ liệu (văn bản, tệp tin, mật khẩu...) với độ dài bất kỳ, và trả về một chuỗi giá trị cố định (gọi là mã băm – hash value, digest hoặc checksum).
Ví dụ:
Input: "ChatGPT"
Output (MD5): 62290c06718fbef3ca1e3be8a5a145f2
Đặc điểm chính của một hàm băm
Đầu ra cố định (Fixed-length output)
Dù bạn nhập 10 ký tự hay 10.000 ký tự, kết quả băm luôn có độ dài như nhau.
- MD5: 128 bit
- SHA-1: 160 bit
- SHA-256: 256 bit
- SHA-512: 512 bit
VD:
Nhatkyhoctap -> df30cb178eb8e37728f39b3e6551c8de
https://www.md5hashgenerator.com/ -> bd041e3f1821cbb99795412b64508a05
Không thể đảo ngược (One-way function)
Rất khó – gần như không thể – tìm ra dữ liệu gốc chỉ từ mã băm.
Tính kháng va chạm (Collision resistance)
Không nên có hai đầu vào khác nhau cho ra cùng một mã băm. Nếu điều này xảy ra, thuật toán được coi là yếu.
Deterministic – Tính xác định
Cùng một đầu vào luôn cho ra cùng một kết quả băm.
Ví dụ:
Hash("abc") luôn là 900150983cd24fb0d6963f7d28e17f72 (MD5)
MD5
Trong mật mã học, MD5 (viết tắt của tiếng Anh Message-Digest algorithm 5, Thuật toán Tiêu hóa-tin nhắn 5) là một hàm băm mật mã học được sử dụng phổ biến với giá trị băm (hash) dài 128-bit. Là một chuẩn Internet (RFC 1321), MD5 đã được dùng trong nhiều ứng dụng bảo mật, và cũng được dùng phổ biến để kiểm tra tính toàn vẹn của tập tin. Một bảng băm MD5 thường được diễn tả bằng một số hệ thập lục phân 32 ký tự.
MD5 được thiết kế bởi Ronald Rivest vào năm 1991 để thay thế cho hàm băm trước đó, MD4. Vào năm 1996, người ta phát hiện ra một lỗ hổng trong MD5; trong khi vẫn chưa biết nó có phải là lỗi nghiêm trọng hay không, những chuyên gia mã hóa bắt đầu đề nghị sử dụng những giải thuật khác, như SHA-1 (khi đó cũng bị xem là không an toàn). Trong năm 2004, nhiều lỗ hổng hơn bị khám phá khiến cho việc sử dụng giải thuật này cho mục đích bảo mật đang bị đặt nghi vấn.
VD:
MD5("The quick brown fox jumps over the lazy dog") = 9e107d9d372bb6826bd81d3542a419d6
SHA1 là gì?
SHA (Secure Hash Algorithm hay thuật giải băm an toàn) là năm thuật giải được phát triển bởi cục an ninh quốc gia Mĩ (National Security Agency hay NSA) và được xuất bản thành chuẩn của chính phủ Mĩ bởi viện công nghệ và chuẩn quốc gia Mĩ (National Institute of Standards and Technology hay NIST. SHA1 được coi là thuật giải thay thế MD5.
Từ năm 2011 đến 2015, SHA1 đã từng là thuật toán chủ yếu. Tuy nhiên, một số lượng ngày càng lớn các nghiên cứu khóa học chỉ ra điểm yếu của SHA1 đã thúc đẩy quy trình kiểm tra lại tính bảo mật của thuật toán này
Vào năm 2017, Google công bố thành công của chiến dịch SHAttered, tạo ra hai file PDF khác nhau nhưng có cùng SHA-1 hash
SHA-256
SHA-256 là một phần của bộ SHA-2 – thuật toán được xem là an toàn nhất hiện nay trong họ hàng SHA. Với độ dài băm 256 bit và cấu trúc toán học phức tạp hơn, SHA-256 hiện đang được sử dụng rộng rãi trong:
- SSL/TLS
- Bitcoin, Blockchain
- HMAC
- Lưu trữ mật khẩu
Tuy nhiên, hãy nhớ: SHA-256 cũng chỉ là một hàm băm thuần túy. Nếu dùng để lưu mật khẩu người dùng một cách trực tiếp, nó vẫn có thể bị tấn công bằng dictionary attack, brute-force, hay rainbow table – nhất là khi không dùng thêm salt hoặc tính toán lặp (iterations).
Tham khảo
SHA1, SHA2, SHA256 – Những thuật ngữ này nghĩa là gì?
MD5 Hash Generator: https://www.md5hashgenerator.com/
Google just cracked one of the building blocks of web encryption
Nhận xét
Đăng nhận xét