Thông thường, các thuật toán băm của tiền mã hóa được thiết kế như các hàm băm một chiều, nghĩa là chúng không thể chuyển đổi trở lại một cách dễ dàng mà không phải mất nhiều thời gian tính toán và tài nguyên. Nói cách khác, có thể dễ dàng tạo kết quả đầu ra từ dữ liệu đầu vào, nhưng không thể chuyển đổi theo hướng ngược lại (tìm được dữ liệu đầu vào từ duy nhất kết quả đầu ra). Nói chung, việc tìm được dữ liệu đầu vào càng khó khăn, thì tính bảo mật của thuật toán băm đó càng cao.
Bạn đang đọc: Hashing (băm) là gì? | Binance Academy
Hàm băm hoạt động như thế nào?
Các hàm băm khác nhau sẽ tạo ra những tác dụng đầu ra có kích cỡ khác nhau, nhưng size của những hiệu quả đầu ra hoàn toàn có thể nhận được luôn cố định và thắt chặt, không đổi. Ví dụ, thuật toán SHA-256 chỉ hoàn toàn có thể tạo ra những tác dụng đầu ra có kích cỡ 256 bit, trong khi thuật toán SHA-1 sẽ luôn tạo ra một hiệu quả đại diện thay mặt có size 160 – bit .Để minh họa, hãy chạy những từ “ Binance ” và “ binance ” qua thuật toán băm SHA-256 ( thuật toán được sử dụng trong Bitcoin ) .
SHA-256 | |
Đầu vào | Đầu vào ( 256 bit ) |
Binance | f1624fcc63b615ac0e95daf9ab78434ec2e8ffe402144dc631b055f711225191 |
binance | 59 bba357145ca539dcd1ac957abc1ec5833319ddcae7f5e8b5da0c36624784b2 |
Có thể thấy một biến hóa nhỏ ( viết hoa vần âm tiên phong ) dẫn đến một giá trị băm trọn vẹn khác. Tuy nhiên, do tất cả chúng ta đang sử dụng SHA-256, những tác dụng đầu ra luôn có kích cỡ cố định và thắt chặt là 256 – bit ( hoặc 64 ký tự ) – mặc dầu size tài liệu nguồn vào là bao nhiêu. Hai tác dụng đầu ra này vẫn giữ nguyên mặc dầu tất cả chúng ta chạy hai từ này qua thuật toán này bao nhiêu lần .trái lại, khi tất cả chúng ta chạy những tài liệu nguồn vào này qua thuật toán băm SHA-1, tất cả chúng ta sẽ thu được những hiệu quả sau :
SHA-1 | |
Đầu vào | Đầu ra ( 160 bit ) |
Binance | 7 f0dc9146570c608ac9d6e0d11f8d409a1ee6ed1 |
binance | e58605c14a76ff98679322cca0eae7b3c4e08936 |
SHA là từ viết tắt của Secure Hash Algorithms ( Thuật toán Băm Bảo mật ). Đây là một tập hợp những hàm băm mật mã hóa, gồm có những hàm băm SHA-0, SHA-1 và những nhóm hàm băm SHA-2 và SHA-3. SHA-256, cùng với SHA-512 và những hàm băm khác, thuộc về nhóm hàm băm SHA-2. Hiện nay, chỉ những nhóm SHA-2 và SHA-3 được xem là những nhóm hàm băm bảo mật thông tin .
Tầm quan trọng của hàm băm?
Các hàm băm truyền thống lịch sử có nhiều trường hợp sử dụng, gồm có tra cứu cơ sở tài liệu, nghiên cứu và phân tích tệp lớn và quản trị tài liệu. Mặt khác, những hàm băm mật mã còn được sử dụng thoáng đãng trong những ứng dụng bảo mật thông tin thông tin, ví dụ điển hình như xác nhận thông điệp và dấu vân tay kỹ thuật số. Khi được sử dụng trong Bitcoin, những hàm băm mật mã là một phần thiết yếu của quy trình đào và cũng góp thêm phần tạo ra những địa chỉ và khóa mới .
Băm thật sự là một công cụ mạnh mẽ khi cần xử lý một lượng thông tin lớn. Ví dụ, chúng ta có thể chạy một tệp hoặc tập dữ liệu lớn thông qua hàm băm và sau đó sử dụng kết quả đầu ra từ của nó để nhanh chóng xác minh tính chính xác và tính toàn vẹn của dữ liệu. Điều này là có thể bởi vì tính chất tất định của các hàm băm: đầu vào sẽ luôn dẫn đến một đầu ra ngắn gọn, đơn giản hóa (băm). Nhờ vào kỹ thuật này, sẽ không còn phải lưu trữ và “ghi nhớ” một lượng thông tin lớn nữa.
Băm là quá trình đặc biệt quan trọng hữu dụng trong công nghệ tiên tiến blockchain. Blockchain Bitcoin có 1 số ít hoạt động giải trí sử dụng quy trình tiến độ băm, hầu hết những hoạt động giải trí đó là trong quy trình đào. Trên thực tiễn, gần như là tổng thể những giao thức tiền mã hóa đều dựa vào băm để link và rút gọn những nhóm thanh toán giao dịch thành những khối và cũng để tạo ra những link mật mã giữa mỗi khối, tạo ra một blockchain một cách hiệu suất cao .
Các hàm băm mật mã
Một lần nữa, một hàm băm tiến hành những kỹ thuật mã hóa hoàn toàn có thể được định nghĩa là hàm băm mật mã. Nhìn chung, để phá vỡ một hàm băm mật mã yên cầu thực thi nhiều nỗ lực can đảm và mạnh mẽ. Để một người hoàn toàn có thể “ Phục hồi ” một hàm băm mật mã, họ sẽ cần đoán nguồn vào là gì theo tiến trình thử và sai cho đến khi tạo được hiệu quả đầu ra tương ứng. Tuy nhiên, cũng có năng lực những nguồn vào khác nhau tạo ra cùng một đầu ra, trường hợp này được gọi là “ xung đột ” .Về mặt kỹ thuật, một hàm băm mật mã cần có ba thuộc tính sau để được coi là bảo mật thông tin. Ba thuộc tính đó là chống xung đột, chống nghịch ảnh, và chống nghịch ảnh thứ hai .Trước khi nói về từng thuộc tính, tất cả chúng ta hãy tóm tắt những thuộc tính này .
- Chống xung đột : hai tài liệu nguồn vào khác nhau không hề tạo ra cùng một mã băm .
- Chống nghịch ảnh : không hề “ Phục hồi ” hàm băm ( không hề xác lập được tài liệu nguồn vào dựa trên tác dụng đầu ra ) .
- Chống nghịch ảnh thứ hai : không hề tìm tài liệu nguồn vào thứ hai xung đột với một tài liệu nguồn vào cho trước .
Chống xung đột
Như đã miêu tả, xung đột xảy ra khi những tài liệu nguồn vào khác nhau tạo ra một mã băm giống nhau. Bởi vậy, một hàm băm được xem là chống xung đột cho đến khi ai đó tìm thấy sự xung đột. Lưu ý rằng những xung đột sẽ luôn sống sót ở một hàm băm nào đó, vì những tài liệu nguồn vào là vô hạn, trong khi đó những hiệu quả đầu ra hoàn toàn có thể có là hữu hạn .Hay nói cách khác, một hàm băm được coi là chống xung đột khi năng lực tìm thấy sự xung đột rất thấp và hoàn toàn có thể mất hàng triệu năm giám sát để tìm thấy xung đột. Bởi vậy, mặc dầu không có hàm băm nào là trọn vẹn tránh được xung đột, nhưng một số ít hàm đủ mạnh để được xem là chống xung đột ( ví dụ, SHA-256 ) .Trong số nhiều thuật toán SHA, những nhóm SHA-0 và SHA-1 không còn bảo mật thông tin nữa vì người ta đã tìm thấy những xung đột ở nhóm này. Hiện tại, những nhóm SHA-2 và SHA-3 được xem là chống xung đột .
Chống nghịch ảnh
Thuộc tính chống nghịch ảnh có tương quan đến khái niệm những hàm một chiều. Hàm băm được xem là chống ngược ảnh khi năng lực tìm được tài liệu nguồn vào từ một hiệu quả đầu ra nào đó là rất thấp .Thuộc tính này khác với thuộc tính thứ nhất, kẻ tiến công sẽ sử dụng thuộc tính này để cố đoán được tài liệu nguồn vào dựa trên tác dụng đầu ra đã biết. Trong khi đó, xung đột xảy ra khi tìm được hai tài liệu nguồn vào khác nhau nhưng lại tạo ra cùng một hiệu quả đầu ra, nhưng việc tài liệu nguồn vào nào đã được sử dụng là không quan trọng .Thuộc tính chống nghịch ảnh rất quan trọng để bảo vệ tài liệu, vì chỉ cần mã băm của một thông điệp để chứng tỏ tính xác nhận của nó, mà không cần bật mý thông tin. Trên trong thực tiễn, nhiều nhà sản xuất dịch vụ và ứng dụng web tàng trữ và sử dụng mật khẩu dưới dạng những mã băm thay vì dưới dạng văn bản gốc .
Chống nghịch ảnh thứ hai
Nói một cách đơn thuần, chống nghịch ảnh thứ hai nằm giữa hai thuộc tính tiên phong. Tấn công nghịch ảnh thứ hai xảy ra khi ai đó tìm thấy một tài liệu nguồn vào đơn cử mà tạo ra một tác dụng đầu ra giống với tác dụng đầu ra của một tài liệu nguồn vào khác mà họ đã biết .Nói cách khác, tiến công nghịch ảnh thứ hai là việc tìm một xung đột, nhưng thay vì tìm hai tài liệu nguồn vào ngẫu nhiên tạo ra cùng một mã băm, thì họ tìm một tài liệu nguồn vào mà tạo ra một mã băm giống với mã băm của một tài liệu nguồn vào mà họ đã biết .Do vậy, hàm băm nào tránh được xung đột cũng đồng thời tránh được những tiến công nghịch ảnh thứ hai, vì nghịch ảnh thứ hai cũng có nghĩa là xung đột sẽ xảy ra. Tuy nhiên, vẫn hoàn toàn có thể triển khai tiến công nghịch ảnh so với một hàm chống nghịch ảnh, vì điều đó có nghĩa là tìm một tài liệu nguồn vào duy nhất dựa trên một hiệu quả đầu ra duy nhất .
Đào
Trong Bitcoin có rất nhiều bước sử dụng mining những hàm băm, ví dụ điển hình kiểm tra số dư, link những tài liệu nguồn vào và hiệu quả đầu ra của thanh toán giao dịch, và những băm những thanh toán giao dịch trong một khối để tạo thành một Merkle Tree. Nhưng một trong nguyên do khiến blockchain Bitcoin là một blockchain bảo mật thông tin là những thợ đào phải tạo vô số những thao tác băm để sau cuối tìm được một giải pháp hợp lệ cho khối tiếp theo .Cụ thể là, một thợ đào phải thử 1 số ít tài liệu nguồn vào khác nhau khi tạo một giá trị băm cho khối tiềm năng của họ. Về thực chất, những thợ đào chỉ hoàn toàn có thể xác nhận được khối của họ nếu họ tạo được một mã băm đầu ra mà khởi đầu bằng một vài số 0. Số lượng những số 0 xác lập độ khó của việc đào, và độ khó này biến hóa theo vận tốc băm của mạng .Trong trường hợp này, vận tốc băm đại diện thay mặt cho lượng sức mạnh máy tính được sử dụng để đào Bitcoin. Nếu vận tốc băm của mạng tăng lên, giao thức Bitcoin sẽ tự động hóa kiểm soát và điều chỉnh độ khó của việc đào để thời hạn trung bình thiết yếu để đào được một khối sẽ duy trì ở mức 10 phút. Ngược lại, nếu một số ít thợ đào ngừng đào, khiến vận tốc băm giảm đáng kể, thì độ khó của việc đào sẽ được kiểm soát và điều chỉnh, khiến việc đào trở nên thuận tiện hơn ( cho đến khi thời hạn trung bình để đào được một khối trở lại mức 10 phút ) .
Chú ý rằng các thợ đào không cần tìm ra các xung đột bởi vì có nhiều mã băm để họ có thể tạo ra như là các đầu ra hợp lệ (bắt đầu bằng một vài số 0 nhất định). Bởi vậy có một số giải pháp để đào một khối cụ thể, và các thợ đào chỉ cần tìm ra một trong số đó – theo ngưỡng được xác định từ độ khó của việc đào.
Bởi vì đào Bitcoin là một trách nhiệm tiêu tốn nhiều ngân sách, nên những thợ đào không có nguyên do gì để lừa gạt mạng lưới hệ thống vì điều đó sẽ dẫn đến những tổn thất kinh tế tài chính đáng kể. Càng có nhiều thợ đào tham gia một blockchain thì blockchain đó càng vững mạnh .
Kết luận
Có thể khẳng định chắc chắn rằng những hàm băm là những công cụ thiết yếu trong khoa học máy tính, đặc biệt quan trọng khi giải quyết và xử lý khối tài liệu khổng lồ. Khi được phối hợp với mật mã hóa, những thuật toán băm hoàn toàn có thể được sử dụng linh động, mang lại năng lực bảo mật thông tin và xác nhận theo nhiều cách khác nhau. Bởi vậy, những hàm băm mật mã đóng vai trò thiết yếu so với hầu hết những mạng tiền mã hóa, vì thế việc hiểu được những thuộc tính và chính sách hoạt động giải trí của chính chắc như đinh sẽ có ích cho những người chăm sóc đến công nghệ tiên tiến blockchain .
Source: https://getall.vn
Category: Thông Tin Đồ Gia Dụng