Một cách tổng quát hash function là bất kể hàm nào hoàn toàn có thể được sử dụng để ánh xạ tài liệu có kích cỡ tùy ý thành những giá trị kích cỡ cố định và thắt chặt. Các giá trị được trả về bởi hàm băm được gọi là giá trị băm, mã băm, thông điệp băm, hoặc đơn thuần là “ hash ” .
Ví dụ một số giá trị băm của MD5 và SHA-256
- MD5(“hello”) = 5D41402ABC4B2A76B9719D911017C592
- SHA-256(“hello”) = 2CF24DBA5FB0A30E26E83B2AC5B9E29E1B161E5C1FA7425E73043362938B9824
Bạn đang đọc: Hash là gì ? 1 vài dạng hash cơ bản
Tóm Tắt
II. Mục đích của hash function
1. Kiểm tra sự toàn vẹn của tệp tin
Đặc điểm của hash function, cùng một giá trị sẽ cho ra cùng một giá trị băm. Vậy nên ta hoàn toàn có thể so sánh tệp tin ta tải trên mạng về với bản gốc bằng cách so sánh giá trị băm của chúng với nhau. Nếu chúng có chung giá trị băm tức là tệp tin của bạn trùng với bản gốc, nếu không tệp tin của bạn đã bị sửa đổi hoặc bị hỏng .
Một số trường hợp, tệp tin của bạn tải về bị can thiệp bởi bên thứ ba trước khi đến thiết bị của bạn và chúng hoàn toàn có thể cài mã độc vào tệp tin đó. Việc kiểm tra giá trị băm giúp bảo vệ tệp tin của bạn bảo đảm an toàn .
2. Xác minh mật khẩu
Trong những phong cách thiết kế cơ sở tài liệu lúc bấy giờ, mật khẩu được lưu không phải mật khẩu của bạn dưới dạng văn bản đơn thuần mà là giá trị hash của chúng. Khi bạn nhập mật khẩu, mật khẩu của bạn sẽ được giải quyết và xử lý qua hàm hash, sau đó sẽ được so sánh với giá trị băm trong cơ sở tài liệu để quyết định hành động bạn có được xác nhận để sử dụng dịch vụ không. Điều này làm giảm đáng kể thiệt hại khi cơ sở tài liệu bị tiến công, những gì bị lộ ra ngoài là những giá trị băm chứ không phải mật khẩu gốc .
Để bảo đảm an toàn hơn, mạng lưới hệ thống còn thêm giá trị “ salt ” vào mật khẩu gốc của bạn, rồi cho chạy qua hàm băm, sau đó mới lưu vào cơ sở tài liệu. Vậy nên kể cả khi giá trị băm của mật khẩu bạn bị lộ và bị giải thuật, kẻ tiến công vẫn chưa thể có được mật khẩu thực sự của bạn do nó đã được thêm vào giá trị “ salt ” .
III. Một số dạng Hash cơ bản
Có nhiều thuật toán băm mật mã ; ở đây tất cả chúng ta nhắc đến 1 số ít thuật toán cơ bản được sử dụng liên tục .
1. MD5
MD5 được Ronald Rivest phong cách thiết kế vào năm 1991 để sửa chữa thay thế hàm băm MD4 trước đó và được đưa thành tiêu chuẩn vào năm 1992 trong RFC 1321. MD5 tạo ra một bản tóm tắt có size 128 bit ( 16 byte ). Tuy nhiên, đến đầu những năm 2000 thì hàm băm MD5 trở lên không bảo đảm an toàn trước sức mạnh thống kê giám sát của những mạng lưới hệ thống đo lường và thống kê thế hệ mới .
Với sức mạnh tính toàn và sự tăng trưởng của công nghệ tiên tiến thám mã thời hạn gần đây, tất cả chúng ta hoàn toàn có thể thống kê giám sát những va chạm trong MD5 với độ phức tạp phép toán chỉ trong vòng vài giây khiến thuật toán không tương thích với hầu hết những trường hợp sử dụng trong trong thực tiễn .
2. SHA-1
SHA-1 được tăng trưởng như một phần của dự án Bất Động Sản Capstone của nhà nước Hoa Kỳ. Phiên bản tiên phong, thường được gọi là SHA-0 được xuất bản năm 1993 với tiêu đề Secure Hash Standard, FIPS PUB 180, bởi NIST ( Viện Tiêu chuẩn và Công nghệ Quốc gia Hoa Kỳ ) .
Nó đã bị NSA rút lại ngay sau khi xuất bản và được sửa chữa thay thế bởi phiên bản sửa đổi, được xuất bản năm 1995 trong FIPS PUB 180 – 1 và thường được đặt tên là SHA-1. SHA-1 tạo ra bản tóm tắt có kích cỡ 160 bit ( 20 byte ). Các va chạm chống lại thuật toán SHA-1 khá đầy đủ hoàn toàn có thể được tạo ra bằng cách sử dụng tiến công phá vỡ. Do đó, hàm băm này cho đến nay được coi là không đủ bảo đảm an toàn .
3. RIPEMD-160
RIPEMD ( viết tắt của RACE Integrity Primitives Evaluation Message Digest ) là họ hàm băm được tăng trưởng tại Leuven, Bỉ, bởi ba nhà mật mã học Hans Dobbertin, Antoon Bosselaers và Bart Preneel của nhóm nghiên cứu và điều tra COSIC thuộc ĐH Katholieke Universiteit Leuven .
RIPEMD lần tiên phong được công bố vào năm 1996 dựa trên những nguyên tắc phong cách thiết kế được sử dụng trong MD4. RIPEMD-160 tạo ra một bản tóm tắt gồm 160 bit ( 20 byte ). RIPEMD có hiệu năng tựa như như SHA-1 nhưng ít được phổ cập hơn. Và cho đến nay RIPEMD-160 chưa bị phá vỡ .
4. Bcrypt
Bcrypt là một hàm băm mật khẩu được phong cách thiết kế bởi Niels Provos và David Mazières, dựa trên mật mã Blowfish, và được trình diễn tại USENIX vào năm 1999. Bên cạnh việc tích hợp một giá trị ngẫu nghiên salt để bảo vệ chống lại những tiến công rainbow attack, bcrypt còn là một hàm có năng lực thích ứng : theo thời hạn, số lần lặp hoàn toàn có thể được tăng lên để làm cho nó chậm hơn, do đó nó vẫn có năng lực chống lại những cuộc tiến công vét cạn ngay cả khi tăng sức mạnh giám sát có lớn đến mức nào đi chăng nữa .
5. Whirlpool
Whirlpool là một hàm băm mật mã được phong cách thiết kế bởi Vincent Rijmen và Paulo S. L. M. Barreto. Nó được diễn đạt tiên phong vào năm 2000. Whirlpool dựa trên phiên bản sửa đổi đáng kể của Tiêu chuẩn mã hóa nâng cao ( AES ). Whirlpool tạo ra một bản tóm tắt có độ dài 512 bit ( 64 byte ) của tài liệu .
6. SHA-2
SHA-2 về thực ra gồm có hai thuật toán băm : SHA-256 và SHA-512. SHA-224 là một biến thể của SHA-256 với những giá trị khởi tạo và đầu ra bị cắt bỏ khác nhau. SHA-384 và SHA-512 / 224 và SHA-512 / 256 ít được biết đến là toàn bộ những biến thể của SHA-512. SHA-512 bảo đảm an toàn hơn SHA-256 và thường nhanh hơn SHA-256 trên những máy 64 bit như AMD64 .
Do có nhiều phiên bản thuật toán khác nhau do đó kích cỡ đầu ra của họ SHA-2 cũng khác nhau tùy theo thuật toán. Phần lan rộng ra của tên phía sau tiền tố “ SHA ” chính là độ dài của thông điệp băm đầu ra. Ví dụ với SHA-224 thì kích cỡ đầu ra là 224 bit ( 28 byte ), SHA-256 tạo ra 32 byte, SHA-384 tạo ra 48 byte và sau cuối là SHA – 512 tạo ra 64 byte. Và tất cả chúng ta hoàn toàn có thể đã biết rằng Bitcoin sử dụng hàm băm SHA-256 là một phiên bản trong họ SHA-2 này .
7. SHA-3
SHA-3 được NIST phát hành vào ngày 5 tháng 8 năm năm ngoái. Đây có lẽ rằng là tiêu chuẩn hàm băm mới nhất cho đến lúc bấy giờ. SHA-3 là một tập con của họ nguyên thủy mật mã rộng hơn là Keccak. Thuật toán Keccak được đưa ra bởi Guido Bertoni, Joan Daemen, Michael Peeters và Gilles Van Assche. Keccak dựa trên cấu trúc bọt biển ( sponge ) .
Cấu trúc này cũng hoàn toàn có thể được sử dụng để kiến thiết xây dựng những nguyên thủy mã hóa khác như những hệ mật mã dòng. SHA-3 cũng có những kích cỡ đầu ra tương tự như như SHA-2 gồm có : 224, 256, 384 và 512 bit .
8. BLAKE2
Một phiên bản nâng cấp cải tiến của BLAKE có tên BLAKE2 đã được công bố vào ngày 21 tháng 12 năm 2012. BLAKE được tăng trưởng bởi Jean-Philippe Aumasson, Samuel Neves, Zooko Wilcox-O ’ Hearn và Christian Winnerlein với tiềm năng sửa chữa thay thế những thuật toán băm phổ cập như MD5 và SHA-1. Khi chạy trên những kiến trúc 64 bit x64 và ARM, BLAKE2b cho vận tốc nhanh hơn SHA-3, SHA-2, SHA-1 và MD5 .
Mặc dù BLAKE và BLAKE2 chưa được tiêu chuẩn hóa như SHA-3, nhưng nó đã được sử dụng trong nhiều giao thức gồm có hàm băm mật khẩu Argon2 do hiệu suất cao cao mà nó mang lại cho những dòng CPU tân tiến. Do BLAKE cũng là ứng viên cho tiêu chuẩn SHA-3, thế cho nên, BLAKE và BLAKE2 đều có những kích cỡ đầu ra giống như SHA-3 và hoàn toàn có thể tùy chọn khi sử dụng trong thực tiễn .
IV. Kết luận
Bai viết trên đã đề cập về khái niệm, mục tiêu sử dụng và 1 số hàm băm phổ cập. Qua đó sẽ giúp tất cả chúng ta hiểu rõ hơn về phương pháp, tầm quan trọng của hàm băm ( hash function ). Hiểu đơn thuần, hash function là 1 trong những phương pháp mã hóa dữ liệu .
Bạn có thể tham khảo thêm bài viết về mã hóa tại đây.
P.A Việt Nam giúp các bạn lựa chon chứng chỉ SSL phù hợp với nhu cầu
https://www.pavietnam.vn/vn/tu-van-ssl.html
Tham khảo chứng chỉ số SSL của các hãng bảo mật nổi tiếng
Sectigo – Comodo
Geotrust
Digicert
Tham khảo những tặng thêm : https://www.pavietnam.vn/vn/tin-khuyen-mai/
Xem thêm: TOP 10 chess là gì HAY và MỚI NHẤT
Rate this post
No related posts .
Source: https://final-blade.com
Category : Tiền Điện Tử – Tiền Ảo