Cryptography, được dịch là “mật mã học”, là một ngành có nhiều thuật ngữ có thể làm cho nhiều người “ngơ ngác”: như “hash function”, “one-time pad” hay Rijndael… Bài viết này giải thích các khái niệm thường dùng trong ngành mật mã học, hy vọng có thể giúp ích cho những ai mong muốn tìm hiểu về lĩnh vực này.
Cryptography là gì?
Cryptography (hay crypto) – mật mã học – ngành khoa học nghiên cứu về việc giấu thông tin. Cụ thể hơn, mật mã học là ngành học nghiên cứu về những cách chuyển đổi thông tin từ dạng “có thể hiểu được” thành dạng “không thể hiểu được” và ngược lại. Cryptography giúp đảm bảo những tính chất sau cho thông tin:
- Tính bí mật (confidentiality): thông tin chỉ được tiết lộ cho những ai được phép.
- Tính toàn vẹn (integrity): thông tin không thể bị thay đổi mà không bị phát hiện.
- Tính xác thực (authentication): người gửi (hoặc người nhận) có thể chứng minh đúng họ.
- Tính không chối bỏ (non-repudiation): người gửi hoặc nhận sau này không thể chối bỏ việc đã gửi hoặc nhận thông tin.
Mật mã có rất nhiều ứng dụng trong thực tế như bảo vệ giao dịch tài chính (rút tiền ngân hàng, mua bán qua mạng), bảo vệ bí mật cá nhân… Nếu kẻ tấn công đã vượt qua tường lửa và các hệ thống bảo vệ khác thì mật mã chính là hàng phòng thủ cuối cùng cho dữ liệu của bạn.
Cần phân biệt khái niệm cryptography với khái niệm steganography (tạm dịch là giấu thông tin). Điểm khác nhau căn bản nhất giữa hai khái niệm này là: Cryptography là việc giấu nội dung của thông tin, trong khi steganography là việc giấu sự tồn tại của thông tin đó.
- Cryptosystem (viết tắt của cryptographic system): hệ thống mã hóa thông tin, có thể là phần mềm như PGP, Ax-Crypt, Truecrypt… giao thức như SSL, IPsec… hay đơn giản là một thuật toán như DES.
- Encrypt (encipher): mã hóa – quá trình biến đổi thông tin từ dạng ban đầu – có thể hiểu được thành dạng không thể hiểu được, với mục đích giữ bí mật thông tin đó.
- Decrypt (decipher): giải mã – quá trình ngược lại với mã hóa, khôi phục lại thông tin ban đầu từ thông tin đã được mã hóa.
- Plaintext (cleartext): dữ liệu gốc (chưa được mã hóa).
- Ciphertext: dữ liệu đã được mã hóa.
Lưu ý: Từ text (hay message) ở đây được dùng theo quy ước, được hiểu là tất cả những dữ liệu được mã hóa (hay giải mã) chứ không chỉ là văn bản chữ như nghĩa thông thường. Khi dịch ra tiếng Việt, từ “văn bản” và từ “thông điệp” cũng tuân theo quy ước tương tự
Cipher (hay cypher): thuật toán dùng để thực hiện quá trình mã hóa hay giải mã. Trong khuôn khổ bài viết này gọi tắt là thuật toán
- Key: chìa khóa – thông tin dùng cho quy trình mã hóa và giải mã.
- Code: cần phân biệt code trong mật mã học với code trong lập trình hay code trong Zip code… Trong cryptography, code (mã) có ý nghĩa gần như là cipher (thuật toán). Chúng chỉ khác nhau ở chỗ: code biến đổi thông tin ở tầng nghĩa (từ, cụm từ) còn cipher biến đổi thông tin ở tầng thấp hơn, ví dụ chữ cái (hoặc cụm chữ cái) đối với các thuật toán cổ điển hay từng bit (hoặc nhóm bit) đối với các thuật toán hiện đại.
- Cryptanalysis: nếu coi mật mã học là việc cất dữ liệu của bạn vào một cái hộp sau đó dùng chìa khóa khóa lại, thì cryptanalysis là ngành nghiên cứu những phương pháp mở hộp để xem dữ liệu khi không có chìa khóa.
Phân loại cryptography hiện nay
Có một số cách phân loại thuật toán mật mã, chúng ta có thể phân loại chúng theo số lượng khóa được sử dụng để mã hóa và giải mã.
Dưới đây là 3 loại thuật toán cryptography:
- Mật mã khóa bí mật – SKC
Với loại thuật toán này, nó sử dụng một khóa duy nhất cho cả mã hóa và giải mã. Nó còn được gọi là mã hóa đối xứng. Thuật toán này được sử dụng cho sự riêng tư và bảo mật.
Tìm hiểu thêm:
- Cryptojacking là gì và làm thế nào để phòng chống Cryptojacking
- Binance Launchpad là gì? Cách mua các IEO mới nhất
- Short Bitcoin là gì? Cách đánh Short Bitcoin hiệu quả nhất
Phân loại một số Cryptography hiện nay
- Mật mã khóa công khai – PKC
Thuật toán này dùng một khóa để mã hóa và một khóa khác để giải mã. Mật mã khóa công khai này còn được gọi là mã hóa bất đối xứng. Nó chủ yếu được sử dụng để xác thực, không thoái thác và trao đổi khóa.
- Hàm băm
Còn thuật toán này sử dụng một phép biến đổi toán học thành thông tin mã hóa không thể đảo ngược được, cung cấp dấu vân tay kỹ thuật số. Hàm băm chủ yếu được sử dụng cho tin nhắn.
Một số thuật ngữ sử dụng trong Cryptography
Chúng tôi sẽ tổng hợp dần dần theo từng bài viết về một số thuật ngữ cơ bản được sử dụng trong Cryptography như sau :
- Sender/Receiver : Người gửi và nhận dữ liệu – từ đây và các bài viết sau, mình sử dụng Alice và Bob là người gửi và nhận dữ liệu.
- Attacker / Hacker : Người tấn công hoặc vận chuyển thông tin trên đường truyền – Eve.
- Plaintext: Thông tin trước khi được mã hóa – dữ liệu ban đầu ở dạng có thể đọc-hiểu được.
- Ciphertext: Thông tin đã được mã hóa – dữ liệu ở dạng đọc-nhưng-không-hiểu được.
- Encryption: Quá trình mã hóa thông tin (Plaintext -> Ciphertext).
- Decryption: Quá trình giải mã lấy lại thông tin ban đầu (Ciphertext -> Plaintext).
Khi nói về mật mã, người ta thường nói về chúng trong ứng dụng máy tính. Làm cách nào để các thông tin cá nhân, thông tin tài chính được trao đổi một cách bảo mật qua web (trong các giao dịch ngân hàng online); Làm cách nào để dữ liệu có thể được lưu trữ một cách an toàn? Nhắc tới mật mã, và việc bảo mật dữ liệu, ta sẽ thường phải quan tấm tới nhiều vấn đề. Chúng bao gồm những khái niệm về confidentiality (bảo mật), integrity (tính toàn vẹn), availability, and non-repudiation.
Confidentiality: Dữ liệu của ta không thể bị truy cập / đọc bảo người dùng không được cấp phép.
Integrity: Dữ liệu của ta phải 100% nguyên vẹn, đảm bảo là không bị chỉnh sửa, dù là bởi nguyên nhân nào như bị tấn công, mất mát dữ liệu …
Availability: Data có thể truy cập bất cứ khi nào cần thiết.
Non-repudiation: Trong một giao dịch, khi một bên A thực hiện gửi data cho bên B, thì người đó sẽ không có khả năng phủ nhận việc đó sau này. Nói cách khác, phải có một cách để đảm bảo rằng không ai khác ngoài A có thể là tác giả và người gửi thông điệp.
Cryptography không giúp chúng ta nhiều về tính availability, mặt khác, các cơ chế mã hóa điện tử hiện nay thường được sử dụng rộng rãi và giúp ta thực hiện việc đảm bảo 3 mục tiêu còn lại. Khi nói về mã hóa điện tử, đó sẽ thường là việc ám chỉ một trong những kĩ thuật phổ biến như:
- Symmetric encryption
- Asymmetric encryption
- Hash functions
- Digital signatures
Tại sao phải sử dụng Cryptography?
Trong thực tế, Cryptography được sử dụng rất rộng rãi – nhất là trong lĩnh vực công nghệ thông tin. Mục đích của việc sử dụng mã hóa – giải mã là để đảm bảo thông tin được truyền đi không bị đọc-hiểu một cách dễ dàng.
Khi chúng ta sử dụng mạng internet hàng ngày; các thông tin cá nhân, thông tin trao đổi với người khác, nội dung chat, tài khoản email, facebook v.v. là các dữ liệu được truyền đi trên mạng và không có gì đảm bảo những thông tin này là an toàn không bị đọc trộm. Do đó mã hóa được áp dụng như một biện pháp bắt buộc nhằm giúp chúng ta tự bảo vệ chính mình an toàn trên internet.
Trên đây là toàn bộ tổng quan về cryptography là gì cho người mới bắt đầu quan tâm về lĩnh vực crypto. Hy vọng, bài viết dưới đây có thể giúp bạn nắm rõ được về định nghĩa cũng như những thuật ngữ sử dụng trong Cryptography. Nếu thấy hay, hãy chia sẻ ngay bài viết trên tới bạn bè hay những ai đang tìm hiểu về cryptography để mọi người có thể nắm rõ hơn nhé
Xem thêm:
- Top website mua bán Bitcoin và Allcoin tốt nhất
- Top sàn giao dịch Bitcoin hàng đầu Việt Nam và Thế Giới
- Sàn Binance DEX là gì? Hướng dẫn sử dụng A-Z