Các hệ thống mật mã hiện được chia thành hai lĩnh vực nghiên cứu chính: mật mã đối xứng và bất đối xứng. Trong khi mã hóa đối xứng thường được sử dụng như một từ đồng nghĩa với mật mã đối xứng, thì mật mã bất đối xứng bao gồm hai trường hợp sử dụng chính: mã hóa bất đối xứng và chữ ký số.

Vì vậy, chúng ta có thể đại diện cho các nhóm này như sau:

  • Mật mã khóa đối xứng

    • Mã hóa đối xứng

  • Mật mã bất đối xứng (hoặc mật mã khóa công khai)

    • Mã hóa bất đối xứng (hoặc mã hóa khóa công khai)

    • Chữ ký số (có thể bao gồm hoặc không bao gồm mã hóa)

Bài viết này sẽ tập trung vào các thuật toán mã hóa đối xứng và bất đối xứng.


Mã hóa đối xứng và bất đối xứng

Các thuật toán mã hóa thường được chia thành hai loại, được gọi là mã hóa đối xứng và bất đối xứng. Sự khác biệt cơ bản giữa hai phương pháp mã hóa này dựa trên thực tế là thuật toán mã hóa đối xứng sử dụng một khóa duy nhất, trong khi mã hóa bất đối xứng sử dụng hai khóa khác nhau nhưng có liên quan với nhau. Sự khác biệt như vậy, mặc dù có vẻ đơn giản, nhưng lại giải thích sự khác biệt về chức năng giữa hai dạng kỹ thuật mã hóa và cách chúng được sử dụng.


Hiểu các khóa mã hóa

Trong mật mã, thuật toán mã hóa tạo ra các khóa dưới dạng một chuỗi bit được sử dụng để mã hóa và giải mã một phần thông tin. Cách thức sử dụng các khóa đó tạo nên sự khác biệt giữa mã hóa đối xứng và bất đối xứng.

Trong khi các thuật toán mã hóa đối xứng sử dụng cùng một khóa để thực hiện cả chức năng mã hóa và giải mã, thì ngược lại, thuật toán mã hóa bất đối xứng sử dụng một khóa để mã hóa dữ liệu và một khóa khác để giải mã dữ liệu. Trong các hệ thống bất đối xứng, khóa được sử dụng để mã hóa được gọi là khóa chung và có thể được chia sẻ tự do với người khác. Mặt khác, khóa dùng để giải mã là khóa riêng và cần được giữ bí mật.

Ví dụ: nếu Alice gửi cho Bob một tin nhắn được bảo vệ bằng mã hóa đối xứng, cô ấy cần chia sẻ cùng khóa mà cô ấy đã sử dụng để mã hóa với Bob để anh ấy có thể giải mã tin nhắn. Điều này có nghĩa là nếu kẻ tấn công chặn được khóa, chúng có thể truy cập thông tin được mã hóa.

Tuy nhiên, nếu Alice sử dụng sơ đồ bất đối xứng thay vào đó, cô ấy sẽ mã hóa tin nhắn bằng khóa chung của Bob, do đó Bob sẽ có thể giải mã nó bằng khóa riêng của mình. Do đó, mã hóa bất đối xứng mang lại mức độ bảo mật cao hơn vì ngay cả khi ai đó chặn tin nhắn của họ và tìm thấy khóa chung của Bob, họ cũng không thể giải mã tin nhắn.


Độ dài khóa

Một điểm khác biệt về chức năng khác giữa mã hóa đối xứng và bất đối xứng có liên quan đến độ dài của khóa, được đo bằng bit và liên quan trực tiếp đến mức độ bảo mật được cung cấp bởi mỗi thuật toán mã hóa.

Trong sơ đồ đối xứng, các khóa được chọn ngẫu nhiên và độ dài của chúng thường được đặt ở mức 128 hoặc 256 bit, tùy thuộc vào mức độ bảo mật được yêu cầu. Tuy nhiên, trong mã hóa bất đối xứng, phải có mối quan hệ toán học giữa khóa chung và khóa riêng, nghĩa là có một mô hình toán học giữa hai khóa. Do thực tế là mẫu này có thể bị kẻ tấn công khai thác để bẻ khóa mã hóa, nên các khóa bất đối xứng cần phải dài hơn nhiều để mang lại mức độ bảo mật tương đương. Sự khác biệt về độ dài khóa rõ ràng đến mức khóa đối xứng 128 bit và khóa bất đối xứng 2.048 bit cung cấp mức độ bảo mật gần như tương tự nhau.

Ưu điểm và nhược điểm

Cả hai loại mã hóa đều có ưu điểm và nhược điểm so với nhau. Các thuật toán mã hóa đối xứng nhanh hơn nhiều và yêu cầu ít sức mạnh tính toán hơn, nhưng điểm yếu chính của chúng là phân phối khóa. Vì cùng một khóa được sử dụng để mã hóa và giải mã thông tin nên khóa đó phải được phân phối cho bất kỳ ai cần truy cập vào dữ liệu, điều này đương nhiên sẽ gây ra các rủi ro bảo mật (như minh họa trước đó).

Ngược lại, mã hóa bất đối xứng giải quyết vấn đề phân phối khóa bằng cách sử dụng khóa chung để mã hóa và khóa riêng để giải mã. Tuy nhiên, sự cân bằng là các hệ thống mã hóa bất đối xứng rất chậm so với các hệ thống đối xứng và đòi hỏi sức mạnh tính toán cao hơn nhiều do độ dài khóa dài hơn rất nhiều của chúng.


Trường hợp sử dụng

Mã hóa đối xứng

Do tốc độ nhanh hơn nên mã hóa đối xứng được sử dụng rộng rãi để bảo vệ dữ liệu trong nhiều hệ thống máy tính hiện đại. Ví dụ: Tiêu chuẩn mã hóa nâng cao (AES), được chính phủ Hoa Kỳ sử dụng để mã hóa thông tin mật và nhạy cảm. AES thay thế Tiêu chuẩn mã hóa dữ liệu (DES) trước đây, được phát triển vào những năm 1970 như một tiêu chuẩn cho mã hóa đối xứng.


Mã hóa bất đối xứng

Mã hóa bất đối xứng có thể được áp dụng cho các hệ thống trong đó nhiều người dùng có thể cần mã hóa và giải mã một tin nhắn hoặc tập hợp dữ liệu, đặc biệt khi tốc độ và sức mạnh tính toán không phải là mối quan tâm chính. Một ví dụ về hệ thống như vậy là email được mã hóa, trong đó khóa chung có thể được sử dụng để mã hóa tin nhắn và khóa riêng có thể được sử dụng để giải mã nó.


Hệ thống lai

Trong nhiều ứng dụng, mã hóa đối xứng và bất đối xứng được sử dụng cùng nhau. Các ví dụ điển hình của các hệ thống kết hợp như vậy là các giao thức mã hóa Lớp cổng bảo mật (SSL) và Bảo mật lớp vận chuyển (TLS), được thiết kế để cung cấp liên lạc an toàn trong Internet. Các giao thức SSL hiện được coi là không an toàn và nên ngừng sử dụng nó. Ngược lại, các giao thức TLS được coi là an toàn và được sử dụng rộng rãi bởi tất cả các trình duyệt web chính.


Tiền điện tử có sử dụng mã hóa không?

Kỹ thuật mã hóa được sử dụng trong nhiều ví tiền điện tử như một cách để cung cấp mức độ bảo mật cao hơn cho người dùng cuối. Thuật toán mã hóa được áp dụng, chẳng hạn như khi người dùng thiết lập mật khẩu cho ví tiền điện tử của họ, điều đó có nghĩa là tệp dùng để truy cập phần mềm đã được mã hóa.

Tuy nhiên, do Bitcoin và các loại tiền điện tử khác sử dụng cặp khóa công khai, nên có một quan niệm sai lầm phổ biến rằng hệ thống blockchain sử dụng thuật toán mã hóa bất đối xứng. Tuy nhiên, như đã lưu ý trước đây, mã hóa bất đối xứng và chữ ký số là hai trường hợp sử dụng chính của mật mã bất đối xứng (mật mã khóa công khai).

Do đó, không phải tất cả các hệ thống chữ ký số đều sử dụng các kỹ thuật mã hóa, ngay cả khi chúng trình bày khóa chung và khóa riêng. Trên thực tế, một tin nhắn có thể được ký điện tử mà không cần mã hóa. RSA là một ví dụ về thuật toán có thể được sử dụng để ký các tin nhắn được mã hóa, nhưng thuật toán chữ ký số được Bitcoin (có tên là ECDSA) sử dụng hoàn toàn không sử dụng mã hóa.


Bớt tư tưởng

Cả mã hóa đối xứng và bất đối xứng đều đóng vai trò quan trọng trong việc giữ an toàn cho thông tin và thông tin liên lạc nhạy cảm trong thế giới phụ thuộc kỹ thuật số ngày nay. Mặc dù cả hai đều có thể hữu ích, nhưng mỗi loại đều có ưu điểm và nhược điểm riêng và do đó được đưa vào các ứng dụng khác nhau. Khi khoa học về mật mã tiếp tục phát triển để chống lại các mối đe dọa mới hơn và phức tạp hơn, cả hệ thống mật mã đối xứng và bất đối xứng có thể sẽ vẫn phù hợp với bảo mật máy tính.