Hash (Hàm băm) là gì? Ứng dụng của Hash trong thực tiễn 2022

hash la gi

Trong lĩnh vực bảo mật, có rất nhiều kỹ thuật để hỗ trợ. Trong đó, phải kể đến Hash (Hàm băm). Được xem là một kỹ thuật cực kỳ quan trọng cũng như có tính ứng dụng rất cao. Vậy Hash là gì? Hãy tìm hiểu bài viết dưới đây cùng Tài Chính 101 để hiểu rõ hơn về Hash !

1. Hash (Hàm băm) là gì ?

Hashing được hiểu là một quá trình biến đầu vào là một nội dung có kích thước, có độ dài bất kỳ. Và sau đó sử dụng những thuật toán, công thức toán học để biến thành những đầu ra tiêu chuẩn có độ dài nhất định. Trong quá trình đó sẽ sử dụng những hàm băm (Hash Function).

hash la gi

Ví dụ bạn tải 1 video từ Youtube về. Sau đó cho nó chạy qua hàm băm có tên MD5. nó sẽ trả về cho bạn một chuỗi dài gồm 32 ký tự. Tương tự với việc tải ảnh hay cho chạy từ “apple” qua hàm hash MD5 kia, bạn đều sẽ nhận được kết quả là chuỗi 32 ký tự. 

Những thuật toán băm khác cũng hoạt động tương tự như thế, nếu bạn cho bất kỳ thứ gì vào hàm thì đầu ra luôn là một chuỗi có độ dài nhất định.

2. Hàm băm mật mã

Như tên gọi của nó, những hàm băm được sử dụng với mục đích mã hóa các dữ liệu đầu vào. Những hàm băm mật mã cũng tương tự như hàm băm thông thường. Tuy nhiên, nó lại mang đặc điểm khác chính là không thể đảo chiều được. Điều này có nghĩa rằng nếu bạn sở hữu trong tay giá trị sau băm thì bạn sẽ không thể biết đầu của nó là gì.

Điều này cũng đơn giản như việc bạn uống một cốc sinh tố hỗn hợp rất ngon nhưng không thể nào liệt kê toàn bộ nguyên liệu của nó.

Bên cạnh đó, hàm băm mật mã còn mang một số đặc điểm khác. Chẳng hạn như tính tránh va chạm, tính hiệu quả và tính nhạy cảm.

>>> APR là gì? APY là gì? Sự khác biệt giữa APR và APY mới nhất <<<

3. Cách thức hoạt động của Hash là gì?

Hàm Hash sẽ lấy 1 phần dữ liệu và xáo trộn nó theo một cách phức tạp. Thậm chí đến việc đảo ngược chúng trong thực tế là một điều hoàn toàn không thể. 

Hàm băm sẽ biến những đoạn dữ liệu thành một mã nhị phân bao gồm 2 số 1 và O. Tiếp đến, sẽ chia các con số này thành nhiều phần nhỏ và áp dụng 1 hàm tính toán. Và kết quả cuối cùng thu được là một chuỗi bao gồm 64 ký tự chữ và số.

Khi một ai đó cố đảo ngược quy trình cũng như tạo ra số lượng kết quả theo cấp số nhân. Điều đó tương tự với việc bạn đang cố gắng tìm ra 1 con đường kính vạn hoa. Thông thường để hack được 1 hàm băm thì đòi hỏi phải có khả năng tính toán nhiều phép toán hơn mức cần thiết mới có thể đảo ngược được chúng.

hash la gi

4. Một số Hash phổ biến

4.1 MD5

MD5 được thiết kế bởi Ronald Rivest vào năm 1991. Mục đích dùng để 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ó kích thước 128 bit (16 byte).Tuy nhiên, cho đến những năm đầu 2000 thù hàm băm MD5 đã không còn an toàn trước sức mạnh tính toán của hệ thống thế hệ mới. 

Và với sức mạnh tính toàn cũng như sự phát triển của công nghệ thám mã gần đây, chúng ta có thể tính toán được các va chạm trong MD5 với tốc độ phức tạp. Chỉ mất vài giây, phép toán khiến các thuật toán không phù hợp với phần lớn các trường hợp được sử dụng trong thực tế.

4.2 SHA-1

SHA-1 (Secure Hash Algorithm) được phát triển như một phần dự án Capstone của Chính phủ Hoa Kỳ. Với phiên bản đầu tiên xuất bản năm 1993, thường được gọi với cái tên SHA-0. Với tiêu đề là Secure Hash Standard, FIPS PUB 180, bởi NIST (Viện tiêu chuẩn và Công nghệ quốc gia Hoa Kỳ).

Tuy nhiên, nó đã bị rút lại ngay sau khi được xuất bản và thay thế bởi phiên được sửa đổi vào năm 1995 trong FIPS PUB 180-1. Và được đặt với cái tên là SHA-1. Đối với SHA-1, nó đã tạo ra một bản tóm tắt có kích thước 160 bit (20 byte). Các va chạm chống lại thuật toán SHA-1 đầy đủ có thể được tạo ra bằng cách sử dụng tấn công vỡ. Chính vì thế, hàm băm này cho đến hiện tại được coi là không đủ an toàn và bảo mật.

4.3 SHA-2

Xuất bản lần đầu tiên vào 2001, SHA-2 được biết là một tập hợp các hàm bảo mật được thiết kế từ Cơ quan an ninh quốc gia Hoa Kỳ (NSA). SHA-2 được xây dựng bằng cấu trúc Merkle-Damgard. Còn chức năng nén một chiều của hàm này được xây dựng bằng cấu trúc Davies-Meyer đến từ một hệ mật mã khối chuyên dụng.

>>> Hệ số Beta là gì? Ý nghĩa của Hệ số Beta trong chứng khoán <<<

5. Hash dùng để làm gì?

Kiểm tra sự toàn vẹn của tập tin

Như đặc điểm của hàm băm, cùng một giá trị gốc sẽ tạo ra được một giá trị băm. Cho nên ta có thể đối chiếu tập tin ta đã tải trên Internet so 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 thì tức là tệp tin của bạn trùng với bản gốc, không bị hỏng hoặc sửa đổi.

Còn với trường hợp tệp tin 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, có thể chúng đã bị cài mã độc vào tập tin đó. Do đó, việc kiểm tra giá trị băm sẽ giúp đảm bảo tệp tin của bạn được an toàn.

Xác minh mật khẩu

Trong các thiết kế cơ sở dữ liệu hiện đại, bạn nên biết một điều rằng những thứ 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à chính là giá trị hash của chúng. 

Khi bạn nhập mật khẩu, chúng sẽ được chạy qua hàm hash. Sau đó sẽ được đối chiếu với giá trị băm lưu trong cơ sở dữ liệu để quyết định bạn có được chứng thực để sử dụng dịch vụ hay không. Điều này sẽ làm giảm tối thiểu các thiệt hại khi cơ sở dự bị bị tấn công, bởi vì khi những gì bị lộ ra ngoài là các giá trị băm chứ không phải mật khẩu của bạn.

Để an toàn hơn, hệ thống sẽ thêm vào các giá trị muối (Salt) vào mật khẩu gốc của bạn. Sau đó cho chạy qua hàm băm rồi mới lưu vào cơ sở dữ liệu. Cho nên khi giá trị băm của bạn bị lộ ra và bị giải mã, những kẻ tấn công vẫn chưa thể có được mật khẩu chính xác của bạn bởi vì nó được được thêm và giá trị muối.

hash la gi

>> Lưu ý áp dụng phương pháp điểm xoay Pivot <<

6. Kết luận

Những thông tin ở trên đã giúp các bạn hiểu rõ được Hash là gì. Đồng thời, ở trên sẽ mang đến cho bạn nhiều thông tin bổ ích !