Lổi file được bảo vệ bằng mật mã là gì
Mật mã học là gì? Vì sao Cryptography lại đóng vai trò quan trọng trong cuộc sống hiện đại? Cùng tìm hiểu về Cryptography trong bài viết này nhé! Show
Cryptography (mật mã học) đóng vai trò cực kỳ quan trọng trong việc chuyển giao thông tin giữa các thiết bị điện tử. Bất cứ lúc nào chúng ta truy cập vào mạng máy tính, cryptography đều có mặt. Hay nói cách khác 1. Cryptography (Mật mã học) là gì?Cryptography (Mật mã học) là việc thực hành và nghiên cứu cách thức trao đổi thông tin an toàn trong môi trường có sự hiện diện của hành vi đối nghịch. Nói cách khác, cryptography là việc thực hành và nghiên cứu các giao thức trao đổi thông tin an toàn mà không bị bên thứ ba can thiệp và tổn hại. Cryptography là một ngành có lịch sử rất lâu đời. Tuy nhiên, phần lớn trong lịch sử loài người, chúng ta chỉ che giấu thông tin một cách rất thô sơ và dễ đoán. Cryptography mới chỉ được phát triển mạnh trong vài chục năm trở lại đây.
2. Mật mã học - Một số thuật ngữ cơ bản trong CryptographyMột số thuật ngữ cơ bản của Cryptography bao gồm:
3. Mục tiêu của Mật mã học là gì?Về cơ bản, mục tiêu chính của cryptography bao gồm:
Chúng ta có nhiều loại mã hoá, mỗi loại có mục tiêu khác nhau nên không phải bất cứ loại mã hoá nào cũng có thể đảm bảo được toàn bộ cả bốn tính chất trên. Cho nên, chúng ta thường sử dụng kết hợp các loại mã hoá khác nhau nhằm đưa hệ thống đạt ngưỡng an toàn tốt nhất. Ví dụ, mã hoá bất đối xứng được sử dụng trong quá trình trao đổi secret key của mã hoá đối xứng. 3. Các loại encryption (mã hoá)3.1. Symmetric Encryption (mã hoá đối xứng)Cách hoạt động của symmetric cryptography (nguồn)Symmetric Encryption (mã hoá đối xứng), hay còn có tên khác là secret key encryption, là một loại kỹ thuật mã hoá sử dụng cùng một khoá cho cả quá trình mã hoá và giả mã. Do đó, người gửi và người nhận cần có một cách để chia sẻ và thống nhất khoá an toàn. Một số ứng dụng của mã hoá đối xứng bao gồm:
Ưu điểm lớn nhất của mã hoá đối xứng là tốc độ. Mã hoá đối xứng có tốc độ mã hoá và giải mã tốt hơn rất nhiều so với mã hoá bất đối xứng, nên nó thường được sử dụng để mã hoá file. Nhược điểm lớn nhất của mã hoá đối xứng là cách chia sẻ key. Hai bên cần thống nhất sử dụng chung một key duy nhất một cách an toàn, điều này có thể gây ra một số rủi ro và có một số khó khăn nhất định. Một số loại mã hoá đối xứng phổ biến hiện nay bao gồm:
3.2. Asymmetric Encryption (mã hoá bất đối xứng)Asymmetric Encryption, hay có tên khác là public-key encryption (mã hoá công khai) là một loại kỹ thuật mã hoá sử dụng 2 key cho cả quá trình mã hoá và giải mã. Hai key này đi thành cặp, bao gồm private key và public key. Private key sẽ được giữ bí mật, dùng để giải mã dữ liệu. Public key sẽ được chia sẻ với tất cả mọi người, dùng để dùng để mã hoá dữ liệu Tuỳ thuộc vào cách sử dụng key, ta có hai chức năng chính như sau:
Ý nghĩa chính của digital signature là chỉ có người sở hữu secret key mới có thể sign được signature trên văn bản công khai, do đó, danh tính của sender được đảm bảo. Digital signature (Chữ ký điện tử) với Asymmetric cryptography (khoá công khai)Ưu điểm lớn nhất của mã hoá bất đối xứng là cách thức trao đổi khoá rất an toàn. Hai bên chỉ cần gửi public key cho nhau để trao đổi mà không cần lo ngại về cách thức trao đổi khoá. Public key dù có bị các bên khác lấy được cũng không thể sử dụng. Nhược điểm chính của mã hoá bất đối xứng là tốc độ. Mã hoá bất đối xứng chạy chậm nên chỉ phù hợp mã hoá các thông tin có kích thước nhỏ và không phù hợp để sử dụng trên các văn bản lớn. Một số mã hoá bất đối xứng phổ biến hiện nay:
3.3. Cryptographic hash function (Hàm băm mật mã học)Hash function (hàm băm) là một hàm toán học cho phép chuyển một chuỗi ký tự có độ dài bất kỳ thành một chuỗi có độ dài cố định. Cryptographic hash function (hàm băm băm mật mã học) là một hàm băm nhưng có thể một số tính chất phù hợp hơn với mật mã học. Trong nhiều tài liệu, các tác giả cũng rút gọn crytographic hash function thành hash function. Bài viết này cũng sẽ rút gọn khái niệm trên thành hash function để tránh xung đột. Chuỗi sau khi biến đổi gọi là hashed value (giá trị băm). Vì tính chất đặc thù này, chúng ta sẽ chỉ có một số lượng hữu hạn các hashed value và có thể xảy ra hiện tượng hai input trùng một hashed value. Các đặc tính của hash function bao gồm :
Một số ứng dụng của hash function bao gồm:
Một số hash function phổ biến bao gồm:
Các hash function SHAKE, cSHAKE và TupleHash đều được phát triển bởi NIST (National Institute of Standards and Technology) và đều được mô tả trong FIPS 202: SHA-3 Standard: Permutation-Based Hash and Extendable-Output Functions. 4. Một số lưu ý khi ứng dụng Cryptography4.1. CryptographyCryptography gần như không có điểm yếu nào nếu sử dụng đúng cách. Nhưng trong quá trình sử dụng, chúng ta có thể mắc một số lỗi cơ bản sau:
4.2. Hash functionCũng giống như cryptography, hash function gần như không có điểm yếu nếu sử dụng đúng cách. Tuy nhiên, ta cần lưu ý một số trường hợp cụ thể sau:
5. Kết luận về Mật mã họcCác hàm mã hoá rất mạnh mẽ, dễ sử dụng và đáng tin cậy. Nếu sử dụng đúng cách, hệ thống của chúng ta sẽ có một lớp phòng thủ vững chắc, hoàn toàn có thể chống lại sự xâm phạm của kẻ tấn công. Tuy nhiên, nếu sử dụng không đúng chuẩn, sai cách sử dụng sẽ để lại lỗ hổng bảo mật cực lớn đến hệ thống, dữ liệu, thậm trí máy chủ của chúng ta đều có thể bị đánh cắp, chiếm đoạt hoặc phá hoại. Ngoài ra, chúng ta cần thường xuyên cập nhật các phần mềm, tránh trường hợp các giao thức, thậm trí các hàm mã hoá mà chúng ta sử dụng không còn hiệu quả. Trong chiến tranh thế giới thứ hai, cỗ máy Enigma được coi là bất khả chiến bại thời bấy giờ, đã bị cỗ máy Bombe do Alan Turing phát minh giải mã thành công, giúp một phần không nhỏ cho quân Đồng Minh chiến thắng Phát xít Đức. Kết cục của WW2 có lẽ sẽ rất khác nếu không có Alan Turing và chiếc máy BombeTheo khuyến nghị của 200lab, chúng ta nên sử dụng các hàm mã hoá theo các tiêu chuẩn khuyến nghị có sẵn, ví dụ như RFCs, để giảm thiểu tối đa nguy cơ và rủi ro bảo mật. Rất nhiều các tiêu chuẩn của RFCs, trong đó có JWT, HTTPs, bcrypt đã phổ biến và được tin dùng. Bài viết này có sử dụng các tài liệu tham khảo từ:
Mật mã học là cách chúng ta giữ cho thông tin an toàn khi truyền nó qua các kênh có thể bị bên thứ 3 can thiệp. Nó xoay quanh các khái niệm như bảo vệ thông tin, đảm bảo thông tin không bị thay đổi, xác định ai đang gửi hoặc nhận thông tin, và đảm bảo người gửi không thể phủ nhận việc họ đã gửi thông tin đó. Các ứng dụng cụ thể của mật mã học bao gồm việc bảo mật thông tin trong mua sắm trực tuyến, tiền điện tử, mật khẩu máy tính và truyền thông quân sự... Giờ thì bạn đã hiểu rõ khái niệm "mật mã học là gì" cũng như các lý thuyết cơ bản về Cryptography. Hãy thường xuyên theo dõi trang Blog của 200Lab để thu thập thêm các kiến thức hữu ích về công nghệ, dữ liệu và lập trình nhé. |