Đề Xuất 3/2023 # Hash Là Gì? Các Dạng Hàm Băm Và Mục Đích Sử Dụng # Top 10 Like | Photomarathonasia.com

Đề Xuất 3/2023 # Hash Là Gì? Các Dạng Hàm Băm Và Mục Đích Sử Dụng # Top 10 Like

Cập nhật nội dung chi tiết về Hash Là Gì? Các Dạng Hàm Băm Và Mục Đích Sử Dụng mới nhất trên website Photomarathonasia.com. Hy vọng thông tin trong bài viết sẽ đáp ứng được nhu cầu ngoài mong đợi của bạn, chúng tôi sẽ làm việc thường xuyên để cập nhật nội dung mới nhằm giúp bạn nhận được thông tin nhanh chóng và chính xác nhất.

Hash là gì?

Hash hay Hashing là hàm chuyển đổi một giá trị sang giá trị khác. Việc băm dữ liệu là một thực tế phổ biến trong khoa học máy tính và được sử dụng cho nhiều mục đích khác nhau. Bao gồm mật mã (cryptography), nén (compression), tạo tổng kiểm tra (checksum generation) và lập chỉ mục dữ liệu (data indexing).

Trong khoa học máy tính, hàm băm sử dụng để lấy đầu vào có độ dài và đoạn nội dung bất kỳ nào đấy ( Chẳng hạn: Chữ cái, số và ký hiệu ), đồng thời sử dụng thuật toán để cắt, trộn và tạo một đầu ra với độ dài cụ thể.

Một dạng hash key như sau:

Hashing là một sự phù hợp tự nhiên đối với cryptography vì nó che dấu dữ liệu gốc với một giá trị khác. Một hàm băm có thể được sử dụng để tạo ra một giá trị chỉ có thể được giải mã bằng cách tìm kiếm giá trị từ một bảng băm (hash table). Bảng có thể là một mảng, cơ sở dữ liệu hoặc cấu trúc dữ liệu khác. Một cryptographic hash tốt tức là không thể đảo ngược, tức nó không thể đảo ngược được thiết kế.

Vì các giá trị băm thường nhỏ hơn bản gốc, điều này có thể làm hàm băm tạo ra các giá trị băm trùng lặp. Chúng được gọi là “collisions” (va chạm) và xảy ra khi các giá trị giống nhau được tạo ra từ các dữ liệu nguồn khác nhau. Các collisions có thể được giải quyết bằng cách sử dụng nhiều hàm băm hoặc bằng cách tạo ra một overflow table khi các giá trị băm trùng lặp xảy ra. Các collisions có thể tránh được bằng cách sử dụng giá trị băm lớn hơn.

Các loại nén (compression) khác nhau, chẳng hạn như lossy image compression và media compression, có thể kết hợp các hàm băm để giảm kích thước tệp. Bằng cách băm dữ liệu thành các giá trị nhỏ hơn, các media files có thể được nén thành các phần nhỏ hơn. Kiểu băm một chiều này không thể đảo ngược, nhưng nó có thể tạo ra dữ liệu giống như dữ liệu ban đầu nhưng đòi hỏi không gian đĩa ít hơn.

Những hàm băm phổ biến thường dùng

Hiện nay có rất nhiều dạng mã Hash code khác nhau, nhưng phổ biến nhất có 3 loại:

– CRC32: chứa 8 ký tự, dựa trên thuật toán Cyclic Redundancy Check. Ưu điểm là tính toán nhanh và độ dài ngắn.

– MD5: dài 32 kí tự, sử dụng thuật toán Message Digest. Hiện nay được sử dụng khá phổ biến vì tính chính xác cao và không quá nhiều thao tác xử lý.

– SHA-1: gồm 40 kí tự, dùng thuật toán Secure Hash Algorithm. Rất chính xác nhưng thời gian tính toán khá lâu.

Sử dụng Hash vào mục đích gì?

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

Hashes cũng được sử dụng để tạo checksums, xác thực tính toàn vẹn của tệp. Checksum là một giá trị nhỏ được tạo dựa trên các bit trong một tệp hoặc khối dữ liệu chẳng hạn như disk image. Khi chức năng kiểm tra được chạy trên một bản sao của tệp (chẳng hạn như tệp được tải xuống từ Internet), nó sẽ tạo ra giá trị băm giống như tệp gốc. Nếu tập tin không tạo ra cùng một checksum, một điều gì đó trong tập tin đã được thay đổi.

Index data trong tệp dữ liệu

Cuối cùng, thuật toán hashes được sử dụng để index data. Các giá trị băm có thể được sử dụng để ánh xạ dữ liệu tới các “nhóm” riêng lẻ trong một bảng băm. Mỗi nhóm có một ID duy nhất phục vụ như một con trỏ đến dữ liệu gốc. Điều này tạo ra một chỉ số nhỏ hơn đáng kể so với dữ liệu gốc, cho phép các giá trị được tìm kiếm và truy cập hiệu quả hơn.

Kết luận

Hashing sở hữu những đặc trưng nổi bật sau:

– Với mỗi một đầu vào ngẫu nhiên, hashing phải tạo ra được một giá trị băm tương ứng.

– Không thể dịch ngược từ giá trị băm quay trở lại chuỗi ký tự ban đầu.

– Đầu vào khác nhau phải xuất ra được các giá trị băm khác nhau.

Tóm lại, hàm băm sản xuất ra các giá trị băm ngẫu nhiên giúp nâng cao tính bảo mật trong liên lạc. Băm còn được ứng dụng rộng rãi trong tìm kiếm dữ liệu, là thuật toán trong Encryption. Hashing được ứng dụng rộng rãi từ lưu mật khẩu, xác định tính toàn vẹn dữ liệu, đồ họa máy tính, điện tử, viễn thông…

Hàm Băm Mật Mã (Cryptographic Hash Function)

Với cùng thông điệp “The quick brown fox jumps over the lazy dog”, các hàm băm mật mã khác nhau cho ra mã băm với kết quả như sau

9e107d9d372bb6826bd81d3542a419d6

2fd4e1c67a2d28fced849ee1bb76e7391b93eb12

d7a8fbb307d7809469ca9abcb0082e4f8d5651e46d3cdb762d02d0bf37c9e592

07e547d9586f6a73f73fbac0435ed76951218fb7d0c8d788a309d785436bbb642e93a252a954f23912547d1e8 a3b5ed6e1bfd7097821233fa0538f3db854fee6

944cd2847fb54558d4775db0485a50003111c8e5daa63fe722c6aa37

Chỉ tới khi đụng vào hàm băm mật mã, thuật ngữ “băm” mới cho thấy ý nghĩa đầy đủ. Một ứng dụng của hàm băm mật mã là băm mật khẩu, lưu trữ mã băm sẽ an toàn hơn lưu trữ nguyên mật khẩu gốc dạng văn bản rõ (cleartext). Mã băm phải đảm bảo, từ mã băm rất khó để tìm ra được mật khẩu gốc. Muốn vậy thì hàm băm mật mã phải thực hiện băm thật kỹ, băm đi băm lại dữ liệu theo cách thức sao cho mã băm đầu ra, hiểu đơn giản là không còn dấu vết của dữ liệu đầu vào. Thực tế mật khẩu còn thường được cho thêm muối trước khi băm.

Để dữ liệu đầu vào có thể được cắt ra thành những khúc có kích thước nhất định trước khi băm, thuật toán băm thực hiện nhồi thêm các bits vào dữ liệu gốc, giống như chúng ta độn thêm bột hay phụ gia vào thực phẩm vậy. Ví dụ đối với hàm băm sử dụng khúc dữ liệu cỡ 512 bits, dữ liệu đầu vào(thông điệp) được gắn thêm bit 1, sau đó không thêm hoặc thêm một số bit 0 sao cho tổng chiều dài dữ liệu chia cho 512 dư 448. Cuối cùng thêm 64 bits biểu diễn chiều dài thông điệp. Chiều dài tổng thể của dữ liệu như thế là bội của 512 và dữ liệu bao gồm các khúc 512 bits.

Quá trình băm thực hiện trên từng khúc dữ liệu, mỗi khúc được băm một số vòng(số vòng lặp đang sử dụng hiện nay là 64 vòng hoặc 80 vòng). Thuật toán duy trì các biến tương ứng với các từ của mã băm, mỗi từ 32 bits hoặc 64 bits, và mỗi vòng thực hiện tính toán các biến trên cơ sở khúc dữ liệu và các thao tác khác. Khúc dữ liệu, tùy theo loại hàm băm có thể được sơ chế hoặc không, được chia thành các mảnh nhỏ cỡ 32 bits hoặc 64 bits và được “trộn” dần vào các vòng băm. Trong mỗi vòng băm, “gia vị” được bổ sung là hằng số, đối với đa số hàm băm hằng số được lấy từ một hay hai mảng cho trước, trong đó có mảng các giá trị của một hàm phi tuyến hoặc mảng của các số nguyên tố đầu tiên. Dữ liệu được “băm” sử dụng kết hợp các phép toán trên bit. Cuối một vòng, thuật toán thực hiện “nháo” dữ liệu bằng cách gán một số biến đầu ra bằng với một số biến đầu vào nhưng hoán vị. Các biến với giá trị mới lại trở thành biến đầu vào cho vòng tiếp theo. Chúng ta thấy rằng dữ liệu được băm là dữ liệu hỗn hợp, nhưng mô tả rõ hơn thì, thuật toán thực hiện băm các biến trong khi thả mảnh dữ liệu và gia vị vào, rồi nháo các biến, tính toán, khởi tạo các biến cho vòng sau, rồi lại băm tiếp. Khi kết thúc tất cả các vòng băm của một khúc, khúc dữ liệu coi như được nén vào các biến.

Việc tính toán được bắt đầu với một giá trị hash khởi tạo, coi như mã băm hiện hành của khúc dữ liệu đầu tiên. Ở đầu chu kỳ của một khúc, các biến được gán với các từ tương ứng của mã băm hiện hành. Sau khi đi qua hết các vòng băm, các biến kết quả được cộng tương ứng vào các từ của mã băm hiện hành để tạo ra mã băm mới. Quá trình băm thực hiện băm đi băm lại trên từng khúc dữ liệu, mã băm mới của chu kỳ này được dùng làm mã băm hiện hành của chu kỳ tiếp theo, cho tới khúc cuối cùng. Giá trị nối các từ của mã băm sau cùng là mã kết quả của hàm băm.

Hàm băm mật mã ứng dụng nhiều trong an ninh thông tin, điển hình là kiểm tra tính toàn vẹn của dữ liệu, mã hóa mật khẩu, xác minh tệp tin, chứng thực thông điệp, chữ ký kỹ thuật số, và các dạng ứng dụng hệ quả khác mà chứa hàm băm mật mã bên trong. Hàm băm mật mã còn được sử dụng như hàm băm thường, phục vụ cho bảng băm như chúng ta đã biết. Vì mã băm của một đối tượng là duy nhất, nó có thể được dùng như dấu vân tay để nhận dạng đối tượng. Ví dụ để chỉ ra một người sử dụng, cách tốt nhất là sử dụng dấu vân tay là mã băm mật mã dành cho người đó, trong khi mã nhận dạng kiểu khác có thể không rõ ràng và bị trùng lặp.

Hàm băm mật mã phải có khả năng chống cự các loại tấn công mật mã, tối thiểu phải đảm bảo có 3 tính chất sau:

Với một mã băm Kháng tiền ảnh (Pre-image resistance) h bất kỳ, khó tìm được một thông điệp m nào mà h=hash(m). Điều này làm chúng ta liên tưởng tới tính một chiều của hàm số. Trong góc độ hàm số toán học, mã băm là ảnh còn thông điệp là tạo ảnh của mã băm, hay gọi là tiền ảnh. Sức kháng cự tấn công từ ảnh ngược về tiền ảnh gọi là kháng tiền ảnh. Một hàm băm có kháng tiền ảnh yếu là lỗ hổng cho các cuộc tấn công tiền ảnh.

Với một thông điệp Kháng tiền ảnh thứ hai (Second pre-image resistance) m1 bất kỳ, khó tìm được một thông điệp thứ hai m2 sao cho m1 ≠ m2 và hash(m1) = hash(m2). Xác suất xảy ra biến cố có thông điệp m2 như thế tương tự biến cố “Cùng ngày sinh như bạn”. Một hàm băm có kháng tiền ảnh thứ hai yếu là lỗ hổng cho các cuộc tấn công tiền ảnh thứ hai.

Khó tìm được một cặp thông điệp Kháng xung đột (Collision resistance) m1 và m2 sao cho m1 ≠ m2 và hash(m1) = hash(m2). Cặp như thế được gọi là xung đột băm mật mã. Tính chất này đôi khi còn được gọi là kháng xung đột mạnh. Nó yêu cầu chiều dài băm ít nhất phải dài hơn hai lần so với yêu cầu của kháng tiền ảnh, nếu không xung đột có thể xảy ra bởi một cuộc tấn công Ngày sinh.

Thuật toán MD5 là thuật toán băm mật mã tiêu hóa thông điệp (message-digest). Bởi vì thuật toán băm mật mã được diễn tả như quá trình chế biến thực phẩm nên gọi MD5 là thuật toán tiêu hóa thông điệp cũng là tự nhiên. Mã băm mật mã còn có tên gọi riêng là digest. Hàm băm MD5 có chiều dài băm 128 bits, tương đương 32 chữ số hexadecimal. Lệnh md5sum trình bày trên phần đầu của bài đã hiển thị giá trị digest, tôi viết lại xuống đây cho rõ

Hàm băm MD5 từng được sử dụng rộng rãi trong mật mã, nhưng đã bị phá vỡ kháng xung đột năm 2004 và bị tấn công tiền ảnh lý thuyết năm 2009. Trong chức năng kiểm tra tính toàn vẹn của tệp tin được tải về, MD5 chỉ còn được sử dụng ở khía cạnh kiểm tra lỗi download, xem tệp tin đã được tải về đầy đủ hay bị hỏng. Nhưng sử dụng mã MD5 để xác minh tệp tin là không an toàn. Một quá trình mật mã sử dụng toàn bộ MD5 là không an toàn. Trong trang hướng dẫn của lệnh md5sum xuất bản tháng này (tháng 12/2014) có nội dung về lỗi MD5, nguyên văn như sau:

The MD5 algorithm should not be used any more for security related purposes. Instead, better use an SHA-2 algorithm, implemented in the programs sha224sum(1), sha256sum(1), sha384sum(1), sha512sum(1)”

Không nên sử dụng thuật toán MD5 cho mục đích an ninh nào nữa. Thay vào đó, tốt hơn là sử dụng họ thuật toán SHA-2 được thi hành trong các chương trình sha224sum, sha256sum, sha384sum, sha512sum”

SHA (Secure Hash Algorithm) là thuật toán băm bảo mật. SHA-1 được nhận dạng là có các khiếm khuyết an ninh và được đề xuất là không đủ an toàn để tiếp tục sử dụng vào năm 2005.

Hàm băm SHA-1 có chiều dài băm 160 bits, tương đương 40 chữ số hexadecimal.

SHA-2 là một họ bao gồm 6 hàm băm với các digests dài 224, 256, 384 hoặc 512 bits: SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, SHA-512/256.

SHA-256 được tính toán với các từ 32 bits, 64 vòng lặp, còn SHA-512 được tính toán với các từ 64 bits, 80 vòng lặp. SHA-224 với digest dài 224 bits, là phiên bản rút gọn của SHA-256. SHA-384 với digest dài 384 bits, là phiên bản rút gọn của SHA-512. SHA-512/224 và SHA-512/256 đều là các phiên bản rút gọn của SHA-512 với các digests dài tương ứng là 224 bits và 256 bits. Có thông tin về một hàm băm mới là SHA-3 nhưng còn ở dạng dự thảo. Họ SHA-2 được coi là an toàn để sử dụng hiện nay.

Hàm Value Là Gì? Cách Sử Dụng Hàm Value

Lượt Xem:872

Hàm VALUE được phân loại theo các hàm Văn bản Excel . Nó sẽ chuyển đổi một chuỗi văn bản đại diện cho một số thành một số. Do đó, hàm sẽ chuyển đổi văn bản xuất hiện ở định dạng được nhận dạng (định dạng số, ngày hoặc thời gian) thành giá trị số.

Trong phân tích tài chính, hàm VALUE không được sử dụng nhiều, vì Excel tự động chuyển đổi văn bản thành giá trị số. Tuy nhiên, điều quan trọng đối với bất kỳ ai muốn thành thạo toàn bộ các hàm Excel .

Công thức = GIÁ TRỊ (Văn bản)

Văn bản (đối số bắt buộc) – Đây là văn bản được đặt trong dấu ngoặc kép hoặc tham chiếu đến một ô có chứa văn bản bạn muốn chuyển đổi.

Hàm VALUE được giới thiệu trong Excel 2007 và có sẵn trong tất cả các phiên bản Excel tiếp theo. Để hiểu cách sử dụng hàm, chúng ta hãy xem xét một vài ví dụ:

Chúng ta hãy xem hàm này sẽ hoạt động như thế nào khi chúng ta đưa ra các công thức sau:

Giả sử một đội nhân sự muốn chỉ định một điểm phạt cho một nhân viên đến muộn. Để gán điểm phạt dựa trên thời gian chậm trễ, bạn có thể sử dụng công thức IF lồng nhau.

Công thức trước tiên kiểm tra độ trễ theo thời gian trong D5 để xem nếu nó bằng 0, thì điểm 0 được chỉ định. Nếu kết quả của bài kiểm tra logic ở trên là FALSE, công thức sẽ kiểm tra xem liệu C3 có thấp hơn ngưỡng tiếp theo hay không, tức là 5 phút. Sau đó sẽ gán 1.

Mô hình tương tự lặp lại ở mỗi ngưỡng. Vì các bài kiểm tra được chạy theo thứ tự, từ nhỏ nhất đến lớn nhất, không cần phải đặt dấu ngoặc phức tạp hơn.

Hàm VALUE được sử dụng để làm cho Excel coi giá trị thời gian ở mỗi ngưỡng là một số thay vì tiếp theo.

Những điều cần nhớ về Hàm GIÁ TRỊ

Theo Microsoft, chức năng VALUE được sử dụng để tương thích với các chương trình bảng tính khác.

Hàm chuyển đổi văn bản xuất hiện ở định dạng được nhận dạng (định dạng số, ngày hoặc thời gian) thành giá trị số.

Sử Dụng Các Hàm If Với And, Or Và Not

Hàm IF cho phép bạn tạo một so sánh lô-gic giữa một giá trị và một giá trị dự kiến bằng cách kiểm tra một điều kiện và trả về kết quả rằng điều kiện đó là True (đúng) hay False (sai).

Nhưng nếu bạn cần kiểm tra nhiều điều kiện, trong đó giả sử tất cả điều kiện đều phải là True hoặc False ( AND) hoặc chỉ cần một điều kiện là True hoặc False ( OR) hoặc nếu bạn muốn kiểm tra xem một điều kiện có không ( NOT) đáp ứng tiêu chí của bạn hay không thì sao? Cả 3 hàm đều có thể sử dụng riêng nhưng trường hợp dùng cặp với hàm IF phổ biến hơn.

AND – =IF(AND(Điều gì đó là True, Điều gì đó khác là True), Giá trị nếu True, Giá trị nếu False)

OR – =IF(OR(Điều gì đó là True, Điều gì đó khác là True), Giá trị nếu True, Giá trị nếu False)

NOT – = IF (NOT(Điều gì đó là True), Giá trị nếu True, Giá trị nếu False)

Ví dụ

Lưu ý rằng trong tất cả ví dụ, sau mỗi điều kiện tương ứng được nhập đều có dấu đóng ngoặc đơn. Các tham đối True/False còn lại sau đó được giữ làm một phần của câu lệnh IF bên ngoài. Bạn cũng có thể thay thế các giá trị Văn bản hoặc Số vào các giá trị TRUE/FALSE được trả về trong các ví dụ.

Sử dụng AND, OR và NOT cùng Định dạng Có điều kiện

Bạn cũng có thể dùng AND, OR và NOT để thiết lập tiêu chí Định dạng Có điều kiện với tùy chọn công thức. Khi thực hiện việc này, bạn có thể bỏ hàm IF và sử dụng riêng AND, OR và NOT.

Sử dụng ví dụ Ngày khi nãy, sau đây là những công thức cần dùng.

Công thức

Mô tả

Bạn cần thêm trợ giúp?

Bạn luôn có thể nhờ chuyên gia trong Cộng đồng Kỹ thuật Excel, tìm sự hỗ trợ trong Cộng đồng Giải pháp hoặc đề xuất tính năng hay cải tiến mới trên Excel User Voice.

Tìm hiểu cách sử dụng các hàm lồng nhau trong một công thức

Tổng quan về các công thức trong Excel

Làm thế nào để tránh công thức bị lỗi

Phát hiện lỗi trong các công thức

Phím tắt trong Excel

Hàm lô-gic (tham khảo)

Các hàm Excel (theo thứ tự bảng chữ cái)

Các hàm Excel (theo thể loại)

Bạn đang đọc nội dung bài viết Hash Là Gì? Các Dạng Hàm Băm Và Mục Đích Sử Dụng trên website Photomarathonasia.com. Hy vọng một phần nào đó những thông tin mà chúng tôi đã cung cấp là rất hữu ích với bạn. Nếu nội dung bài viết hay, ý nghĩa bạn hãy chia sẻ với bạn bè của mình và luôn theo dõi, ủng hộ chúng tôi để cập nhật những thông tin mới nhất. Chúc bạn một ngày tốt lành!