Mã hóa đối xứng và mã hóa bất đối xứng
1. Tổng quan
A. Định nghĩa
Mã hóa đối xứng (Symmetric Key Cryptography) là phương thức sử dụng cùng một khóa bí mật cho cả mã hóa và giải mã, còn mã hóa bất đối xứng (Asymmetric, mã hóa khóa công khai) là phương thức sử dụng cặp khóa công khai - khóa riêng ghép với nhau về mặt toán học, được thiết kế sao cho nếu mã hóa bằng một khóa thì bắt buộc chỉ có thể giải mã bằng khóa còn lại.
Khác biệt căn bản giữa hai phương thức nằm ở chỗ "chia sẻ khóa hay tách khóa". Mã hóa đối xứng đòi hỏi người gửi và người nhận phải cùng chia sẻ trước một bí mật chung, nên tính toán nhanh nhưng luôn còn lại bài toán truyền bí mật đó một cách an toàn. Mã hóa bất đối xứng tách khóa thành phần công khai và phần bí mật: khóa công khai được phân phối cho bất kỳ ai, còn khóa riêng chỉ chủ sở hữu giữ kín. Nhờ "tính bất đối xứng (công khai một bên nhưng không thể tính ngược ra bên kia)" này, việc truyền thông an toàn và chứng minh danh tính trở nên khả thi ngay cả với một đối tượng xa lạ hoàn toàn chưa từng chia sẻ trước.
Hai phương thức nên được hiểu không phải là quan hệ cạnh tranh mà là quan hệ bổ sung lẫn nhau với vai trò khác nhau. Đối xứng là "két sắt nhanh", còn bất đối xứng là "phương tiện trao chìa khóa một cách an toàn". Các giao thức thực tế hầu như không có ngoại lệ đều dùng cả hai cùng nhau. Từ góc độ Kỹ sư chuyên nghiệp, điều quan trọng là hiểu được cơ sở toán học (bài toán khó) và đặc tính hiệu năng của mỗi phương thức, rồi có năng lực thiết kế sự kết hợp phù hợp với các yêu cầu bảo mật đặt ra (bảo mật - toàn vẹn - xác thực - chống chối bỏ) cùng các ràng buộc về hiệu năng và quy định.
B. Bối cảnh ra đời và sự cần thiết
Các phương thức mã hóa ban đầu đều là đối xứng, và càng nhiều người tham gia thì phân phối khóa (Key Distribution) càng trở thành bài toán khó. Để n người truyền thông 1:1 với nhau cần n(n-1)/2 khóa bí mật, và việc làm thế nào chia sẻ an toàn những khóa này bản thân nó lại đòi hỏi thêm một kênh bảo mật khác. "Muốn trao đổi thông điệp đã mã hóa thì trước hết phải chia sẻ khóa một cách an toàn, nhưng muốn chia sẻ khóa đó an toàn thì lại cần một phương thức mã hóa khác" - vòng lặp luẩn quẩn này là bức tường lâu dài của mật mã học.
Năm 1976, Whitfield Diffie và Martin Hellman đưa ra khái niệm khóa công khai cùng giao thức trao đổi khóa, qua đó phá vỡ vòng lặp này; năm 1977, Rivest, Shamir và Adleman hiện thực hóa thành thuật toán thực dụng với RSA. Mã hóa khóa công khai, với đột phá "có thể thỏa thuận bí mật trên kênh công khai mà không cần chia sẻ trước", đã trở thành nền tảng của thương mại điện tử, ngân hàng Internet và hệ thống tin cậy dựa trên chứng chỉ (PKI).
Tuy nhiên, phép toán khóa công khai kéo theo các phép toán nặng như lũy thừa số nguyên lớn, nên chậm hơn đối xứng hàng trăm đến hàng nghìn lần, không phù hợp để mã hóa dữ liệu khối lượng lớn. Vì vậy thực tế dùng cấu trúc lai (hybrid): trao đổi khóa an toàn bằng bất đối xứng, còn phần nội dung thực tế thì mã hóa nhanh bằng đối xứng, qua đó chỉ lấy ưu điểm của cả hai. Chính cấu trúc này là bộ xương chung của HTTPS, VPN và mã hóa đầu cuối (end-to-end) trong tin nhắn ngày nay.
C. Đặc trưng cốt lõi của hai phương thức
- Đối xứng: tính toán nhanh và cài đặt đơn giản nên phù hợp xử lý khối lượng lớn, thời gian thực, nhưng phải chia sẻ trước khóa bí mật một cách an toàn với từng đối tác truyền thông, và do đặc tính chia sẻ nên không thành lập được tính chống chối bỏ.
- Bất đối xứng: cho phép truyền thông an toàn cùng chữ ký điện tử, chống chối bỏ trong môi trường mở mà không cần chia sẻ trước, nhưng tính toán nặng nên không phù hợp mã hóa nội dung, và bắt buộc phải có nền tảng tin cậy (PKI, chứng chỉ) để bảo đảm khóa công khai đúng là của chủ sở hữu thật.
- Tiền đề chung: ở bất kỳ phương thức nào, tính an toàn hoàn toàn phụ thuộc vào "việc giữ bí mật khóa", và tuân theo nguyên lý Kerckhoffs (Kerckhoffs's principle) rằng dù thuật toán có bị công khai thì chỉ cần khóa an toàn là an toàn.
2. So sánh cơ chế hoạt động và cơ sở toán học
A. Sơ đồ cấu trúc tổng thể
flowchart LR
subgraph SYM["Mã hóa đối xứng (cùng một khóa)"]
A[Bản rõ] -->|Khóa bí mật K| B[Bản mã] -->|Cùng khóa bí mật K| C[Bản rõ]
end
subgraph ASYM["Mã hóa bất đối xứng (khóa công khai/khóa riêng)"]
D[Bản rõ] -->|Khóa công khai người nhận| E[Bản mã] -->|Khóa riêng người nhận| F[Bản rõ]
end
Phương thức đối xứng dùng nguyên một khóa bí mật cho cả hai phía mã hóa và giải mã nên tính toán đơn giản và nhanh. Các mã khối như AES gồm các phép toán bit tương đối nhẹ lặp lại nhiều vòng cấu trúc thay thế - hoán vị (SPN) hoặc Feistel, lại được hỗ trợ cả lệnh tăng tốc phần cứng của CPU hiện đại (AES-NI) nên xử lý được vài GB mỗi giây. Nghĩa là phù hợp với lưu lượng lớn, mã hóa đĩa nơi hiệu năng quan trọng. Việc lặp lại tính hỗn loạn (Confusion) và khuếch tán (Diffusion) này xóa bỏ tương quan thống kê giữa bản rõ và bản mã, khiến ngoài tấn công vét cạn ra thì khó bẻ gãy.
Ngược lại, bất đối xứng dựa tính an toàn vào bài toán khó về toán học. RSA dựa trên bài toán phân tích thừa số nguyên tố "tích của hai số nguyên tố lớn thì dễ tính nhưng phân tích ngược tích đó ra thừa số nguyên tố thì cực kỳ khó", còn ECC (mã hóa đường cong elliptic) dựa trên bài toán khó "phép cộng điểm trên đường cong elliptic thì dễ nhưng phép ngược (logarit rời rạc) thì khó". Dù công khai khóa công khai thì cũng không thể tính ngược ra khóa riêng trong thời gian thực tế, nên nhu cầu chia sẻ khóa trước biến mất. Cái giá phải trả là chi phí tính toán lớn nên không phù hợp xử lý khối lượng lớn.
B. So sánh đặc tính và đánh đổi
| Phân loại | Mã hóa đối xứng | Mã hóa bất đối xứng |
|---|---|---|
| Khóa | Cùng khóa bí mật | Cặp khóa công khai/khóa riêng |
| Tốc độ | Nhanh | Chậm (hàng trăm đến hàng nghìn lần) |
| Phân phối khóa | Khó (cần chia sẻ trước) | Dễ (phân phối khóa công khai) |
| Số lượng khóa | n(n-1)/2 | 2n |
| Cơ sở an toàn | Hỗn loạn - khuếch tán của thay thế - hoán vị | Bài toán khó phân tích thừa số - logarit rời rạc |
| Thuật toán tiêu biểu | AES, SEED, ARIA, LEA, DES (đã loại bỏ) | RSA, ECC, ElGamal, DH |
| Công dụng chính | Mã hóa dữ liệu khối lượng lớn | Trao đổi khóa, chữ ký điện tử, xác thực |
Khác biệt về số lượng khóa minh họa rõ sự đánh đổi cốt lõi. Khi 100 người truyền thông với nhau, đối xứng phải tạo, lưu giữ và hủy khoảng 4.950 khóa (=100×99/2), nhưng bất đối xứng chỉ cần mỗi người một cặp, tổng cộng 200 là đủ. Nghĩa là môi trường mở càng đông người tham gia và không có quan hệ trước thì ưu điểm quản lý khóa của bất đối xứng càng được tối đa hóa. Ngược lại, ở mạng kín, mã hóa thiết bị lưu trữ nơi một số ít đối tác cố định trao đổi dữ liệu khối lượng lớn thì đối xứng vượt trội áp đảo.
Khác biệt về tốc độ cảm nhận được qua con số. Trên CPU cấp máy chủ, AES-256 mã hóa vài GB mỗi giây, nhưng RSA-2048 xác minh chữ ký ở mức vài nghìn đến vài vạn lượt mỗi giây, còn tạo chữ ký thì chậm hơn thế. Vì vậy thiết kế "mã hóa chính nội dung bằng khóa công khai" hầu như không được dùng về mặt hiệu năng, và khóa công khai chỉ áp dụng cho khóa phiên nhỏ hoặc giá trị băm.
Việc cơ sở an toàn khác nhau cũng có hàm ý lớn. Tính an toàn của mã hóa đối xứng nằm ở chỗ "không gian khóa quá lớn nên không thể dò vét cạn", nên chỉ cần độ dài khóa đủ lớn thì có thể chịu đựng tương đối cả trong kỷ nguyên máy tính lượng tử (tấn công Grover chỉ tăng tốc dò tìm ở mức căn bậc hai). Ngược lại, bất đối xứng dựa vào "độ khó" của một bài toán toán học cụ thể, nên khi thuật toán bẻ bài toán đó xuất hiện (ví dụ Shor lượng tử) thì sụp đổ bất kể độ dài khóa. Khác biệt cấu trúc này là bối cảnh cốt lõi của việc chuyển đổi PQC bàn ở phần sau.
C. Chế độ vận hành của mã hóa đối xứng
Mã khối đối xứng chia bản rõ thành các khối kích thước cố định (AES là 128 bit) để xử lý, nên chế độ vận hành (Mode of Operation) - quyết định cách liên kết, lặp các khối - chi phối tính an toàn. Chế độ ECB đơn giản nhất khiến cùng một khối bản rõ luôn trở thành cùng một bản mã, làm lộ mẫu, nên trên thực tế bị cấm dùng. CBC trộn bản mã của khối trước vào khối sau để xóa mẫu nhưng không bảo đảm tính toàn vẹn.
Tiêu chuẩn trên thực tế ngày nay là các chế độ mã hóa có xác thực (AEAD) như AES-GCM. Chúng tạo thẻ xác thực đồng thời với mã hóa nên cung cấp "bảo mật + toàn vẹn + xác thực" trong một lần, giảm các lỗi cài đặt phát sinh trong quá trình gắn thêm MAC riêng. Ngoài ra dòng CTR cho phép xử lý song song nên phù hợp mạng tốc độ cao. Trong bài thi Kỹ sư chuyên nghiệp, viết rõ dùng chế độ nào và tại sao sẽ thể hiện chiều sâu hơn là chỉ viết "dùng mã hóa đối xứng".
Yếu tố dễ bỏ qua khi chọn chế độ là quản lý vector khởi tạo (IV), nonce. CBC, CTR, GCM đều sẽ sụp đổ tính an toàn đột ngột nếu dùng lại cùng IV với cùng khóa, đặc biệt GCM còn có thể lộ cả khóa xác thực khi dùng lại nonce nên rất nguy hiểm. Do đó IV phải được quản lý sao cho không thể đoán trước (CBC) hoặc tuyệt đối không trùng lặp (GCM), và điều này minh họa rõ nguyên lý "thuật toán có an toàn thì vận hành vẫn chi phối tính an toàn".
D. Thuật toán nội địa và độ dài khóa
Các hệ thống công và tài chính của Hàn Quốc thường được khuyến nghị, yêu cầu dùng các thuật toán đối xứng nội địa do KISA phát triển và kiểm định như SEED (khối 128 bit), ARIA (128/192/256), LEA (hạng nhẹ). ARIA vừa là tiêu chuẩn quốc gia (KS) vừa được đăng ký làm tiêu chuẩn quốc tế, còn LEA là mã hóa nhẹ, tốc độ cao nhắm tới môi trường hạn chế tài nguyên như IoT, di động. Trong lĩnh vực chữ ký điện tử và xác thực, các thuật toán ký khóa công khai nội địa (KCDSA/EC-KCDSA) cũng được dùng kèm.
Về độ dài khóa an toàn, đối xứng thường dùng AES-128 trở lên (bảo vệ dài hạn là 256), bất đối xứng dùng RSA-2048 trở lên (bảo vệ dài hạn là 3072 trở lên), và ECC (ví dụ 256 bit ≈ RSA 3072 bit) - đạt cùng cường độ bảo mật với khóa ngắn hơn - được ưa chuộng ở di động, IoT. Vì khóa càng ngắn thì gánh nặng tính toán, lưu trữ, truyền và điện năng càng giảm, nên hàm ý thực tế của ECC đặc biệt lớn ở các nút cảm biến hay thẻ thông minh bị hạn chế pin, băng thông.
3. Các dịch vụ bảo mật được cung cấp
Việc chọn phương thức mã hóa thay đổi tùy "cần dịch vụ bảo mật nào". Mục tiêu cốt lõi của bảo vệ thông tin, ngoài bảo mật - toàn vẹn - sẵn sàng (CIA) còn có xác thực và chống chối bỏ, và phải thiết kế bằng cách phân biệt phương thức nào đạt từng mục tiêu như thế nào.
Bảo mật (Confidentiality) cả đối xứng lẫn bất đối xứng đều có thể cung cấp, nhưng vì hiệu năng nên thực tế mã hóa nội dung bằng đối xứng và chỉ bảo vệ khóa phiên đó bằng bất đối xứng. Dù bản rõ lớn đến đâu thì việc mã hóa do đối xứng đảm nhận, còn bất đối xứng chỉ nhận vai trò "trao chiếc chìa khóa nhỏ một cách an toàn" là chuẩn mực.
Xác thực (Authentication) và chống chối bỏ (Non-repudiation) là thế mạnh riêng của bất đối xứng. Nếu người gửi ký bằng khóa riêng của mình thì ai cũng có thể xác minh bằng khóa công khai của người đó, và vì chỉ bản thân người đó giữ khóa riêng nên sau này không thể chối bỏ "mình đã ký". Với mã hóa đối xứng, do hai bên chia sẻ cùng khóa nên không thể chứng minh với bên thứ ba "trong hai người ai đã tạo ra", nên tính chống chối bỏ không thành lập. Khác biệt này là lý do chữ ký điện tử và chứng chỉ bắt buộc phải dựa trên khóa công khai.
Toàn vẹn (Integrity) được bảo đảm bằng nguyên lý: ký giá trị băm của bản gốc (SHA-256 v.v.) hoặc gắn mã xác thực thông điệp (MAC/HMAC), sao cho chỉ một bit bị chỉnh sửa trong khi truyền thì băm, MAC khác đi và xác minh thất bại. Chữ ký điện tử cung cấp đồng thời "toàn vẹn + xác thực + chống chối bỏ", trong khi HMAC dựa trên khóa đối xứng nên nhanh nhưng không cung cấp chống chối bỏ. Do đó ta chọn theo yêu cầu, chẳng hạn HMAC phù hợp truyền thông nội bộ "chỉ cần ngăn chỉnh sửa thông điệp giữa hai bên", còn chữ ký điện tử phù hợp văn bản điện tử, hợp đồng điện tử "cần chứng minh tác giả với bên thứ ba".
| Dịch vụ | Cách thực hiện | Phương thức dùng chính |
|---|---|---|
| Bảo mật | Mã hóa nội dung | Đối xứng (nội dung) + bất đối xứng (bảo vệ khóa phiên) |
| Xác thực, chống chối bỏ | Chữ ký điện tử bằng khóa riêng → xác minh bằng khóa công khai | Bất đối xứng |
| Toàn vẹn | Băm (SHA-256) + chữ ký, hoặc HMAC | Bất đối xứng/đối xứng |
Ở đây có một điểm cần lưu ý: thao tác "mã hóa" bằng khóa công khai và thao tác "ký" bằng khóa riêng có hướng ngược nhau. Mã hóa để bảo mật thì dùng khóa công khai của người nhận (vì chỉ người nhận mới được mở bằng khóa riêng), còn ký để xác thực, chống chối bỏ thì dùng khóa riêng của người gửi (vì ai cũng phải xác minh được bằng khóa công khai của người gửi). Nếu nhầm lẫn hướng này sẽ phát sinh lỗi thiết kế "đã mã hóa nhưng ai cũng mở được", nên trong bài thi Kỹ sư chuyên nghiệp, việc viết rõ dùng khóa nào cho mục đích nào là quan trọng.
RSA vs ECC - cùng là bất đối xứng nhưng lựa chọn khác nhau
Dù cùng thuộc dòng bất đối xứng, RSA và ECC vẫn phân nhánh trong lựa chọn thực tế. RSA có lịch sử lâu dài và cài đặt, tương thích rộng nên vẫn được dùng phổ biến ở chứng chỉ máy chủ và hệ thống kế thừa. Ngược lại, ECC đạt cường độ tương đương với khóa ngắn hơn nhiều nên được ưa chuộng ở môi trường di động, IoT, lưu lượng quy mô lớn nơi kích thước chứng chỉ, độ trễ bắt tay và tiêu thụ điện quan trọng. Chẳng hạn ECC 256 bit đạt cường độ ngang RSA 3072 bit, nên ở cùng mức bảo mật, ECC giảm đáng kể kích thước khóa và chữ ký. Tuy nhiên cả hai phương thức đều yếu trước máy tính lượng tử, nên về dài hạn cùng mang bài toán chung là chuyển đổi sang PQC.
4. Phương thức lai (phong bì điện tử) và quy trình áp dụng
Đối xứng nhanh nhưng khó phân phối khóa, còn bất đối xứng dễ phân phối khóa nhưng chậm. Hai nhược điểm được chính ưu điểm của bên kia triệt tiêu đúng mức, nên kết hợp cả hai sẽ cho phép thiết kế "chia sẻ khóa vừa nhanh vừa an toàn".
Thiết kế tiêu biểu bù đắp giới hạn của hai phương thức cho nhau là phong bì điện tử (Digital Envelope). Người gửi tạo một khóa phiên (đối xứng) ngẫu nhiên cho mỗi phiên để mã hóa nhanh nội dung khối lượng lớn, rồi chỉ mã hóa khóa phiên đó bằng khóa công khai của người nhận (bất đối xứng) và gửi kèm bản mã. Người nhận khôi phục khóa phiên bằng khóa riêng của mình rồi giải mã nội dung. Làm như vậy, phép toán bất đối xứng chậm chỉ dùng cho khóa phiên nhỏ, còn phép toán đối xứng nhanh dùng cho nội dung lớn, qua đó giải quyết đồng thời hiệu năng và phân phối khóa.
sequenceDiagram
participant S as Người gửi
participant R as Người nhận
S->>S: Tạo khóa phiên (đối xứng)
S->>S: Mã hóa nội dung bằng khóa phiên
S->>S: Mã hóa khóa phiên bằng khóa công khai của R
S->>R: Gửi bản mã + khóa phiên đã mã hóa
R->>R: Khôi phục khóa phiên bằng khóa riêng
R->>R: Giải mã nội dung bằng khóa phiên
Việc tạo khóa phiên mới mỗi lần có lý do rõ ràng. Nếu dùng lại cùng khóa phiên thì một lần lộ khóa sẽ làm sụp đổ toàn bộ truyền thông quá khứ và tương lai, và khối lượng lớn dữ liệu mã hóa bằng cùng khóa trở thành mục tiêu của tấn công thống kê. Nếu mỗi phiên dùng một khóa tạm thời độc lập thì dù một khóa bị lộ, thiệt hại cũng chỉ giới hạn trong phiên đó. Nguyên lý này cũng là nền tảng của tính bí mật thuận (forward secrecy) sẽ giải thích ở phần sau.
Cấu trúc này được chia sẻ bởi cả bắt tay TLS, mã hóa email S/MIME, và các giải pháp mã hóa đĩa, tài liệu. Ví dụ khi truy cập HTTPS, trình duyệt thỏa thuận khóa phiên đối xứng một cách an toàn bằng khóa công khai của chứng chỉ máy chủ (hoặc trao đổi khóa ECDHE), rồi trao đổi lưu lượng web thực tế bằng mã hóa đối xứng như AES-GCM. Trong một lần truy cập, phép toán khóa công khai chỉ diễn ra tại thời điểm bắt tay, sau đó hàng chục MB trang, video đều được xử lý bằng đối xứng nên gần như không suy giảm hiệu năng.
TLS 1.3 hiện đại còn tiến thêm một bước: thay vì "truyền nguyên" khóa phiên bằng RSA, nó dùng cặp khóa tạm thời mỗi phiên qua trao đổi khóa ECDHE để bảo đảm tính bí mật thuận (Forward Secrecy). Nghĩa là dù khóa riêng dài hạn của máy chủ bị lộ về sau thì lưu lượng đã bắt giữ trong quá khứ cũng không thể giải mã. Đây là sự tiến hóa khắc phục giới hạn của phong bì điện tử cổ điển "gói khóa phiên bằng khóa công khai để gửi" (lộ toàn bộ quá khứ khi lộ khóa dài hạn).
Trường hợp áp dụng cụ thể
- Thanh toán thương mại điện tử: công ty thẻ, PG bảo vệ truyền thông với cửa hàng bằng TLS, còn số thẻ nhạy cảm thì lưu kèm token hóa và mã hóa đối xứng bổ sung. Khóa công khai dùng cho chứng minh danh tính máy chủ thanh toán và thỏa thuận khóa phiên, khóa đối xứng dùng cho mã hóa dữ liệu giao dịch thực tế.
- Mã hóa đầu cuối (E2EE) trong tin nhắn: các ứng dụng tin nhắn tiêu biểu thỏa thuận khóa phiên bằng khóa công khai của từng thiết bị người dùng (bất đối xứng), còn tin nhắn, media thực tế thì mã hóa bằng đối xứng. Ngay cả máy chủ cũng không thể xem nội dung nên khi máy chủ trung tâm bị xâm phạm thì nội dung vẫn được bảo vệ.
- Mã hóa đĩa, CSDL (TDE): dữ liệu lưu trữ khối lượng lớn vì hiệu năng bắt buộc phải mã hóa bằng đối xứng (AES-256), nhưng khóa mã hóa dữ liệu (DEK) đó lại được gói bằng khóa chủ (KEK) theo cấu trúc phân lớp khóa (Envelope Encryption) để quản lý. Đây là trường hợp áp dụng khái niệm phong bì điện tử vào vùng lưu trữ.
5. Chuyên sâu - Xu hướng chuyển đổi mã hóa kháng lượng tử (PQC)
Thay đổi mới nhất quan trọng nhất là mối đe dọa máy tính lượng tử và chuyển đổi PQC (Post-Quantum Cryptography). Thuật toán Shor chạy trên máy tính lượng tử đủ lớn có thể giải phân tích thừa số nguyên tố và logarit rời rạc trong thời gian đa thức, qua đó vô hiệu hóa căn bản RSA, ECC, DH hiện tại. Mã hóa đối xứng tuy bị tấn công Grover tăng tốc dò tìm nhưng nếu tăng gấp đôi độ dài khóa (ví dụ AES-256) thì vẫn giữ được tính an toàn nên ảnh hưởng tương đối nhỏ. Do đó cốt lõi của mối đe dọa nằm ở lĩnh vực khóa công khai.
Đặc biệt, tấn công "Thu thập bây giờ, giải mã sau (Harvest Now, Decrypt Later)" là nguy cơ thực chất. Nếu kẻ tấn công lưu bản mã ngay bây giờ rồi giải mã vào thời điểm máy tính lượng tử được thương mại hóa, thì dữ liệu cần giữ bí mật lâu dài (y tế, bí mật quốc gia, tài chính) sẽ bị lộ trong tương lai. Nghĩa là phán đoán "chưa có máy tính lượng tử nên không sao" không đúng với dữ liệu bí mật dài hạn.
Trước tình hình đó, NIST Hoa Kỳ đã chốt cuối cùng tiêu chuẩn PQC vào tháng 8 năm 2024. Tiêu biểu là FIPS 203 (ML-KEM, dựa trên CRYSTALS-Kyber) cho đóng gói khóa, FIPS 204 (ML-DSA, dựa trên CRYSTALS-Dilithium) cho chữ ký điện tử, FIPS 205 (SLH-DSA, dựa trên SPHINCS+) cho chữ ký dựa trên băm, và phần lớn đặt tính an toàn vào bài toán khó dựa trên lưới (Lattice). Việc chuyển đổi thực tế được khuyến nghị tiến dần theo phương thức lai dùng kèm thuật toán hiện có và PQC, còn Hàn Quốc cũng đang thúc đẩy lộ trình chuyển đổi PQC và hệ thống kiểm định kháng lượng tử do KISA chủ trì. Trong bài thi Kỹ sư chuyên nghiệp, sắp xếp theo dòng chiến lược "bảo đảm tính linh hoạt mã hóa (Crypto-Agility) → nhận diện tài sản mã hóa → áp dụng lai → chuyển đổi toàn diện theo giai đoạn" sẽ có sức thuyết phục cao.
Lý do chuyển đổi không đơn giản là vì mã hóa đan xen sâu vào ứng dụng, giao thức, phần cứng và hệ thống chứng chỉ. Thuật toán PQC có kích thước khóa, chữ ký lớn nên ảnh hưởng tới băng thông mạng, không gian lưu trữ và độ trễ bắt tay, còn thiết bị kế thừa, hệ thống nhúng có chu kỳ thay thế dài nên giai đoạn tồn tại song song kéo dài tới nhiều năm. Do đó tổ chức phải trước hết điều tra toàn diện (kiểm kê tài sản mã hóa) xem dùng mã hóa nào ở đâu, trừu tượng hóa để có thể dễ dàng đổi thuật toán bằng cấu hình, rồi chọn cách tiếp cận theo giai đoạn, ưu tiên chuyển đổi trước các tài sản rủi ro cao (bí mật dài hạn, lộ ra ngoài).
Chủ đề kết nối và đề thi liên quan
Chủ đề này được ra đề gắn bó mật thiết với chữ ký điện tử, PKI, phong bì điện tử ([[digital-envelope]]), mã khối ([[block-cipher]]), mã hóa kháng lượng tử ([[post-quantum-crypto]]), mã hóa đồng cấu ([[homomorphic-encryption]]) trong kỳ thi Kỹ sư chuyên nghiệp Quản lý Thông tin. "So sánh đối xứng, bất đối xứng" có thể biến thể thành dạng trả lời ngắn, còn "phương án thiết kế lai" hay "chiến lược chuyển đổi PQC" thành dạng luận, nên phải vượt khỏi việc học thuộc bảng so sánh mà trang bị logic thiết kế nối tiếp yêu cầu → chọn phương thức → chế độ cài đặt → quản lý khóa → chuẩn bị tương lai.
6. Cân nhắc và hàm ý
- Quản lý khóa chính là mức độ bảo mật: dù thuật toán mạnh đến đâu, khóa bị lộ thì vô nghĩa. Phải bảo vệ khóa bằng HSM (mô-đun bảo mật phần cứng) hoặc KMS, và kiểm soát vòng đời khóa (Key Lifecycle) từ tạo, phân phối, sử dụng, lưu giữ, gia hạn đến hủy. Để giới hạn thiệt hại khi lộ khóa, thiết kế dùng khóa phiên mới mỗi lần và tính bí mật thuận là quan trọng.
- Chọn độ dài khóa, thuật toán an toàn: để đề phòng cải thiện hiệu năng tính toán, duy trì AES-256, RSA-2048/3072 trở lên, và ở môi trường hạn chế tài nguyên thì áp dụng ECC đạt cường độ tương đương với khóa ngắn. Loại bỏ ngay các thuật toán yếu, đã bỏ như DES, MD5, SHA-1.
- Lập lộ trình chuyển đổi PQC từ sớm: xét mối đe dọa "thu thập bây giờ, giải mã sau", chuyển đổi trước từ dữ liệu bí mật dài hạn sang dạng lai dựa trên tiêu chuẩn NIST (ML-KEM/ML-DSA), và nội hóa tính linh hoạt mã hóa cho phép dễ dàng thay thế thuật toán vào kiến trúc.
- Thiết kế dựa trên yêu cầu, quy định: kết hợp đối xứng, bất đối xứng, lai tùy theo chỉ cần bảo mật hay cần cả chống chối bỏ. Hệ thống trong nước còn phải cân nhắc đồng thời yêu cầu dùng thuật toán nội địa như SEED, ARIA, LEA và việc tuân thủ các quy định như Luật Bảo vệ thông tin cá nhân, Luật Chữ ký điện tử.
- Cảnh giác cạm bẫy trong cài đặt, vận hành: dù dùng thuật toán an toàn, các khuyết tật cài đặt như chất lượng số ngẫu nhiên kém, padding oracle, bỏ qua xác minh chứng chỉ, dùng lại khóa phiên vẫn trở thành đường lộ thực chất. Dùng thư viện mã hóa đã kiểm chứng và chế độ chuẩn (mã hóa có xác thực như AES-GCM), tránh tự cài đặt (Roll-your-own crypto).
- Cân bằng hiệu năng, quy định, khả năng liên thông: tài chính, công có yêu cầu thông lượng (TPS) và độ trễ nghiêm ngặt, nên khấu hao chi phí phép toán khóa công khai bằng tăng tốc phần cứng, tái sử dụng phiên, gộp kết nối. Đồng thời phải thiết kế kèm việc tuân thủ quy định như nghĩa vụ dùng thuật toán nội địa, thông báo mã hóa thông tin cá nhân, hiệu lực chữ ký điện tử, và khả năng liên thông thuật toán, chứng chỉ với hệ thống bên ngoài.
Tổng hợp lại, thiết kế mã hóa theo góc độ Kỹ sư chuyên nghiệp không phải là lựa chọn nhị phân "đối xứng hay bất đối xứng", mà phải tiếp cận như thiết kế kiến trúc tổng thể: tổng hợp các yêu cầu bảo mật (bảo mật, toàn vẹn, xác thực, chống chối bỏ) cùng ràng buộc về hiệu năng, quy định, vòng đời để kết hợp hai phương thức đúng chỗ, chống đỡ bằng hệ thống quản lý khóa, và nội hóa cả tính linh hoạt chuẩn bị cho kỷ nguyên lượng tử.
Tài liệu tham khảo
- NIST, Post-Quantum Cryptography Standardization (FIPS 203/204/205): https://csrc.nist.gov/projects/post-quantum-cryptography
- NIST SP 800-57, Recommendation for Key Management: https://csrc.nist.gov/pubs/sp/800/57/pt1/r5/final
- IETF RFC 8446, The Transport Layer Security (TLS) Protocol Version 1.3: https://www.rfc-editor.org/rfc/rfc8446
- KISA Thúc đẩy sử dụng mã hóa (mật mã nội địa SEED/ARIA/LEA): https://seed.kisa.or.kr
Tóm tắt một câu: Mã hóa đối xứng nhanh với cùng một khóa bí mật nhưng khó phân phối khóa, mã hóa bất đối xứng thuận lợi cho phân phối khóa, chữ ký điện tử với khóa công khai/khóa riêng nhưng chậm, nên trong thực tế được kết hợp theo dạng lai như phong bì điện tử, TLS - bảo vệ khóa phiên bằng bất đối xứng và mã hóa nội dung bằng đối xứng - và để đề phòng mối đe dọa máy tính lượng tử cần chuẩn bị từ sớm việc chuyển đổi dựa trên NIST PQC (ML-KEM/ML-DSA).