Hàm băm SHA-256 là gì?

Hàm băm SHA-256 là gì?

SHA-256 là một thành viên của họ hàm băm SHA-2, cũng bao gồm SHA-224, SHA-384 và SHA-512. Nó được sử dụng rộng rãi trong các ứng dụng khác nhau như chứng chỉ kỹ thuật số, Bitcoin và các loại tiền điện tử khác. Vậy SHA-256 là gì? Hãy cùng BlockchainWork tìm hiểu thông qua bài viết này nhé!

Tổng quan về SHA-256.

SHA-256-3

SHA-256

Hàm băm là một hàm có các thuộc tính đặc trưng sau.

  • Trả về dữ liệu đầu ra có độ dài cố định từ dữ liệu có độ dài tùy ý
  • Dữ liệu chỉ có thể được chuyển đổi theo một hướng và về cơ bản không thể chuyển đổi dữ liệu đã băm trở lại như ban đầu.

SHA-256 là một hàm băm như vậy.

SHA-256 là viết tắt của “Thuật toán băm an toàn 256-bit” và đúng như tên gọi, bạn có thể nhận được một giá trị dài 256 bit (32 byte). Như bản chất của hàm băm, cùng một giá trị luôn thu được từ cùng một dữ liệu. Mặt khác, thậm chí dữ liệu hơi khác một chút cũng mang lại các giá trị hoàn toàn khác. Nó cũng được thiết kế để gây khó khăn cho việc tìm kiếm các dữ liệu khác có cùng giá trị băm dựa trên một dữ liệu.

Thuật toán cho SHA-256

SHA-256-1

SHA-256

Trong thuật toán SHA, giá trị băm ban đầu là cố định và thông tin được sử dụng để thay đổi giá trị này là dữ liệu đầu vào. Đối với SHA-256, dữ liệu đầu vào được chia thành 64 byte một lần. Dữ liệu này được đặt tên là “khối tin nhắn”. Nếu lượng dữ liệu đầu vào vượt quá 64 byte, nhiều khối thông báo sẽ được hình thành.

Sau đó, giá trị băm ban đầu được thay đổi bằng cách sử dụng khối thông báo đầu tiên để tính giá trị băm mới. Ngoài ra, nó cũng được thay đổi trong khối thông báo tiếp theo để có được giá trị băm mới và lặp lại quá trình này cho đến hết. Kết quả cuối cùng là giá trị băm được tính trên khối tin nhắn cuối cùng. 

Tiêu chuẩn SHA-2

SHA-256 được NSA (Cơ quan An ninh Quốc gia) nghĩ ra và được NIST (Viện Tiêu chuẩn và Công nghệ Quốc gia) tiêu chuẩn hóa thành một trong những tiêu chuẩn xử lý thông tin liên bang (FIPS 180-4) vào năm 2001. 

Một hiện tượng được gọi là “xung đột băm” xảy ra khi xem xét các thuật toán giá trị băm. Điều này đề cập đến tình huống bị trùng giá trị băm được tạo từ các dữ liệu khác nhau. Do độ dài bit của giá trị được tạo là cố định nên không có hàm băm nào hoàn toàn không có xung đột, bất kể độ dài của dữ liệu gốc. Do đó, độ dài bit của giá trị băm càng dài thì khả năng xảy ra xung đột băm càng ít.

Do tốc độ tránh va chạm hàm băm tăng gấp đôi khi số bit tăng lên 1, nên tỷ lệ tránh va chạm hàm băm đối với giá trị băm 256 bit lớn hơn 128 lần so với giá trị băm 128 bit là 2. Ngược lại, phải mất một lượng thời gian đáng kể để tìm dữ liệu có xung đột băm và hiện được coi là gần như không thể xác định được dữ liệu gốc. Do đó, độ dài 512 bit cung cấp cường độ băm cao hơn, nhưng SHA-512 là thuật toán được tối ưu hóa cho CPU 64 bit, vì vậy SHA-256 được tối ưu hóa cho CPU 32 bit giống như SHA-256. 

Nói chung, SHA-512, có chiều dài dài nhất, là an toàn nhất, trong khi SHA-256 được cho là được sử dụng rộng rãi nhất do sự cân bằng tuyệt vời giữa tính dễ thực hiện, tốc độ tính toán và bảo mật mật mã.

Dịch vụ sử dụng SHA-256

Bitcoin sử dụng hai hàm băm, SHA-256 và RIPEMD-160. Các hàm băm này phù hợp để tính toán với GPU và ASIC (Mạch tích hợp dành riêng cho ứng dụng), là phần cứng dành riêng cho tính toán. Mặt khác, nhiều blockchain khác sử dụng thuật toán băm được phát minh để chúng khó tính toán bằng GPU và ASIC, để chúng có thể dễ dàng khai thác trên PC thông thường.

Ban đầu, SHA-256 được tính toán bởi CPU, nhưng nó đã chuyển sang khai thác GPU, sử dụng GPU để tính toán song song, sau đó khai thác FPGA, thực hiện phép tính này trên FPGA (Field-Programmable Gate Arra), trở thành xu hướng chủ đạo. Tuy nhiên, nếu bạn tạo một ASIC thực thi logic này, nó sẽ tiêu thụ ít năng lượng hơn và có thể thực hiện các hoạt động tốc độ cao, do đó, việc khai thác ASIC, sử dụng ASIC chuyên dụng, hiện đang là xu hướng chủ đạo.

Các hàm băm cũng được sử dụng trong chứng chỉ máy chủ SSL, là chứng chỉ kỹ thuật số cho giao tiếp được mã hóa SSL (Lớp cổng bảo mật) giữa trình duyệt web và máy chủ web. Cho đến một vài năm trước, hàm băm có tên SHA-1 thường được sử dụng, nhưng bây giờ SHA-2 là chủ đạo.

Chuyển từ SHA1 sang SHA2

SHA-1, tiền thân của SHA-2, là hàm băm tạo ra giá trị băm 160 bit (20 byte) và đã được nhiều ứng dụng và giao thức chấp nhận. Tuy nhiên, SHA-1 vẫn tiếp tục được sử dụng trên hầu hết các trang web trên thế giới mặc dù các lỗ hổng và mối nguy hiểm của nó đã được phát hiện và gây lo ngại. Trước tình hình kì này, NIST đã đưa ra khuyến nghị chuyển sang SHA-2 từ SHA-1, đã được sử dụng rộng rãi để mã hóa, vào năm 2010. Về 1, cụm từ “không dùng nữa” vẫn được giữ nguyên.

Tuy nhiên, bắt đầu từ năm 2013, Microsoft đã công bố chính sách ngừng sử dụng SHA-1 sẽ vô hiệu hóa việc sử dụng chứng chỉ máy chủ SSL sử dụng hàm băm SHA-1 sau năm 2017. Chính sách ngừng sử dụng tương tự đã được công bố đối với việc sử dụng SHA1 trong các trình duyệt như IE và Chrome. Hiện tại, SHA-1 đã được chuyển sang SHA-2 và SHA-2 đã trở thành tiêu chuẩn toàn cầu.

Kết luận

Tóm lại, SHA-256 là một hàm băm mật mã được sử dụng rộng rãi cho nhiều ứng dụng bảo mật. Đây là hàm một chiều nhận đầu vào và trả về giá trị băm có kích thước cố định 256 bit (32 byte). Nó được coi là một phương pháp an toàn và đáng tin cậy để đảm bảo tính toàn vẹn và tính xác thực của dữ liệu.

Một số ứng dụng phổ biến nhất của SHA-256 bao gồm tạo chữ ký số, băm mật khẩu và bảo vệ tính toàn vẹn của dữ liệu. Ngoài ra, nó được sử dụng rộng rãi trong ngành tiền kỹ thuật số, đặc biệt là bitcoin và các loại tiền điện tử khác, để tạo và xác minh giao dịch. Nhìn chung, SHA-256 là một công cụ quan trọng để đảm bảo tính bảo mật và tính toàn vẹn của thông tin kỹ thuật số.

BlockchainWork biên dịch

Nguồn: Gaiax blockchain

>> Có thể bạn quan tâm:

SUI là gì? Tìm hiểu chi tiết về dự án SUI

Vương Thảo 19/03/2024

Sự bùng nổ của các blockchain layer 1 vừa qua đang tạo ra một cuộc cách mạng trong lĩnh vực công nghệ và tài chính. Các nền tảng blockchain layer 1 như SUI, Bitcoin, Ethereum, Solana đều đang thu hút…

Tags: sui

Việc làm blockchain - web3

(Hà Nội) Senior Marketing Specialist_upto $1500

Hạn ứng tuyển 30/10/2024
Mức lương: 700 - 1200 USD

(Hà Nội - Full Time) Learning And Development Specialist

Hạn ứng tuyển 30/10/2024
Mức lương: Thỏa thuận

(Hà Nội - Fulltime) Business Development Executive

Hạn ứng tuyển 30/10/2024
Mức lương: 7 - 12 triệu đồng

(Hà Nội) Business Development Manager

Hạn ứng tuyển 30/10/2024
Mức lương: Lên đến 2000 USD

(Hà Nội) UIUX Leader

Hạn ứng tuyển 30/10/2024
Mức lương: 20 - 40 triệu đồng

(HCM - Fulltime) Business Development (BD) Specialist

Hạn ứng tuyển 30/10/2024
Mức lương: Thỏa thuận

(Hà Nội) Solution Architect_upto $3000

Hạn ứng tuyển 30/10/2024
Mức lương: 2000 - 3000 USD

(Hà Nội) Content Specialist

Hạn ứng tuyển 30/10/2024
Mức lương: 800 - 1000 USD

(Hà Nội - Fulltime) Backend Developer (NET Salary: 20 - 70M)

Hạn ứng tuyển 30/10/2024
Mức lương: 20 - 70 triệu đồng

(Hà Nội - Fulltime) Model 3D Blender

Hạn ứng tuyển 30/10/2024
Mức lương: 18 - 30 triệu đồng

(HCM - Full Time) Community And Marketing Specialist

Hạn ứng tuyển 30/10/2024
Mức lương: Lên đến 25 triệu đồng

(HCM) Sale Marketing Leader (Ca Chiều)

Hạn ứng tuyển 29/11/2024
Mức lương: Lên đến 40 triệu đồng

(HCM - Fulltime) Video Editor

Hạn ứng tuyển 30/10/2024
Mức lương: 12 - 16 triệu đồng

(HCM - Full Time) Sales Executive

Hạn ứng tuyển 30/10/2024
Mức lương: Thỏa thuận

(Hà Nội - Fulltime) Junior/Middle Video Editor - Net Salary Up To 20M

Hạn ứng tuyển 30/10/2024
Mức lương: 10 - 20 triệu đồng

(Remote - Full Time) Front-end Blockchain Developer

Hạn ứng tuyển 19/11/2024
Mức lương: 30 - 35 triệu đồng

(Hà Nội) CMO

Hạn ứng tuyển 30/10/2024
Mức lương: Thỏa thuận

(HCM - Full Time) Senior Embedded Developer

Hạn ứng tuyển 30/10/2024
Mức lương: Thỏa thuận

(HCM) Trợ Lý Tổng Giám Đốc (Tiếng Trung)

Hạn ứng tuyển 29/11/2024
Mức lương: 15 - 25 triệu đồng

(Hà Nội) Tester

Hạn ứng tuyển 30/10/2024
Mức lương: 12 - 20 triệu đồng