Băm mật mã: Hướng dẫn cho người mới bắt đầu

Băm mật mã là một phần không thể thiếu của phổ an ninh mạng. Trên thực tế, nó được sử dụng rộng rãi trong các công nghệ khác nhau bao gồm Bitcoin và các giao thức tiền điện tử khác.

Trong bài viết này, chúng ta sẽ xem xét kỹ thuật băm trong tiền điện tử, nơi chúng ta tìm hiểu về các hàm băm mật mã, ví dụ, lịch sử của chúng, v.v..

Bài viết hướng đến những người muốn tìm hiểu kỹ thuật hơn về chủ đề này. Tuy nhiên, đừng ngại nếu bạn không rành về kỹ thuật vì chúng tôi sẽ cố gắng đơn giản hóa khái niệm theo cách tốt nhất có thể.

Mật mã luôn là cốt lõi của khoa học máy tính. Nếu không có nó, chúng ta sẽ không bao giờ có thể liên lạc hoặc chia sẻ thông tin an toàn. Nó được định nghĩa tốt nhất là phương pháp bảo vệ thông tin.

Băm mật mã là gì?

Trong mật mã, băm là một phương pháp được sử dụng để chuyển đổi dữ liệu thành một chuỗi văn bản duy nhất. Dữ liệu được chuyển đổi thành một phương pháp rất hiệu quả, nơi dữ liệu được băm trong vài giây. Ngoài ra, không có giới hạn về loại dữ liệu hoặc kích thước của nó – băm hoạt động trên tất cả chúng.

Vì vậy, điều gì làm cho băm trở nên phổ biến và độc đáo? Đó là bởi vì nó không thể được đảo ngược!

Có, nó là một hàm một chiều (hàm băm mật mã) và nó được thiết kế để chỉ hoạt động như vậy.

Trong hàm một chiều, dữ liệu, sau khi được đưa vào thuật toán băm, sẽ xuất ra một chuỗi duy nhất. Tuy nhiên, chuỗi duy nhất không thể được sử dụng để giải mã dữ liệu gốc bằng cách đưa nó trở lại hàm băm. Loại tính năng và hữu ích này làm cho việc băm mật mã trở nên có lợi trong việc bảo vệ thông tin và dữ liệu.

Ngoài ra, hãy kiểm tra

  • Làm thế nào để xây dựng một chuỗi khối bằng Python
  • Hướng dẫn cho người mới bắt đầu: Sử dụng mật mã trong tiền điện tử

Có một tính năng nữa áp dụng cho phương pháp băm. Bất kỳ phần dữ liệu nhất định nào sẽ cung cấp cùng một đầu ra băm.

Những tính năng này làm cho nó rất hữu ích trong tiền điện tử như bitcoin.


Hashing hoạt động như thế nào?

Băm mật mã

Để hiểu rõ hơn về băm, chúng ta cũng cần tìm hiểu cách hoạt động của nó. Băm là một phép toán cần ít sức mạnh tính toán hơn để thực hiện. Tuy nhiên, sức mạnh tính toán cần thiết để đảo ngược là tốn kém và do đó không thể thực hiện được bởi thế hệ máy tính hiện tại.

Tuy nhiên, máy tính lượng tử có thể đảo ngược quá trình băm máy tính. Tuy nhiên, đã có những phương pháp băm có khả năng chống lượng tử.

Đối với mục đích băm, có rất nhiều thuật toán được sử dụng. Điều này bao gồm những điều sau.

  • Tin nhắn trực tiếp (MD5)
  • Chức năng băm an toàn (SHA1)
  • Chức năng băm an toàn (SHA-256)

Không phải tất cả các hàm băm đều an toàn 100%. Ví dụ, SHA1 rất dễ bẻ khóa và do đó không được khuyên dùng cho mục đích thực tế. Một trong những hàm băm phổ biến nhất được sử dụng bao gồm MD5 và SHA-256.

MD5 chủ yếu được sử dụng để xác minh các tệp đã tải xuống. Vì vậy, nếu bạn tải xuống một tệp, thì bạn có thể tính tổng tổng của nó bằng cách sử dụng máy tính tổng kiểm tra. Nếu chuỗi băm khớp với chuỗi của những gì trình tải xuống đã cung cấp, điều đó có nghĩa là quá trình tải xuống được thực hiện chính xác mà không có bất kỳ lỗi nào của tệp. Nói tóm lại, nó xác minh tính toàn vẹn của tệp.

Hashing được sử dụng nhiều nhất ở đâu?

Hashing chủ yếu được sử dụng cho mật khẩu. Hãy lấy một ví dụ để hiểu nó.

Khi tạo tài khoản email, nhà cung cấp dịch vụ email của bạn sẽ hỏi bạn địa chỉ email và mật khẩu. Rõ ràng, họ không lưu email và mật khẩu dưới dạng văn bản thuần túy đơn giản. Nếu họ làm vậy, thì họ đang xâm phạm quyền riêng tư và bảo mật thông tin của bạn. Để đảm bảo rằng khó có thể giải mã thông tin đó, họ sử dụng hàm băm trên mật khẩu của bạn để ngay cả bất kỳ ai làm việc nội bộ tại nhà cung cấp email cũng không thể giải mã được..

Vì vậy, nếu bạn cố gắng đăng nhập vào lần sau, hàm băm sẽ giải mã nó và khớp với hàm đã lưu và do đó cấp cho bạn quyền truy cập vào email của mình.

Các cách sử dụng khác bao gồm tạo và xác minh chữ ký và kiểm tra tính toàn vẹn của tệp.

Tất nhiên, có những ứng dụng băm khác. Một cách sử dụng băm phổ biến nhất khác là tiền điện tử, chúng ta sẽ thảo luận bên dưới.

Cách băm được sử dụng trong tiền điện tử

Hashing chủ yếu được sử dụng trong tiền điện tử cho các mục đích khai thác. Vì vậy, trong Bitcoin, khai thác là một quá trình xác minh các hàm băm SHA-256. Điều này có nghĩa là băm có thể được sử dụng để viết các giao dịch mới, tham chiếu chúng trở lại khối trước đó và đánh dấu thời gian cho chúng

Mạng được cho là sẽ đạt được sự đồng thuận khi một khối mới được thêm vào blockchain. Bằng cách đó, nó xác thực các giao dịch có trong khối. Ngoài ra, sự bổ sung khiến cho bất cứ ai không thể đảo ngược nó. Tất cả những điều này đều có thể thực hiện được nhờ băm và đó là lý do tại sao nó được sử dụng để duy trì tính toàn vẹn của chuỗi khối.

Bitcoin sử dụng phương pháp đồng thuận Proof-of-Work, đổi lại sử dụng hàm băm một chiều SHA-256.

Ví dụ về hàm băm

Bây giờ, hãy xem một ví dụ về hàm băm mật mã.

Để giúp chúng tôi và bạn dễ dàng hơn, chúng tôi sẽ sử dụng các công cụ SHA-256 trực tuyến có sẵn.

Đây là liên kết cho nó: SHA256 Trực tuyến

Bây giờ, nếu bạn nhập 101Blockchains làm đầu vào, nó sẽ đưa ra kết quả sau.

Đầu vào: 101Blockchains.com

Đầu ra: fbffd63a60374a31aa9811cbc80b577e23925a5874e86a17f712bab874f33ac9

băm mật mã

Sử dụng hàm băm SHA256

Bây giờ, nếu bạn đặt một đầu vào đơn giản, “Hello World”, nó sẽ cho kết quả sau.

Đầu vào: Chào thế giới

Đầu ra: a591a6d40bf420404a011733cfb7b190d62c65bf0bcda32b57b277d9ad9f146e

Trong số cả hai kết quả đầu ra, bạn sẽ thấy rằng cả hai giá trị đầu ra đều có cùng độ dài, tức là 256 bit, tức là độ dài 64 ký tự.

Bây giờ, hãy nhập 101blockchain vào đầu vào. Lưu ý rằng chúng tôi đã xóa “s” khỏi 101Blockchains được sử dụng để tạo hàm băm đầu tiên.

Đầu vào: 101Blockchain

Đầu ra: c4d67db72f3d18eaca2e8e8498271de353d25874e4448be4887f2563576c6fe8

Nếu bạn so sánh nó với đầu ra băm đầu tiên của chúng tôi thì bạn sẽ thấy sự khác biệt rất lớn ngay cả khi chúng tôi chỉ xóa một ký tự khỏi đầu vào.

Vậy, chúng ta đã học được gì từ ví dụ này? Hãy tóm tắt bên dưới.

  • Tất cả các đầu ra có cùng độ dài
  • Những thay đổi nhỏ trong đầu vào dẫn đến kết quả đầu ra hoàn toàn khác
  • Không thể đảo ngược đầu ra thành đầu vào.

Thuộc tính của hàm băm mật mã

Để hiểu rõ hơn về hàm băm mật mã hay hàm băm nói chung, hãy cùng xem qua các thuộc tính của hàm băm mật mã.

Xác định

Các hàm băm mật mã được biết là có tính xác định. Điều này có nghĩa là đối với một đầu vào nhất định, đầu ra sẽ giống nhau. Nói một cách đơn giản hơn, nếu bạn đặt cùng một đầu vào thông qua hàm băm lần thứ một trăm, đầu ra sẽ giống nhau trong mọi trường hợp.

Thuộc tính xác định rất quan trọng vì nó cho phép khái niệm về hàm một chiều. Nếu nó không hoạt động theo cách đó, thì sẽ không thể sử dụng nó để băm thông tin. Ngoài ra, một đầu ra ngẫu nhiên cho cùng một đầu vào có thể làm cho toàn bộ quá trình trở nên vô ích.

Chống ảnh trước

Hàm băm mật mã có khả năng chống trước hình ảnh có nghĩa là giá trị băm sau khi được tạo sẽ không tiết lộ bất kỳ điều gì về đầu vào.

Đây là một tính năng quan trọng vì nó mang lại nhiều điều quan trọng.

Tính toán hiệu quả

Hàm băm rất hiệu quả về mặt tính toán. Điều này có nghĩa là bất kể đầu vào dài và phức tạp như thế nào, nó sẽ tạo ra đầu ra băm một cách nhanh chóng. Hiệu quả được hoan nghênh đối với các dịch vụ muốn sử dụng hàm băm để lưu trữ thông tin nhạy cảm. Tuy nhiên, nó chỉ hiệu quả về mặt tính toán theo một cách, tức là từ đầu vào đến đầu ra. Vì nó không thể đảo ngược nên không thể cho bất kỳ máy tính nào có thể thiết kế ngược nó.

Tuy nhiên, nếu bạn muốn nói về các con số, máy tính hiện đại có thể mất bất kỳ năm nào để đoán đầu vào từ một giá trị băm nhất định. Ngoài ra, với việc các máy tính hiện đại ngày càng trở nên mạnh mẽ, các hàm băm đang trở nên hiệu quả hơn bao giờ hết.

Không thể được thiết kế đảo ngược

Không thể đảo ngược các hàm băm. Điều này có nghĩa là nó được bảo mật. Như bạn nên biết rằng các hàm băm mật mã được tạo ra với tiền đề là các hàm không thể đảo ngược. Các phương trình và quy trình toán học được sử dụng để tạo ra kết quả đầu ra được đơn giản hóa và không thể đảo ngược. Về mặt kỹ thuật, hàm băm không hỗ trợ hoạt động nghịch đảo.

Chống va chạm

Khả năng chống va chạm là đặc tính cuối cùng mà chúng ta sẽ thảo luận. Thuộc tính này đảm bảo rằng không có hai đầu vào khác nhau tạo ra cùng một đầu ra.

Như bạn đã biết bây giờ, đầu vào có thể có độ dài bất kỳ. Theo định nghĩa này, đầu vào có thể là số vô hạn. Bây giờ, đầu ra, có độ dài cố định, cần phải khác nhau mọi lúc. Giới hạn của độ dài cố định cũng có nghĩa là kết quả đầu ra có số lượng hữu hạn – mặc dù số lượng hữu hạn có giá trị rất lớn. Điều này đặt ra một thách thức toán học để tách các đầu ra cho mọi đầu vào ngoài đó.

Tin tốt là hầu hết các hàm băm phổ biến đều có khả năng chống va chạm.

Các lớp băm phổ biến – Danh sách các thuật toán băm

Điều này dẫn chúng ta đến phần tiếp theo, nơi chúng ta thảo luận về các lớp băm phổ biến. Chúng tôi sẽ liệt kê ba lớp băm khá phổ biến trong lĩnh vực mật mã.

  • Thông báo Thông báo (MD)
  • Chức năng băm an toàn (SHF)
  • Thư trực tiếp RIPE (RIPEMD)

Hãy đi qua từng cái một.

Thông báo Thông báo (MD)

Message Digest là một nhóm các hàm băm được sử dụng trong suốt lịch sử của internet.

Họ bao gồm các hàm băm như MD2, MD4, MD6 và MD5 phổ biến nhất. Tất cả các hàm băm MD là các hàm băm 128 bit có nghĩa là kích thước thông báo là 128 bit.

Như chúng ta đã thảo luận trước đó, các hàm băm thông báo MD5 được các nhà cung cấp phần mềm sử dụng để kiểm tra tính toàn vẹn của các tệp được người dùng tải xuống thông qua các máy chủ tệp. Để làm cho nó hoạt động, nhà cung cấp cung cấp cho người tải xuống quyền truy cập vào MD5 tổng kiểm tra các tệp. Để kiểm tra tính toàn vẹn của tệp, một tổng kiểm tra MD5 được sử dụng để tính toán tổng kiểm tra và sau đó kiểm tra chéo với giá trị băm được cung cấp. Nếu giá trị khác với giá trị kiểm tra tính toàn vẹn của tệp đã nói đã không thành công và người dùng cần tải xuống toàn bộ hoặc một phần của tệp.

MD5 không an toàn như các hàm băm khác. Năm 2004, một cuộc tấn công phân tích đã được thực hiện trên hàm băm được thực hiện chỉ trong một giờ. Nó đã được thực hiện bằng cách sử dụng một cụm máy tính. Điều này khiến MD không hữu ích cho việc bảo mật thông tin và do đó được sử dụng cho các tác vụ như xác minh tính toàn vẹn của tệp.

Nếu bạn muốn tìm hiểu thêm về MD5, hãy xem trang Wiki dành cho MD5 – MD5.

Chức năng băm an toàn (SHA)

Các hàm băm an toàn là một họ các hàm băm khác khá phổ biến. Nó được phát triển và xuất bản bởi Viện Tiêu chuẩn và Công nghệ Quốc gia (NIST). Họ đã phát hành bốn phiên bản SHA bao gồm SHA-0, SHA-1, SHA-2 và SHA-3.

Như bạn nên đoán, các phiên bản sau sẽ khắc phục một số vấn đề hoặc điểm yếu với các phiên bản SHA cũ hơn. Ví dụ, SHA-1 được phát hành sau khi tìm thấy điểm yếu của SHA-0. SHA-1 được phát hành vào năm 1995.

SHA-1 đã tạo nên tên tuổi của chính nó sau khi nó được phát hành. Nó đã được sử dụng bởi các ứng dụng đa dạng vào thời điểm đó bao gồm cả Lớp cổng bảo mật (SSL).

Tuy nhiên, cùng với thời gian, những người khai thác cũng tìm thấy về các vụ va chạm SHA-1 khiến nó trở nên vô dụng. NIST đã đưa ra dòng hàm băm an toàn SHA-2 của họ sử dụng bốn biến thể SHA bao gồm SHA-256, SHA-224, SHA-512 và SHA-384. Trong bốn biến thể này, hai biến thể là cốt lõi bao gồm SHA-256 và SHA-512. Sự khác biệt giữa chúng là SHA-512 sử dụng các từ 64 byte trong khi SHA-256 chỉ sử dụng các từ 32 byte.

Họ SHA-2 của hàm băm vẫn được sử dụng rộng rãi. Tuy nhiên, cũng có SHA-3 được các nhà thiết kế không thuộc NSA nghĩ ra và phát hành trong một cuộc thi công khai vào năm 2012. Trước đó nó được gọi là Keccak. Những lợi ích của Keccak bao gồm khả năng chống tấn công tốt hơn và hiệu suất hiệu quả.

Thư trực tiếp RIPE (RIPEMD)

RIPE Message Direct (RIPEMD) là một họ các hàm băm được phát hành vào năm 1992. Ngoài ra, RIPE là viết tắt của RACE Integrity Primainst Assessments.

Nó được thiết kế và quản lý bởi cộng đồng nghiên cứu mở. Trong số họ, có năm chức năng bao gồm RIPEMD, RIPEMD-160, RIPEMD-128, RIPEMD-320 và RIPEMD-256. Tuy nhiên, chức năng được sử dụng phổ biến nhất là RIPEMD-160.

Thiết kế của RIPEMD dựa trên Message Direct.

Sự khác biệt giữa băm, mã hóa và muối

Trong phần này, chúng ta sẽ tìm hiểu sơ qua về sự khác biệt giữa băm, mã hóa và muối.

Hãy bắt đầu với mã hóa.

Mã hóa là quá trình xáo trộn thông tin ban đầu bằng khóa công khai và sau đó mở khóa bằng khóa riêng. Nó là một chức năng hai chiều.

Mặt khác, băm là một chức năng một chiều được sử dụng để xáo trộn thông tin cho các mục đích xác minh.

Thuật ngữ cuối cùng là “Salting”.

Salting tương tự như băm, nhưng ở đây một giá trị duy nhất được thêm vào mật khẩu để tạo ra một giá trị băm khác. Ở đây, giá trị muối cần phải là duy nhất và được ẩn.

Phần kết luận

Điều này dẫn chúng ta đến sự kết thúc của Hashing trong Cryptography. Chúng tôi đã cố gắng hiểu hàm băm trong và ngoài bằng cách đầu tiên tìm hiểu về những gì nó cung cấp và sau đó nhanh chóng tìm hiểu cách thức hoạt động, các loại của nó, v.v.!

Như bạn có thể thấy, có rất nhiều trường hợp sử dụng để băm bao gồm tiền điện tử, bảo vệ bằng mật khẩu, xác minh chữ ký, v.v. Mặc dù băm là duy nhất theo cách riêng của nó, hiệu quả của nó trong việc bảo vệ thông tin đang giảm dần theo từng ngày, nhờ vào các máy tính mạnh mẽ trên toàn thế giới.

Các nhà nghiên cứu cũng đang làm việc để duy trì hiện trạng bằng cách phát hành một hàm băm mạnh hơn có khả năng kháng lượng tử và có thể chịu được sự phát triển của sức mạnh tính toán trên toàn thế giới.

Vì vậy, bạn nghĩ gì về băm? Bình luận bên dưới và hãy cho chúng tôi biết.

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me
Like this post? Please share to your friends:
Adblock
detector
map