Trang chủ Proton

Mã hóa > Các loại mã hóa > Bất đối xứng so với đối xứng

Mã hóa bất đối xứng so với mã hóa đối xứng

Mọi kết nối đã mã hóa được thực hiện — chẳng hạn như duyệt trang web, gửi email hoặc sử dụng VPN — đều dựa trên mã hóa bất đối xứng, mã hóa đối xứng hoặc cả hai. Hiểu được sự khác biệt này sẽ giải thích lý do tại sao mã hóa hiện đại sử dụng cả hai.

Mã hóa đối xứng là gì?

Mã hóa đối xứng sử dụng một khóa duy nhất để vừa khóa (mã hóa) và mở khóa (giải mã) dữ liệu. Cả người gửi và người nhận phải cùng nắm giữ một khóa bí mật giống nhau — bất kỳ ai có được khóa này đều có thể đọc mọi thứ mà khóa bảo vệ.

Hãy tưởng tượng một chiếc két sắt vật lý có một mã số. Bất kỳ ai biết mã số đều có thể mở két. Phương pháp này nhanh chóng và đơn giản, nhưng phải chia sẻ mã số đó một cách an toàn trước khi có thể cùng sử dụng.

Vì mã hóa đối xứng có tốc độ tính toán nhanh, phương pháp này rất xuất sắc trong việc bảo vệ lượng dữ liệu lớn — mã hóa các tệp trên ổ đĩa cứng, lưu lượng qua đường truyền VPN(cửa sổ mới) hoặc nội dung của cơ sở dữ liệu. Các thuật toán đối xứng phổ biến bao gồm AESChaCha20.

Điểm yếu cơ bản: Làm thế nào để chia sẻ khóa ngay từ đầu? Nếu gửi qua một kênh không an toàn, kẻ tấn công chặn được khóa có thể giải mã mọi thứ. Đây là vấn đề phân phối khóa và là điều mà mã hóa bất đối xứng giải quyết.

Mã hóa bất đối xứng là gì?

Mã hóa bất đối xứng sử dụng hai khóa có liên kết toán học với nhau: một khóa công khai và một khóa riêng tư. Những gì một khóa mã hóa, chỉ khóa còn lại mới có thể giải mã. Khóa công khai được chia sẻ công khai với bất kỳ ai; khóa riêng tư không bao giờ rời khỏi thiết bị.

Hãy tưởng tượng một khe nhận thư ở cửa trước. Bất kỳ ai cũng có thể bỏ một bức thư qua khe đó (mã hóa bằng khóa công khai), nhưng chỉ người nhận mới có khóa để mở hộp và đọc nội dung bên trong (giải mã bằng khóa riêng tư). Không cần trao đổi bí mật trước.

Điều này giải quyết hoàn toàn vấn đề phân phối khóa. Hai người lạ chưa từng liên lạc với nhau trước đây có thể thiết lập một kênh an toàn — một người công bố khóa công khai của họ, người kia mã hóa một thư bằng khóa đó và chỉ người giữ khóa mới có thể đọc thư trả lời. Đây là nền tảng của mã hóa đầu cuối, HTTPS và chữ ký số.

Sự đánh đổi: Mã hóa bất đối xứng chậm hơn khoảng 1.000 lần so với mã hóa đối xứng do các phép toán phức tạp liên quan. Chỉ mã hóa một tệp lớn hoặc một luồng dữ liệu phát trực tuyến liên tục bằng mật mã bất đối xứng sẽ không thực tế.

Các thuật toán bất đối xứng phổ biến bao gồm:

Mã hóa bất đối xứng so với mã hóa đối xứng: Sự khác biệt chính

Đối xứng

Một khóa được chia sẻ

Nhanh chóng, hiệu quả, lý tưởng cho dữ liệu lớn. Yêu cầu cả hai bên phải chia sẻ trước một khóa bí mật một cách an toàn.

Bất đối xứng

Cặp khóa công khai + riêng tư

Chậm hơn, nhưng giải quyết được vấn đề trao đổi khóa. Bất kỳ ai cũng có thể mã hóa; chỉ chủ sở hữu khóa mới có thể giải mã.

Mã hóa bất đối xứng so với mã hóa đối xứng

Đối xứng

Bất đối xứng

Khóa

Một khóa được chia sẻ

Cặp khóa công khai + riêng tư

Tốc độ

Rất nhanh

Chậm hơn ~1.000 lần

Độ dài khóa

128–256 bit

≥2048 bit (RSA), ≥256 bit (ECC)

Phân phối khóa

Phải được chia sẻ an toàn trước

Khóa công khai có thể được chia sẻ công khai

Tốt nhất cho

Mã hóa dữ liệu lớn, chẳng hạn như tệp, đĩa và lưu lượng VPN

Trao đổi khóa an toàn, chữ ký số, gửi thư

Ví dụ

AES, ChaCha20

RSA, ECDH, Ed25519, ML-KEM (hậu lượng tử)

Tại sao mã hóa hiện đại sử dụng cả hai

Trên thực tế, mã hóa đối xứng và mã hóa bất đối xứng hầu như không bao giờ được sử dụng riêng lẻ. Các hệ thống bảo mật nhất kết hợp chúng: mã hóa bất đối xứng để trao đổi khóa một cách an toàn, sau đó dùng mã hóa đối xứng để bảo vệ dữ liệu thực tế. Điều này mang lại sự bảo mật của mật mã bất đối xứng và tốc độ của mật mã đối xứng.

Mật mã kết hợp

Việc sử dụng kết hợp mã hóa bất đối xứng và mã hóa đối xứng được gọi là mật mã kết hợp. Đây là nền tảng của HTTPS, TLS, VPN, email được mã hóa OpenPGP và hầu hết các giao thức truyền thông an toàn khác.

Điều gì xảy ra khi truy cập một trang web an toàn

  • Trình duyệt và máy chủ sử dụng mã hóa bất đối xứng (qua ECDH) để thống nhất về một khóa phiên được chia sẻ mà không cần truyền khóa đó — ngay cả khi có người chặn cuộc trao đổi, họ cũng không thể tìm ra khóa.

  • Khóa phiên được chia sẻ đó được sử dụng với mã hóa đối xứng (AES hoặc ChaCha20) để mã hóa toàn bộ dữ liệu trong phần còn lại của phiên — đủ nhanh để xử lý lưu lượng liên tục.

  • Khóa phiên sẽ bị hủy bỏ khi kết nối đóng. Điều này rất quan trọng vì nếu không, một khóa riêng tư bị đánh cắp sẽ trở thành “khóa chính” — có khả năng giải mã mọi phiên trong quá khứ và tương lai. Tạo một khóa mới cho mỗi phiên có nghĩa là sự xâm phạm chỉ giới hạn trong phiên đó. Thuộc tính này được gọi là bảo mật chuyển tiếp hoàn hảo.

Điều gì xảy ra khi gửi email được mã hóa đầu cuối

  • Thư được mã hóa bằng một khóa phiên đối xứng được tạo ngẫu nhiên (AES) — đủ nhanh cho mọi kích thước thư.

  • Khóa phiên đó sau đó được mã hóa bằng khóa công khai của người nhận (mã hóa bất đối xứng), vì vậy chỉ họ mới có thể mở khóa bằng khóa riêng tư của mình.

  • Cả hai đều được gửi cùng nhau. Người nhận giải mã khóa phiên bằng khóa riêng tư của họ, sau đó sử dụng khóa đó để giải mã thư — tất cả đều không cần chia sẻ trước bất kỳ bí mật nào.

Tính xác thực và chữ ký số

Mã hóa ẩn nội dung của thư, nhưng không chứng minh được ai đã gửi thư. Để làm được điều đó, cần phải xác thực: một cách để xác minh rằng thư thực sự đến từ người gửi được tuyên bố và không bị can thiệp trong quá trình vận chuyển.

Mã hóa bất đối xứng giúp điều này khả thi thông qua chữ ký số. Thay vì mã hóa bằng khóa công khai, người gửi ký dữ liệu bằng khóa riêng tư của họ. Bất kỳ ai nắm giữ khóa công khai tương ứng đều có thể xác minh chữ ký, xác nhận cả danh tính của người gửi và nội dung không bị thay đổi.

Đối với bản thân dữ liệu, hầu hết các giao thức hiện đại đều sử dụng mã hóa được xác thực — các mật mã đồng thời mã hóa và xác minh tính toàn vẹn trong một thao tác. Các ví dụ phổ biến là AES-GCM and ChaCha20-Poly1305, cả hai đều được sử dụng trên các dịch vụ của Proton. Nếu chỉ một bit duy nhất của văn bản mã hóa bị thay đổi trong quá trình vận chuyển, việc giải mã sẽ thất bại và dữ liệu bị can thiệp sẽ bị từ chối.

Máy tính lượng tử và mã hóa

Mã hóa đối xứng và mã hóa bất đối xứng đối mặt với các mối đe dọa rất khác nhau từ máy tính lượng tử — và việc hiểu rõ sự khác biệt này rất quan trọng đối với cách ngành đang chuẩn bị.

Mã hóa bất đối xứng truyền thống dựa trên các bài toán toán học khó: phân tích các số lớn thành thừa số (RSA) hoặc giải các bài toán logarit rời rạc (ECDH). Máy tính lượng tử, sử dụng thuật toán của Shor, đặc biệt giỏi giải quyết loại bài toán này, phá vỡ mật mã bất đối xứng truyền thống một cách hiệu quả trên quy mô lớn.

Mã hóa đối xứng có khả năng chống chịu tốt hơn nhiều. Phương pháp này dựa trên tấn công vét cạn (thử mọi khóa có thể) mà máy tính lượng tử có thể tăng tốc, nhưng không đủ để làm cho các khóa có kích thước tốt lỗi thời. Khóa đối xứng 256 bit vẫn an toàn trước các cuộc tấn công lượng tử đã biết; không cần tăng kích thước khóa trên thực tế.

Đây là lý do tại sao các thuật toán hậu lượng tử như ML-KEM được thiết kế để thay thế thuật toán bất đối xứng — thay thế cho những nơi sử dụng RSA và ECDH ngày nay, trong khi mã hóa đối xứng hầu như không thay đổi.

Cách Proton sử dụng mã hóa bất đối xứng và mã hóa đối xứng

Mọi dịch vụ của Proton đều sử dụng mật mã kết hợp: mã hóa bất đối xứng để thiết lập trao đổi khóa an toàn và mã hóa đối xứng để bảo vệ dữ liệu một cách nhanh chóng.

Proton Mail sử dụng tiêu chuẩn OpenPGP, kết hợp mã hóa đối xứng cho nội dung thư với các khóa bất đối xứng, chẳng hạn như khóa ECC hoặc RSA, để mã hóa, trao đổi khóa và chữ ký số. Dịch vụ này cũng hỗ trợ mã hóa hậu lượng tử.

Proton VPN mã hóa lưu lượng bằng ChaCha20 hoặc AES-256, sử dụng các giao thức VPN hiện đại như WireGuard và OpenVPN. Các giao thức này sử dụng trao đổi khóa bất đối xứng để thiết lập các khóa phiên đối xứng mới, giúp mang lại tính năng bảo mật chuyển tiếp hoàn hảo.

Proton Drive mã hóa các tệp ở phía máy khách bằng cách sử dụng tiêu chuẩn OpenPGP. Dịch vụ này sử dụng các khóa bất đối xứng công khai/riêng tư để chỉ khóa riêng tư mới giải mã được các tệp, nghĩa là không ai ngoài chủ sở hữu — kể cả Proton — có thể truy cập chúng.

Proton Pass lưu trữ thông tin đăng nhập và các mục khác trong kho bằng mã hóa đối xứng AES-256-GCM. Ứng dụng sử dụng các khóa kho và khóa mục 32 byte được tạo ngẫu nhiên, được bảo vệ bằng các khóa người dùng bất đối xứng.

Proton

Chủ động kiểm soát dữ liệu

Mã hóa hiện đại hoạt động vì mật mã đối xứng và bất đối xứng hoạt động cùng nhau — và Proton sử dụng cả hai để bảo vệ quyền riêng tư trên tất cả ứng dụng.

Với mã hóa đầu cuối, kiến trúc không truy cập, bảo vệ hậu lượng tử, ứng dụng mã nguồn mở và kiểm tra độc lập, thông tin luôn thuộc về người dùng.

Câu hỏi thường gặp

Sự khác biệt chính giữa mã hóa đối xứng và mã hóa bất đối xứng là gì?
Phương pháp nào nhanh hơn, mã hóa bất đối xứng hay mã hóa đối xứng?
Tại sao cần cả mã hóa đối xứng và bất đối xứng?
Mã hóa đối xứng có kém an toàn hơn mã hóa bất đối xứng không?
Mã hóa bất đối xứng có thể thay thế mã hóa đối xứng không?
Các thuật toán đối xứng hay bất đối xứng dễ bị tổn thương hơn trước máy tính lượng tử?

Tìm hiểu thêm về mã hóa