Đề Xuất 11/2022 # Hàm Băm Mật Mã (Cryptographic Hash Function) / 2023 # Top 19 Like | Photomarathonasia.com

Đề Xuất 11/2022 # Hàm Băm Mật Mã (Cryptographic Hash Function) / 2023 # Top 19 Like

Cập nhật nội dung chi tiết về Hàm Băm Mật Mã (Cryptographic Hash Function) / 2023 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.

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.

Tìm Hiểu Sự Khác Nhau Giữa Mã Hóa, Hàm Băm Và Salting Trong Bảo Mật / 2023

Mã hóa (encryption), hàm băm (hashing) có các chức năng khác nhau trong bảo mật hệ thống bất chấp sự tương đồng của chúng.

Bạn có biết sự khác biệt giữa mã hóa và hàm băm không? Bạn có biết salting là gì không? Bạn có muốn nó hay không? Đó là một câu hỏi tu từ – tôi sẽ nói với bạn.

Mã hóa là gì?

Mã hóa (Encryption) là hành động xáo trộn thông tin theo cách mà chỉ người nào đó có khóa tương ứng mới có thể xắp xếp lại và đọc nó. Mã hóa là một hàm hai chiều. Khi bạn mã hóa một cái gì đó, bạn đang làm như vậy với ý định giải mã nó sau này.

Đây là điểm khác biệt chính giữa mã hóa và băm.

Để mã hóa dữ liệu, bạn sử dụng một thuật toán mã hóa, đó là một thuật toán – một loạt các bước được xác định rõ ràng có thể được theo dõi theo cách thủ tục – để mã hóa và giải mã thông tin. Nhưng như bạn sẽ thấy, một thuật toán thực sự không có gì hơn là một bộ quy tắc – và chúng thực sự có thể khá đơn giản.

Người Ai Cập cổ đại sử dụng một dạng mã hóa đơn giản. Như Caesar, mật mã của nó là một trong những ví dụ quan trọng nhất về mã hóa trong lịch sử. Caesar sử dụng mật mã thay đổi nguyên thủy đã thay đổi chữ cái bằng cách đếm về phía trước một số vị trí được đặt trong bảng chữ cái. Dù vậy, nó rất hữu ích, khiến mọi thông tin bị chặn bởi đối thủ của Caesar thực sự vô dụng.

Vài nghìn năm sau, một thuật toán mật mã thay thế – một loại mật mã thay thế hoán đổi các ký hiệu cho các từ thông dụng nhằm tránh một kỹ thuật giải mã được gọi là phân tích tần số.

Chúng ta hãy xem mã hóa bằng cách sử dụng một thuật toán mã hóa đơn giản. Trong trường hợp này, tôi sẽ mã hóa câu, “Don’t be a jerk” bằng cách sử dụng một thuật toán thay đổi chữ cái đơn âm mà chỉ thay thế từng chữ cái bằng một ký tự liên tiếp ba vị trí phía trước nó.

Plaintext: Don't be a jerk

Trở thành:

Ciphertext: Grqwehdmhun

Tôi đã bỏ qua dấu chấm câu vì lợi ích của sự đơn giản nhưng bản mã thường được truyền mà không có dấu cách hoặc dấu chấm câu nào để tránh lỗi và ẩn ranh giới từ. Vì vậy, bằng cách sử dụng khóa tương ứng, người khác có thể giải mã thông điệp này và đọc nó. Rõ ràng, mật mã chúng tôi sử dụng trong mã hóa kỹ thuật số phức tạp hơn nhiều, nhưng bạn chắc chắn cũng hiểu cách thức hoạt động.

Hãy bắt đầu bằng cách đi qua một số loại mật mã khác nhau, sau đó chúng ta sẽ đi vào các thuật toán hiện đại được sử dụng trong mã hóa ngày nay.

Transposition Ciphers – Thuật toán này sử dụng một bộ quy tắc, đóng vai trò là khóa, để thay đổi thứ tự của văn bản thành các hoán vị khác nhau mà sau đó có thể được mã hóa. Ví dụ phổ biến là Rail Fence và Route ciphers.

Polyalphabetic Ciphers – Đây là một loại mật mã thay thế sử dụng nhiều bảng chữ cái để làm phức tạp hơn nữa giải mã trái phép của bản mã.

Nomenclator ciphers – Một loại mật mã thay thế thay thế các từ thông thường bằng các ký hiệu để thử và loại bỏ một dạng mã hóa cụ thể.

Cryptanalysis là nghiên cứu về các hệ thống mật mã với ý định tìm ra điểm yếu trong chúng. Một trong những dạng mã hóa phổ biến nhất, có niên đại từ một nhà toán học Ả Rập tên là Al-Kindi, sống khoảng 800 AD, được gọi là phân tích tần số. Nó kiểm tra ciphertext cho các biểu tượng lặp đi lặp lại hoặc chuỗi ký tự và tham chiếu chéo chúng với các từ sẽ xuất hiện với tần số cao trong thông điệp đang được giải mã. Vì vậy, ví dụ, nếu bạn đang viết một tin nhắn cho Napoléon, nó chỉ hợp lý mà bạn sẽ sử dụng tên của mình một vài lần. Bằng cách kết hợp phiên bản mã hóa với tên của mình, nó giúp bạn bắt đầu ánh xạ khóa và giải mã thông báo.

Polyalphabetic ciphers và nomenclator ciphers phù hợp hơn để chịu được phân tích tần số so với các đối tác cổ điển của chúng. Mật mã đa ngôn ngữ tiếp tục được sử dụng cho đến Thế chiến II khi máy Enigma bị nứt.

Mã hóa hiện đại

Trước khi chúng ta có thể nói về mật mã mã hóa hiện đại, chúng ta cần nói một chút về khóa công khai và riêng tư và cách cuộc cách mạng kỹ thuật số đã thay đổi mã hóa. Tất cả các ví dụ mà chúng tôi vừa xem là những gì chúng tôi gọi là Mật mã khóa riêng. Mã hóa hoàn toàn phụ thuộc vào khóa riêng, vốn phải được trao đổi vật lý để giải mã. Nếu bạn biết bất cứ điều gì về Khóa riêng tư, đó là thực tế rằng chúng là bất khả xâm phạm. Việc khóa riêng của bạn bị xâm phạm có thể là thảm họa . Vì vậy, phải mang theo vật lý và vượt qua nó chỉ làm cho nó nhiều hơn một nguy cơ. Người ta đã chết trên các thỏa hiệp quan trọng trong suốt lịch sử.

Ngày nay, nhờ công nghệ máy tính và internet, giờ đây chúng ta có thể thực hành mật mã khóa công khai. Với mật mã khóa công khai, một khóa công khai được sử dụng để mã hóa và khóa riêng tư khác được sử dụng để giải mã. Bạn thấy điều này trong quá trình handshake SSL, nơi họ đã giải quyết các vấn đề rủi ro trong lịch sử với trao đổi khóa vật lý bằng cách sử dụng khóa công khai có sẵn để mã hóa khóa phiên đối xứng và gửi nó trở lại máy chủ để giải mã bằng khóa riêng của nó.

Mã hóa bất đối xứng – Đây là ví dụ về Khóa công khai mà chúng tôi vừa đưa ra. Một khóa mã hóa, khóa còn lại giải mã. Việc mã hóa chỉ đi một chiều. Đây là khái niệm hình thành nền tảng cho PKI (cơ sở hạ tầng khóa công khai), là mô hình tin cậy trải qua SSL / TLS.

Giữa hai, mã hóa bất đối xứng có xu hướng mạnh hơn do tính chất một chiều của nó.

Khi bạn đang mua chứng chỉ SSL và xem “2048-bit” được ném xung quanh, đó là việc tham chiếu đến độ dài khóa riêng tư. Khi bạn nhìn thấy “256-bit” được đề cập, đó là đề cập đến kích thước của các khóa phiên đối xứng được sử dụng trong giao tiếp thực tế. Điều đó không có nghĩa là mã hóa đối xứng kém an toàn hơn. Nó vẫn sẽ mất một siêu máy tính hàng ngàn năm để giải mã mã hóa 256-bit .

Lý do mã hóa 256 bit đối xứng được sử dụng để giao tiếp là nó nhanh hơn, có nghĩa là hiệu năng tốt hơn.

Thuật toán mã hóa hiện đại

AES – AES là viết tắt của Advanced Encryption Standard, ban đầu được gọi là Rijndael, nó là đặc tả cho mã hóa được công bố bởi Viện Tiêu chuẩn và Công nghệ Quốc gia (NIST) vào năm 2001. Nó đặt plaintext thông qua một số “vòng chuyển đổi” được xác định bởi kích thước khóa, mỗi vòng bao gồm một số bước xử lý. Chúng ta đừng đi quá xa vào cỏ dại trên cái này. AES là một thuật toán phổ biến với SSL / TLS. Nó thay thế tiêu chuẩn mã hóa ngày (DES) đã được tạo ra vào năm 1977.

RSA – RSA là viết tắt của Rivest-Shamir-Adlemen, sau những người sáng tạo, nó là một thuật toán mã hóa khóa công khai (không đối xứng) đã có từ năm 1978 và vẫn được sử dụng rộng rãi hiện nay. Nó sử dụng sự thừa số của các số nguyên tố để mã hóa bản rõ. [Sự thật thú vị: Không may tên Clifford Cocks, một nhà toán học làm việc cho GCHQ, một cơ quan tình báo Anh, đã phát minh ra một hệ thống tương đương năm năm trước đó, vào năm 1973, nhưng nó không được giải mã cho đến năm 1997.]

ECC – ECC là viết tắt của Elliptic Curve Cryptography, dựa trên cấu trúc đại số của các đường cong elip trên các trường hữu hạn. Mặc dù ECC đã có từ năm 1985, nhưng nó chỉ được sử dụng kể từ năm 2004. ECC có những lợi thế riêng biệt so với RSA và có khả năng sẽ đóng một vai trò nổi bật hơn trong tương lai của SSL / TLS.

PGP – PGP là viết tắt của Pretty Good Privacy, nó được tạo ra vào năm 1991 bởi Phil Zimmerman. Nó thực sự là một bộ sưu tập các thuật toán hơn là một thuật toán duy nhất, tất cả cho băm, nén dữ liệu và cả mật mã khóa công khai và riêng tư. Mỗi bước sử dụng một thuật toán khác nhau. PGP đã bị chỉ trích vì khả năng sử dụng kém, thiếu tính phổ biến và độ dài của khóa.

Khi nào mã hóa nên được sử dụng?

Điều quan trọng là mã hóa có thể đảo ngược. Nhưng Hashing thì không.

Hashing là gì?

Hashing là việc sử dụng thuật toán để ánh xạ dữ liệu của bất kỳ kích thước nào đến độ dài cố định. Đây được gọi là giá trị băm (hoặc đôi khi mã băm hoặc tổng băm). Trong khi mã hóa là một hàm hai chiều, băm là một hàm một chiều. Mặc dù về mặt kỹ thuật có thể đảo ngược thứ gì đó băm, sức mạnh tính toán yêu cầu làm cho nó không khả thi. Hashing là một chiều.

Bây giờ, trong khi mã hóa có nghĩa là để bảo vệ dữ liệu trong quá cảnh, băm có nghĩa là để xác minh rằng một tập tin hoặc một phần dữ liệu đã không bị thay đổi – rằng nó là xác thực.

Dù sao, đây là một ví dụ về hash, giả sử bạn muốn ký vào một phần mềm và làm cho nó có sẵn để tải xuống trên trang web của bạn. Để làm điều này, bạn sẽ tạo ra một hash của kịch bản bạn đang ký, sau đó sau khi thêm chữ ký số của bạn (đây là quá trình hash). Sau đó, toàn bộ sẽ được mã hóa để nó có thể được tải xuống.

Khi khách hàng tải xuống phần mềm, trình duyệt của họ sẽ giải mã tệp, sau đó kiểm tra hai giá trị băm duy nhất. Sau đó trình duyệt sẽ chạy cùng hàm băm, sử dụng cùng một thuật toán và băm cả tệp và chữ ký một lần nữa. Nếu trình duyệt tạo ra giá trị băm giống nhau thì nó biết rằng cả chữ ký và tệp đều là xác thực – chúng không bị thay đổi.

Nếu không, trình duyệt sẽ đưa ra cảnh báo.

Hãy nhớ rằng, không có hai tệp nào có thể tạo cùng giá trị băm, do đó, bất kỳ thay đổi nào – thậm chí là tinh chỉnh nhỏ nhất – sẽ tạo ra một giá trị khác.

Cũng giống như chúng tôi đã làm với mã hóa, chúng ta hãy xem một số thuật toán băm phổ biến nhất được sử dụng ngày nay.

MD4 – MD4 là một thuật toán băm yếu đuối, được tạo ra vào năm 1990, ngay cả người tạo ra nó, Ronald Rivest, thừa nhận nó có vấn đề về bảo mật. Thuật toán băm 128 bit có tác động mặc dù, nó có thể được cảm nhận trong các thuật toán gần đây hơn như WMD5, WRIPEMD và họ WHSA.

MD5 – MD5 là một thuật toán băm khác do Ray Rivest thực hiện, được biết là vẫn có khá nhiều lỗ hổng. Nó được tạo ra vào năm 1992 như là người kế thừa MD4. Hiện tại MD6 đang hoạt động, nhưng đến năm 2009 Rivest đã loại bỏ nó khỏi sự xem xét của NIST cho SHA-3.

RIPEMD – Một họ thuật toán băm mật mã với độ dài 128, 160, 256 và 320 bit. Nó được phát triển theo khuôn khổ EU’s Project Ripe bởi Hans Dobbertin và một nhóm các học giả vào năm 1996. Các biến thể 256 và 320 bit của nó không thực sự thêm bất kỳ bảo mật bổ sung nào, chúng chỉ làm giảm khả năng va chạm. Năm 2004, một vụ va chạm đã được báo cáo cho RIPEMD-128, có nghĩa là RIPEMD-160 là thuật toán duy nhất từ ​​gia đình này.

TIGER – Một thuật toán khá mới bắt đầu thu hút một số lực kéo với các mạng chia sẻ tập tin và các trang torrent. Hiện tại không có cuộc tấn công nào được biết đến có hiệu quả chống lại biến thể 24 vòng đầy đủ của nó.

Salting là gì?

Dù sao, khi salting, giá trị bổ sung được gọi là “salt”.

Ý tưởng là bằng cách thêm một salt vào cuối của một mật khẩu và sau đó băm nó, bạn đã cơ bản phức tạp quá trình bẻ mật khẩu.

Hãy xem một ví dụ nhanh.

Nói mật khẩu tôi muốn salt trông như thế này:

7X57CKG72JVNSSS9

Trước khi băm, bạn thêm SALT vào cuối dữ liệu. Vì vậy, nó sẽ trông như thế này:

7X57CKG72JVNSSS9SALT

Giá trị băm khác với giá trị chỉ dành cho mật khẩu không đồng bộ. Hãy nhớ rằng, ngay cả những thay đổi nhỏ nhất cho dữ liệu được băm sẽ dẫn đến một giá trị băm duy nhất khác nhau. Bằng cách đưa salt vào mật khẩu của bạn, bạn chủ yếu ẩn giá trị băm thực của nó bằng cách thêm một bit dữ liệu bổ sung và thay đổi nó.

Bây giờ, nếu kẻ tấn công bạo lực biết salt của bạn, nó cơ bản vô giá trị. Họ chỉ có thể thêm nó vào cuối mỗi biến thể mật khẩu mà họ đang cố gắng và cuối cùng tìm thấy nó.

Tổng kết

Mã hóa là một hàm hai chiều, trong đó thông tin được tranh giành theo cách sao cho nó có thể bị xáo trộn sau này.

Hashing là một hàm một chiều trong đó dữ liệu được ánh xạ tới một giá trị độ dài cố định. Hashing chủ yếu được sử dụng để xác thực.

Salting là một bước bổ sung trong quá trình băm, thường được kết hợp với mật khẩu băm, thêm một giá trị bổ sung vào cuối mật khẩu thay đổi giá trị băm được tạo ra.

(Theo thesslstore)

Khái Niệm Và Ứng Dụng Của Hash Function / 2023

    Hash function hay còn gọi là “hàm băm” là hàm nhận một input đầu vào, từ input đó tạo ra một giá trị output (hay còn gọi là “hash value” – “giá trị băm”) tương ứng. Giá trị đầu vào có thể có độ dài tuỳ ý nhưng giá trị băm thì luôn có độ dài cố định. Hash function là hàm mã hoá một chiều.

Một hash function tốt phải thỏa mãn các điều kiện sau

Tính toán nhanh

Ít xảy ra đụng độ, tức là khả năng để các gía trị input khác nhau cho ra cùng một giá trị băm là rất thấp

Không thể đảo ngược: Đảm bảo không có phương pháp khả thi để tính toán được dữ liệu vào nào đó để cho ra giá trị băm mong muốn

Hash function được ứng dụng chính vào một số công việc sau

Xây dựng cấu trúc dữ liệu để tối ưu việc tìm kiếm: Hashtable

Lưu và kiểm tra password

Kiểm tra tính toán vẹn của dữ liệu

Sinh mã OTP

Một số hash function phổ biến

MD5 (MD là viết tắt của Message Digest) Là hash function 128-bit (dùng 128 bit để lưu giá trị băm), giá trị băm được biểu diễn bằng chuỗi 32 ký tự mã 16 (32 hexadecimal characters). MD5 được sử dụng rộng rãi để kiểm tra tính toán vẹn khi truyền file. Ví dụ, file server cung cấp giá trị băm tính toán trước bằng MD5 cho mỗi file (gọi là mã checksum), người dùng sau khi download file xuống có thể dùng tool tính lại mã checksum của file đó và so sánh với mã checksum mà server cung cấp. Nếu 2 mã là giống nhau thì có nghĩa là file download xuống giống với file gốc, không bị chỉnh sửa, giả mạo hay attach virus. Tuy nhiên vào năm 2004, “đụng độ” trong thuật toán MD5 đã được phát hiện ra. Một nghiên cứu cho thấy chỉ mất vài tiếng đồng hồ sử dụng một mạng lưới gồm nhiều máy tính có thể cho ra được giá trị input để cho ra được gía trị băm mong muốn. Chính vì vậy MD5 bây giờ không còn được khuyến khích sử dụng đối với những hệ thống hoặc chức năng yêu cầu security cao.

Secure Hash Function (SHA): Họ SHA bao gồm 4 thuật toán hash khác nhau là SHA-0, SHA-1, SHA-2, and SHA-3.

SHA-0: Hash function 160-bit, được công bố bởi NIST (National Institute of Standards and Technology) vào năm 1993. Do có một vài nhược điểm nên nó không được dùng phổ biến

SHA-1: Hash function 160-bit, ra đời năm 1995, khắc phục một số nhược điểm của SHA-0. SHA-1 được sử dụng để xây dựng giao thức SSL (Secure Socket Layer). Vào năm 2005, một phương pháp đã được tìm thấy để phát hiện ra các va chạm của SHA-1 trong khoảng thời gian khả thi khiến khả năng sử dụng lâu dài của SHA-1 bị nghi ngờ.

SHA-2: Công bố lần đầu năm 2001, bao gồm một số biến thể là SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224 và SHA-512/256. Cho đến nay thì chưa thấy có báo cáo nào về phương pháp tạo ra đụng độ trong SHA-2. Mặc dù SHA-2 là họ hash function mạnh nhưng thiết kế của nó vẫn dựa trên SHA-1 nên NIST vẫn muốn có thiết kế của hash function mới cạnh tranh với SHA-2

SHA-3: Năm 2012, NIST chọn thuật toán Keccak là để xây dựng SHA-3. Thuật toán Keccak có performance (hiệu năng) và khả năng chống “đụng độ” rất tốt.

Một số hash function khác: CRC232, RIPEMD, Whirlpool

Có thể sử dụng online tool ở link sau để tính Hash value

Ví dụ một số giá trị băm của MD5 và SHA-256

MD5(“hello”) = 5D41402ABC4B2A76B9719D911017C592

MD5(“goodbye”) = 69FAAB6268350295550DE7D587BC323D

SHA-256(“hello”) = 2CF24DBA5FB0A30E26E83B2AC5B9E29E1B161E5C1FA7425E73043362938B9824

SHA-256(“goodbye”) = 82E35A63CEBA37E9646434C5DD412EA577147F1E4A41CCDE1614253187E3DBF9

Tham khảo

— Phạm Minh Tuấn (Shun) —

Cách Đặt Mã Khóa Bảo Mật Zalo Pc / 2023

Nhằm tăng cường bảo mật Zalo, tính năng đặt mã khóa đã có trên bản Zalo Android, Zalo iPhone và giờ đây là Zalo PC. Khi đó, tài khoản Zalo và các cuộc trò chuyện sẽ được tăng cường thêm lớp bảo mật.

Thường khi đăng nhập Zalo máy tính, bạn sẽ để chế độ ghi nhớ đăng nhập để lần sau không phải thêm thao tác nhập mật khẩu Zalo nữa. Tuy nhiên, điều này cũng tạo nguy cơ lộ thông tin, các cuộc trò chuyện trên Zalo. Nếu vậy bạn có thể đặt thêm mã khóa bảo mật Zalo.

Hướng dẫn đặt mã khóa bảo mật Zalo máy tính

Bước 1:

Trước hết để sử dụng được tính năng này, người dùng cần phải cập nhật Zalo máy tính lên phiên bản mới nhất v.3.4.0.

Bước 2:

Sau khi nâng cấp, tại giao diện của Zalo nhìn lên thanh công cụ trên cùng bên phải màn hình, bạn sẽ thấy biểu tượng ổ khóa để thiết lập mã bảo mật cho Zalo.

Bước 3:

Nhấn vào biểu tượng ổ khóa và xuất hiện hộp thoại Đặt mã khóa Zalo. Tại đây chúng ta hãy nhập mã khóa để bảo mật tài khoản Zalo rồi nhập lại lần nữa để xác nhận. Cuối cùng nhấn Lưu.

Ngay lập tức giao diện Zalo sẽ được khóa lại và xuất hiện màn hình nhập mã bảo mật để truy cập vào Zalo.

Bạn cần nhập đúng mã bảo mật và nhấn nút Mở để có thể truy cập và sử dụng Zalo.

Bước 4:

Nếu muốn bỏ thiết lập mã khóa cho tài khoản Zalo, tại giao diện nhấn chọn vào biểu tượng bánh răng cưa rồi chọn Tùy chỉnh.

Trong giao diện thiết lập Chung tìm tới tùy chọn Thiết lập mã khóa ứng dụng rồi gạt thanh ngang về bên trái để tắt tính năng này.

Ngay lập tức xuất hiện hộp thoại Xóa mã khóa Zalo và người dùng hãy nhập chính xác mã khóa đã đặt cho tài khoản rồi nhấn Xóa mã khóa bên dưới là được.

Như vậy, với tính năng đặt mã khóa Zalo, người dùng không cần nhấn đăng xuất tài khoản như trước để bảo mật thông tin, mà chỉ cần đặt mã bảo mật Zalo là được. Khi đặt mã bảo mật và đóng cửa sổ Zalo, lớp bảo mật này sẽ được xây dựng và để sử dụng thì cần nhập đúng mã bảo mật đã thiết lập.

Video hướng dẫn đặt mã khóa trên Zalo

Bạn đang đọc nội dung bài viết Hàm Băm Mật Mã (Cryptographic Hash Function) / 2023 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!