Các hệ thống mật mã ngày nay gồm hai lĩnh vực là mật mã đối xứng và mật mã bất đối xứng. Nếu mật mã đối xứng chính là mã hóa đối xứng, thì mật mã bất đối xứng lại được chia thành hai ứng dụng khác nhau: mã hóa bất đối xứng và chữ ký số.
Chúng ta có thể minh họa như sau:
- Mật mã khóa đối xứng
- Mã hóa đối xứng
- Mật mã bất đối xứng (hay mật mã khóa công khai)
- Mã hóa bất đối xứng (hay mã khóa công khai)
- Chữ ký số (có thể bao gồm hoặc không bao gồm mã khóa)
Bài viết này sẽ nói về các thuật toán mã hóa đối xứng và mã hóa bất đối xứng.
Mã hóa đối xứng và mã hóa bất đối xứng
Các thuật toán mã hóa thường được chia thành hai loại là mã hóa đối xứng và mã hóa 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 là các thuật toán mã hóa đối xứng sử dụng một khóa đơn, còn mã hóa bất đối xứng sử dụng hai khóa khác nhau nhưng có liên quan. Chính sự khác biệt tuy có vẻ đơn giản này khiến hai hai hình thức kỹ thuật mã hóa này hoàn toàn khác nhau về chức năng và cách sử dụng của chúng.
Khóa mã hóa
Trong mật mã học, các 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 đoạn thông tin. Cách thức các khóa này được sử dụng 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 thuật toán mã hóa đối xứng sử dụng cùng một khóa để thực hiện cả hai chức năng mã hóa và giải mã, thuật toán mã hóa bất đối xứng lại sử dụng hai khóa khác nhau, một khóa để mã hóa dữ liệu và một khóa khác để giải mã nó. 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 công khai và có thể được chia sẻ với người khác. Còn khóa được sử dụng để giải mã là khóa cá nhân và cần được giữ bí mật.
Ví dụ: nếu Alice gửi cho Bob một thông điệp được bảo vệ bằng phương thức mã hóa đối xứng, cô ấy cần chia sẻ cho Bob khóa mà cô ấy đã sử dụng để mã hóa để anh ấy có thể giải mã thông điệp. Điều này có nghĩa là nếu một tác nhân độc hại lấy được khóa, họ có thể truy cập thông tin được mã hóa.
Tuy nhiên, thay vào đó, nếu Alice sử dụng sơ đồ bất đối xứng, cô ấy sẽ mã hóa thông điệp bằng khóa công khai của Bob, do vậy Bob sẽ có thể giải mã nó bằng khóa cá nhân của mình. Do đó, phương thức mã hóa bất đối xứng cung cấp mức độ bảo mật cao hơn, bởi vì ngay cả khi ai đó lấy được tin nhắn và tìm thấy khóa công khai của Bob, họ cũng không thể giải mã tin nhắn.
Độ dài của khóa
Mã hóa đối xứng và mã hóa bất đối xứng còn khác nhau ở độ dài của các khóa, độ dài này được đo bằng bit và liên quan trực tiếp đến mức độ bảo mật mà mỗi thuật toán mã hóa cung cấp.
Trong các 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, độ dài này phụ thuộc vào mối quan hệ toán học giữa khóa công khai và khóa cá nhân, hay nói cách khác có một mối quan hệ toán học giữa hai khóa. Bởi vì những kẻ tấn công có thể khai thác mối quan hệ này để bẻ khóa mã hóa, các khóa không đối xứng cần có độ dài lớn hơn để đảm bảo mức độ bảo mật tương tự. Có thể thấy rõ sự khác biệt về độ dài khóa của hai phương thức này khi xét rằng để cung cấp một mức độ bảo mật tương đương, khóa đối xứng chỉ cần độ dài 128 bit trong khi khóa bất đối xứng cần phải dài đến 2.048 bit.
Ưu điểm và nhược điểm
Cả hai loại mã hóa đều có những ưu điểm và nhược điểm. Các thuật toán mã hóa đối xứng có tốc độ nhanh hơn và đòi hỏi sức mạnh tính toán thấp hơn, nhưng nhược điểm khi sử dụng loại mã hóa này là cần gửi khóa. Vì phương thức này sử dụng cùng một khóa để mã hóa và giải mã thông tin, nên khóa đó phải được gửi cho bất kỳ ai cần truy cập dữ liệu, và điều này sẽ tự nhiên mở ra các nguy cơ về bảo mật (như đã minh họa ở trên).
Ngược lại, mã hóa bất đối xứng giải quyết vấn đề gửi khóa vì phương thức này sử dụng khóa công khai để mã hóa và khóa cá nhân để giải mã. Tuy nhiên, đổi lại, các hệ thống mã hóa bất đối xứng có tốc độ chậm hơn nhiều so với hệ thống đối xứng và đòi hỏi nhiều khả năng tính toán hơn vì khóa của chúng có độ dài lớn hơn nhiều.
Các ứng dụng
Mã hóa đối xứng
Do có tốc độ nhanh hơn nên mã hóa đối xứng được sử dụng rộng rãi để bảo vệ thông tin trong các hệ thống máy tính hiện đại. Ví dụ, Hoa Kỳ sử dụng Tiêu chuẩn Mã hóa Nâng cao (AES) để 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) cũ, tiêu chuẩn nà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
Có thể sử dụng mã hóa bất đối xứng cho các hệ thống mà trong đó nhiều người dùng có thể cần mã hóa và giải mã tệp hoặc bộ dữ liệu, đặc biệt trong trường hợp không có giới hạn về tốc độ và sức mạnh tính toán. Ví dụ, có thể sử dụng phương thức mã hóa này trong hệ thống email được mã hóa, trong đó khóa công khai được sử dụng để mã hóa các email và khóa cá nhân được sử dụng để giải mã chúng.
Hệ thống kết hợp
Mã hóa đối xứng và bất đối xứng được sử dụng kết hợp trong nhiều hệ thống. Ví dụ, một số hệ thống kết hợp điển hình là các giao thức mã hóa Security Sockets Layer (SSL) và Transport Layer Security (TLS), được thiết kế cho giao tiếp bảo mật trong mạng Internet. Các giao thức SSL hiện được coi là không an toàn và nên được ngừng sử dụng. 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 mã hóa có sử dụng mã hóa không?
Nhiều ví tiền mã hóa sử dụng các kỹ thuật mã hóa như một cách để tăng mức độ bảo mật cho người dùng cuối. Ví dụ, các thuật toán mã hóa được sử dụng khi người dùng đặt mật khẩu cho ví tiền mã hóa của họ, điều đó có nghĩa là tệp được sử 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 mã hóa khác sử dụng các cặp khóa công khai-khóa cá nhân, mọi người thường hiểu nhầm rằng các 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, mã hóa bất đối xứng và chữ ký số là hai ứng dụng chính của mật mã bất đối xứng (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, kể cả nếu chúng bao gồm cả khóa công khai và khóa cá nhân. Trong thực tế, một thông điệp có thể được ký điện tử mà không được mã hóa. RSA là một ví dụ về thuật toán có thể được sử dụng để ký các thông điệp được mã hóa, nhưng thuật toán chữ ký số mà Bitcoin sử dụng (có tên là ECDSA) hoàn toàn không sử dụng mã hóa.
Kết luận
Cả mã hóa đối xứng và mã hóa bất đối xứng đều đóng vai trò quan trọng trong việc đảm bảo bảo mật cho thông tin nhạy cảm và việc thông tin liên lạc trong thế giới phụ thuộc vào kỹ thuật số như ngày nay. Mặc dù cả hai phương thức này đều hữu ích, mỗi phương thức đều có những ưu điểm và nhược điểm riêng và do đó chúng được ứng dụng theo các cách thức khác nhau. Khi khoa học 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à tinh vi hơn, cả hai hệ thống, mật mã đối xứng và mật mã bất đối xứng đều sẽ được sử dụng cho bảo mật máy tính.